From 3542b788555b012562d2c93630cc15fcb965f608 Mon Sep 17 00:00:00 2001 From: sjswerdloff Date: Sat, 17 Aug 2024 23:34:06 +1200 Subject: [PATCH] Add domain model (#71) * initial commit for data model classes initially generated by Claude 3.5 Sonnet, but significant corrections required and will still be required this is just to get it set in a branch so I can get back to other work * modified 12LeadEcg to TwelveLeadEcg to get through black domain models for all known IODs and Sequences in DICOM 2024, generated based on innolitics standard/*.json files * added public elements dynamically to datadict that are in DICOM Standard 2024 that aren't yet in pydicom --- .vscode/settings.json | 14 + .../domain_model/12_lead_ecg.py | 4262 ++++++++ tdwii_plus_examples/domain_model/__init__.py | 0 .../acquisition_context_sequence_item.py | 363 + .../domain_model/acquisition_context_sr.py | 4673 +++++++++ .../acquisition_device_sequence_item.py | 346 + .../acquisition_end_location_sequence_item.py | 136 + .../acquisition_initiation_sequence_item.py | 329 + ...uisition_method_algorithm_sequence_item.py | 135 + ...uisition_protocol_element_sequence_item.py | 492 + ...sition_protocol_element_sequence_item_1.py | 448 + ...cquisition_start_location_sequence_item.py | 136 + .../acquisition_subtask_sequence_item.py | 603 ++ ...sition_task_applicability_sequence_item.py | 116 + .../acquisition_task_sequence_item.py | 178 + .../add_intermediate_sequence_item.py | 39 + .../domain_model/add_near_sequence_item.py | 39 + .../domain_model/add_other_sequence_item.py | 39 + .../additional_drug_sequence_item.py | 256 + ...ameter_recording_instance_sequence_item.py | 53 + ...ional_rt_accessory_device_sequence_item.py | 74 + .../advanced_blending_presentation_state.py | 4741 +++++++++ .../advanced_blending_sequence_item.py | 262 + ...ivity_deviation_algorithm_sequence_item.py | 135 + ...nate_container_identifier_sequence_item.py | 68 + ...rnate_content_description_sequence_item.py | 93 + .../alternate_value_sequence_item.py | 329 + .../domain_model/ambulatory_ecg.py | 4262 ++++++++ ...og_filter_characteristics_sequence_item.py | 40 + .../anatomic_region_modifier_sequence_item.py | 256 + .../anatomic_region_sequence_item.py | 290 + .../animation_curve_sequence_item.py | 53 + ..._algorithm_identification_sequence_item.py | 135 + .../annotation_group_sequence_item.py | 443 + .../anterior_chamber_depth_sequence_item.py | 96 + .../application_setup_sequence_item.py | 229 + .../applicator_geometry_sequence_item.py | 67 + .../domain_model/applicator_sequence_item.py | 116 + .../domain_model/arterial_pulse_waveform.py | 4318 ++++++++ .../asl_bolus_cutoff_timing_sequence_item.py | 39 + .../domain_model/asl_slab_sequence_item.py | 152 + .../asserter_identification_sequence_item.py | 329 + .../assessed_attribute_value_sequence_item.py | 488 + .../assessed_sop_instance_sequence_item.py | 85 + .../assessment_observations_sequence_item.py | 119 + .../assessment_requester_sequence_item.py | 329 + .../assigning_facility_sequence_item.py | 53 + ...ttribute_tolerance_values_sequence_item.py | 109 + .../author_identification_sequence_item.py | 329 + .../author_observer_sequence_item.py | 329 + .../autorefraction_left_eye_sequence_item.py | 102 + .../autorefraction_measurements.py | 4194 ++++++++ .../autorefraction_right_eye_sequence_item.py | 102 + ...asic_cardiac_electrophysiology_waveform.py | 4262 ++++++++ .../domain_model/basic_structured_display.py | 4685 +++++++++ .../domain_model/basic_text_sr.py | 4505 +++++++++ .../basic_voice_audio_waveform.py | 4262 ++++++++ .../beam_area_limit_sequence_item.py | 137 + ...erification_control_point_sequence_item.py | 96 + ...m_hold_originating_device_sequence_item.py | 220 + ...imiting_device_leaf_pairs_sequence_item.py | 39 + ..._limiting_device_position_sequence_item.py | 40 + .../beam_limiting_device_sequence_item.py | 68 + .../beam_limiting_device_sequence_item_1.py | 82 + ...limiting_device_tolerance_sequence_item.py | 40 + .../domain_model/beam_sequence_item.py | 991 ++ .../domain_model/beam_task_sequence_item.py | 365 + .../biopsy_target_sequence_item.py | 81 + .../blending_display_input_sequence_item.py | 25 + .../blending_display_sequence_item.py | 88 + .../blending_lut1_sequence_item.py | 67 + .../blending_lut2_sequence_item.py | 67 + .../domain_model/blending_sequence_item.py | 185 + .../blending_softcopy_presentation_state.py | 4719 +++++++++ .../block_definition_sequence_item.py | 498 + .../block_edge_data_sequence_item.py | 25 + .../domain_model/block_sequence_item.py | 208 + .../domain_model/block_sequence_item_1.py | 194 + .../domain_model/block_slab_sequence_item.py | 81 + .../block_slab_sequence_item_1.py | 54 + .../domain_model/body_position_waveform.py | 4318 ++++++++ .../bolus_definition_sequence_item.py | 380 + .../brachy_accessory_device_sequence_item.py | 124 + ...y_control_point_delivered_sequence_item.py | 103 + .../brachy_control_point_sequence_item.py | 125 + ...e_control_point_delivered_sequence_item.py | 103 + ...referenced_dose_reference_sequence_item.py | 40 + .../domain_model/brachy_task_sequence_item.py | 143 + .../breast_projection_x_ray_image.py | 6409 ++++++++++++ .../breast_tomosynthesis_image.py | 5945 +++++++++++ .../breed_registration_sequence_item.py | 60 + ...on_electron_control_point_sequence_item.py | 336 + .../c_arm_photon_electron_radiation.py | 5559 +++++++++++ .../c_arm_photon_electron_radiation_record.py | 6001 +++++++++++ ...calculated_dose_reference_sequence_item.py | 68 + .../calculation_comment_sequence_item.py | 39 + .../calibration_data_sequence_item.py | 53 + .../domain_model/calibration_sequence_item.py | 25 + .../camera_position_group_sequence_item.py | 81 + .../cardiac_synchronization_sequence_item.py | 165 + .../domain_model/cell_values_sequence_item.py | 337 + .../channel_definition_sequence_item.py | 583 ++ ...nel_delivery_continuation_sequence_item.py | 54 + .../channel_delivery_order_sequence_item.py | 39 + .../channel_display_sequence_item.py | 110 + .../channel_impedance_sequence_item.py | 68 + ...channel_sensitivity_units_sequence_item.py | 256 + .../domain_model/channel_sequence_item.py | 459 + .../channel_shield_sequence_item.py | 110 + .../channel_source_modifiers_sequence_item.py | 256 + .../channel_source_sequence_item.py | 256 + .../chemical_shift_sequence_item.py | 39 + .../domain_model/chest_cad_sr.py | 4617 +++++++++ .../domain_model/code_sequence_item.py | 161 + ...ing_scheme_identification_sequence_item.py | 144 + .../coding_scheme_resources_sequence_item.py | 39 + .../collimator_shape_sequence_item.py | 123 + .../domain_model/colon_cad_sr.py | 4561 +++++++++ .../color_softcopy_presentation_state.py | 4943 ++++++++++ ...ination_segment_reference_sequence_item.py | 364 + .../compensator_definition_sequence_item.py | 422 + .../domain_model/compensator_sequence_item.py | 264 + .../compensator_shape_sequence_item.py | 118 + .../component_input_sequence_item.py | 39 + .../compound_graphic_sequence_item.py | 358 + .../domain_model/comprehensive3d_sr.py | 4617 +++++++++ .../domain_model/comprehensive_sr.py | 4617 +++++++++ .../computed_radiography_image.py | 6380 ++++++++++++ ...nt_segmentation_reference_sequence_item.py | 71 + ...eptual_volume_constituent_sequence_item.py | 141 + ...lume_derivation_algorithm_sequence_item.py | 135 + ...ual_volume_identification_sequence_item.py | 151 + ...me_segmentation_reference_sequence_item.py | 71 + .../conceptual_volume_sequence_item.py | 297 + .../confirmation_sequence_item.py | 204 + .../domain_model/confocal_microscopy_image.py | 6040 ++++++++++++ ...croscopy_image_frame_type_sequence_item.py | 25 + ...nfocal_microscopy_tiled_pyramidal_image.py | 6228 ++++++++++++ ...nt_for_clinical_trial_use_sequence_item.py | 67 + .../constraint_value_sequence_item.py | 488 + ..._physician_identification_sequence_item.py | 198 + .../container_component_sequence_item.py | 172 + .../content_assessment_results.py | 4259 ++++++++ .../domain_model/content_sequence_item.py | 515 + .../content_template_sequence_item.py | 53 + ...text_group_identification_sequence_item.py | 67 + .../contour_image_sequence_item.py | 67 + .../domain_model/contour_sequence_item.py | 103 + ...st_administration_profile_sequence_item.py | 82 + ...olus_administration_route_sequence_item.py | 290 + .../contrast_bolus_agent_sequence_item.py | 256 + .../contrast_bolus_usage_sequence_item.py | 67 + .../contributing_equipment_sequence_item.py | 388 + ...g_sop_instances_reference_sequence_item.py | 60 + .../contributing_sources_sequence_item.py | 421 + .../contributing_sources_sequence_item_1.py | 407 + .../contributing_sources_sequence_item_2.py | 435 + .../control_point_delivery_sequence_item.py | 589 ++ .../control_point_sequence_item.py | 575 ++ ...version_source_attributes_sequence_item.py | 67 + .../cornea_measurements_sequence_item.py | 225 + .../corneal_size_sequence_item.py | 94 + .../domain_model/corneal_topography_map.py | 6311 ++++++++++++ ...opography_mapping_normals_sequence_item.py | 67 + .../corrected_parameter_sequence_item.py | 67 + .../ct_acquisition_details_sequence_item.py | 124 + .../ct_acquisition_type_sequence_item.py | 67 + ...t_additional_x_ray_source_sequence_item.py | 124 + .../domain_model/ct_exposure_sequence_item.py | 194 + .../domain_model/ct_geometry_sequence_item.py | 54 + tdwii_plus_examples/domain_model/ct_image.py | 6901 +++++++++++++ .../ct_image_frame_type_sequence_item.py | 67 + ...ing_acquisition_parameter_sequence_item.py | 142 + .../ct_performed_procedure_protocol.py | 4807 +++++++++ .../domain_model/ct_position_sequence_item.py | 53 + .../ct_reconstruction_sequence_item.py | 124 + .../ct_table_dynamics_sequence_item.py | 53 + .../ctx_ray_details_sequence_item.py | 348 + ...t_frame_functional_groups_sequence_item.py | 148 + ...frame_functional_groups_sequence_item_1.py | 46 + ...uested_procedure_evidence_sequence_item.py | 60 + .../custodial_organization_sequence_item.py | 93 + .../domain_model/cylinder_sequence_item.py | 39 + .../data_frame_assignment_sequence_item.py | 145 + .../data_information_sequence_item.py | 131 + .../data_observation_sequence_item.py | 329 + ..._algorithm_identification_sequence_item.py | 135 + .../decomposition_material_sequence_item.py | 80 + .../definition_source_sequence_item.py | 53 + .../definition_source_sequence_item_13.py | 67 + ...ormable_registration_grid_sequence_item.py | 82 + .../deformable_registration_sequence_item.py | 274 + .../deformable_spatial_registration.py | 4471 +++++++++ .../deidentification_action_sequence_item.py | 39 + ...red_depth_dose_parameters_sequence_item.py | 81 + .../delivery_rate_unit_sequence_item.py | 256 + ...livery_verification_image_sequence_item.py | 175 + .../depth_dose_parameters_sequence_item.py | 81 + .../derivation_algorithm_sequence_item.py | 135 + ...ivation_conceptual_volume_sequence_item.py | 108 + .../derivation_image_sequence_item.py | 94 + .../dermoscopic_photography_image.py | 6566 ++++++++++++ .../detector_information_sequence_item.py | 271 + .../detector_position_sequence_item.py | 40 + .../device_motion_control_sequence_item.py | 74 + ...device_position_parameter_sequence_item.py | 329 + .../domain_model/device_sequence_item.py | 411 + ...fic_acquisition_parameter_sequence_item.py | 329 + .../dicom_media_retrieval_sequence_item.py | 39 + .../dicom_retrieval_sequence_item.py | 25 + .../dicom_storage_sequence_item.py | 25 + .../diffusion_b_matrix_sequence_item.py | 95 + ...fusion_gradient_direction_sequence_item.py | 25 + ...al_filter_characteristics_sequence_item.py | 60 + .../digital_intra_oral_x_ray_image.py | 8520 ++++++++++++++++ .../digital_mammography_x_ray_image.py | 8775 +++++++++++++++++ .../digital_signatures_sequence_item.py | 158 + .../domain_model/digital_x_ray_image.py | 8430 ++++++++++++++++ .../dimension_index_sequence_item.py | 95 + .../dimension_organization_sequence_item.py | 25 + .../direct_segment_reference_sequence_item.py | 241 + .../displayed_area_selection_sequence_item.py | 145 + ...se_calibration_conditions_sequence_item.py | 82 + .../dose_reference_sequence_item.py | 306 + .../domain_model/dose_values_sequence_item.py | 124 + ...etric_objective_parameter_sequence_item.py | 367 + .../dosimetric_objective_sequence_item.py | 203 + .../dvh_referenced_roi_sequence_item.py | 39 + .../domain_model/dvh_sequence_item.py | 187 + .../echo_planar_pulse_sequence_item.py | 11 + .../domain_model/echo_pulse_sequence_item.py | 11 + .../domain_model/electromyogram.py | 4318 ++++++++ .../domain_model/electrooculogram.py | 4318 ++++++++ .../domain_model/encapsulated_cda.py | 4292 ++++++++ .../domain_model/encapsulated_mtl.py | 4568 +++++++++ .../domain_model/encapsulated_obj.py | 4596 +++++++++ .../domain_model/encapsulated_pdf.py | 4292 ++++++++ .../domain_model/encapsulated_stl.py | 4596 +++++++++ .../encrypted_attributes_sequence_item.py | 39 + ...energy_window_information_sequence_item.py | 60 + .../energy_window_range_sequence_item.py | 40 + .../enhanced_continuous_rt_image.py | 5952 +++++++++++ .../domain_model/enhanced_ct_image.py | 6292 ++++++++++++ .../domain_model/enhanced_mr_color_image.py | 6550 ++++++++++++ .../domain_model/enhanced_mr_image.py | 6634 +++++++++++++ ...alette_color_lookup_table_sequence_item.py | 165 + .../domain_model/enhanced_pet_image.py | 6586 +++++++++++++ ...d_rt_beam_limiting_device_sequence_item.py | 470 + ..._rt_beam_limiting_opening_sequence_item.py | 90 + .../domain_model/enhanced_rt_image.py | 6076 ++++++++++++ .../domain_model/enhanced_sr.py | 4617 +++++++++ .../domain_model/enhanced_us_volume.py | 7389 ++++++++++++++ .../enhanced_x_ray_radiation_dose_sr.py | 4673 +++++++++ .../domain_model/enhanced_xa_image.py | 7047 +++++++++++++ .../domain_model/enhanced_xrf_image.py | 7131 ++++++++++++++ ...ference_point_coordinates_sequence_item.py | 60 + ...volume_instance_reference_sequence_item.py | 39 + ...valent_conceptual_volumes_sequence_item.py | 78 + .../domain_model/event_timer_sequence_item.py | 74 + .../excitation_wavelength_sequence_item.py | 25 + .../excluded_intervals_sequence_item.py | 39 + ...n_vivo_measurement_values_sequence_item.py | 130 + ...e_control_sensing_regions_sequence_item.py | 123 + .../domain_model/exposure_sequence_item.py | 477 + .../domain_model/extensible_sr.py | 4673 +++++++++ .../domain_model/facet_sequence_item.py | 25 + .../domain_model/fiducial_sequence_item.py | 246 + .../fiducial_set_sequence_item.py | 94 + .../field_of_view_sequence_item.py | 96 + .../domain_model/fill_style_sequence_item.py | 95 + ...frequency_characteristics_sequence_item.py | 213 + .../filter_lookup_table_sequence_item.py | 107 + ...frequency_characteristics_sequence_item.py | 213 + .../fixation_device_sequence_item.py | 109 + .../domain_model/fixation_sequence_item.py | 102 + ..._rt_beam_delimiter_device_sequence_item.py | 137 + .../flat_corneal_axis_sequence_item.py | 53 + .../flat_keratometric_axis_sequence_item.py | 53 + .../flow_identifier_sequence_item.py | 53 + .../domain_model/fluence_map_sequence_item.py | 40 + ...action_based_relationship_sequence_item.py | 53 + .../fraction_group_sequence_item.py | 320 + .../fraction_group_summary_sequence_item.py | 102 + .../fraction_pattern_sequence_item.py | 102 + .../fraction_status_summary_sequence_item.py | 67 + .../frame_acquisition_sequence_item.py | 40 + .../frame_anatomy_sequence_item.py | 96 + .../frame_content_sequence_item.py | 179 + ...frame_detector_parameters_sequence_item.py | 40 + .../frame_display_sequence_item.py | 109 + .../frame_display_shutter_sequence_item.py | 186 + .../frame_extraction_sequence_item.py | 67 + ...ame_pixel_data_properties_sequence_item.py | 138 + .../frame_pixel_shift_sequence_item.py | 39 + .../frame_usefulness_group_sequence_item.py | 39 + .../frame_voilut_sequence_item.py | 68 + .../functional_mr_sequence_item.py | 39 + .../gated_information_sequence_item.py | 75 + ...ting_beam_hold_transition_sequence_item.py | 92 + .../domain_model/general32_bit_ecg.py | 4318 ++++++++ ...eral_accessory_definition_sequence_item.py | 360 + .../general_accessory_sequence_item.py | 95 + .../general_accessory_sequence_item_3.py | 96 + .../general_accessory_sequence_item_4.py | 81 + .../domain_model/general_audio_waveform.py | 4318 ++++++++ .../domain_model/general_ecg.py | 4262 ++++++++ ...ivity_deviation_algorithm_sequence_item.py | 135 + .../genetic_modifications_sequence_item.py | 74 + ...bal_deviation_probability_sequence_item.py | 149 + .../graphic_annotation_sequence_item.py | 162 + .../graphic_coordinates_data_sequence_item.py | 60 + .../graphic_group_sequence_item.py | 53 + .../graphic_layer_sequence_item.py | 81 + .../graphic_object_sequence_item.py | 220 + .../grayscale_softcopy_presentation_state.py | 5159 ++++++++++ ...f_patients_identification_sequence_item.py | 108 + .../domain_model/hemodynamic_waveform.py | 4262 ++++++++ .../domain_model/histogram_sequence_item.py | 95 + ...ctured_document_reference_sequence_item.py | 67 + .../domain_model/icon_image_sequence_item.py | 305 + .../identical_documents_sequence_item.py | 60 + ...image_box_synchronization_sequence_item.py | 39 + ..._center_point_coordinates_sequence_item.py | 54 + .../image_data_type_sequence_item.py | 53 + .../image_filter_details_sequence_item.py | 39 + .../image_receptor_position_sequence_item.py | 74 + .../imaging_aperture_sequence_item.py | 52 + ...ng_device_location_matrix_sequence_item.py | 80 + ...device_location_parameter_sequence_item.py | 94 + .../imaging_source_position_sequence_item.py | 74 + .../implantation_plan_sr_document.py | 4561 +++++++++ .../index_probability_sequence_item.py | 149 + ..._performed_procedure_step_sequence_item.py | 39 + .../domain_model/instruction_sequence_item.py | 95 + ...tended_rt_treatment_phase_sequence_item.py | 109 + ...erlock_originating_device_sequence_item.py | 220 + ...interlock_resolution_user_sequence_item.py | 198 + .../domain_model/interlock_sequence_item.py | 195 + ...rvention_drug_information_sequence_item.py | 103 + ...ention_drug_information_sequence_item_1.py | 136 + .../intervention_sequence_item.py | 378 + .../intraocular_lens_calculations.py | 4194 ++++++++ ...ens_calculations_left_eye_sequence_item.py | 784 ++ ...ns_calculations_right_eye_sequence_item.py | 784 ++ ...travascular_frame_content_sequence_item.py | 39 + ...ascular_oct_frame_content_sequence_item.py | 53 + ...ravascular_oct_frame_type_sequence_item.py | 25 + ...ular_optical_coherence_tomography_image.py | 5938 +++++++++++ .../domain_model/iol_power_sequence_item.py | 136 + .../ion_beam_limiting_device_sequence_item.py | 68 + .../domain_model/ion_beam_sequence_item.py | 1219 +++ .../domain_model/ion_block_sequence_item.py | 229 + ...on_control_point_delivery_sequence_item.py | 811 ++ .../ion_control_point_sequence_item.py | 735 ++ .../ion_range_compensator_sequence_item.py | 250 + .../ion_tolerance_table_sequence_item.py | 263 + .../ion_wedge_position_sequence_item.py | 53 + .../domain_model/ion_wedge_sequence_item.py | 110 + ...tion_event_identification_sequence_item.py | 25 + ...socenter_reference_system_sequence_item.py | 207 + ...ssuer_of_accession_number_sequence_item.py | 53 + .../issuer_of_admission_id_sequence_item.py | 53 + ..._of_patient_id_qualifiers_sequence_item.py | 157 + ...uer_of_service_episode_id_sequence_item.py | 53 + ..._the_container_identifier_sequence_item.py | 53 + ...f_the_specimen_identifier_sequence_item.py | 53 + .../keratometry_left_eye_sequence_item.py | 80 + .../domain_model/keratometry_measurements.py | 4166 ++++++++ .../keratometry_right_eye_sequence_item.py | 80 + .../key_object_selection_document.py | 4178 ++++++++ ...ing_generation_parameters_sequence_item.py | 151 + .../lateral_spreading_device_sequence_item.py | 81 + ...spreading_device_settings_sequence_item.py | 67 + ...reading_device_settings_sequence_item_1.py | 39 + .../domain_model/left_image_sequence_item.py | 67 + .../domain_model/left_lens_sequence_item.py | 204 + .../legacy_converted_enhanced_ct_image.py | 6282 ++++++++++++ .../legacy_converted_enhanced_mr_image.py | 6380 ++++++++++++ .../legacy_converted_enhanced_pet_image.py | 5917 +++++++++++ .../lens_constant_sequence_item.py | 61 + .../lens_thickness_sequence_item.py | 94 + .../domain_model/lensometry_measurements.py | 4218 ++++++++ .../domain_model/line_sequence_item.py | 25 + .../domain_model/line_style_sequence_item.py | 179 + ...zed_deviation_probability_sequence_item.py | 149 + .../mac_parameters_sequence_item.py | 67 + ...acular_grid_thickness_and_volume_report.py | 4561 +++++++++ .../domain_model/major_ticks_sequence_item.py | 39 + .../domain_model/mammography_cad_sr.py | 4505 +++++++++ ...g_resource_identification_sequence_item.py | 53 + .../mask_subtraction_sequence_item.py | 192 + .../material_attenuation_sequence_item.py | 40 + .../matrix_registration_sequence_item.py | 94 + .../domain_model/matrix_sequence_item.py | 40 + ...maximum_corneal_curvature_sequence_item.py | 39 + .../measured_dose_reference_sequence_item.py | 96 + ..._meterset_to_dose_mapping_sequence_item.py | 102 + .../measured_value_sequence_item.py | 103 + .../measurement_values_sequence_item.py | 39 + .../measurement_values_sequence_item_1.py | 39 + .../measurements_sequence_item.py | 113 + .../meterset_to_dose_mapping_sequence_item.py | 39 + .../microscopy_bulk_simple_annotations.py | 4639 +++++++++ .../minimum_keratometric_sequence_item.py | 53 + .../modality_lut_sequence_item.py | 67 + ...de_of_percutaneous_access_sequence_item.py | 256 + .../modified_attributes_sequence_item.py | 11 + .../motion_synchronization_sequence_item.py | 67 + ...mr_arterial_spin_labeling_sequence_item.py | 164 + .../domain_model/mr_averages_sequence_item.py | 26 + .../mr_diffusion_sequence_item.py | 128 + .../domain_model/mr_echo_sequence_item.py | 25 + tdwii_plus_examples/domain_model/mr_image.py | 6623 +++++++++++++ .../mr_image_frame_type_sequence_item.py | 109 + .../mr_imaging_modifier_sequence_item.py | 166 + .../mr_metabolite_map_sequence_item.py | 94 + .../domain_model/mr_modifier_sequence_item.py | 221 + .../mr_receive_coil_sequence_item.py | 116 + .../mr_spatial_saturation_sequence_item.py | 53 + .../domain_model/mr_spectroscopy.py | 6169 ++++++++++++ ...spectroscopy_fov_geometry_sequence_item.py | 96 + ...r_spectroscopy_frame_type_sequence_item.py | 81 + ...ng_and_related_parameters_sequence_item.py | 179 + .../mr_transmit_coil_sequence_item.py | 53 + .../mr_velocity_encoding_sequence_item.py | 53 + .../mrfov_geometry_sequence_item.py | 96 + .../multi_channel_respiratory_waveform.py | 4318 ++++++++ .../multi_coil_definition_sequence_item.py | 39 + ..._grayscale_byte_secondary_capture_image.py | 6659 +++++++++++++ ..._grayscale_word_secondary_capture_image.py | 6659 +++++++++++++ .../multi_frame_presentation_sequence_item.py | 94 + ...rame_single_bit_secondary_capture_image.py | 6109 ++++++++++++ ...rame_true_color_secondary_capture_image.py | 6597 +++++++++++++ ...ultienergy_ct_acquisition_sequence_item.py | 270 + ...energy_ct_characteristics_sequence_item.py | 102 + .../multienergy_ct_path_sequence_item.py | 53 + ...multienergy_ct_processing_sequence_item.py | 122 + ...tienergy_ctx_ray_detector_sequence_item.py | 110 + ...ultienergy_ctx_ray_source_sequence_item.py | 138 + ...ing_generation_parameters_sequence_item.py | 176 + ...agent_concentration_units_sequence_item.py | 256 + .../mydriatic_agent_sequence_item.py | 107 + ...nominal_screen_definition_sequence_item.py | 95 + ...rming_modified_attributes_sequence_item.py | 109 + ...ch_filter_characteristics_sequence_item.py | 213 + .../domain_model/nuclear_medicine_image.py | 6886 +++++++++++++ .../object_thickness_sequence_item.py | 25 + .../oblique_cropping_plane_sequence_item.py | 39 + ...is_acquisition_parameters_sequence_item.py | 144 + ...omitted_application_setup_sequence_item.py | 60 + .../omitted_beam_task_sequence_item.py | 53 + .../omitted_channel_sequence_item.py | 53 + .../omitted_radiation_sequence_item.py | 128 + .../operating_mode_sequence_item.py | 39 + .../operator_identification_sequence_item.py | 198 + ...urements_length_summation_sequence_item.py | 152 + ...urements_segmental_length_sequence_item.py | 182 + ...axial_length_measurements_sequence_item.py | 190 + ...measurements_total_length_sequence_item.py | 198 + ...ial_length_quality_metric_sequence_item.py | 94 + .../ophthalmic_axial_length_sequence_item.py | 164 + .../ophthalmic_axial_measurements.py | 4276 ++++++++ ...ial_measurements_left_eye_sequence_item.py | 313 + ...al_measurements_right_eye_sequence_item.py | 313 + ...face_image_quality_rating_sequence_item.py | 230 + ...ophthalmic_frame_location_sequence_item.py | 144 + ...rence_tomography_b_scan_volume_analysis.py | 5184 ++++++++++ ...ical_coherence_tomography_en_face_image.py | 5730 +++++++++++ ...ical_information_left_eye_sequence_item.py | 134 + ...cal_information_right_eye_sequence_item.py | 134 + .../ophthalmic_photography16_bit_image.py | 6358 ++++++++++++ .../ophthalmic_photography8_bit_image.py | 6358 ++++++++++++ .../domain_model/ophthalmic_thickness_map.py | 6241 ++++++++++++ ...ckness_map_quality_rating_sequence_item.py | 144 + ...ess_map_quality_threshold_sequence_item.py | 149 + ...thickness_mapping_normals_sequence_item.py | 67 + .../ophthalmic_tomography_image.py | 5978 +++++++++++ ...ual_field_static_perimetry_measurements.py | 5215 ++++++++++ ...axial_length_measurements_sequence_item.py | 76 + ...tical_path_identification_sequence_item.py | 25 + .../optical_path_sequence_item.py | 449 + ...d_ophthalmic_axial_length_sequence_item.py | 124 + .../order_filler_identifier_sequence_item.py | 53 + .../order_placer_identifier_sequence_item.py | 53 + .../original_attributes_sequence_item.py | 147 + ...ng_sop_instance_reference_sequence_item.py | 39 + ...nical_trial_protocol_i_ds_sequence_item.py | 39 + .../other_patient_i_ds_sequence_item.py | 94 + .../output_information_sequence_item.py | 128 + .../domain_model/override_sequence_item.py | 88 + ...alette_color_lookup_table_sequence_item.py | 151 + ..._rt_beam_delimiter_device_sequence_item.py | 122 + .../parameters_specification_sequence_item.py | 296 + .../domain_model/parametric_map.py | 7000 +++++++++++++ ...parametric_map_frame_type_sequence_item.py | 25 + .../domain_model/participant_sequence_item.py | 357 + ...ient_location_coordinates_sequence_item.py | 60 + ...ient_orientation_in_frame_sequence_item.py | 25 + ...tient_physiological_state_sequence_item.py | 46 + ...t_positioning_instruction_sequence_item.py | 81 + .../domain_model/patient_radiation_dose_sr.py | 4673 +++++++++ .../patient_setup_sequence_item.py | 309 + .../patient_support_devices_sequence_item.py | 310 + ...ient_support_displacement_sequence_item.py | 76 + ...position_device_parameter_sequence_item.py | 85 + ...position_device_tolerance_sequence_item.py | 85 + ...upport_position_parameter_sequence_item.py | 343 + .../patient_support_position_sequence_item.py | 76 + ...upport_position_tolerance_sequence_item.py | 343 + ...ent_treatment_orientation_sequence_item.py | 81 + ...atment_preparation_device_sequence_item.py | 318 + ...ation_procedure_parameter_sequence_item.py | 363 + ...ent_preparation_procedure_sequence_item.py | 176 + ...r_frame_functional_groups_sequence_item.py | 496 + ...frame_functional_groups_sequence_item_1.py | 422 + ...rame_functional_groups_sequence_item_10.py | 902 ++ ...rame_functional_groups_sequence_item_11.py | 334 + ...rame_functional_groups_sequence_item_14.py | 676 ++ ...rame_functional_groups_sequence_item_15.py | 925 ++ ...rame_functional_groups_sequence_item_16.py | 978 ++ ...rame_functional_groups_sequence_item_17.py | 668 ++ ...rame_functional_groups_sequence_item_19.py | 954 ++ ...frame_functional_groups_sequence_item_2.py | 456 + ...rame_functional_groups_sequence_item_20.py | 352 + ...rame_functional_groups_sequence_item_22.py | 650 ++ ...rame_functional_groups_sequence_item_23.py | 250 + ...rame_functional_groups_sequence_item_24.py | 780 ++ ...rame_functional_groups_sequence_item_25.py | 598 ++ ...rame_functional_groups_sequence_item_27.py | 676 ++ ...frame_functional_groups_sequence_item_3.py | 368 + ...frame_functional_groups_sequence_item_4.py | 336 + ...frame_functional_groups_sequence_item_5.py | 662 ++ ...frame_functional_groups_sequence_item_6.py | 746 ++ ...frame_functional_groups_sequence_item_7.py | 634 ++ ...frame_functional_groups_sequence_item_8.py | 318 + ...frame_functional_groups_sequence_item_9.py | 376 + ...er_projection_acquisition_sequence_item.py | 236 + ..._projection_acquisition_sequence_item_1.py | 166 + ..._projection_acquisition_sequence_item_2.py | 348 + ...rformed_imaging_agent_administration_sr.py | 4673 +++++++++ ...med_processing_parameters_sequence_item.py | 363 + ..._physician_identification_sequence_item.py | 198 + .../pertinent_documents_sequence_item.py | 67 + .../pertinent_other_evidence_sequence_item.py | 60 + .../pertinent_resources_sequence_item.py | 39 + ...t_detector_motion_details_sequence_item.py | 39 + .../pet_frame_acquisition_sequence_item.py | 68 + ..._frame_correction_factors_sequence_item.py | 82 + .../pet_frame_type_sequence_item.py | 67 + .../pet_position_sequence_item.py | 53 + .../pet_reconstruction_sequence_item.py | 110 + .../pet_table_dynamics_sequence_item.py | 25 + .../phase_information_sequence_item.py | 109 + ...xcitation_characteristics_sequence_item.py | 67 + .../domain_model/photoacoustic_image.py | 6564 ++++++++++++ ...acoustic_image_frame_type_sequence_item.py | 67 + ..._of_record_identification_sequence_item.py | 198 + ...ding_study_identification_sequence_item.py | 198 + ...ntensity_relationship_lut_sequence_item.py | 67 + .../pixel_measures_sequence_item.py | 54 + .../domain_model/pixel_shift_sequence_item.py | 60 + ..._mapping_to_coded_concept_sequence_item.py | 74 + ...ixel_value_transformation_sequence_item.py | 54 + .../plan_overview_sequence_item.py | 218 + ...lanar_mpr_volumetric_presentation_state.py | 5139 ++++++++++ .../plane_orientation_sequence_item.py | 26 + .../plane_orientation_volume_sequence_item.py | 25 + .../plane_position_sequence_item.py | 26 + .../plane_position_slide_sequence_item.py | 82 + .../plane_position_volume_sequence_item.py | 25 + ...planned_imaging_agent_administration_sr.py | 4561 +++++++++ ...lanned_verification_image_sequence_item.py | 152 + ...lanning_input_information_sequence_item.py | 80 + ...n_template_identification_sequence_item.py | 90 + .../positioner_position_sequence_item.py | 54 + .../positioning_landmark_sequence_item.py | 136 + .../positron_emission_tomography_image.py | 7033 +++++++++++++ ...ation_matrix_registration_sequence_item.py | 40 + ...ation_matrix_registration_sequence_item.py | 40 + .../predecessor_documents_sequence_item.py | 60 + .../predecessor_protocol_sequence_item.py | 39 + ...predecessor_structure_set_sequence_item.py | 39 + .../predicted_toric_error_sequence_item.py | 53 + .../prescription_notes_sequence_item.py | 329 + .../prescription_overview_sequence_item.py | 53 + .../presentation_lut_sequence_item.py | 53 + ..._classification_component_sequence_item.py | 284 + ...lassification_component_sequence_item_1.py | 270 + ...tate_compositor_component_sequence_item.py | 50 + ...atomic_structure_modifier_sequence_item.py | 256 + ...rimary_anatomic_structure_sequence_item.py | 302 + ...ary_anatomic_structure_sequence_item_55.py | 256 + .../primary_fluence_mode_sequence_item.py | 39 + ...prior_treatment_reference_sequence_item.py | 39 + .../domain_model/prism_sequence_item.py | 81 + ...a_element_characteristics_sequence_item.py | 144 + ...e_data_element_definition_sequence_item.py | 137 + .../domain_model/procedure_log.py | 4168 ++++++++ ...ing_acquisition_parameter_sequence_item.py | 184 + ...jection_pixel_calibration_sequence_item.py | 68 + .../protocol_context_sequence_item.py | 363 + ...seudo_color_softcopy_presentation_state.py | 5279 ++++++++++ ...y_control_point_delivered_sequence_item.py | 128 + .../quantity_definition_sequence_item.py | 363 + ...ion_and_commissioning_key_sequence_item.py | 329 + ...ation_dose_identification_sequence_item.py | 102 + ...ion_dose_identification_sequence_item_1.py | 88 + .../radiation_dose_sequence_item.py | 133 + .../radiation_dose_sequence_item_1.py | 136 + ...on_dose_values_parameters_sequence_item.py | 74 + ..._dose_values_parameters_sequence_item_1.py | 124 + .../radiation_dosimeter_unit_sequence_item.py | 256 + ...radiation_generation_mode_sequence_item.py | 286 + ...diobiological_dose_effect_sequence_item.py | 76 + ...harmaceutical_information_sequence_item.py | 281 + ...rmaceutical_information_sequence_item_1.py | 239 + ...rmaceutical_information_sequence_item_2.py | 245 + .../radiopharmaceutical_radiation_dose_sr.py | 4673 +++++++++ ...radiopharmaceutical_usage_sequence_item.py | 25 + .../range_modulator_sequence_item.py | 95 + .../range_modulator_settings_sequence_item.py | 95 + ...ange_modulator_settings_sequence_item_1.py | 53 + .../range_shifter_sequence_item.py | 81 + .../range_shifter_settings_sequence_item.py | 67 + .../range_shifter_settings_sequence_item_1.py | 39 + tdwii_plus_examples/domain_model/raw_data.py | 4458 +++++++++ .../domain_model/real_time_audio_waveform.py | 4260 ++++++++ .../real_time_bulk_data_flow_sequence_item.py | 60 + .../real_time_video_endoscopic_image.py | 5551 +++++++++++ .../real_time_video_photographic_image.py | 5551 +++++++++++ .../domain_model/real_world_value_mapping.py | 4218 ++++++++ .../real_world_value_mapping_sequence_item.py | 206 + ...recommended_default_value_sequence_item.py | 488 + .../reconstruction_algorithm_sequence_item.py | 135 + ...construction_end_location_sequence_item.py | 136 + ...truction_protocol_element_sequence_item.py | 590 ++ ...uction_protocol_element_sequence_item_1.py | 542 + ...nstruction_start_location_sequence_item.py | 136 + ...on_target_center_location_sequence_item.py | 136 + .../recorded_block_sequence_item.py | 81 + .../recorded_block_sequence_item_1.py | 116 + .../recorded_block_slab_sequence_item.py | 39 + ...d_brachy_accessory_device_sequence_item.py | 67 + .../recorded_channel_sequence_item.py | 558 ++ .../recorded_channel_shield_sequence_item.py | 53 + .../recorded_compensator_sequence_item.py | 95 + .../recorded_compensator_sequence_item_1.py | 53 + ..._lateral_spreading_device_sequence_item.py | 53 + .../recorded_range_modulator_sequence_item.py | 81 + .../recorded_range_shifter_sequence_item.py | 53 + .../recorded_snout_sequence_item.py | 39 + ...ecorded_source_applicator_sequence_item.py | 124 + .../recorded_source_sequence_item.py | 180 + .../recorded_wedge_sequence_item.py | 96 + ...ers_rt_radiation_instance_sequence_item.py | 53 + .../referenced_beam_sequence_item.py | 231 + .../referenced_beam_sequence_item_1.py | 25 + .../referenced_beam_sequence_item_2.py | 60 + .../referenced_bolus_sequence_item.py | 67 + .../referenced_bolus_sequence_item_1.py | 53 + ..._brachy_application_setup_sequence_item.py | 68 + ...rachy_application_setup_sequence_item_1.py | 25 + ...calculated_dose_reference_sequence_item.py | 54 + ...d_comparison_sop_instance_sequence_item.py | 39 + .../referenced_control_point_sequence_item.py | 39 + ...ferenced_defined_protocol_sequence_item.py | 67 + ...erenced_digital_signature_sequence_item.py | 39 + ...d_direct_segment_instance_sequence_item.py | 39 + ...referenced_dose_reference_sequence_item.py | 40 + ...ferenced_dose_reference_sequence_item_1.py | 86 + .../referenced_dose_sequence_item.py | 39 + ...ced_dosimetric_objectives_sequence_item.py | 39 + .../referenced_first_frame_sequence_item.py | 67 + ...referenced_fraction_group_sequence_item.py | 106 + ...renced_frame_of_reference_sequence_item.py | 60 + ...referenced_image_evidence_sequence_item.py | 60 + ..._real_world_value_mapping_sequence_item.py | 80 + .../referenced_image_sequence_item.py | 102 + .../referenced_image_sequence_item_182.py | 108 + .../referenced_instance_sequence_item.py | 74 + .../referenced_instance_sequence_item_236.py | 67 + ...d_measured_dose_reference_sequence_item.py | 54 + ...ngth_measurement_qc_image_sequence_item.py | 53 + .../referenced_other_plane_sequence_item.py | 67 + .../referenced_patient_photo_sequence_item.py | 258 + .../referenced_patient_sequence_item.py | 39 + ...enced_patient_setup_photo_sequence_item.py | 67 + ..._performed_procedure_step_sequence_item.py | 39 + ...renced_performed_protocol_sequence_item.py | 67 + ...sition_reference_instance_sequence_item.py | 80 + ...renced_presentation_state_sequence_item.py | 60 + .../referenced_raw_data_sequence_item.py | 60 + ...ld_value_mapping_instance_sequence_item.py | 39 + ...eferenced_reference_image_sequence_item.py | 39 + ...erenced_reference_image_sequence_item_1.py | 82 + ...erenced_reference_image_sequence_item_2.py | 53 + ...d_refractive_measurements_sequence_item.py | 39 + .../referenced_request_sequence_item.py | 317 + .../referenced_rt_instance_sequence_item.py | 39 + ...enced_rt_physician_intent_sequence_item.py | 76 + .../referenced_rt_plan_sequence_item.py | 53 + .../referenced_rt_plan_sequence_item_4.py | 88 + .../referenced_rt_plan_sequence_item_5.py | 60 + ...eferenced_rt_prescription_sequence_item.py | 25 + ...enced_rt_radiation_record_sequence_item.py | 39 + .../referenced_rt_radiation_sequence_item.py | 39 + ...ferenced_rt_radiation_set_sequence_item.py | 39 + ...renced_rt_treatment_phase_sequence_item.py | 25 + ..._rt_treatment_preparation_sequence_item.py | 39 + .../referenced_series_sequence_item.py | 60 + .../referenced_setup_image_sequence_item.py | 81 + ...ferenced_sop_instance_mac_sequence_item.py | 67 + .../referenced_sop_sequence_item.py | 81 + ...nced_spatial_registration_sequence_item.py | 39 + ...ced_stereometric_instance_sequence_item.py | 39 + .../referenced_structure_set_sequence_item.py | 39 + ...renced_structured_context_sequence_item.py | 53 + .../referenced_study_sequence_item.py | 39 + .../referenced_surface_data_sequence_item.py | 39 + ...rface_mesh_identification_sequence_item.py | 88 + .../referenced_surface_sequence_item.py | 122 + .../referenced_texture_sequence_item.py | 67 + ...ferenced_treatment_record_sequence_item.py | 39 + ...renced_treatment_record_sequence_item_1.py | 74 + ...renced_verification_image_sequence_item.py | 39 + ...nced_verification_image_sequence_item_1.py | 68 + .../referenced_waveform_sequence_item.py | 60 + ..._physician_identification_sequence_item.py | 198 + ...arameters_used_on_patient_sequence_item.py | 67 + .../refractive_state_sequence_item.py | 67 + .../region_pixel_shift_sequence_item.py | 39 + .../registration_sequence_item.py | 196 + ...registration_to_localizer_sequence_item.py | 53 + .../related_assertion_sequence_item.py | 25 + ...elated_reference_rt_image_sequence_item.py | 39 + ...elated_rtroi_observations_sequence_item.py | 25 + .../related_series_sequence_item.py | 74 + .../relevant_opt_attributes_sequence_item.py | 39 + .../rendered_image_reference_sequence_item.py | 67 + .../rendition_selection_document.py | 4346 ++++++++ .../request_attributes_sequence_item.py | 282 + ...spiratory_synchronization_sequence_item.py | 123 + .../domain_model/respiratory_waveform.py | 4318 ++++++++ .../results_normals_sequence_item.py | 206 + .../domain_model/right_image_sequence_item.py | 67 + .../domain_model/right_lens_sequence_item.py | 204 + .../domain_model/robotic_arm_radiation.py | 5326 ++++++++++ .../robotic_arm_radiation_record.py | 5768 +++++++++++ ...obotic_path_control_point_sequence_item.py | 302 + .../domain_model/roi_contour_sequence_item.py | 182 + .../domain_model/roi_creator_sequence_item.py | 329 + ..._algorithm_identification_sequence_item.py | 135 + ...roi_elemental_composition_sequence_item.py | 39 + .../roi_interpreter_sequence_item.py | 329 + .../roi_physical_properties_sequence_item.py | 75 + .../rotation_information_sequence_item.py | 152 + .../routine_scalp_electroencephalogram.py | 4318 ++++++++ ...cessory_holder_definition_sequence_item.py | 422 + .../rt_accessory_holder_slot_sequence_item.py | 39 + ...uisition_patient_position_sequence_item.py | 157 + .../rt_anatomic_prescription_sequence_item.py | 312 + ...t_beam_delimiter_geometry_sequence_item.py | 137 + ...imiting_device_definition_sequence_item.py | 470 + ...m_limiting_device_opening_sequence_item.py | 90 + .../rt_beams_delivery_instruction.py | 4249 ++++++++ .../domain_model/rt_beams_treatment_record.py | 4471 +++++++++ ..._application_setup_delivery_instruction.py | 4347 ++++++++ .../rt_brachy_treatment_record.py | 4531 +++++++++ ...ry_start_patient_position_sequence_item.py | 157 + tdwii_plus_examples/domain_model/rt_dose.py | 5235 ++++++++++ tdwii_plus_examples/domain_model/rt_image.py | 6350 ++++++++++++ .../rt_image_frame_context_sequence_item.py | 74 + ...age_frame_general_content_sequence_item.py | 53 + ...e_imaging_device_position_sequence_item.py | 80 + ..._mv_radiation_acquisition_sequence_item.py | 176 + ...ame_radiation_acquisition_sequence_item.py | 108 + ...k_v_radiation_acquisition_sequence_item.py | 151 + .../rt_image_scope_sequence_item.py | 116 + .../rt_ion_beams_treatment_record.py | 4473 +++++++++ .../domain_model/rt_ion_plan.py | 4512 +++++++++ ...atient_position_acquisition_instruction.py | 4787 +++++++++ ...ent_position_displacement_sequence_item.py | 150 + ...rt_patient_position_scope_sequence_item.py | 116 + .../rt_patient_position_sequence_item.py | 115 + .../domain_model/rt_physician_intent.py | 4716 +++++++++ ...ian_intent_input_instance_sequence_item.py | 80 + ...sician_intent_predecessor_sequence_item.py | 53 + .../rt_physician_intent_sequence_item.py | 266 + tdwii_plus_examples/domain_model/rt_plan.py | 4642 +++++++++ .../rt_prescription_sequence_item.py | 593 ++ .../domain_model/rt_radiation_record_set.py | 4748 +++++++++ .../rt_radiation_salvage_record.py | 5539 +++++++++++ ...vage_record_control_point_sequence_item.py | 95 + .../rt_radiation_sequence_item.py | 39 + .../domain_model/rt_radiation_set.py | 4834 +++++++++ .../rt_radiation_set_delivery_instruction.py | 4639 +++++++++ .../rt_radiation_task_sequence_item.py | 224 + .../rt_referenced_series_sequence_item.py | 60 + .../rt_referenced_study_sequence_item.py | 74 + .../rt_related_roi_sequence_item.py | 39 + .../domain_model/rt_segment_annotation.py | 4638 +++++++++ .../rt_segment_annotation_sequence_item.py | 293 + .../domain_model/rt_structure_set.py | 4333 ++++++++ .../rt_tolerance_set_sequence_item.py | 126 + ..._treatment_phase_interval_sequence_item.py | 81 + .../domain_model/rt_treatment_preparation.py | 4700 +++++++++ ...paration_patient_position_sequence_item.py | 157 + .../rt_treatment_summary_record.py | 4259 ++++++++ .../rtroi_observations_sequence_item.py | 470 + .../scan_start_position_sequence_item.py | 80 + .../scan_stop_position_sequence_item.py | 80 + .../domain_model/scanning_sequence_item.py | 11 + ...reening_baseline_measured_sequence_item.py | 39 + .../domain_model/secondary_capture_image.py | 6066 ++++++++++++ .../segment_characteristics_sequence_item.py | 363 + .../segment_identification_sequence_item.py | 25 + .../segment_reference_sequence_item.py | 100 + .../domain_model/segment_sequence_item.py | 364 + .../domain_model/segment_sequence_item_1.py | 406 + ..._algorithm_identification_sequence_item.py | 135 + ...t_surface_source_instance_sequence_item.py | 67 + .../domain_model/segmentation.py | 6182 ++++++++++++ ..._algorithm_identification_sequence_item.py | 135 + ...ented_rt_accessory_device_sequence_item.py | 276 + ...d_frame_functional_groups_sequence_item.py | 25 + ...l_ophthalmic_axial_length_sequence_item.py | 66 + ...l_ophthalmic_axial_length_sequence_item.py | 130 + .../setup_device_sequence_item.py | 96 + .../shared_functional_groups_sequence_item.py | 496 + ...hared_functional_groups_sequence_item_1.py | 422 + ...ared_functional_groups_sequence_item_10.py | 318 + ...ared_functional_groups_sequence_item_11.py | 376 + ...ared_functional_groups_sequence_item_12.py | 902 ++ ...ared_functional_groups_sequence_item_13.py | 334 + ...ared_functional_groups_sequence_item_16.py | 676 ++ ...ared_functional_groups_sequence_item_17.py | 925 ++ ...ared_functional_groups_sequence_item_18.py | 978 ++ ...ared_functional_groups_sequence_item_19.py | 668 ++ ...ared_functional_groups_sequence_item_21.py | 954 ++ ...ared_functional_groups_sequence_item_22.py | 352 + ...ared_functional_groups_sequence_item_24.py | 650 ++ ...ared_functional_groups_sequence_item_26.py | 250 + ...ared_functional_groups_sequence_item_27.py | 780 ++ ...ared_functional_groups_sequence_item_28.py | 598 ++ ...hared_functional_groups_sequence_item_3.py | 456 + ...ared_functional_groups_sequence_item_30.py | 676 ++ ...hared_functional_groups_sequence_item_4.py | 368 + ...hared_functional_groups_sequence_item_5.py | 336 + ...hared_functional_groups_sequence_item_6.py | 662 ++ ...hared_functional_groups_sequence_item_8.py | 746 ++ ...hared_functional_groups_sequence_item_9.py | 634 ++ .../shielding_device_sequence_item.py | 81 + .../domain_model/simplified_adult_echo_sr.py | 4687 +++++++++ ...ted_keratometric_cylinder_sequence_item.py | 39 + .../sleep_electroencephalogram.py | 4318 ++++++++ .../domain_model/snout_sequence_item.py | 39 + .../softcopy_voilut_sequence_item.py | 137 + .../source_conceptual_volume_sequence_item.py | 96 + ...ge_corneal_processed_data_sequence_item.py | 109 + .../source_image_evidence_sequence_item.py | 60 + .../source_image_sequence_item.py | 130 + .../source_instance_sequence_item.py | 74 + .../source_irradiation_event_sequence_item.py | 25 + ...f_refractive_measurements_sequence_item.py | 82 + ...ient_group_identification_sequence_item.py | 80 + ...el_planes_characteristics_sequence_item.py | 110 + .../domain_model/source_sequence_item.py | 264 + ...source_series_information_sequence_item.py | 95 + .../source_series_sequence_item.py | 25 + .../source_waveform_sequence_item.py | 53 + .../domain_model/spatial_fiducials.py | 4387 ++++++++ .../domain_model/spatial_registration.py | 4415 +++++++++ .../specific_absorption_rate_sequence_item.py | 39 + .../specimen_description_sequence_item.py | 259 + .../specimen_preparation_sequence_item.py | 60 + .../specimen_reference_sequence_item.py | 25 + .../spectacle_prescription_report.py | 4561 +++++++++ .../steady_state_pulse_sequence_item.py | 11 + .../steep_corneal_axis_sequence_item.py | 53 + .../steep_keratometric_axis_sequence_item.py | 53 + .../stereo_pairs_sequence_item.py | 150 + .../domain_model/stereometric_relationship.py | 4012 ++++++++ .../storage_protocol_element_sequence_item.py | 172 + .../stored_value_color_range_sequence_item.py | 39 + .../stowrs_storage_sequence_item.py | 25 + .../strain_stock_sequence_item.py | 74 + .../structure_set_roi_sequence_item.py | 350 + ...ed_constraint_observation_sequence_item.py | 330 + ...uctured_display_image_box_sequence_item.py | 392 + ...ructured_display_text_box_sequence_item.py | 67 + ...ther_referenced_instances_sequence_item.py | 60 + ...ctive_refraction_left_eye_sequence_item.py | 196 + .../subjective_refraction_measurements.py | 4236 ++++++++ ...tive_refraction_right_eye_sequence_item.py | 196 + .../surface_mesh_primitives_sequence_item.py | 190 + .../surface_points_normals_sequence_item.py | 67 + .../surface_points_sequence_item.py | 191 + ..._algorithm_identification_sequence_item.py | 135 + .../domain_model/surface_scan_mesh.py | 4508 +++++++++ .../domain_model/surface_scan_point_cloud.py | 4522 +++++++++ .../domain_model/surface_segmentation.py | 4567 +++++++++ .../domain_model/surface_sequence_item.py | 413 + ...cally_induced_astigmatism_sequence_item.py | 39 + .../table_column_definition_sequence_item.py | 93 + .../table_position_sequence_item.py | 96 + .../table_row_definition_sequence_item.py | 93 + .../tabulated_values_sequence_item.py | 142 + .../temporal_position_sequence_item.py | 25 + .../test_point_normals_sequence_item.py | 67 + .../domain_model/text_object_sequence_item.py | 214 + .../domain_model/text_style_sequence_item.py | 207 + .../domain_model/threshold_sequence_item.py | 60 + .../threshold_value_sequence_item.py | 25 + .../time_of_frame_group_sequence_item.py | 25 + .../time_slot_information_sequence_item.py | 26 + .../tolerance_table_sequence_item.py | 221 + ...therapeutic_control_point_sequence_item.py | 274 + .../domain_model/tomotherapeutic_radiation.py | 5285 ++++++++++ .../tomotherapeutic_radiation_record.py | 5727 +++++++++++ ...ower_for_exact_emmetropia_sequence_item.py | 53 + ...r_exact_target_refraction_sequence_item.py | 53 + .../toric_iol_power_sequence_item.py | 53 + ...total_pixel_matrix_origin_sequence_item.py | 54 + .../domain_model/track_sequence_item.py | 53 + .../domain_model/track_set_sequence_item.py | 363 + .../track_set_statistics_sequence_item.py | 126 + .../track_statistics_sequence_item.py | 126 + ..._algorithm_identification_sequence_item.py | 135 + .../domain_model/tractography_results.py | 4583 +++++++++ ...transducer_identification_sequence_item.py | 220 + .../transducer_response_sequence_item.py | 67 + .../transducer_technology_sequence_item.py | 256 + .../transformation_algorithm_sequence_item.py | 135 + ...ent_device_identification_sequence_item.py | 318 + .../treatment_machine_sequence_item.py | 174 + .../treatment_position_group_sequence_item.py | 74 + .../treatment_position_sequence_item.py | 129 + ...session_application_setup_sequence_item.py | 487 + .../treatment_session_beam_sequence_item.py | 1143 +++ ...reatment_session_ion_beam_sequence_item.py | 1303 +++ ...calculated_dose_reference_sequence_item.py | 54 + ...y_measured_dose_reference_sequence_item.py | 54 + ...rance_violation_attribute_sequence_item.py | 137 + ...tment_tolerance_violation_sequence_item.py | 221 + .../triangle_fan_sequence_item.py | 25 + .../triangle_strip_sequence_item.py | 25 + ..._to_three_dimensional_map_sequence_item.py | 53 + .../domain_model/udi_sequence_item.py | 39 + .../domain_model/ultrasound_image.py | 6826 +++++++++++++ .../ultrasound_multi_frame_image.py | 7189 ++++++++++++++ ...axial_length_measurements_sequence_item.py | 90 + ...d_ophthalmic_axial_length_sequence_item.py | 230 + ...rame_converted_attributes_sequence_item.py | 11 + ...ared_converted_attributes_sequence_item.py | 11 + ...specified_laterality_lens_sequence_item.py | 204 + .../us_image_description_sequence_item.py | 53 + .../used_fiducials_sequence_item.py | 53 + ...used_rt_structure_set_roi_sequence_item.py | 53 + .../used_segments_sequence_item.py | 53 + .../domain_model/uv_mapping_sequence_item.py | 102 + .../variable_modality_lut_sequence_item.py | 123 + ...odality_lut_softcopy_presentation_state.py | 5145 ++++++++++ ...city_encoding_acquisition_sequence_item.py | 25 + .../verifying_observer_sequence_item.py | 90 + .../domain_model/video_endoscopic_image.py | 5860 +++++++++++ .../domain_model/video_microscopic_image.py | 5860 +++++++++++ .../domain_model/video_photographic_image.py | 5972 +++++++++++ ...ual_acuity_both_eyes_open_sequence_item.py | 39 + .../visual_acuity_left_eye_sequence_item.py | 39 + ...visual_acuity_measurement_sequence_item.py | 39 + .../visual_acuity_measurements.py | 4305 ++++++++ .../visual_acuity_right_eye_sequence_item.py | 39 + .../visual_field_catch_trial_sequence_item.py | 193 + ...ield_global_results_index_sequence_item.py | 94 + ..._field_test_point_normals_sequence_item.py | 81 + .../visual_field_test_point_sequence_item.py | 150 + ..._reliability_global_index_sequence_item.py | 94 + .../domain_model/vl_endoscopic_image.py | 5763 +++++++++++ .../domain_model/vl_microscopic_image.py | 5811 +++++++++++ .../domain_model/vl_photographic_image.py | 7233 ++++++++++++++ .../vl_slide_coordinates_microscopic_image.py | 5879 +++++++++++ .../vl_whole_slide_microscopy_image.py | 6318 ++++++++++++ .../domain_model/voilut_sequence_item.py | 53 + .../volume_cropping_sequence_item.py | 122 + .../volume_localization_sequence_item.py | 53 + ...rendering_volumetric_presentation_state.py | 5179 ++++++++++ .../volume_stream_sequence_item.py | 76 + .../volumetric_annotation_sequence_item.py | 142 + ...entation_input_annotation_sequence_item.py | 114 + ...ic_presentation_input_set_sequence_item.py | 116 + ..._presentation_state_input_sequence_item.py | 187 + .../wado_retrieval_sequence_item.py | 25 + .../wadors_retrieval_sequence_item.py | 25 + .../waveform_annotation_sequence_item.py | 225 + ...veform_presentation_group_sequence_item.py | 60 + .../domain_model/waveform_sequence_item.py | 243 + .../wedge_definition_sequence_item.py | 388 + .../wedge_position_sequence_item.py | 39 + .../domain_model/wedge_sequence_item.py | 138 + .../weekday_fraction_pattern_sequence_item.py | 39 + ...ighting_transfer_function_sequence_item.py | 39 + ...croscopy_image_frame_type_sequence_item.py | 25 + ...thalmic_photography3d_coordinates_image.py | 6665 +++++++++++++ ...hotography_quality_rating_sequence_item.py | 270 + ...ography_quality_threshold_sequence_item.py | 25 + ...tography_stereographic_projection_image.py | 6612 +++++++++++++ .../x_ray3_d_acquisition_sequence_item.py | 1111 +++ .../x_ray3_d_acquisition_sequence_item_1.py | 761 ++ .../x_ray3_d_acquisition_sequence_item_2.py | 873 ++ .../x_ray3_d_frame_type_sequence_item.py | 81 + .../x_ray3_d_reconstruction_sequence_item.py | 109 + .../x_ray3d_angiographic_image.py | 6075 ++++++++++++ .../x_ray3d_craniofacial_image.py | 5767 +++++++++++ .../x_ray_acquisition_dose_sequence_item.py | 110 + .../domain_model/x_ray_angiographic_image.py | 7953 +++++++++++++++ .../x_ray_filter_details_sequence_item.py | 68 + .../x_ray_filter_sequence_item.py | 96 + .../x_ray_geometry_sequence_item.py | 40 + .../domain_model/x_ray_grid_sequence_item.py | 25 + .../domain_model/x_ray_radiation_dose_sr.py | 2847 ++++++ .../x_ray_radiofluoroscopic_image.py | 7953 +++++++++++++++ ...acquisition_phase_details_sequence_item.py | 39 + .../xa_performed_procedure_protocol.py | 4807 +++++++++ .../xa_plane_details_sequence_item.py | 341 + ...f_grayscale_softcopy_presentation_state.py | 4981 ++++++++++ ...xrf_frame_characteristics_sequence_item.py | 88 + .../xds_retrieval_sequence_item.py | 39 + .../domain_model/xds_storage_sequence_item.py | 39 + .../generate_treatment_record_from_plan.py | 404 + 1029 files changed, 998050 insertions(+) create mode 100644 tdwii_plus_examples/domain_model/12_lead_ecg.py create mode 100644 tdwii_plus_examples/domain_model/__init__.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_context_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_context_sr.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_end_location_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_initiation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_method_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_start_location_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_subtask_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_task_applicability_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/acquisition_task_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/add_intermediate_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/add_near_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/add_other_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/additional_drug_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/additional_parameter_recording_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/additional_rt_accessory_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/advanced_blending_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/advanced_blending_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/age_corrected_sensitivity_deviation_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/alternate_container_identifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/alternate_content_description_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/alternate_value_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ambulatory_ecg.py create mode 100644 tdwii_plus_examples/domain_model/analog_filter_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/anatomic_region_modifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/anatomic_region_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/animation_curve_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/annotation_group_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/annotation_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/anterior_chamber_depth_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/application_setup_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/applicator_geometry_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/applicator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/arterial_pulse_waveform.py create mode 100644 tdwii_plus_examples/domain_model/asl_bolus_cutoff_timing_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/asl_slab_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/asserter_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/assessed_attribute_value_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/assessed_sop_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/assessment_observations_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/assessment_requester_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/assigning_facility_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/attribute_tolerance_values_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/author_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/author_observer_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/autorefraction_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/autorefraction_measurements.py create mode 100644 tdwii_plus_examples/domain_model/autorefraction_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/basic_cardiac_electrophysiology_waveform.py create mode 100644 tdwii_plus_examples/domain_model/basic_structured_display.py create mode 100644 tdwii_plus_examples/domain_model/basic_text_sr.py create mode 100644 tdwii_plus_examples/domain_model/basic_voice_audio_waveform.py create mode 100644 tdwii_plus_examples/domain_model/beam_area_limit_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_dose_verification_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_hold_originating_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_limiting_device_leaf_pairs_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_limiting_device_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/beam_limiting_device_tolerance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/beam_task_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/biopsy_target_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/blending_display_input_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/blending_display_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/blending_lut1_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/blending_lut2_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/blending_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/blending_softcopy_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/block_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/block_edge_data_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/block_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/block_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/block_slab_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/block_slab_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/body_position_waveform.py create mode 100644 tdwii_plus_examples/domain_model/bolus_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/brachy_accessory_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/brachy_control_point_delivered_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/brachy_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/brachy_pulse_control_point_delivered_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/brachy_referenced_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/brachy_task_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/breast_projection_x_ray_image.py create mode 100644 tdwii_plus_examples/domain_model/breast_tomosynthesis_image.py create mode 100644 tdwii_plus_examples/domain_model/breed_registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/c_arm_photon_electron_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation.py create mode 100644 tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation_record.py create mode 100644 tdwii_plus_examples/domain_model/calculated_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/calculation_comment_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/calibration_data_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/calibration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/camera_position_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/cardiac_synchronization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/cell_values_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_delivery_continuation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_delivery_order_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_display_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_impedance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_sensitivity_units_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_shield_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_source_modifiers_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/channel_source_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/chemical_shift_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/chest_cad_sr.py create mode 100644 tdwii_plus_examples/domain_model/code_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/coding_scheme_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/coding_scheme_resources_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/collimator_shape_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/colon_cad_sr.py create mode 100644 tdwii_plus_examples/domain_model/color_softcopy_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/combination_segment_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/compensator_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/compensator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/compensator_shape_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/component_input_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/compound_graphic_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/comprehensive3d_sr.py create mode 100644 tdwii_plus_examples/domain_model/comprehensive_sr.py create mode 100644 tdwii_plus_examples/domain_model/computed_radiography_image.py create mode 100644 tdwii_plus_examples/domain_model/conceptual_volume_constituent_segmentation_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/conceptual_volume_constituent_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/conceptual_volume_derivation_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/conceptual_volume_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/conceptual_volume_segmentation_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/conceptual_volume_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/confirmation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/confocal_microscopy_image.py create mode 100644 tdwii_plus_examples/domain_model/confocal_microscopy_image_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/confocal_microscopy_tiled_pyramidal_image.py create mode 100644 tdwii_plus_examples/domain_model/consent_for_clinical_trial_use_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/constraint_value_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/consulting_physician_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/container_component_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/content_assessment_results.py create mode 100644 tdwii_plus_examples/domain_model/content_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/content_template_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/context_group_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contour_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contour_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contrast_administration_profile_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contrast_bolus_administration_route_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contrast_bolus_agent_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contrast_bolus_usage_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contributing_equipment_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contributing_sop_instances_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contributing_sources_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/contributing_sources_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/contributing_sources_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/control_point_delivery_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/conversion_source_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/cornea_measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/corneal_size_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/corneal_topography_map.py create mode 100644 tdwii_plus_examples/domain_model/corneal_topography_mapping_normals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/corrected_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_acquisition_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_acquisition_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_additional_x_ray_source_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_exposure_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_geometry_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_image.py create mode 100644 tdwii_plus_examples/domain_model/ct_image_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_imaging_acquisition_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_performed_procedure_protocol.py create mode 100644 tdwii_plus_examples/domain_model/ct_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_reconstruction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ct_table_dynamics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ctx_ray_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/current_requested_procedure_evidence_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/custodial_organization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/cylinder_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/data_frame_assignment_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/data_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/data_observation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/decomposition_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/decomposition_material_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/definition_source_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/definition_source_sequence_item_13.py create mode 100644 tdwii_plus_examples/domain_model/deformable_registration_grid_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/deformable_registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/deformable_spatial_registration.py create mode 100644 tdwii_plus_examples/domain_model/deidentification_action_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/delivered_depth_dose_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/delivery_rate_unit_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/delivery_verification_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/depth_dose_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/derivation_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/derivation_conceptual_volume_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/derivation_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dermoscopic_photography_image.py create mode 100644 tdwii_plus_examples/domain_model/detector_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/detector_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/device_motion_control_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/device_position_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/device_specific_acquisition_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dicom_media_retrieval_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dicom_retrieval_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dicom_storage_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/diffusion_b_matrix_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/diffusion_gradient_direction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/digital_filter_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/digital_intra_oral_x_ray_image.py create mode 100644 tdwii_plus_examples/domain_model/digital_mammography_x_ray_image.py create mode 100644 tdwii_plus_examples/domain_model/digital_signatures_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/digital_x_ray_image.py create mode 100644 tdwii_plus_examples/domain_model/dimension_index_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dimension_organization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/direct_segment_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/displayed_area_selection_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dose_calibration_conditions_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dose_values_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dosimetric_objective_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dosimetric_objective_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dvh_referenced_roi_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/dvh_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/echo_planar_pulse_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/echo_pulse_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/electromyogram.py create mode 100644 tdwii_plus_examples/domain_model/electrooculogram.py create mode 100644 tdwii_plus_examples/domain_model/encapsulated_cda.py create mode 100644 tdwii_plus_examples/domain_model/encapsulated_mtl.py create mode 100644 tdwii_plus_examples/domain_model/encapsulated_obj.py create mode 100644 tdwii_plus_examples/domain_model/encapsulated_pdf.py create mode 100644 tdwii_plus_examples/domain_model/encapsulated_stl.py create mode 100644 tdwii_plus_examples/domain_model/encrypted_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/energy_window_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/energy_window_range_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_continuous_rt_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_ct_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_mr_color_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_mr_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_palette_color_lookup_table_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_pet_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_opening_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_rt_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_sr.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_us_volume.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_x_ray_radiation_dose_sr.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_xa_image.py create mode 100644 tdwii_plus_examples/domain_model/enhanced_xrf_image.py create mode 100644 tdwii_plus_examples/domain_model/equipment_reference_point_coordinates_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/equivalent_conceptual_volume_instance_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/equivalent_conceptual_volumes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/event_timer_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/excitation_wavelength_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/excluded_intervals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/expected_in_vivo_measurement_values_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/exposure_control_sensing_regions_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/exposure_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/extensible_sr.py create mode 100644 tdwii_plus_examples/domain_model/facet_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fiducial_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fiducial_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/field_of_view_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fill_style_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/filter_high_frequency_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/filter_lookup_table_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/filter_low_frequency_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fixation_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fixation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fixed_rt_beam_delimiter_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/flat_corneal_axis_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/flat_keratometric_axis_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/flow_identifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fluence_map_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fraction_based_relationship_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fraction_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fraction_group_summary_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fraction_pattern_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/fraction_status_summary_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_anatomy_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_content_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_detector_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_display_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_display_shutter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_extraction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_pixel_data_properties_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_pixel_shift_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_usefulness_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/frame_voilut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/functional_mr_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/gated_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/gating_beam_hold_transition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/general32_bit_ecg.py create mode 100644 tdwii_plus_examples/domain_model/general_accessory_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/general_accessory_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/general_accessory_sequence_item_3.py create mode 100644 tdwii_plus_examples/domain_model/general_accessory_sequence_item_4.py create mode 100644 tdwii_plus_examples/domain_model/general_audio_waveform.py create mode 100644 tdwii_plus_examples/domain_model/general_ecg.py create mode 100644 tdwii_plus_examples/domain_model/generalized_defect_sensitivity_deviation_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/genetic_modifications_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/global_deviation_probability_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/graphic_annotation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/graphic_coordinates_data_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/graphic_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/graphic_layer_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/graphic_object_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/grayscale_softcopy_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/group_of_patients_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/hemodynamic_waveform.py create mode 100644 tdwii_plus_examples/domain_model/histogram_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/hl7_structured_document_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/icon_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/identical_documents_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/image_box_synchronization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/image_center_point_coordinates_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/image_data_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/image_filter_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/image_receptor_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/imaging_aperture_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/imaging_device_location_matrix_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/imaging_device_location_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/imaging_source_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/implantation_plan_sr_document.py create mode 100644 tdwii_plus_examples/domain_model/index_probability_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/instance_level_referenced_performed_procedure_step_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/instruction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intended_rt_treatment_phase_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/interlock_originating_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/interlock_resolution_user_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/interlock_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/intervention_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intraocular_lens_calculations.py create mode 100644 tdwii_plus_examples/domain_model/intraocular_lens_calculations_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intraocular_lens_calculations_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intravascular_frame_content_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intravascular_oct_frame_content_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intravascular_oct_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/intravascular_optical_coherence_tomography_image.py create mode 100644 tdwii_plus_examples/domain_model/iol_power_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_beam_limiting_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_beam_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_block_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_control_point_delivery_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_range_compensator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_tolerance_table_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_wedge_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ion_wedge_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/irradiation_event_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/isocenter_reference_system_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/issuer_of_accession_number_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/issuer_of_admission_id_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/issuer_of_patient_id_qualifiers_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/issuer_of_service_episode_id_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/issuer_of_the_container_identifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/issuer_of_the_specimen_identifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/keratometry_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/keratometry_measurements.py create mode 100644 tdwii_plus_examples/domain_model/keratometry_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/key_object_selection_document.py create mode 100644 tdwii_plus_examples/domain_model/kv_imaging_generation_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/lateral_spreading_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/left_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/left_lens_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/legacy_converted_enhanced_ct_image.py create mode 100644 tdwii_plus_examples/domain_model/legacy_converted_enhanced_mr_image.py create mode 100644 tdwii_plus_examples/domain_model/legacy_converted_enhanced_pet_image.py create mode 100644 tdwii_plus_examples/domain_model/lens_constant_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/lens_thickness_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/lensometry_measurements.py create mode 100644 tdwii_plus_examples/domain_model/line_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/line_style_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/localized_deviation_probability_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mac_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/macular_grid_thickness_and_volume_report.py create mode 100644 tdwii_plus_examples/domain_model/major_ticks_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mammography_cad_sr.py create mode 100644 tdwii_plus_examples/domain_model/mapping_resource_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mask_subtraction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/material_attenuation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/matrix_registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/matrix_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/maximum_corneal_curvature_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/measured_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/measured_meterset_to_dose_mapping_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/measured_value_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/measurement_values_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/measurement_values_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/meterset_to_dose_mapping_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/microscopy_bulk_simple_annotations.py create mode 100644 tdwii_plus_examples/domain_model/minimum_keratometric_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/modality_lut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mode_of_percutaneous_access_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/modified_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/motion_synchronization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_arterial_spin_labeling_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_averages_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_diffusion_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_echo_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_image.py create mode 100644 tdwii_plus_examples/domain_model/mr_image_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_imaging_modifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_metabolite_map_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_modifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_receive_coil_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_spatial_saturation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_spectroscopy.py create mode 100644 tdwii_plus_examples/domain_model/mr_spectroscopy_fov_geometry_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_spectroscopy_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_timing_and_related_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_transmit_coil_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mr_velocity_encoding_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mrfov_geometry_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multi_channel_respiratory_waveform.py create mode 100644 tdwii_plus_examples/domain_model/multi_coil_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multi_frame_grayscale_byte_secondary_capture_image.py create mode 100644 tdwii_plus_examples/domain_model/multi_frame_grayscale_word_secondary_capture_image.py create mode 100644 tdwii_plus_examples/domain_model/multi_frame_presentation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multi_frame_single_bit_secondary_capture_image.py create mode 100644 tdwii_plus_examples/domain_model/multi_frame_true_color_secondary_capture_image.py create mode 100644 tdwii_plus_examples/domain_model/multienergy_ct_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multienergy_ct_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multienergy_ct_path_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multienergy_ct_processing_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multienergy_ctx_ray_detector_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/multienergy_ctx_ray_source_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mv_imaging_generation_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mydriatic_agent_concentration_units_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/mydriatic_agent_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/nominal_screen_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/nonconforming_modified_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/notch_filter_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/nuclear_medicine_image.py create mode 100644 tdwii_plus_examples/domain_model/object_thickness_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/oblique_cropping_plane_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/oct_bscan_analysis_acquisition_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/omitted_application_setup_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/omitted_beam_task_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/omitted_channel_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/omitted_radiation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/operating_mode_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/operator_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_length_summation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_segmental_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_total_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_length_quality_metric_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_measurements.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_en_face_image_quality_rating_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_frame_location_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_b_scan_volume_analysis.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_en_face_image.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_photography16_bit_image.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_photography8_bit_image.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_thickness_map.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_rating_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_threshold_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_thickness_mapping_normals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_tomography_image.py create mode 100644 tdwii_plus_examples/domain_model/ophthalmic_visual_field_static_perimetry_measurements.py create mode 100644 tdwii_plus_examples/domain_model/optical_ophthalmic_axial_length_measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/optical_path_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/optical_path_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/optical_selected_ophthalmic_axial_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/order_filler_identifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/order_placer_identifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/original_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/originating_sop_instance_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/other_clinical_trial_protocol_i_ds_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/other_patient_i_ds_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/output_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/override_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/palette_color_lookup_table_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/parallel_rt_beam_delimiter_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/parameters_specification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/parametric_map.py create mode 100644 tdwii_plus_examples/domain_model/parametric_map_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/participant_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_location_coordinates_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_orientation_in_frame_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_physiological_state_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_positioning_instruction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_radiation_dose_sr.py create mode 100644 tdwii_plus_examples/domain_model/patient_setup_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_devices_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_displacement_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_position_device_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_position_device_tolerance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_position_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_support_position_tolerance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_treatment_orientation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_treatment_preparation_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_10.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_11.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_14.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_15.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_16.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_17.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_19.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_20.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_22.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_23.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_24.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_25.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_27.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_3.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_4.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_5.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_6.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_7.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_8.py create mode 100644 tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_9.py create mode 100644 tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/performed_imaging_agent_administration_sr.py create mode 100644 tdwii_plus_examples/domain_model/performed_processing_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/performing_physician_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pertinent_documents_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pertinent_other_evidence_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pertinent_resources_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_detector_motion_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_frame_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_frame_correction_factors_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_reconstruction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pet_table_dynamics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/phase_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/photoacoustic_excitation_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/photoacoustic_image.py create mode 100644 tdwii_plus_examples/domain_model/photoacoustic_image_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/physicians_of_record_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/physicians_reading_study_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pixel_intensity_relationship_lut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pixel_measures_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pixel_shift_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pixel_value_mapping_to_coded_concept_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pixel_value_transformation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/plan_overview_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/planar_mpr_volumetric_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/plane_orientation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/plane_orientation_volume_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/plane_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/plane_position_slide_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/plane_position_volume_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/planned_imaging_agent_administration_sr.py create mode 100644 tdwii_plus_examples/domain_model/planned_verification_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/planning_input_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/position_acquisition_template_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/positioner_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/positioning_landmark_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/positron_emission_tomography_image.py create mode 100644 tdwii_plus_examples/domain_model/post_deformation_matrix_registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pre_deformation_matrix_registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/predecessor_documents_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/predecessor_protocol_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/predecessor_structure_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/predicted_toric_error_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/prescription_notes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/prescription_overview_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/presentation_lut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/presentation_state_compositor_component_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/primary_anatomic_structure_modifier_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item_55.py create mode 100644 tdwii_plus_examples/domain_model/primary_fluence_mode_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/prior_treatment_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/prism_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/private_data_element_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/private_data_element_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/procedure_log.py create mode 100644 tdwii_plus_examples/domain_model/projection_imaging_acquisition_parameter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/projection_pixel_calibration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/protocol_context_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/pseudo_color_softcopy_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/pulse_specific_brachy_control_point_delivered_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/quantity_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiation_device_configuration_and_commissioning_key_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dose_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dose_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/radiation_dosimeter_unit_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiation_generation_mode_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiobiological_dose_effect_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/radiopharmaceutical_radiation_dose_sr.py create mode 100644 tdwii_plus_examples/domain_model/radiopharmaceutical_usage_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/range_modulator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/range_shifter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/raw_data.py create mode 100644 tdwii_plus_examples/domain_model/real_time_audio_waveform.py create mode 100644 tdwii_plus_examples/domain_model/real_time_bulk_data_flow_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/real_time_video_endoscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/real_time_video_photographic_image.py create mode 100644 tdwii_plus_examples/domain_model/real_world_value_mapping.py create mode 100644 tdwii_plus_examples/domain_model/real_world_value_mapping_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recommended_default_value_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/reconstruction_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/reconstruction_end_location_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/reconstruction_start_location_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/reconstruction_target_center_location_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_block_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_block_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/recorded_block_slab_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_brachy_accessory_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_channel_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_channel_shield_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_compensator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_compensator_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/recorded_lateral_spreading_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_range_modulator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_range_shifter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_snout_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_source_applicator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_source_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/recorded_wedge_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_baseline_parameters_rt_radiation_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_beam_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_beam_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_beam_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/referenced_bolus_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_bolus_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_calculated_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_comparison_sop_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_defined_protocol_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_digital_signature_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_direct_segment_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_dose_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_dosimetric_objectives_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_first_frame_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_fraction_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_frame_of_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_image_evidence_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_image_real_world_value_mapping_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_image_sequence_item_182.py create mode 100644 tdwii_plus_examples/domain_model/referenced_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_instance_sequence_item_236.py create mode 100644 tdwii_plus_examples/domain_model/referenced_measured_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_other_plane_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_patient_photo_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_patient_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_patient_setup_photo_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_performed_procedure_step_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_performed_protocol_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_position_reference_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_presentation_state_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_raw_data_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_real_world_value_mapping_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/referenced_refractive_measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_request_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_physician_intent_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_4.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_5.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_prescription_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_radiation_record_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_radiation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_radiation_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_treatment_phase_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_rt_treatment_preparation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_series_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_setup_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_sop_instance_mac_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_sop_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_spatial_registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_stereometric_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_structure_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_structured_context_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_study_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_surface_data_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_surface_mesh_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_surface_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_texture_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/referenced_waveform_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/referring_physician_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/refractive_parameters_used_on_patient_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/refractive_state_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/region_pixel_shift_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/registration_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/registration_to_localizer_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/related_assertion_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/related_reference_rt_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/related_rtroi_observations_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/related_series_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/relevant_opt_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rendered_image_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rendition_selection_document.py create mode 100644 tdwii_plus_examples/domain_model/request_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/respiratory_synchronization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/respiratory_waveform.py create mode 100644 tdwii_plus_examples/domain_model/results_normals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/right_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/right_lens_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/robotic_arm_radiation.py create mode 100644 tdwii_plus_examples/domain_model/robotic_arm_radiation_record.py create mode 100644 tdwii_plus_examples/domain_model/robotic_path_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/roi_contour_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/roi_creator_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/roi_derivation_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/roi_elemental_composition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/roi_interpreter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/roi_physical_properties_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rotation_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/routine_scalp_electroencephalogram.py create mode 100644 tdwii_plus_examples/domain_model/rt_accessory_holder_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_accessory_holder_slot_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_acquisition_patient_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_anatomic_prescription_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_beam_delimiter_geometry_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_beam_limiting_device_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_beam_limiting_device_opening_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_beams_delivery_instruction.py create mode 100644 tdwii_plus_examples/domain_model/rt_beams_treatment_record.py create mode 100644 tdwii_plus_examples/domain_model/rt_brachy_application_setup_delivery_instruction.py create mode 100644 tdwii_plus_examples/domain_model/rt_brachy_treatment_record.py create mode 100644 tdwii_plus_examples/domain_model/rt_delivery_start_patient_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_dose.py create mode 100644 tdwii_plus_examples/domain_model/rt_image.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_frame_context_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_frame_general_content_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_frame_imaging_device_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_frame_mv_radiation_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_frame_radiation_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_framek_v_radiation_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_image_scope_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_ion_beams_treatment_record.py create mode 100644 tdwii_plus_examples/domain_model/rt_ion_plan.py create mode 100644 tdwii_plus_examples/domain_model/rt_patient_position_acquisition_instruction.py create mode 100644 tdwii_plus_examples/domain_model/rt_patient_position_displacement_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_patient_position_scope_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_patient_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_physician_intent.py create mode 100644 tdwii_plus_examples/domain_model/rt_physician_intent_input_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_physician_intent_predecessor_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_physician_intent_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_plan.py create mode 100644 tdwii_plus_examples/domain_model/rt_prescription_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_record_set.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_salvage_record.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_salvage_record_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_set.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_set_delivery_instruction.py create mode 100644 tdwii_plus_examples/domain_model/rt_radiation_task_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_referenced_series_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_referenced_study_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_related_roi_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_segment_annotation.py create mode 100644 tdwii_plus_examples/domain_model/rt_segment_annotation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_structure_set.py create mode 100644 tdwii_plus_examples/domain_model/rt_tolerance_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_treatment_phase_interval_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_treatment_preparation.py create mode 100644 tdwii_plus_examples/domain_model/rt_treatment_preparation_patient_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/rt_treatment_summary_record.py create mode 100644 tdwii_plus_examples/domain_model/rtroi_observations_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/scan_start_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/scan_stop_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/scanning_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/screening_baseline_measured_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/secondary_capture_image.py create mode 100644 tdwii_plus_examples/domain_model/segment_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segment_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segment_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segment_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segment_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/segment_surface_generation_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segment_surface_source_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segmentation.py create mode 100644 tdwii_plus_examples/domain_model/segmentation_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/segmented_rt_accessory_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/selected_frame_functional_groups_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/selected_segmental_ophthalmic_axial_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/selected_total_ophthalmic_axial_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/setup_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_10.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_11.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_12.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_13.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_16.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_17.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_18.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_19.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_21.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_22.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_24.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_26.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_27.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_28.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_3.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_30.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_4.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_5.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_6.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_8.py create mode 100644 tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_9.py create mode 100644 tdwii_plus_examples/domain_model/shielding_device_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/simplified_adult_echo_sr.py create mode 100644 tdwii_plus_examples/domain_model/simulated_keratometric_cylinder_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/sleep_electroencephalogram.py create mode 100644 tdwii_plus_examples/domain_model/snout_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/softcopy_voilut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_conceptual_volume_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_image_corneal_processed_data_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_image_evidence_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_image_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_instance_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_irradiation_event_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_of_refractive_measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_patient_group_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_pixel_planes_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_series_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_series_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/source_waveform_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/spatial_fiducials.py create mode 100644 tdwii_plus_examples/domain_model/spatial_registration.py create mode 100644 tdwii_plus_examples/domain_model/specific_absorption_rate_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/specimen_description_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/specimen_preparation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/specimen_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/spectacle_prescription_report.py create mode 100644 tdwii_plus_examples/domain_model/steady_state_pulse_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/steep_corneal_axis_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/steep_keratometric_axis_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/stereo_pairs_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/stereometric_relationship.py create mode 100644 tdwii_plus_examples/domain_model/storage_protocol_element_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/stored_value_color_range_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/stowrs_storage_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/strain_stock_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/structure_set_roi_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/structured_constraint_observation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/structured_display_image_box_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/structured_display_text_box_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/studies_containing_other_referenced_instances_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/subjective_refraction_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/subjective_refraction_measurements.py create mode 100644 tdwii_plus_examples/domain_model/subjective_refraction_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/surface_mesh_primitives_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/surface_points_normals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/surface_points_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/surface_processing_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/surface_scan_mesh.py create mode 100644 tdwii_plus_examples/domain_model/surface_scan_point_cloud.py create mode 100644 tdwii_plus_examples/domain_model/surface_segmentation.py create mode 100644 tdwii_plus_examples/domain_model/surface_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/surgically_induced_astigmatism_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/table_column_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/table_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/table_row_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/tabulated_values_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/temporal_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/test_point_normals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/text_object_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/text_style_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/threshold_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/threshold_value_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/time_of_frame_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/time_slot_information_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/tolerance_table_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/tomotherapeutic_control_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/tomotherapeutic_radiation.py create mode 100644 tdwii_plus_examples/domain_model/tomotherapeutic_radiation_record.py create mode 100644 tdwii_plus_examples/domain_model/toric_iol_power_for_exact_emmetropia_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/toric_iol_power_for_exact_target_refraction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/toric_iol_power_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/total_pixel_matrix_origin_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/track_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/track_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/track_set_statistics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/track_statistics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/tracking_algorithm_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/tractography_results.py create mode 100644 tdwii_plus_examples/domain_model/transducer_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/transducer_response_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/transducer_technology_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/transformation_algorithm_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_device_identification_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_machine_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_position_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_session_application_setup_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_session_beam_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_session_ion_beam_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_summary_calculated_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_summary_measured_dose_reference_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_tolerance_violation_attribute_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/treatment_tolerance_violation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/triangle_fan_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/triangle_strip_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/two_dimensional_to_three_dimensional_map_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/udi_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ultrasound_image.py create mode 100644 tdwii_plus_examples/domain_model/ultrasound_multi_frame_image.py create mode 100644 tdwii_plus_examples/domain_model/ultrasound_ophthalmic_axial_length_measurements_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/ultrasound_selected_ophthalmic_axial_length_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/unassigned_per_frame_converted_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/unassigned_shared_converted_attributes_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/unspecified_laterality_lens_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/us_image_description_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/used_fiducials_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/used_rt_structure_set_roi_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/used_segments_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/uv_mapping_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/variable_modality_lut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/variable_modality_lut_softcopy_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/velocity_encoding_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/verifying_observer_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/video_endoscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/video_microscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/video_photographic_image.py create mode 100644 tdwii_plus_examples/domain_model/visual_acuity_both_eyes_open_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_acuity_left_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_acuity_measurement_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_acuity_measurements.py create mode 100644 tdwii_plus_examples/domain_model/visual_acuity_right_eye_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_field_catch_trial_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_field_global_results_index_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_field_test_point_normals_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_field_test_point_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/visual_field_test_reliability_global_index_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/vl_endoscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/vl_microscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/vl_photographic_image.py create mode 100644 tdwii_plus_examples/domain_model/vl_slide_coordinates_microscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/vl_whole_slide_microscopy_image.py create mode 100644 tdwii_plus_examples/domain_model/voilut_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volume_cropping_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volume_localization_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volume_rendering_volumetric_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/volume_stream_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volumetric_annotation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volumetric_presentation_input_annotation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volumetric_presentation_input_set_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/volumetric_presentation_state_input_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wado_retrieval_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wadors_retrieval_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/waveform_annotation_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/waveform_presentation_group_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/waveform_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wedge_definition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wedge_position_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wedge_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/weekday_fraction_pattern_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/weighting_transfer_function_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/whole_slide_microscopy_image_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography3d_coordinates_image.py create mode 100644 tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_rating_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_threshold_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_stereographic_projection_image.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_1.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_2.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3_d_frame_type_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3_d_reconstruction_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3d_angiographic_image.py create mode 100644 tdwii_plus_examples/domain_model/x_ray3d_craniofacial_image.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_acquisition_dose_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_angiographic_image.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_filter_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_filter_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_geometry_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_grid_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_radiation_dose_sr.py create mode 100644 tdwii_plus_examples/domain_model/x_ray_radiofluoroscopic_image.py create mode 100644 tdwii_plus_examples/domain_model/xa_acquisition_phase_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/xa_performed_procedure_protocol.py create mode 100644 tdwii_plus_examples/domain_model/xa_plane_details_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/xa_xrf_grayscale_softcopy_presentation_state.py create mode 100644 tdwii_plus_examples/domain_model/xaxrf_frame_characteristics_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/xds_retrieval_sequence_item.py create mode 100644 tdwii_plus_examples/domain_model/xds_storage_sequence_item.py create mode 100755 tdwii_plus_examples/generate_treatment_record_from_plan.py diff --git a/.vscode/settings.json b/.vscode/settings.json index d4ccdfe..4c70956 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,13 +3,17 @@ "acse", "addl", "argparser", + "autosequence", "basescp", + "boli", + "brachy", "cfind", "cmove", "dataelem", "dcmdump", "DCMTK", "ddress", + "Deidentification", "dests", "dimse", "dsutils", @@ -19,14 +23,20 @@ "fdir", "findscu", "fpaths", + "fractiongroup", "globalsubscriber", "HHMM", "HHMMSS", "ilename", "impac", + "ionbeam", + "ioncontrolpointdelivery", "IPDW", "irectory", + "isocenter", "Mddhhmm", + "meterset", + "Metersets", "mktime", "MOSAIQ", "movescu", @@ -38,6 +48,7 @@ "nget", "nset", "nsetscu", + "patientsetup", "popd", "PPVS", "ppvsscp", @@ -47,11 +58,14 @@ "qtreewidgetitem", "queryfile", "repval", + "rtiontolerancetable", "rtss", "sessionmaker", "sobp", "storescp", "storescu", + "treatmentmachine", + "treatmentsessionionbeam", "tsyntax", "UPSC", "upsdb", diff --git a/tdwii_plus_examples/domain_model/12_lead_ecg.py b/tdwii_plus_examples/domain_model/12_lead_ecg.py new file mode 100644 index 0000000..5d1629b --- /dev/null +++ b/tdwii_plus_examples/domain_model/12_lead_ecg.py @@ -0,0 +1,4262 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class TwelveLeadEcg: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/__init__.py b/tdwii_plus_examples/domain_model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tdwii_plus_examples/domain_model/acquisition_context_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_context_sequence_item.py new file mode 100644 index 0000000..2a9c50a --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_context_sequence_item.py @@ -0,0 +1,363 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_item_modifier_sequence_item import ContentItemModifierSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class AcquisitionContextSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ContentItemModifierSequence: List[ContentItemModifierSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ContentItemModifierSequence(self) -> Optional[List[ContentItemModifierSequenceItem]]: + if "ContentItemModifierSequence" in self._dataset: + if len(self._ContentItemModifierSequence) == len(self._dataset.ContentItemModifierSequence): + return self._ContentItemModifierSequence + else: + return [ContentItemModifierSequenceItem(x) for x in self._dataset.ContentItemModifierSequence] + return None + + @ContentItemModifierSequence.setter + def ContentItemModifierSequence(self, value: Optional[List[ContentItemModifierSequenceItem]]): + if value is None: + self._ContentItemModifierSequence = [] + if "ContentItemModifierSequence" in self._dataset: + del self._dataset.ContentItemModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentItemModifierSequenceItem) for item in value): + raise ValueError("ContentItemModifierSequence must be a list of ContentItemModifierSequenceItem objects") + else: + self._ContentItemModifierSequence = value + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.clear() + self._dataset.ContentItemModifierSequence.extend([item.to_dataset() for item in value]) + + def add_ContentItemModifier(self, item: ContentItemModifierSequenceItem): + if not isinstance(item, ContentItemModifierSequenceItem): + raise ValueError("Item must be an instance of ContentItemModifierSequenceItem") + self._ContentItemModifierSequence.append(item) + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/acquisition_context_sr.py b/tdwii_plus_examples/domain_model/acquisition_context_sr.py new file mode 100644 index 0000000..ac23b57 --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_context_sr.py @@ -0,0 +1,4673 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class AcquisitionContextSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/acquisition_device_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_device_sequence_item.py new file mode 100644 index 0000000..dc07e7a --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_device_sequence_item.py @@ -0,0 +1,346 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class AcquisitionDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/acquisition_end_location_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_end_location_sequence_item.py new file mode 100644 index 0000000..eff059d --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_end_location_sequence_item.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AcquisitionEndLocationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferenceBasisCodeSequence: List[CodeSequenceItem] = [] + self._ReferenceGeometryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferenceLocationLabel(self) -> Optional[str]: + if "ReferenceLocationLabel" in self._dataset: + return self._dataset.ReferenceLocationLabel + return None + + @ReferenceLocationLabel.setter + def ReferenceLocationLabel(self, value: Optional[str]): + if value is None: + if "ReferenceLocationLabel" in self._dataset: + del self._dataset.ReferenceLocationLabel + else: + self._dataset.ReferenceLocationLabel = value + + @property + def ReferenceLocationDescription(self) -> Optional[str]: + if "ReferenceLocationDescription" in self._dataset: + return self._dataset.ReferenceLocationDescription + return None + + @ReferenceLocationDescription.setter + def ReferenceLocationDescription(self, value: Optional[str]): + if value is None: + if "ReferenceLocationDescription" in self._dataset: + del self._dataset.ReferenceLocationDescription + else: + self._dataset.ReferenceLocationDescription = value + + @property + def ReferenceBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceBasisCodeSequence" in self._dataset: + if len(self._ReferenceBasisCodeSequence) == len(self._dataset.ReferenceBasisCodeSequence): + return self._ReferenceBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceBasisCodeSequence] + return None + + @ReferenceBasisCodeSequence.setter + def ReferenceBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceBasisCodeSequence = [] + if "ReferenceBasisCodeSequence" in self._dataset: + del self._dataset.ReferenceBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceBasisCodeSequence = value + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.clear() + self._dataset.ReferenceBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceBasisCodeSequence.append(item) + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.append(item.to_dataset()) + + @property + def ReferenceGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceGeometryCodeSequence" in self._dataset: + if len(self._ReferenceGeometryCodeSequence) == len(self._dataset.ReferenceGeometryCodeSequence): + return self._ReferenceGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceGeometryCodeSequence] + return None + + @ReferenceGeometryCodeSequence.setter + def ReferenceGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceGeometryCodeSequence = [] + if "ReferenceGeometryCodeSequence" in self._dataset: + del self._dataset.ReferenceGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceGeometryCodeSequence = value + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.clear() + self._dataset.ReferenceGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceGeometryCodeSequence.append(item) + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.append(item.to_dataset()) + + @property + def OffsetDistance(self) -> Optional[Decimal]: + if "OffsetDistance" in self._dataset: + return self._dataset.OffsetDistance + return None + + @OffsetDistance.setter + def OffsetDistance(self, value: Optional[Decimal]): + if value is None: + if "OffsetDistance" in self._dataset: + del self._dataset.OffsetDistance + else: + self._dataset.OffsetDistance = value + + @property + def OffsetDirection(self) -> Optional[str]: + if "OffsetDirection" in self._dataset: + return self._dataset.OffsetDirection + return None + + @OffsetDirection.setter + def OffsetDirection(self, value: Optional[str]): + if value is None: + if "OffsetDirection" in self._dataset: + del self._dataset.OffsetDirection + else: + self._dataset.OffsetDirection = value diff --git a/tdwii_plus_examples/domain_model/acquisition_initiation_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_initiation_sequence_item.py new file mode 100644 index 0000000..80bd6bd --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_initiation_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class AcquisitionInitiationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/acquisition_method_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_method_algorithm_sequence_item.py new file mode 100644 index 0000000..f9c2376 --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_method_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AcquisitionMethodAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item.py new file mode 100644 index 0000000..fdb29cb --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item.py @@ -0,0 +1,492 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_end_location_sequence_item import AcquisitionEndLocationSequenceItem +from .acquisition_start_location_sequence_item import ( + AcquisitionStartLocationSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .ctx_ray_details_sequence_item import CTXRayDetailsSequenceItem + + +class AcquisitionProtocolElementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RequestedSeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._CTXRayDetailsSequence: List[CTXRayDetailsSequenceItem] = [] + self._CTDIPhantomTypeCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionStartLocationSequence: List[AcquisitionStartLocationSequenceItem] = [] + self._AcquisitionEndLocationSequence: List[AcquisitionEndLocationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GantryDetectorTilt(self) -> Optional[Decimal]: + if "GantryDetectorTilt" in self._dataset: + return self._dataset.GantryDetectorTilt + return None + + @GantryDetectorTilt.setter + def GantryDetectorTilt(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorTilt" in self._dataset: + del self._dataset.GantryDetectorTilt + else: + self._dataset.GantryDetectorTilt = value + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value + + @property + def RequestedSeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + if len(self._RequestedSeriesDescriptionCodeSequence) == len(self._dataset.RequestedSeriesDescriptionCodeSequence): + return self._RequestedSeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestedSeriesDescriptionCodeSequence] + return None + + @RequestedSeriesDescriptionCodeSequence.setter + def RequestedSeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestedSeriesDescriptionCodeSequence = [] + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.RequestedSeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestedSeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestedSeriesDescriptionCodeSequence = value + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.clear() + self._dataset.RequestedSeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestedSeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestedSeriesDescriptionCodeSequence.append(item) + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def AcquisitionType(self) -> Optional[str]: + if "AcquisitionType" in self._dataset: + return self._dataset.AcquisitionType + return None + + @AcquisitionType.setter + def AcquisitionType(self, value: Optional[str]): + if value is None: + if "AcquisitionType" in self._dataset: + del self._dataset.AcquisitionType + else: + self._dataset.AcquisitionType = value + + @property + def TubeAngle(self) -> Optional[float]: + if "TubeAngle" in self._dataset: + return self._dataset.TubeAngle + return None + + @TubeAngle.setter + def TubeAngle(self, value: Optional[float]): + if value is None: + if "TubeAngle" in self._dataset: + del self._dataset.TubeAngle + else: + self._dataset.TubeAngle = value + + @property + def RevolutionTime(self) -> Optional[float]: + if "RevolutionTime" in self._dataset: + return self._dataset.RevolutionTime + return None + + @RevolutionTime.setter + def RevolutionTime(self, value: Optional[float]): + if value is None: + if "RevolutionTime" in self._dataset: + del self._dataset.RevolutionTime + else: + self._dataset.RevolutionTime = value + + @property + def SingleCollimationWidth(self) -> Optional[float]: + if "SingleCollimationWidth" in self._dataset: + return self._dataset.SingleCollimationWidth + return None + + @SingleCollimationWidth.setter + def SingleCollimationWidth(self, value: Optional[float]): + if value is None: + if "SingleCollimationWidth" in self._dataset: + del self._dataset.SingleCollimationWidth + else: + self._dataset.SingleCollimationWidth = value + + @property + def TotalCollimationWidth(self) -> Optional[float]: + if "TotalCollimationWidth" in self._dataset: + return self._dataset.TotalCollimationWidth + return None + + @TotalCollimationWidth.setter + def TotalCollimationWidth(self, value: Optional[float]): + if value is None: + if "TotalCollimationWidth" in self._dataset: + del self._dataset.TotalCollimationWidth + else: + self._dataset.TotalCollimationWidth = value + + @property + def TableSpeed(self) -> Optional[float]: + if "TableSpeed" in self._dataset: + return self._dataset.TableSpeed + return None + + @TableSpeed.setter + def TableSpeed(self, value: Optional[float]): + if value is None: + if "TableSpeed" in self._dataset: + del self._dataset.TableSpeed + else: + self._dataset.TableSpeed = value + + @property + def TableFeedPerRotation(self) -> Optional[float]: + if "TableFeedPerRotation" in self._dataset: + return self._dataset.TableFeedPerRotation + return None + + @TableFeedPerRotation.setter + def TableFeedPerRotation(self, value: Optional[float]): + if value is None: + if "TableFeedPerRotation" in self._dataset: + del self._dataset.TableFeedPerRotation + else: + self._dataset.TableFeedPerRotation = value + + @property + def SpiralPitchFactor(self) -> Optional[float]: + if "SpiralPitchFactor" in self._dataset: + return self._dataset.SpiralPitchFactor + return None + + @SpiralPitchFactor.setter + def SpiralPitchFactor(self, value: Optional[float]): + if value is None: + if "SpiralPitchFactor" in self._dataset: + del self._dataset.SpiralPitchFactor + else: + self._dataset.SpiralPitchFactor = value + + @property + def CTXRayDetailsSequence(self) -> Optional[List[CTXRayDetailsSequenceItem]]: + if "CTXRayDetailsSequence" in self._dataset: + if len(self._CTXRayDetailsSequence) == len(self._dataset.CTXRayDetailsSequence): + return self._CTXRayDetailsSequence + else: + return [CTXRayDetailsSequenceItem(x) for x in self._dataset.CTXRayDetailsSequence] + return None + + @CTXRayDetailsSequence.setter + def CTXRayDetailsSequence(self, value: Optional[List[CTXRayDetailsSequenceItem]]): + if value is None: + self._CTXRayDetailsSequence = [] + if "CTXRayDetailsSequence" in self._dataset: + del self._dataset.CTXRayDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTXRayDetailsSequenceItem) for item in value): + raise ValueError("CTXRayDetailsSequence must be a list of CTXRayDetailsSequenceItem objects") + else: + self._CTXRayDetailsSequence = value + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.clear() + self._dataset.CTXRayDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTXRayDetails(self, item: CTXRayDetailsSequenceItem): + if not isinstance(item, CTXRayDetailsSequenceItem): + raise ValueError("Item must be an instance of CTXRayDetailsSequenceItem") + self._CTXRayDetailsSequence.append(item) + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.append(item.to_dataset()) + + @property + def ConstantVolumeFlag(self) -> Optional[str]: + if "ConstantVolumeFlag" in self._dataset: + return self._dataset.ConstantVolumeFlag + return None + + @ConstantVolumeFlag.setter + def ConstantVolumeFlag(self, value: Optional[str]): + if value is None: + if "ConstantVolumeFlag" in self._dataset: + del self._dataset.ConstantVolumeFlag + else: + self._dataset.ConstantVolumeFlag = value + + @property + def FluoroscopyFlag(self) -> Optional[str]: + if "FluoroscopyFlag" in self._dataset: + return self._dataset.FluoroscopyFlag + return None + + @FluoroscopyFlag.setter + def FluoroscopyFlag(self, value: Optional[str]): + if value is None: + if "FluoroscopyFlag" in self._dataset: + del self._dataset.FluoroscopyFlag + else: + self._dataset.FluoroscopyFlag = value + + @property + def CTDIvol(self) -> Optional[float]: + if "CTDIvol" in self._dataset: + return self._dataset.CTDIvol + return None + + @CTDIvol.setter + def CTDIvol(self, value: Optional[float]): + if value is None: + if "CTDIvol" in self._dataset: + del self._dataset.CTDIvol + else: + self._dataset.CTDIvol = value + + @property + def CTDIPhantomTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "CTDIPhantomTypeCodeSequence" in self._dataset: + if len(self._CTDIPhantomTypeCodeSequence) == len(self._dataset.CTDIPhantomTypeCodeSequence): + return self._CTDIPhantomTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.CTDIPhantomTypeCodeSequence] + return None + + @CTDIPhantomTypeCodeSequence.setter + def CTDIPhantomTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._CTDIPhantomTypeCodeSequence = [] + if "CTDIPhantomTypeCodeSequence" in self._dataset: + del self._dataset.CTDIPhantomTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("CTDIPhantomTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._CTDIPhantomTypeCodeSequence = value + if "CTDIPhantomTypeCodeSequence" not in self._dataset: + self._dataset.CTDIPhantomTypeCodeSequence = pydicom.Sequence() + self._dataset.CTDIPhantomTypeCodeSequence.clear() + self._dataset.CTDIPhantomTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_CTDIPhantomTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._CTDIPhantomTypeCodeSequence.append(item) + if "CTDIPhantomTypeCodeSequence" not in self._dataset: + self._dataset.CTDIPhantomTypeCodeSequence = pydicom.Sequence() + self._dataset.CTDIPhantomTypeCodeSequence.append(item.to_dataset()) + + @property + def ProtocolElementNumber(self) -> Optional[int]: + if "ProtocolElementNumber" in self._dataset: + return self._dataset.ProtocolElementNumber + return None + + @ProtocolElementNumber.setter + def ProtocolElementNumber(self, value: Optional[int]): + if value is None: + if "ProtocolElementNumber" in self._dataset: + del self._dataset.ProtocolElementNumber + else: + self._dataset.ProtocolElementNumber = value + + @property + def ProtocolElementName(self) -> Optional[str]: + if "ProtocolElementName" in self._dataset: + return self._dataset.ProtocolElementName + return None + + @ProtocolElementName.setter + def ProtocolElementName(self, value: Optional[str]): + if value is None: + if "ProtocolElementName" in self._dataset: + del self._dataset.ProtocolElementName + else: + self._dataset.ProtocolElementName = value + + @property + def ProtocolElementCharacteristicsSummary(self) -> Optional[str]: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + return self._dataset.ProtocolElementCharacteristicsSummary + return None + + @ProtocolElementCharacteristicsSummary.setter + def ProtocolElementCharacteristicsSummary(self, value: Optional[str]): + if value is None: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + del self._dataset.ProtocolElementCharacteristicsSummary + else: + self._dataset.ProtocolElementCharacteristicsSummary = value + + @property + def ProtocolElementPurpose(self) -> Optional[str]: + if "ProtocolElementPurpose" in self._dataset: + return self._dataset.ProtocolElementPurpose + return None + + @ProtocolElementPurpose.setter + def ProtocolElementPurpose(self, value: Optional[str]): + if value is None: + if "ProtocolElementPurpose" in self._dataset: + del self._dataset.ProtocolElementPurpose + else: + self._dataset.ProtocolElementPurpose = value + + @property + def AcquisitionMotion(self) -> Optional[str]: + if "AcquisitionMotion" in self._dataset: + return self._dataset.AcquisitionMotion + return None + + @AcquisitionMotion.setter + def AcquisitionMotion(self, value: Optional[str]): + if value is None: + if "AcquisitionMotion" in self._dataset: + del self._dataset.AcquisitionMotion + else: + self._dataset.AcquisitionMotion = value + + @property + def AcquisitionStartLocationSequence(self) -> Optional[List[AcquisitionStartLocationSequenceItem]]: + if "AcquisitionStartLocationSequence" in self._dataset: + if len(self._AcquisitionStartLocationSequence) == len(self._dataset.AcquisitionStartLocationSequence): + return self._AcquisitionStartLocationSequence + else: + return [AcquisitionStartLocationSequenceItem(x) for x in self._dataset.AcquisitionStartLocationSequence] + return None + + @AcquisitionStartLocationSequence.setter + def AcquisitionStartLocationSequence(self, value: Optional[List[AcquisitionStartLocationSequenceItem]]): + if value is None: + self._AcquisitionStartLocationSequence = [] + if "AcquisitionStartLocationSequence" in self._dataset: + del self._dataset.AcquisitionStartLocationSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionStartLocationSequenceItem) for item in value): + raise ValueError("AcquisitionStartLocationSequence must be a list of AcquisitionStartLocationSequenceItem objects") + else: + self._AcquisitionStartLocationSequence = value + if "AcquisitionStartLocationSequence" not in self._dataset: + self._dataset.AcquisitionStartLocationSequence = pydicom.Sequence() + self._dataset.AcquisitionStartLocationSequence.clear() + self._dataset.AcquisitionStartLocationSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionStartLocation(self, item: AcquisitionStartLocationSequenceItem): + if not isinstance(item, AcquisitionStartLocationSequenceItem): + raise ValueError("Item must be an instance of AcquisitionStartLocationSequenceItem") + self._AcquisitionStartLocationSequence.append(item) + if "AcquisitionStartLocationSequence" not in self._dataset: + self._dataset.AcquisitionStartLocationSequence = pydicom.Sequence() + self._dataset.AcquisitionStartLocationSequence.append(item.to_dataset()) + + @property + def AcquisitionEndLocationSequence(self) -> Optional[List[AcquisitionEndLocationSequenceItem]]: + if "AcquisitionEndLocationSequence" in self._dataset: + if len(self._AcquisitionEndLocationSequence) == len(self._dataset.AcquisitionEndLocationSequence): + return self._AcquisitionEndLocationSequence + else: + return [AcquisitionEndLocationSequenceItem(x) for x in self._dataset.AcquisitionEndLocationSequence] + return None + + @AcquisitionEndLocationSequence.setter + def AcquisitionEndLocationSequence(self, value: Optional[List[AcquisitionEndLocationSequenceItem]]): + if value is None: + self._AcquisitionEndLocationSequence = [] + if "AcquisitionEndLocationSequence" in self._dataset: + del self._dataset.AcquisitionEndLocationSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionEndLocationSequenceItem) for item in value): + raise ValueError("AcquisitionEndLocationSequence must be a list of AcquisitionEndLocationSequenceItem objects") + else: + self._AcquisitionEndLocationSequence = value + if "AcquisitionEndLocationSequence" not in self._dataset: + self._dataset.AcquisitionEndLocationSequence = pydicom.Sequence() + self._dataset.AcquisitionEndLocationSequence.clear() + self._dataset.AcquisitionEndLocationSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionEndLocation(self, item: AcquisitionEndLocationSequenceItem): + if not isinstance(item, AcquisitionEndLocationSequenceItem): + raise ValueError("Item must be an instance of AcquisitionEndLocationSequenceItem") + self._AcquisitionEndLocationSequence.append(item) + if "AcquisitionEndLocationSequence" not in self._dataset: + self._dataset.AcquisitionEndLocationSequence = pydicom.Sequence() + self._dataset.AcquisitionEndLocationSequence.append(item.to_dataset()) + + @property + def RequestedSeriesDescription(self) -> Optional[str]: + if "RequestedSeriesDescription" in self._dataset: + return self._dataset.RequestedSeriesDescription + return None + + @RequestedSeriesDescription.setter + def RequestedSeriesDescription(self, value: Optional[str]): + if value is None: + if "RequestedSeriesDescription" in self._dataset: + del self._dataset.RequestedSeriesDescription + else: + self._dataset.RequestedSeriesDescription = value + + @property + def CTDIvolNotificationTrigger(self) -> Optional[float]: + if "CTDIvolNotificationTrigger" in self._dataset: + return self._dataset.CTDIvolNotificationTrigger + return None + + @CTDIvolNotificationTrigger.setter + def CTDIvolNotificationTrigger(self, value: Optional[float]): + if value is None: + if "CTDIvolNotificationTrigger" in self._dataset: + del self._dataset.CTDIvolNotificationTrigger + else: + self._dataset.CTDIvolNotificationTrigger = value + + @property + def DLPNotificationTrigger(self) -> Optional[float]: + if "DLPNotificationTrigger" in self._dataset: + return self._dataset.DLPNotificationTrigger + return None + + @DLPNotificationTrigger.setter + def DLPNotificationTrigger(self, value: Optional[float]): + if value is None: + if "DLPNotificationTrigger" in self._dataset: + del self._dataset.DLPNotificationTrigger + else: + self._dataset.DLPNotificationTrigger = value diff --git a/tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item_1.py b/tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item_1.py new file mode 100644 index 0000000..3d8de5e --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_protocol_element_sequence_item_1.py @@ -0,0 +1,448 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .xa_acquisition_phase_details_sequence_item import ( + XAAcquisitionPhaseDetailsSequenceItem, +) +from .xa_plane_details_sequence_item import XAPlaneDetailsSequenceItem + + +class AcquisitionProtocolElementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._XAAcquisitionPhaseDetailsSequence: List[XAAcquisitionPhaseDetailsSequenceItem] = [] + self._XAPlaneDetailsSequence: List[XAPlaneDetailsSequenceItem] = [] + self._RequestedSeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def RadiationSetting(self) -> Optional[str]: + if "RadiationSetting" in self._dataset: + return self._dataset.RadiationSetting + return None + + @RadiationSetting.setter + def RadiationSetting(self, value: Optional[str]): + if value is None: + if "RadiationSetting" in self._dataset: + del self._dataset.RadiationSetting + else: + self._dataset.RadiationSetting = value + + @property + def AcquisitionMode(self) -> Optional[str]: + if "AcquisitionMode" in self._dataset: + return self._dataset.AcquisitionMode + return None + + @AcquisitionMode.setter + def AcquisitionMode(self, value: Optional[str]): + if value is None: + if "AcquisitionMode" in self._dataset: + del self._dataset.AcquisitionMode + else: + self._dataset.AcquisitionMode = value + + @property + def DoseModeName(self) -> Optional[str]: + if "DoseModeName" in self._dataset: + return self._dataset.DoseModeName + return None + + @DoseModeName.setter + def DoseModeName(self, value: Optional[str]): + if value is None: + if "DoseModeName" in self._dataset: + del self._dataset.DoseModeName + else: + self._dataset.DoseModeName = value + + @property + def AcquiredSubtractionMaskFlag(self) -> Optional[str]: + if "AcquiredSubtractionMaskFlag" in self._dataset: + return self._dataset.AcquiredSubtractionMaskFlag + return None + + @AcquiredSubtractionMaskFlag.setter + def AcquiredSubtractionMaskFlag(self, value: Optional[str]): + if value is None: + if "AcquiredSubtractionMaskFlag" in self._dataset: + del self._dataset.AcquiredSubtractionMaskFlag + else: + self._dataset.AcquiredSubtractionMaskFlag = value + + @property + def FluoroscopyPersistenceFlag(self) -> Optional[str]: + if "FluoroscopyPersistenceFlag" in self._dataset: + return self._dataset.FluoroscopyPersistenceFlag + return None + + @FluoroscopyPersistenceFlag.setter + def FluoroscopyPersistenceFlag(self, value: Optional[str]): + if value is None: + if "FluoroscopyPersistenceFlag" in self._dataset: + del self._dataset.FluoroscopyPersistenceFlag + else: + self._dataset.FluoroscopyPersistenceFlag = value + + @property + def FluoroscopyLastImageHoldPersistenceFlag(self) -> Optional[str]: + if "FluoroscopyLastImageHoldPersistenceFlag" in self._dataset: + return self._dataset.FluoroscopyLastImageHoldPersistenceFlag + return None + + @FluoroscopyLastImageHoldPersistenceFlag.setter + def FluoroscopyLastImageHoldPersistenceFlag(self, value: Optional[str]): + if value is None: + if "FluoroscopyLastImageHoldPersistenceFlag" in self._dataset: + del self._dataset.FluoroscopyLastImageHoldPersistenceFlag + else: + self._dataset.FluoroscopyLastImageHoldPersistenceFlag = value + + @property + def UpperLimitNumberOfPersistentFluoroscopyFrames(self) -> Optional[int]: + if "UpperLimitNumberOfPersistentFluoroscopyFrames" in self._dataset: + return self._dataset.UpperLimitNumberOfPersistentFluoroscopyFrames + return None + + @UpperLimitNumberOfPersistentFluoroscopyFrames.setter + def UpperLimitNumberOfPersistentFluoroscopyFrames(self, value: Optional[int]): + if value is None: + if "UpperLimitNumberOfPersistentFluoroscopyFrames" in self._dataset: + del self._dataset.UpperLimitNumberOfPersistentFluoroscopyFrames + else: + self._dataset.UpperLimitNumberOfPersistentFluoroscopyFrames = value + + @property + def ContrastBolusAutoInjectionTriggerFlag(self) -> Optional[str]: + if "ContrastBolusAutoInjectionTriggerFlag" in self._dataset: + return self._dataset.ContrastBolusAutoInjectionTriggerFlag + return None + + @ContrastBolusAutoInjectionTriggerFlag.setter + def ContrastBolusAutoInjectionTriggerFlag(self, value: Optional[str]): + if value is None: + if "ContrastBolusAutoInjectionTriggerFlag" in self._dataset: + del self._dataset.ContrastBolusAutoInjectionTriggerFlag + else: + self._dataset.ContrastBolusAutoInjectionTriggerFlag = value + + @property + def ContrastBolusInjectionDelay(self) -> Optional[float]: + if "ContrastBolusInjectionDelay" in self._dataset: + return self._dataset.ContrastBolusInjectionDelay + return None + + @ContrastBolusInjectionDelay.setter + def ContrastBolusInjectionDelay(self, value: Optional[float]): + if value is None: + if "ContrastBolusInjectionDelay" in self._dataset: + del self._dataset.ContrastBolusInjectionDelay + else: + self._dataset.ContrastBolusInjectionDelay = value + + @property + def XAAcquisitionPhaseDetailsSequence(self) -> Optional[List[XAAcquisitionPhaseDetailsSequenceItem]]: + if "XAAcquisitionPhaseDetailsSequence" in self._dataset: + if len(self._XAAcquisitionPhaseDetailsSequence) == len(self._dataset.XAAcquisitionPhaseDetailsSequence): + return self._XAAcquisitionPhaseDetailsSequence + else: + return [XAAcquisitionPhaseDetailsSequenceItem(x) for x in self._dataset.XAAcquisitionPhaseDetailsSequence] + return None + + @XAAcquisitionPhaseDetailsSequence.setter + def XAAcquisitionPhaseDetailsSequence(self, value: Optional[List[XAAcquisitionPhaseDetailsSequenceItem]]): + if value is None: + self._XAAcquisitionPhaseDetailsSequence = [] + if "XAAcquisitionPhaseDetailsSequence" in self._dataset: + del self._dataset.XAAcquisitionPhaseDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAAcquisitionPhaseDetailsSequenceItem) for item in value): + raise ValueError( + "XAAcquisitionPhaseDetailsSequence must be a list of XAAcquisitionPhaseDetailsSequenceItem objects" + ) + else: + self._XAAcquisitionPhaseDetailsSequence = value + if "XAAcquisitionPhaseDetailsSequence" not in self._dataset: + self._dataset.XAAcquisitionPhaseDetailsSequence = pydicom.Sequence() + self._dataset.XAAcquisitionPhaseDetailsSequence.clear() + self._dataset.XAAcquisitionPhaseDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_XAAcquisitionPhaseDetails(self, item: XAAcquisitionPhaseDetailsSequenceItem): + if not isinstance(item, XAAcquisitionPhaseDetailsSequenceItem): + raise ValueError("Item must be an instance of XAAcquisitionPhaseDetailsSequenceItem") + self._XAAcquisitionPhaseDetailsSequence.append(item) + if "XAAcquisitionPhaseDetailsSequence" not in self._dataset: + self._dataset.XAAcquisitionPhaseDetailsSequence = pydicom.Sequence() + self._dataset.XAAcquisitionPhaseDetailsSequence.append(item.to_dataset()) + + @property + def XAPlaneDetailsSequence(self) -> Optional[List[XAPlaneDetailsSequenceItem]]: + if "XAPlaneDetailsSequence" in self._dataset: + if len(self._XAPlaneDetailsSequence) == len(self._dataset.XAPlaneDetailsSequence): + return self._XAPlaneDetailsSequence + else: + return [XAPlaneDetailsSequenceItem(x) for x in self._dataset.XAPlaneDetailsSequence] + return None + + @XAPlaneDetailsSequence.setter + def XAPlaneDetailsSequence(self, value: Optional[List[XAPlaneDetailsSequenceItem]]): + if value is None: + self._XAPlaneDetailsSequence = [] + if "XAPlaneDetailsSequence" in self._dataset: + del self._dataset.XAPlaneDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAPlaneDetailsSequenceItem) for item in value): + raise ValueError("XAPlaneDetailsSequence must be a list of XAPlaneDetailsSequenceItem objects") + else: + self._XAPlaneDetailsSequence = value + if "XAPlaneDetailsSequence" not in self._dataset: + self._dataset.XAPlaneDetailsSequence = pydicom.Sequence() + self._dataset.XAPlaneDetailsSequence.clear() + self._dataset.XAPlaneDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_XAPlaneDetails(self, item: XAPlaneDetailsSequenceItem): + if not isinstance(item, XAPlaneDetailsSequenceItem): + raise ValueError("Item must be an instance of XAPlaneDetailsSequenceItem") + self._XAPlaneDetailsSequence.append(item) + if "XAPlaneDetailsSequence" not in self._dataset: + self._dataset.XAPlaneDetailsSequence = pydicom.Sequence() + self._dataset.XAPlaneDetailsSequence.append(item.to_dataset()) + + @property + def RequestedSeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + if len(self._RequestedSeriesDescriptionCodeSequence) == len(self._dataset.RequestedSeriesDescriptionCodeSequence): + return self._RequestedSeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestedSeriesDescriptionCodeSequence] + return None + + @RequestedSeriesDescriptionCodeSequence.setter + def RequestedSeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestedSeriesDescriptionCodeSequence = [] + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.RequestedSeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestedSeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestedSeriesDescriptionCodeSequence = value + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.clear() + self._dataset.RequestedSeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestedSeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestedSeriesDescriptionCodeSequence.append(item) + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def PlanesInAcquisition(self) -> Optional[str]: + if "PlanesInAcquisition" in self._dataset: + return self._dataset.PlanesInAcquisition + return None + + @PlanesInAcquisition.setter + def PlanesInAcquisition(self, value: Optional[str]): + if value is None: + if "PlanesInAcquisition" in self._dataset: + del self._dataset.PlanesInAcquisition + else: + self._dataset.PlanesInAcquisition = value + + @property + def ContrastBolusIngredientOpaque(self) -> Optional[str]: + if "ContrastBolusIngredientOpaque" in self._dataset: + return self._dataset.ContrastBolusIngredientOpaque + return None + + @ContrastBolusIngredientOpaque.setter + def ContrastBolusIngredientOpaque(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredientOpaque" in self._dataset: + del self._dataset.ContrastBolusIngredientOpaque + else: + self._dataset.ContrastBolusIngredientOpaque = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ProtocolElementNumber(self) -> Optional[int]: + if "ProtocolElementNumber" in self._dataset: + return self._dataset.ProtocolElementNumber + return None + + @ProtocolElementNumber.setter + def ProtocolElementNumber(self, value: Optional[int]): + if value is None: + if "ProtocolElementNumber" in self._dataset: + del self._dataset.ProtocolElementNumber + else: + self._dataset.ProtocolElementNumber = value + + @property + def ProtocolElementName(self) -> Optional[str]: + if "ProtocolElementName" in self._dataset: + return self._dataset.ProtocolElementName + return None + + @ProtocolElementName.setter + def ProtocolElementName(self, value: Optional[str]): + if value is None: + if "ProtocolElementName" in self._dataset: + del self._dataset.ProtocolElementName + else: + self._dataset.ProtocolElementName = value + + @property + def ProtocolElementCharacteristicsSummary(self) -> Optional[str]: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + return self._dataset.ProtocolElementCharacteristicsSummary + return None + + @ProtocolElementCharacteristicsSummary.setter + def ProtocolElementCharacteristicsSummary(self, value: Optional[str]): + if value is None: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + del self._dataset.ProtocolElementCharacteristicsSummary + else: + self._dataset.ProtocolElementCharacteristicsSummary = value + + @property + def ProtocolElementPurpose(self) -> Optional[str]: + if "ProtocolElementPurpose" in self._dataset: + return self._dataset.ProtocolElementPurpose + return None + + @ProtocolElementPurpose.setter + def ProtocolElementPurpose(self, value: Optional[str]): + if value is None: + if "ProtocolElementPurpose" in self._dataset: + del self._dataset.ProtocolElementPurpose + else: + self._dataset.ProtocolElementPurpose = value + + @property + def RequestedSeriesDescription(self) -> Optional[str]: + if "RequestedSeriesDescription" in self._dataset: + return self._dataset.RequestedSeriesDescription + return None + + @RequestedSeriesDescription.setter + def RequestedSeriesDescription(self, value: Optional[str]): + if value is None: + if "RequestedSeriesDescription" in self._dataset: + del self._dataset.RequestedSeriesDescription + else: + self._dataset.RequestedSeriesDescription = value diff --git a/tdwii_plus_examples/domain_model/acquisition_start_location_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_start_location_sequence_item.py new file mode 100644 index 0000000..246dfe6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_start_location_sequence_item.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AcquisitionStartLocationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferenceBasisCodeSequence: List[CodeSequenceItem] = [] + self._ReferenceGeometryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferenceLocationLabel(self) -> Optional[str]: + if "ReferenceLocationLabel" in self._dataset: + return self._dataset.ReferenceLocationLabel + return None + + @ReferenceLocationLabel.setter + def ReferenceLocationLabel(self, value: Optional[str]): + if value is None: + if "ReferenceLocationLabel" in self._dataset: + del self._dataset.ReferenceLocationLabel + else: + self._dataset.ReferenceLocationLabel = value + + @property + def ReferenceLocationDescription(self) -> Optional[str]: + if "ReferenceLocationDescription" in self._dataset: + return self._dataset.ReferenceLocationDescription + return None + + @ReferenceLocationDescription.setter + def ReferenceLocationDescription(self, value: Optional[str]): + if value is None: + if "ReferenceLocationDescription" in self._dataset: + del self._dataset.ReferenceLocationDescription + else: + self._dataset.ReferenceLocationDescription = value + + @property + def ReferenceBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceBasisCodeSequence" in self._dataset: + if len(self._ReferenceBasisCodeSequence) == len(self._dataset.ReferenceBasisCodeSequence): + return self._ReferenceBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceBasisCodeSequence] + return None + + @ReferenceBasisCodeSequence.setter + def ReferenceBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceBasisCodeSequence = [] + if "ReferenceBasisCodeSequence" in self._dataset: + del self._dataset.ReferenceBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceBasisCodeSequence = value + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.clear() + self._dataset.ReferenceBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceBasisCodeSequence.append(item) + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.append(item.to_dataset()) + + @property + def ReferenceGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceGeometryCodeSequence" in self._dataset: + if len(self._ReferenceGeometryCodeSequence) == len(self._dataset.ReferenceGeometryCodeSequence): + return self._ReferenceGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceGeometryCodeSequence] + return None + + @ReferenceGeometryCodeSequence.setter + def ReferenceGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceGeometryCodeSequence = [] + if "ReferenceGeometryCodeSequence" in self._dataset: + del self._dataset.ReferenceGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceGeometryCodeSequence = value + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.clear() + self._dataset.ReferenceGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceGeometryCodeSequence.append(item) + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.append(item.to_dataset()) + + @property + def OffsetDistance(self) -> Optional[Decimal]: + if "OffsetDistance" in self._dataset: + return self._dataset.OffsetDistance + return None + + @OffsetDistance.setter + def OffsetDistance(self, value: Optional[Decimal]): + if value is None: + if "OffsetDistance" in self._dataset: + del self._dataset.OffsetDistance + else: + self._dataset.OffsetDistance = value + + @property + def OffsetDirection(self) -> Optional[str]: + if "OffsetDirection" in self._dataset: + return self._dataset.OffsetDirection + return None + + @OffsetDirection.setter + def OffsetDirection(self, value: Optional[str]): + if value is None: + if "OffsetDirection" in self._dataset: + del self._dataset.OffsetDirection + else: + self._dataset.OffsetDirection = value diff --git a/tdwii_plus_examples/domain_model/acquisition_subtask_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_subtask_sequence_item.py new file mode 100644 index 0000000..61b6f5c --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_subtask_sequence_item.py @@ -0,0 +1,603 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_initiation_sequence_item import AcquisitionInitiationSequenceItem +from .additional_rt_accessory_device_sequence_item import ( + AdditionalRTAccessoryDeviceSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .ct_imaging_acquisition_parameter_sequence_item import ( + CTImagingAcquisitionParameterSequenceItem, +) +from .device_specific_acquisition_parameter_sequence_item import ( + DeviceSpecificAcquisitionParameterSequenceItem, +) +from .kv_imaging_generation_parameters_sequence_item import ( + KVImagingGenerationParametersSequenceItem, +) +from .mv_imaging_generation_parameters_sequence_item import ( + MVImagingGenerationParametersSequenceItem, +) +from .position_acquisition_template_identification_sequence_item import ( + PositionAcquisitionTemplateIdentificationSequenceItem, +) +from .projection_imaging_acquisition_parameter_sequence_item import ( + ProjectionImagingAcquisitionParameterSequenceItem, +) +from .referenced_baseline_parameters_rt_radiation_instance_sequence_item import ( + ReferencedBaselineParametersRTRadiationInstanceSequenceItem, +) +from .referenced_position_reference_instance_sequence_item import ( + ReferencedPositionReferenceInstanceSequenceItem, +) + + +class AcquisitionSubtaskSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SubtaskWorkitemCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedBaselineParametersRTRadiationInstanceSequence: List[ + ReferencedBaselineParametersRTRadiationInstanceSequenceItem + ] = [] + self._PositionAcquisitionTemplateIdentificationSequence: List[ + PositionAcquisitionTemplateIdentificationSequenceItem + ] = [] + self._ProjectionImagingAcquisitionParameterSequence: List[ProjectionImagingAcquisitionParameterSequenceItem] = [] + self._CTImagingAcquisitionParameterSequence: List[CTImagingAcquisitionParameterSequenceItem] = [] + self._KVImagingGenerationParametersSequence: List[KVImagingGenerationParametersSequenceItem] = [] + self._MVImagingGenerationParametersSequence: List[MVImagingGenerationParametersSequenceItem] = [] + self._AdditionalRTAccessoryDeviceSequence: List[AdditionalRTAccessoryDeviceSequenceItem] = [] + self._DeviceSpecificAcquisitionParameterSequence: List[DeviceSpecificAcquisitionParameterSequenceItem] = [] + self._ReferencedPositionReferenceInstanceSequence: List[ReferencedPositionReferenceInstanceSequenceItem] = [] + self._AcquisitionInitiationSequence: List[AcquisitionInitiationSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SubtaskWorkitemCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SubtaskWorkitemCodeSequence" in self._dataset: + if len(self._SubtaskWorkitemCodeSequence) == len(self._dataset.SubtaskWorkitemCodeSequence): + return self._SubtaskWorkitemCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SubtaskWorkitemCodeSequence] + return None + + @SubtaskWorkitemCodeSequence.setter + def SubtaskWorkitemCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SubtaskWorkitemCodeSequence = [] + if "SubtaskWorkitemCodeSequence" in self._dataset: + del self._dataset.SubtaskWorkitemCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SubtaskWorkitemCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SubtaskWorkitemCodeSequence = value + if "SubtaskWorkitemCodeSequence" not in self._dataset: + self._dataset.SubtaskWorkitemCodeSequence = pydicom.Sequence() + self._dataset.SubtaskWorkitemCodeSequence.clear() + self._dataset.SubtaskWorkitemCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SubtaskWorkitemCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SubtaskWorkitemCodeSequence.append(item) + if "SubtaskWorkitemCodeSequence" not in self._dataset: + self._dataset.SubtaskWorkitemCodeSequence = pydicom.Sequence() + self._dataset.SubtaskWorkitemCodeSequence.append(item.to_dataset()) + + @property + def AcquisitionSubtaskIndex(self) -> Optional[int]: + if "AcquisitionSubtaskIndex" in self._dataset: + return self._dataset.AcquisitionSubtaskIndex + return None + + @AcquisitionSubtaskIndex.setter + def AcquisitionSubtaskIndex(self, value: Optional[int]): + if value is None: + if "AcquisitionSubtaskIndex" in self._dataset: + del self._dataset.AcquisitionSubtaskIndex + else: + self._dataset.AcquisitionSubtaskIndex = value + + @property + def ReferencedBaselineParametersRTRadiationInstanceSequence( + self, + ) -> Optional[List[ReferencedBaselineParametersRTRadiationInstanceSequenceItem]]: + if "ReferencedBaselineParametersRTRadiationInstanceSequence" in self._dataset: + if len(self._ReferencedBaselineParametersRTRadiationInstanceSequence) == len( + self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence + ): + return self._ReferencedBaselineParametersRTRadiationInstanceSequence + else: + return [ + ReferencedBaselineParametersRTRadiationInstanceSequenceItem(x) + for x in self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence + ] + return None + + @ReferencedBaselineParametersRTRadiationInstanceSequence.setter + def ReferencedBaselineParametersRTRadiationInstanceSequence( + self, value: Optional[List[ReferencedBaselineParametersRTRadiationInstanceSequenceItem]] + ): + if value is None: + self._ReferencedBaselineParametersRTRadiationInstanceSequence = [] + if "ReferencedBaselineParametersRTRadiationInstanceSequence" in self._dataset: + del self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedBaselineParametersRTRadiationInstanceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedBaselineParametersRTRadiationInstanceSequence must be a list of" + " ReferencedBaselineParametersRTRadiationInstanceSequenceItem objects" + ) + else: + self._ReferencedBaselineParametersRTRadiationInstanceSequence = value + if "ReferencedBaselineParametersRTRadiationInstanceSequence" not in self._dataset: + self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence.clear() + self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBaselineParametersRTRadiationInstance( + self, item: ReferencedBaselineParametersRTRadiationInstanceSequenceItem + ): + if not isinstance(item, ReferencedBaselineParametersRTRadiationInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedBaselineParametersRTRadiationInstanceSequenceItem") + self._ReferencedBaselineParametersRTRadiationInstanceSequence.append(item) + if "ReferencedBaselineParametersRTRadiationInstanceSequence" not in self._dataset: + self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedBaselineParametersRTRadiationInstanceSequence.append(item.to_dataset()) + + @property + def PositionAcquisitionTemplateIdentificationSequence( + self, + ) -> Optional[List[PositionAcquisitionTemplateIdentificationSequenceItem]]: + if "PositionAcquisitionTemplateIdentificationSequence" in self._dataset: + if len(self._PositionAcquisitionTemplateIdentificationSequence) == len( + self._dataset.PositionAcquisitionTemplateIdentificationSequence + ): + return self._PositionAcquisitionTemplateIdentificationSequence + else: + return [ + PositionAcquisitionTemplateIdentificationSequenceItem(x) + for x in self._dataset.PositionAcquisitionTemplateIdentificationSequence + ] + return None + + @PositionAcquisitionTemplateIdentificationSequence.setter + def PositionAcquisitionTemplateIdentificationSequence( + self, value: Optional[List[PositionAcquisitionTemplateIdentificationSequenceItem]] + ): + if value is None: + self._PositionAcquisitionTemplateIdentificationSequence = [] + if "PositionAcquisitionTemplateIdentificationSequence" in self._dataset: + del self._dataset.PositionAcquisitionTemplateIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PositionAcquisitionTemplateIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PositionAcquisitionTemplateIdentificationSequence must be a list of" + " PositionAcquisitionTemplateIdentificationSequenceItem objects" + ) + else: + self._PositionAcquisitionTemplateIdentificationSequence = value + if "PositionAcquisitionTemplateIdentificationSequence" not in self._dataset: + self._dataset.PositionAcquisitionTemplateIdentificationSequence = pydicom.Sequence() + self._dataset.PositionAcquisitionTemplateIdentificationSequence.clear() + self._dataset.PositionAcquisitionTemplateIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PositionAcquisitionTemplateIdentification(self, item: PositionAcquisitionTemplateIdentificationSequenceItem): + if not isinstance(item, PositionAcquisitionTemplateIdentificationSequenceItem): + raise ValueError("Item must be an instance of PositionAcquisitionTemplateIdentificationSequenceItem") + self._PositionAcquisitionTemplateIdentificationSequence.append(item) + if "PositionAcquisitionTemplateIdentificationSequence" not in self._dataset: + self._dataset.PositionAcquisitionTemplateIdentificationSequence = pydicom.Sequence() + self._dataset.PositionAcquisitionTemplateIdentificationSequence.append(item.to_dataset()) + + @property + def ProjectionImagingAcquisitionParameterSequence( + self, + ) -> Optional[List[ProjectionImagingAcquisitionParameterSequenceItem]]: + if "ProjectionImagingAcquisitionParameterSequence" in self._dataset: + if len(self._ProjectionImagingAcquisitionParameterSequence) == len( + self._dataset.ProjectionImagingAcquisitionParameterSequence + ): + return self._ProjectionImagingAcquisitionParameterSequence + else: + return [ + ProjectionImagingAcquisitionParameterSequenceItem(x) + for x in self._dataset.ProjectionImagingAcquisitionParameterSequence + ] + return None + + @ProjectionImagingAcquisitionParameterSequence.setter + def ProjectionImagingAcquisitionParameterSequence( + self, value: Optional[List[ProjectionImagingAcquisitionParameterSequenceItem]] + ): + if value is None: + self._ProjectionImagingAcquisitionParameterSequence = [] + if "ProjectionImagingAcquisitionParameterSequence" in self._dataset: + del self._dataset.ProjectionImagingAcquisitionParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, ProjectionImagingAcquisitionParameterSequenceItem) for item in value + ): + raise ValueError( + "ProjectionImagingAcquisitionParameterSequence must be a list of" + " ProjectionImagingAcquisitionParameterSequenceItem objects" + ) + else: + self._ProjectionImagingAcquisitionParameterSequence = value + if "ProjectionImagingAcquisitionParameterSequence" not in self._dataset: + self._dataset.ProjectionImagingAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.ProjectionImagingAcquisitionParameterSequence.clear() + self._dataset.ProjectionImagingAcquisitionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_ProjectionImagingAcquisitionParameter(self, item: ProjectionImagingAcquisitionParameterSequenceItem): + if not isinstance(item, ProjectionImagingAcquisitionParameterSequenceItem): + raise ValueError("Item must be an instance of ProjectionImagingAcquisitionParameterSequenceItem") + self._ProjectionImagingAcquisitionParameterSequence.append(item) + if "ProjectionImagingAcquisitionParameterSequence" not in self._dataset: + self._dataset.ProjectionImagingAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.ProjectionImagingAcquisitionParameterSequence.append(item.to_dataset()) + + @property + def CTImagingAcquisitionParameterSequence(self) -> Optional[List[CTImagingAcquisitionParameterSequenceItem]]: + if "CTImagingAcquisitionParameterSequence" in self._dataset: + if len(self._CTImagingAcquisitionParameterSequence) == len(self._dataset.CTImagingAcquisitionParameterSequence): + return self._CTImagingAcquisitionParameterSequence + else: + return [ + CTImagingAcquisitionParameterSequenceItem(x) for x in self._dataset.CTImagingAcquisitionParameterSequence + ] + return None + + @CTImagingAcquisitionParameterSequence.setter + def CTImagingAcquisitionParameterSequence(self, value: Optional[List[CTImagingAcquisitionParameterSequenceItem]]): + if value is None: + self._CTImagingAcquisitionParameterSequence = [] + if "CTImagingAcquisitionParameterSequence" in self._dataset: + del self._dataset.CTImagingAcquisitionParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, CTImagingAcquisitionParameterSequenceItem) for item in value + ): + raise ValueError( + "CTImagingAcquisitionParameterSequence must be a list of CTImagingAcquisitionParameterSequenceItem objects" + ) + else: + self._CTImagingAcquisitionParameterSequence = value + if "CTImagingAcquisitionParameterSequence" not in self._dataset: + self._dataset.CTImagingAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.CTImagingAcquisitionParameterSequence.clear() + self._dataset.CTImagingAcquisitionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_CTImagingAcquisitionParameter(self, item: CTImagingAcquisitionParameterSequenceItem): + if not isinstance(item, CTImagingAcquisitionParameterSequenceItem): + raise ValueError("Item must be an instance of CTImagingAcquisitionParameterSequenceItem") + self._CTImagingAcquisitionParameterSequence.append(item) + if "CTImagingAcquisitionParameterSequence" not in self._dataset: + self._dataset.CTImagingAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.CTImagingAcquisitionParameterSequence.append(item.to_dataset()) + + @property + def KVImagingGenerationParametersSequence(self) -> Optional[List[KVImagingGenerationParametersSequenceItem]]: + if "KVImagingGenerationParametersSequence" in self._dataset: + if len(self._KVImagingGenerationParametersSequence) == len(self._dataset.KVImagingGenerationParametersSequence): + return self._KVImagingGenerationParametersSequence + else: + return [ + KVImagingGenerationParametersSequenceItem(x) for x in self._dataset.KVImagingGenerationParametersSequence + ] + return None + + @KVImagingGenerationParametersSequence.setter + def KVImagingGenerationParametersSequence(self, value: Optional[List[KVImagingGenerationParametersSequenceItem]]): + if value is None: + self._KVImagingGenerationParametersSequence = [] + if "KVImagingGenerationParametersSequence" in self._dataset: + del self._dataset.KVImagingGenerationParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, KVImagingGenerationParametersSequenceItem) for item in value + ): + raise ValueError( + "KVImagingGenerationParametersSequence must be a list of KVImagingGenerationParametersSequenceItem objects" + ) + else: + self._KVImagingGenerationParametersSequence = value + if "KVImagingGenerationParametersSequence" not in self._dataset: + self._dataset.KVImagingGenerationParametersSequence = pydicom.Sequence() + self._dataset.KVImagingGenerationParametersSequence.clear() + self._dataset.KVImagingGenerationParametersSequence.extend([item.to_dataset() for item in value]) + + def add_KVImagingGenerationParameters(self, item: KVImagingGenerationParametersSequenceItem): + if not isinstance(item, KVImagingGenerationParametersSequenceItem): + raise ValueError("Item must be an instance of KVImagingGenerationParametersSequenceItem") + self._KVImagingGenerationParametersSequence.append(item) + if "KVImagingGenerationParametersSequence" not in self._dataset: + self._dataset.KVImagingGenerationParametersSequence = pydicom.Sequence() + self._dataset.KVImagingGenerationParametersSequence.append(item.to_dataset()) + + @property + def MVImagingGenerationParametersSequence(self) -> Optional[List[MVImagingGenerationParametersSequenceItem]]: + if "MVImagingGenerationParametersSequence" in self._dataset: + if len(self._MVImagingGenerationParametersSequence) == len(self._dataset.MVImagingGenerationParametersSequence): + return self._MVImagingGenerationParametersSequence + else: + return [ + MVImagingGenerationParametersSequenceItem(x) for x in self._dataset.MVImagingGenerationParametersSequence + ] + return None + + @MVImagingGenerationParametersSequence.setter + def MVImagingGenerationParametersSequence(self, value: Optional[List[MVImagingGenerationParametersSequenceItem]]): + if value is None: + self._MVImagingGenerationParametersSequence = [] + if "MVImagingGenerationParametersSequence" in self._dataset: + del self._dataset.MVImagingGenerationParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, MVImagingGenerationParametersSequenceItem) for item in value + ): + raise ValueError( + "MVImagingGenerationParametersSequence must be a list of MVImagingGenerationParametersSequenceItem objects" + ) + else: + self._MVImagingGenerationParametersSequence = value + if "MVImagingGenerationParametersSequence" not in self._dataset: + self._dataset.MVImagingGenerationParametersSequence = pydicom.Sequence() + self._dataset.MVImagingGenerationParametersSequence.clear() + self._dataset.MVImagingGenerationParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MVImagingGenerationParameters(self, item: MVImagingGenerationParametersSequenceItem): + if not isinstance(item, MVImagingGenerationParametersSequenceItem): + raise ValueError("Item must be an instance of MVImagingGenerationParametersSequenceItem") + self._MVImagingGenerationParametersSequence.append(item) + if "MVImagingGenerationParametersSequence" not in self._dataset: + self._dataset.MVImagingGenerationParametersSequence = pydicom.Sequence() + self._dataset.MVImagingGenerationParametersSequence.append(item.to_dataset()) + + @property + def AcquisitionSignalType(self) -> Optional[str]: + if "AcquisitionSignalType" in self._dataset: + return self._dataset.AcquisitionSignalType + return None + + @AcquisitionSignalType.setter + def AcquisitionSignalType(self, value: Optional[str]): + if value is None: + if "AcquisitionSignalType" in self._dataset: + del self._dataset.AcquisitionSignalType + else: + self._dataset.AcquisitionSignalType = value + + @property + def AcquisitionMethod(self) -> Optional[str]: + if "AcquisitionMethod" in self._dataset: + return self._dataset.AcquisitionMethod + return None + + @AcquisitionMethod.setter + def AcquisitionMethod(self, value: Optional[str]): + if value is None: + if "AcquisitionMethod" in self._dataset: + del self._dataset.AcquisitionMethod + else: + self._dataset.AcquisitionMethod = value + + @property + def AdditionalRTAccessoryDeviceSequence(self) -> Optional[List[AdditionalRTAccessoryDeviceSequenceItem]]: + if "AdditionalRTAccessoryDeviceSequence" in self._dataset: + if len(self._AdditionalRTAccessoryDeviceSequence) == len(self._dataset.AdditionalRTAccessoryDeviceSequence): + return self._AdditionalRTAccessoryDeviceSequence + else: + return [AdditionalRTAccessoryDeviceSequenceItem(x) for x in self._dataset.AdditionalRTAccessoryDeviceSequence] + return None + + @AdditionalRTAccessoryDeviceSequence.setter + def AdditionalRTAccessoryDeviceSequence(self, value: Optional[List[AdditionalRTAccessoryDeviceSequenceItem]]): + if value is None: + self._AdditionalRTAccessoryDeviceSequence = [] + if "AdditionalRTAccessoryDeviceSequence" in self._dataset: + del self._dataset.AdditionalRTAccessoryDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, AdditionalRTAccessoryDeviceSequenceItem) for item in value + ): + raise ValueError( + "AdditionalRTAccessoryDeviceSequence must be a list of AdditionalRTAccessoryDeviceSequenceItem objects" + ) + else: + self._AdditionalRTAccessoryDeviceSequence = value + if "AdditionalRTAccessoryDeviceSequence" not in self._dataset: + self._dataset.AdditionalRTAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.AdditionalRTAccessoryDeviceSequence.clear() + self._dataset.AdditionalRTAccessoryDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_AdditionalRTAccessoryDevice(self, item: AdditionalRTAccessoryDeviceSequenceItem): + if not isinstance(item, AdditionalRTAccessoryDeviceSequenceItem): + raise ValueError("Item must be an instance of AdditionalRTAccessoryDeviceSequenceItem") + self._AdditionalRTAccessoryDeviceSequence.append(item) + if "AdditionalRTAccessoryDeviceSequence" not in self._dataset: + self._dataset.AdditionalRTAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.AdditionalRTAccessoryDeviceSequence.append(item.to_dataset()) + + @property + def DeviceSpecificAcquisitionParameterSequence(self) -> Optional[List[DeviceSpecificAcquisitionParameterSequenceItem]]: + if "DeviceSpecificAcquisitionParameterSequence" in self._dataset: + if len(self._DeviceSpecificAcquisitionParameterSequence) == len( + self._dataset.DeviceSpecificAcquisitionParameterSequence + ): + return self._DeviceSpecificAcquisitionParameterSequence + else: + return [ + DeviceSpecificAcquisitionParameterSequenceItem(x) + for x in self._dataset.DeviceSpecificAcquisitionParameterSequence + ] + return None + + @DeviceSpecificAcquisitionParameterSequence.setter + def DeviceSpecificAcquisitionParameterSequence( + self, value: Optional[List[DeviceSpecificAcquisitionParameterSequenceItem]] + ): + if value is None: + self._DeviceSpecificAcquisitionParameterSequence = [] + if "DeviceSpecificAcquisitionParameterSequence" in self._dataset: + del self._dataset.DeviceSpecificAcquisitionParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, DeviceSpecificAcquisitionParameterSequenceItem) for item in value + ): + raise ValueError( + "DeviceSpecificAcquisitionParameterSequence must be a list of DeviceSpecificAcquisitionParameterSequenceItem" + " objects" + ) + else: + self._DeviceSpecificAcquisitionParameterSequence = value + if "DeviceSpecificAcquisitionParameterSequence" not in self._dataset: + self._dataset.DeviceSpecificAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.DeviceSpecificAcquisitionParameterSequence.clear() + self._dataset.DeviceSpecificAcquisitionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceSpecificAcquisitionParameter(self, item: DeviceSpecificAcquisitionParameterSequenceItem): + if not isinstance(item, DeviceSpecificAcquisitionParameterSequenceItem): + raise ValueError("Item must be an instance of DeviceSpecificAcquisitionParameterSequenceItem") + self._DeviceSpecificAcquisitionParameterSequence.append(item) + if "DeviceSpecificAcquisitionParameterSequence" not in self._dataset: + self._dataset.DeviceSpecificAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.DeviceSpecificAcquisitionParameterSequence.append(item.to_dataset()) + + @property + def ReferencedPositionReferenceInstanceSequence(self) -> Optional[List[ReferencedPositionReferenceInstanceSequenceItem]]: + if "ReferencedPositionReferenceInstanceSequence" in self._dataset: + if len(self._ReferencedPositionReferenceInstanceSequence) == len( + self._dataset.ReferencedPositionReferenceInstanceSequence + ): + return self._ReferencedPositionReferenceInstanceSequence + else: + return [ + ReferencedPositionReferenceInstanceSequenceItem(x) + for x in self._dataset.ReferencedPositionReferenceInstanceSequence + ] + return None + + @ReferencedPositionReferenceInstanceSequence.setter + def ReferencedPositionReferenceInstanceSequence( + self, value: Optional[List[ReferencedPositionReferenceInstanceSequenceItem]] + ): + if value is None: + self._ReferencedPositionReferenceInstanceSequence = [] + if "ReferencedPositionReferenceInstanceSequence" in self._dataset: + del self._dataset.ReferencedPositionReferenceInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPositionReferenceInstanceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPositionReferenceInstanceSequence must be a list of ReferencedPositionReferenceInstanceSequenceItem" + " objects" + ) + else: + self._ReferencedPositionReferenceInstanceSequence = value + if "ReferencedPositionReferenceInstanceSequence" not in self._dataset: + self._dataset.ReferencedPositionReferenceInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedPositionReferenceInstanceSequence.clear() + self._dataset.ReferencedPositionReferenceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPositionReferenceInstance(self, item: ReferencedPositionReferenceInstanceSequenceItem): + if not isinstance(item, ReferencedPositionReferenceInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedPositionReferenceInstanceSequenceItem") + self._ReferencedPositionReferenceInstanceSequence.append(item) + if "ReferencedPositionReferenceInstanceSequence" not in self._dataset: + self._dataset.ReferencedPositionReferenceInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedPositionReferenceInstanceSequence.append(item.to_dataset()) + + @property + def AcquisitionInitiationSequence(self) -> Optional[List[AcquisitionInitiationSequenceItem]]: + if "AcquisitionInitiationSequence" in self._dataset: + if len(self._AcquisitionInitiationSequence) == len(self._dataset.AcquisitionInitiationSequence): + return self._AcquisitionInitiationSequence + else: + return [AcquisitionInitiationSequenceItem(x) for x in self._dataset.AcquisitionInitiationSequence] + return None + + @AcquisitionInitiationSequence.setter + def AcquisitionInitiationSequence(self, value: Optional[List[AcquisitionInitiationSequenceItem]]): + if value is None: + self._AcquisitionInitiationSequence = [] + if "AcquisitionInitiationSequence" in self._dataset: + del self._dataset.AcquisitionInitiationSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionInitiationSequenceItem) for item in value): + raise ValueError("AcquisitionInitiationSequence must be a list of AcquisitionInitiationSequenceItem objects") + else: + self._AcquisitionInitiationSequence = value + if "AcquisitionInitiationSequence" not in self._dataset: + self._dataset.AcquisitionInitiationSequence = pydicom.Sequence() + self._dataset.AcquisitionInitiationSequence.clear() + self._dataset.AcquisitionInitiationSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionInitiation(self, item: AcquisitionInitiationSequenceItem): + if not isinstance(item, AcquisitionInitiationSequenceItem): + raise ValueError("Item must be an instance of AcquisitionInitiationSequenceItem") + self._AcquisitionInitiationSequence.append(item) + if "AcquisitionInitiationSequence" not in self._dataset: + self._dataset.AcquisitionInitiationSequence = pydicom.Sequence() + self._dataset.AcquisitionInitiationSequence.append(item.to_dataset()) + + @property + def ReferencedDeviceIndex(self) -> Optional[int]: + if "ReferencedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDeviceIndex + return None + + @ReferencedDeviceIndex.setter + def ReferencedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDeviceIndex + else: + self._dataset.ReferencedDeviceIndex = value + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value diff --git a/tdwii_plus_examples/domain_model/acquisition_task_applicability_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_task_applicability_sequence_item.py new file mode 100644 index 0000000..e647fd1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_task_applicability_sequence_item.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem +from .referenced_rt_radiation_set_sequence_item import ( + ReferencedRTRadiationSetSequenceItem, +) + + +class AcquisitionTaskApplicabilitySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + self._ReferencedRTRadiationSetSequence: List[ReferencedRTRadiationSetSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSetSequence(self) -> Optional[List[ReferencedRTRadiationSetSequenceItem]]: + if "ReferencedRTRadiationSetSequence" in self._dataset: + if len(self._ReferencedRTRadiationSetSequence) == len(self._dataset.ReferencedRTRadiationSetSequence): + return self._ReferencedRTRadiationSetSequence + else: + return [ReferencedRTRadiationSetSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSetSequence] + return None + + @ReferencedRTRadiationSetSequence.setter + def ReferencedRTRadiationSetSequence(self, value: Optional[List[ReferencedRTRadiationSetSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSetSequence = [] + if "ReferencedRTRadiationSetSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSetSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSetSequence must be a list of ReferencedRTRadiationSetSequenceItem objects") + else: + self._ReferencedRTRadiationSetSequence = value + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.clear() + self._dataset.ReferencedRTRadiationSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationSet(self, item: ReferencedRTRadiationSetSequenceItem): + if not isinstance(item, ReferencedRTRadiationSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSetSequenceItem") + self._ReferencedRTRadiationSetSequence.append(item) + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/acquisition_task_sequence_item.py b/tdwii_plus_examples/domain_model/acquisition_task_sequence_item.py new file mode 100644 index 0000000..e858236 --- /dev/null +++ b/tdwii_plus_examples/domain_model/acquisition_task_sequence_item.py @@ -0,0 +1,178 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_subtask_sequence_item import AcquisitionSubtaskSequenceItem +from .acquisition_task_applicability_sequence_item import ( + AcquisitionTaskApplicabilitySequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .rt_acquisition_patient_position_sequence_item import ( + RTAcquisitionPatientPositionSequenceItem, +) + + +class AcquisitionTaskSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTAcquisitionPatientPositionSequence: List[RTAcquisitionPatientPositionSequenceItem] = [] + self._AcquisitionTaskWorkitemCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionSubtaskSequence: List[AcquisitionSubtaskSequenceItem] = [] + self._AcquisitionTaskApplicabilitySequence: List[AcquisitionTaskApplicabilitySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTAcquisitionPatientPositionSequence(self) -> Optional[List[RTAcquisitionPatientPositionSequenceItem]]: + if "RTAcquisitionPatientPositionSequence" in self._dataset: + if len(self._RTAcquisitionPatientPositionSequence) == len(self._dataset.RTAcquisitionPatientPositionSequence): + return self._RTAcquisitionPatientPositionSequence + else: + return [ + RTAcquisitionPatientPositionSequenceItem(x) for x in self._dataset.RTAcquisitionPatientPositionSequence + ] + return None + + @RTAcquisitionPatientPositionSequence.setter + def RTAcquisitionPatientPositionSequence(self, value: Optional[List[RTAcquisitionPatientPositionSequenceItem]]): + if value is None: + self._RTAcquisitionPatientPositionSequence = [] + if "RTAcquisitionPatientPositionSequence" in self._dataset: + del self._dataset.RTAcquisitionPatientPositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTAcquisitionPatientPositionSequenceItem) for item in value + ): + raise ValueError( + "RTAcquisitionPatientPositionSequence must be a list of RTAcquisitionPatientPositionSequenceItem objects" + ) + else: + self._RTAcquisitionPatientPositionSequence = value + if "RTAcquisitionPatientPositionSequence" not in self._dataset: + self._dataset.RTAcquisitionPatientPositionSequence = pydicom.Sequence() + self._dataset.RTAcquisitionPatientPositionSequence.clear() + self._dataset.RTAcquisitionPatientPositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAcquisitionPatientPosition(self, item: RTAcquisitionPatientPositionSequenceItem): + if not isinstance(item, RTAcquisitionPatientPositionSequenceItem): + raise ValueError("Item must be an instance of RTAcquisitionPatientPositionSequenceItem") + self._RTAcquisitionPatientPositionSequence.append(item) + if "RTAcquisitionPatientPositionSequence" not in self._dataset: + self._dataset.RTAcquisitionPatientPositionSequence = pydicom.Sequence() + self._dataset.RTAcquisitionPatientPositionSequence.append(item.to_dataset()) + + @property + def AcquisitionTaskWorkitemCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionTaskWorkitemCodeSequence" in self._dataset: + if len(self._AcquisitionTaskWorkitemCodeSequence) == len(self._dataset.AcquisitionTaskWorkitemCodeSequence): + return self._AcquisitionTaskWorkitemCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionTaskWorkitemCodeSequence] + return None + + @AcquisitionTaskWorkitemCodeSequence.setter + def AcquisitionTaskWorkitemCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionTaskWorkitemCodeSequence = [] + if "AcquisitionTaskWorkitemCodeSequence" in self._dataset: + del self._dataset.AcquisitionTaskWorkitemCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionTaskWorkitemCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionTaskWorkitemCodeSequence = value + if "AcquisitionTaskWorkitemCodeSequence" not in self._dataset: + self._dataset.AcquisitionTaskWorkitemCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionTaskWorkitemCodeSequence.clear() + self._dataset.AcquisitionTaskWorkitemCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionTaskWorkitemCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionTaskWorkitemCodeSequence.append(item) + if "AcquisitionTaskWorkitemCodeSequence" not in self._dataset: + self._dataset.AcquisitionTaskWorkitemCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionTaskWorkitemCodeSequence.append(item.to_dataset()) + + @property + def AcquisitionSubtaskSequence(self) -> Optional[List[AcquisitionSubtaskSequenceItem]]: + if "AcquisitionSubtaskSequence" in self._dataset: + if len(self._AcquisitionSubtaskSequence) == len(self._dataset.AcquisitionSubtaskSequence): + return self._AcquisitionSubtaskSequence + else: + return [AcquisitionSubtaskSequenceItem(x) for x in self._dataset.AcquisitionSubtaskSequence] + return None + + @AcquisitionSubtaskSequence.setter + def AcquisitionSubtaskSequence(self, value: Optional[List[AcquisitionSubtaskSequenceItem]]): + if value is None: + self._AcquisitionSubtaskSequence = [] + if "AcquisitionSubtaskSequence" in self._dataset: + del self._dataset.AcquisitionSubtaskSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionSubtaskSequenceItem) for item in value): + raise ValueError("AcquisitionSubtaskSequence must be a list of AcquisitionSubtaskSequenceItem objects") + else: + self._AcquisitionSubtaskSequence = value + if "AcquisitionSubtaskSequence" not in self._dataset: + self._dataset.AcquisitionSubtaskSequence = pydicom.Sequence() + self._dataset.AcquisitionSubtaskSequence.clear() + self._dataset.AcquisitionSubtaskSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionSubtask(self, item: AcquisitionSubtaskSequenceItem): + if not isinstance(item, AcquisitionSubtaskSequenceItem): + raise ValueError("Item must be an instance of AcquisitionSubtaskSequenceItem") + self._AcquisitionSubtaskSequence.append(item) + if "AcquisitionSubtaskSequence" not in self._dataset: + self._dataset.AcquisitionSubtaskSequence = pydicom.Sequence() + self._dataset.AcquisitionSubtaskSequence.append(item.to_dataset()) + + @property + def AcquisitionTaskIndex(self) -> Optional[int]: + if "AcquisitionTaskIndex" in self._dataset: + return self._dataset.AcquisitionTaskIndex + return None + + @AcquisitionTaskIndex.setter + def AcquisitionTaskIndex(self, value: Optional[int]): + if value is None: + if "AcquisitionTaskIndex" in self._dataset: + del self._dataset.AcquisitionTaskIndex + else: + self._dataset.AcquisitionTaskIndex = value + + @property + def AcquisitionTaskApplicabilitySequence(self) -> Optional[List[AcquisitionTaskApplicabilitySequenceItem]]: + if "AcquisitionTaskApplicabilitySequence" in self._dataset: + if len(self._AcquisitionTaskApplicabilitySequence) == len(self._dataset.AcquisitionTaskApplicabilitySequence): + return self._AcquisitionTaskApplicabilitySequence + else: + return [ + AcquisitionTaskApplicabilitySequenceItem(x) for x in self._dataset.AcquisitionTaskApplicabilitySequence + ] + return None + + @AcquisitionTaskApplicabilitySequence.setter + def AcquisitionTaskApplicabilitySequence(self, value: Optional[List[AcquisitionTaskApplicabilitySequenceItem]]): + if value is None: + self._AcquisitionTaskApplicabilitySequence = [] + if "AcquisitionTaskApplicabilitySequence" in self._dataset: + del self._dataset.AcquisitionTaskApplicabilitySequence + elif not isinstance(value, list) or not all( + isinstance(item, AcquisitionTaskApplicabilitySequenceItem) for item in value + ): + raise ValueError( + "AcquisitionTaskApplicabilitySequence must be a list of AcquisitionTaskApplicabilitySequenceItem objects" + ) + else: + self._AcquisitionTaskApplicabilitySequence = value + if "AcquisitionTaskApplicabilitySequence" not in self._dataset: + self._dataset.AcquisitionTaskApplicabilitySequence = pydicom.Sequence() + self._dataset.AcquisitionTaskApplicabilitySequence.clear() + self._dataset.AcquisitionTaskApplicabilitySequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionTaskApplicability(self, item: AcquisitionTaskApplicabilitySequenceItem): + if not isinstance(item, AcquisitionTaskApplicabilitySequenceItem): + raise ValueError("Item must be an instance of AcquisitionTaskApplicabilitySequenceItem") + self._AcquisitionTaskApplicabilitySequence.append(item) + if "AcquisitionTaskApplicabilitySequence" not in self._dataset: + self._dataset.AcquisitionTaskApplicabilitySequence = pydicom.Sequence() + self._dataset.AcquisitionTaskApplicabilitySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/add_intermediate_sequence_item.py b/tdwii_plus_examples/domain_model/add_intermediate_sequence_item.py new file mode 100644 index 0000000..dbd43b6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/add_intermediate_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AddIntermediateSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AddPower(self) -> Optional[float]: + if "AddPower" in self._dataset: + return self._dataset.AddPower + return None + + @AddPower.setter + def AddPower(self, value: Optional[float]): + if value is None: + if "AddPower" in self._dataset: + del self._dataset.AddPower + else: + self._dataset.AddPower = value + + @property + def ViewingDistance(self) -> Optional[float]: + if "ViewingDistance" in self._dataset: + return self._dataset.ViewingDistance + return None + + @ViewingDistance.setter + def ViewingDistance(self, value: Optional[float]): + if value is None: + if "ViewingDistance" in self._dataset: + del self._dataset.ViewingDistance + else: + self._dataset.ViewingDistance = value diff --git a/tdwii_plus_examples/domain_model/add_near_sequence_item.py b/tdwii_plus_examples/domain_model/add_near_sequence_item.py new file mode 100644 index 0000000..3c3136c --- /dev/null +++ b/tdwii_plus_examples/domain_model/add_near_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AddNearSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AddPower(self) -> Optional[float]: + if "AddPower" in self._dataset: + return self._dataset.AddPower + return None + + @AddPower.setter + def AddPower(self, value: Optional[float]): + if value is None: + if "AddPower" in self._dataset: + del self._dataset.AddPower + else: + self._dataset.AddPower = value + + @property + def ViewingDistance(self) -> Optional[float]: + if "ViewingDistance" in self._dataset: + return self._dataset.ViewingDistance + return None + + @ViewingDistance.setter + def ViewingDistance(self, value: Optional[float]): + if value is None: + if "ViewingDistance" in self._dataset: + del self._dataset.ViewingDistance + else: + self._dataset.ViewingDistance = value diff --git a/tdwii_plus_examples/domain_model/add_other_sequence_item.py b/tdwii_plus_examples/domain_model/add_other_sequence_item.py new file mode 100644 index 0000000..5d29faa --- /dev/null +++ b/tdwii_plus_examples/domain_model/add_other_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AddOtherSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AddPower(self) -> Optional[float]: + if "AddPower" in self._dataset: + return self._dataset.AddPower + return None + + @AddPower.setter + def AddPower(self, value: Optional[float]): + if value is None: + if "AddPower" in self._dataset: + del self._dataset.AddPower + else: + self._dataset.AddPower = value + + @property + def ViewingDistance(self) -> Optional[float]: + if "ViewingDistance" in self._dataset: + return self._dataset.ViewingDistance + return None + + @ViewingDistance.setter + def ViewingDistance(self, value: Optional[float]): + if value is None: + if "ViewingDistance" in self._dataset: + del self._dataset.ViewingDistance + else: + self._dataset.ViewingDistance = value diff --git a/tdwii_plus_examples/domain_model/additional_drug_sequence_item.py b/tdwii_plus_examples/domain_model/additional_drug_sequence_item.py new file mode 100644 index 0000000..a7b1131 --- /dev/null +++ b/tdwii_plus_examples/domain_model/additional_drug_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AdditionalDrugSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/additional_parameter_recording_instance_sequence_item.py b/tdwii_plus_examples/domain_model/additional_parameter_recording_instance_sequence_item.py new file mode 100644 index 0000000..c6ff91e --- /dev/null +++ b/tdwii_plus_examples/domain_model/additional_parameter_recording_instance_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AdditionalParameterRecordingInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def CreatorVersionUID(self) -> Optional[str]: + if "CreatorVersionUID" in self._dataset: + return self._dataset.CreatorVersionUID + return None + + @CreatorVersionUID.setter + def CreatorVersionUID(self, value: Optional[str]): + if value is None: + if "CreatorVersionUID" in self._dataset: + del self._dataset.CreatorVersionUID + else: + self._dataset.CreatorVersionUID = value diff --git a/tdwii_plus_examples/domain_model/additional_rt_accessory_device_sequence_item.py b/tdwii_plus_examples/domain_model/additional_rt_accessory_device_sequence_item.py new file mode 100644 index 0000000..768da8a --- /dev/null +++ b/tdwii_plus_examples/domain_model/additional_rt_accessory_device_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .device_specific_acquisition_parameter_sequence_item import ( + DeviceSpecificAcquisitionParameterSequenceItem, +) + + +class AdditionalRTAccessoryDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeviceSpecificAcquisitionParameterSequence: List[DeviceSpecificAcquisitionParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DeviceSpecificAcquisitionParameterSequence(self) -> Optional[List[DeviceSpecificAcquisitionParameterSequenceItem]]: + if "DeviceSpecificAcquisitionParameterSequence" in self._dataset: + if len(self._DeviceSpecificAcquisitionParameterSequence) == len( + self._dataset.DeviceSpecificAcquisitionParameterSequence + ): + return self._DeviceSpecificAcquisitionParameterSequence + else: + return [ + DeviceSpecificAcquisitionParameterSequenceItem(x) + for x in self._dataset.DeviceSpecificAcquisitionParameterSequence + ] + return None + + @DeviceSpecificAcquisitionParameterSequence.setter + def DeviceSpecificAcquisitionParameterSequence( + self, value: Optional[List[DeviceSpecificAcquisitionParameterSequenceItem]] + ): + if value is None: + self._DeviceSpecificAcquisitionParameterSequence = [] + if "DeviceSpecificAcquisitionParameterSequence" in self._dataset: + del self._dataset.DeviceSpecificAcquisitionParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, DeviceSpecificAcquisitionParameterSequenceItem) for item in value + ): + raise ValueError( + "DeviceSpecificAcquisitionParameterSequence must be a list of DeviceSpecificAcquisitionParameterSequenceItem" + " objects" + ) + else: + self._DeviceSpecificAcquisitionParameterSequence = value + if "DeviceSpecificAcquisitionParameterSequence" not in self._dataset: + self._dataset.DeviceSpecificAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.DeviceSpecificAcquisitionParameterSequence.clear() + self._dataset.DeviceSpecificAcquisitionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceSpecificAcquisitionParameter(self, item: DeviceSpecificAcquisitionParameterSequenceItem): + if not isinstance(item, DeviceSpecificAcquisitionParameterSequenceItem): + raise ValueError("Item must be an instance of DeviceSpecificAcquisitionParameterSequenceItem") + self._DeviceSpecificAcquisitionParameterSequence.append(item) + if "DeviceSpecificAcquisitionParameterSequence" not in self._dataset: + self._dataset.DeviceSpecificAcquisitionParameterSequence = pydicom.Sequence() + self._dataset.DeviceSpecificAcquisitionParameterSequence.append(item.to_dataset()) + + @property + def ReferencedDeviceIndex(self) -> Optional[int]: + if "ReferencedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDeviceIndex + return None + + @ReferencedDeviceIndex.setter + def ReferencedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDeviceIndex + else: + self._dataset.ReferencedDeviceIndex = value diff --git a/tdwii_plus_examples/domain_model/advanced_blending_presentation_state.py b/tdwii_plus_examples/domain_model/advanced_blending_presentation_state.py new file mode 100644 index 0000000..fed0952 --- /dev/null +++ b/tdwii_plus_examples/domain_model/advanced_blending_presentation_state.py @@ -0,0 +1,4741 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .advanced_blending_sequence_item import AdvancedBlendingSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .blending_display_sequence_item import BlendingDisplaySequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class AdvancedBlendingPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._BlendingDisplaySequence: List[BlendingDisplaySequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._AdvancedBlendingSequence: List[AdvancedBlendingSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def BlendingDisplaySequence(self) -> Optional[List[BlendingDisplaySequenceItem]]: + if "BlendingDisplaySequence" in self._dataset: + if len(self._BlendingDisplaySequence) == len(self._dataset.BlendingDisplaySequence): + return self._BlendingDisplaySequence + else: + return [BlendingDisplaySequenceItem(x) for x in self._dataset.BlendingDisplaySequence] + return None + + @BlendingDisplaySequence.setter + def BlendingDisplaySequence(self, value: Optional[List[BlendingDisplaySequenceItem]]): + if value is None: + self._BlendingDisplaySequence = [] + if "BlendingDisplaySequence" in self._dataset: + del self._dataset.BlendingDisplaySequence + elif not isinstance(value, list) or not all(isinstance(item, BlendingDisplaySequenceItem) for item in value): + raise ValueError("BlendingDisplaySequence must be a list of BlendingDisplaySequenceItem objects") + else: + self._BlendingDisplaySequence = value + if "BlendingDisplaySequence" not in self._dataset: + self._dataset.BlendingDisplaySequence = pydicom.Sequence() + self._dataset.BlendingDisplaySequence.clear() + self._dataset.BlendingDisplaySequence.extend([item.to_dataset() for item in value]) + + def add_BlendingDisplay(self, item: BlendingDisplaySequenceItem): + if not isinstance(item, BlendingDisplaySequenceItem): + raise ValueError("Item must be an instance of BlendingDisplaySequenceItem") + self._BlendingDisplaySequence.append(item) + if "BlendingDisplaySequence" not in self._dataset: + self._dataset.BlendingDisplaySequence = pydicom.Sequence() + self._dataset.BlendingDisplaySequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def AdvancedBlendingSequence(self) -> Optional[List[AdvancedBlendingSequenceItem]]: + if "AdvancedBlendingSequence" in self._dataset: + if len(self._AdvancedBlendingSequence) == len(self._dataset.AdvancedBlendingSequence): + return self._AdvancedBlendingSequence + else: + return [AdvancedBlendingSequenceItem(x) for x in self._dataset.AdvancedBlendingSequence] + return None + + @AdvancedBlendingSequence.setter + def AdvancedBlendingSequence(self, value: Optional[List[AdvancedBlendingSequenceItem]]): + if value is None: + self._AdvancedBlendingSequence = [] + if "AdvancedBlendingSequence" in self._dataset: + del self._dataset.AdvancedBlendingSequence + elif not isinstance(value, list) or not all(isinstance(item, AdvancedBlendingSequenceItem) for item in value): + raise ValueError("AdvancedBlendingSequence must be a list of AdvancedBlendingSequenceItem objects") + else: + self._AdvancedBlendingSequence = value + if "AdvancedBlendingSequence" not in self._dataset: + self._dataset.AdvancedBlendingSequence = pydicom.Sequence() + self._dataset.AdvancedBlendingSequence.clear() + self._dataset.AdvancedBlendingSequence.extend([item.to_dataset() for item in value]) + + def add_AdvancedBlending(self, item: AdvancedBlendingSequenceItem): + if not isinstance(item, AdvancedBlendingSequenceItem): + raise ValueError("Item must be an instance of AdvancedBlendingSequenceItem") + self._AdvancedBlendingSequence.append(item) + if "AdvancedBlendingSequence" not in self._dataset: + self._dataset.AdvancedBlendingSequence = pydicom.Sequence() + self._dataset.AdvancedBlendingSequence.append(item.to_dataset()) + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/advanced_blending_sequence_item.py b/tdwii_plus_examples/domain_model/advanced_blending_sequence_item.py new file mode 100644 index 0000000..2ae12ee --- /dev/null +++ b/tdwii_plus_examples/domain_model/advanced_blending_sequence_item.py @@ -0,0 +1,262 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .palette_color_lookup_table_sequence_item import ( + PaletteColorLookupTableSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_spatial_registration_sequence_item import ( + ReferencedSpatialRegistrationSequenceItem, +) +from .softcopy_voilut_sequence_item import SoftcopyVOILUTSequenceItem +from .threshold_sequence_item import ThresholdSequenceItem + + +class AdvancedBlendingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._SoftcopyVOILUTSequence: List[SoftcopyVOILUTSequenceItem] = [] + self._PaletteColorLookupTableSequence: List[PaletteColorLookupTableSequenceItem] = [] + self._ReferencedSpatialRegistrationSequence: List[ReferencedSpatialRegistrationSequenceItem] = [] + self._ThresholdSequence: List[ThresholdSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SoftcopyVOILUTSequence(self) -> Optional[List[SoftcopyVOILUTSequenceItem]]: + if "SoftcopyVOILUTSequence" in self._dataset: + if len(self._SoftcopyVOILUTSequence) == len(self._dataset.SoftcopyVOILUTSequence): + return self._SoftcopyVOILUTSequence + else: + return [SoftcopyVOILUTSequenceItem(x) for x in self._dataset.SoftcopyVOILUTSequence] + return None + + @SoftcopyVOILUTSequence.setter + def SoftcopyVOILUTSequence(self, value: Optional[List[SoftcopyVOILUTSequenceItem]]): + if value is None: + self._SoftcopyVOILUTSequence = [] + if "SoftcopyVOILUTSequence" in self._dataset: + del self._dataset.SoftcopyVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, SoftcopyVOILUTSequenceItem) for item in value): + raise ValueError("SoftcopyVOILUTSequence must be a list of SoftcopyVOILUTSequenceItem objects") + else: + self._SoftcopyVOILUTSequence = value + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.clear() + self._dataset.SoftcopyVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_SoftcopyVOILUT(self, item: SoftcopyVOILUTSequenceItem): + if not isinstance(item, SoftcopyVOILUTSequenceItem): + raise ValueError("Item must be an instance of SoftcopyVOILUTSequenceItem") + self._SoftcopyVOILUTSequence.append(item) + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.append(item.to_dataset()) + + @property + def PaletteColorLookupTableSequence(self) -> Optional[List[PaletteColorLookupTableSequenceItem]]: + if "PaletteColorLookupTableSequence" in self._dataset: + if len(self._PaletteColorLookupTableSequence) == len(self._dataset.PaletteColorLookupTableSequence): + return self._PaletteColorLookupTableSequence + else: + return [PaletteColorLookupTableSequenceItem(x) for x in self._dataset.PaletteColorLookupTableSequence] + return None + + @PaletteColorLookupTableSequence.setter + def PaletteColorLookupTableSequence(self, value: Optional[List[PaletteColorLookupTableSequenceItem]]): + if value is None: + self._PaletteColorLookupTableSequence = [] + if "PaletteColorLookupTableSequence" in self._dataset: + del self._dataset.PaletteColorLookupTableSequence + elif not isinstance(value, list) or not all(isinstance(item, PaletteColorLookupTableSequenceItem) for item in value): + raise ValueError("PaletteColorLookupTableSequence must be a list of PaletteColorLookupTableSequenceItem objects") + else: + self._PaletteColorLookupTableSequence = value + if "PaletteColorLookupTableSequence" not in self._dataset: + self._dataset.PaletteColorLookupTableSequence = pydicom.Sequence() + self._dataset.PaletteColorLookupTableSequence.clear() + self._dataset.PaletteColorLookupTableSequence.extend([item.to_dataset() for item in value]) + + def add_PaletteColorLookupTable(self, item: PaletteColorLookupTableSequenceItem): + if not isinstance(item, PaletteColorLookupTableSequenceItem): + raise ValueError("Item must be an instance of PaletteColorLookupTableSequenceItem") + self._PaletteColorLookupTableSequence.append(item) + if "PaletteColorLookupTableSequence" not in self._dataset: + self._dataset.PaletteColorLookupTableSequence = pydicom.Sequence() + self._dataset.PaletteColorLookupTableSequence.append(item.to_dataset()) + + @property + def ReferencedSpatialRegistrationSequence(self) -> Optional[List[ReferencedSpatialRegistrationSequenceItem]]: + if "ReferencedSpatialRegistrationSequence" in self._dataset: + if len(self._ReferencedSpatialRegistrationSequence) == len(self._dataset.ReferencedSpatialRegistrationSequence): + return self._ReferencedSpatialRegistrationSequence + else: + return [ + ReferencedSpatialRegistrationSequenceItem(x) for x in self._dataset.ReferencedSpatialRegistrationSequence + ] + return None + + @ReferencedSpatialRegistrationSequence.setter + def ReferencedSpatialRegistrationSequence(self, value: Optional[List[ReferencedSpatialRegistrationSequenceItem]]): + if value is None: + self._ReferencedSpatialRegistrationSequence = [] + if "ReferencedSpatialRegistrationSequence" in self._dataset: + del self._dataset.ReferencedSpatialRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedSpatialRegistrationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedSpatialRegistrationSequence must be a list of ReferencedSpatialRegistrationSequenceItem objects" + ) + else: + self._ReferencedSpatialRegistrationSequence = value + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.clear() + self._dataset.ReferencedSpatialRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSpatialRegistration(self, item: ReferencedSpatialRegistrationSequenceItem): + if not isinstance(item, ReferencedSpatialRegistrationSequenceItem): + raise ValueError("Item must be an instance of ReferencedSpatialRegistrationSequenceItem") + self._ReferencedSpatialRegistrationSequence.append(item) + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.append(item.to_dataset()) + + @property + def BlendingInputNumber(self) -> Optional[int]: + if "BlendingInputNumber" in self._dataset: + return self._dataset.BlendingInputNumber + return None + + @BlendingInputNumber.setter + def BlendingInputNumber(self, value: Optional[int]): + if value is None: + if "BlendingInputNumber" in self._dataset: + del self._dataset.BlendingInputNumber + else: + self._dataset.BlendingInputNumber = value + + @property + def TimeSeriesBlending(self) -> Optional[str]: + if "TimeSeriesBlending" in self._dataset: + return self._dataset.TimeSeriesBlending + return None + + @TimeSeriesBlending.setter + def TimeSeriesBlending(self, value: Optional[str]): + if value is None: + if "TimeSeriesBlending" in self._dataset: + del self._dataset.TimeSeriesBlending + else: + self._dataset.TimeSeriesBlending = value + + @property + def GeometryForDisplay(self) -> Optional[str]: + if "GeometryForDisplay" in self._dataset: + return self._dataset.GeometryForDisplay + return None + + @GeometryForDisplay.setter + def GeometryForDisplay(self, value: Optional[str]): + if value is None: + if "GeometryForDisplay" in self._dataset: + del self._dataset.GeometryForDisplay + else: + self._dataset.GeometryForDisplay = value + + @property + def ThresholdSequence(self) -> Optional[List[ThresholdSequenceItem]]: + if "ThresholdSequence" in self._dataset: + if len(self._ThresholdSequence) == len(self._dataset.ThresholdSequence): + return self._ThresholdSequence + else: + return [ThresholdSequenceItem(x) for x in self._dataset.ThresholdSequence] + return None + + @ThresholdSequence.setter + def ThresholdSequence(self, value: Optional[List[ThresholdSequenceItem]]): + if value is None: + self._ThresholdSequence = [] + if "ThresholdSequence" in self._dataset: + del self._dataset.ThresholdSequence + elif not isinstance(value, list) or not all(isinstance(item, ThresholdSequenceItem) for item in value): + raise ValueError("ThresholdSequence must be a list of ThresholdSequenceItem objects") + else: + self._ThresholdSequence = value + if "ThresholdSequence" not in self._dataset: + self._dataset.ThresholdSequence = pydicom.Sequence() + self._dataset.ThresholdSequence.clear() + self._dataset.ThresholdSequence.extend([item.to_dataset() for item in value]) + + def add_Threshold(self, item: ThresholdSequenceItem): + if not isinstance(item, ThresholdSequenceItem): + raise ValueError("Item must be an instance of ThresholdSequenceItem") + self._ThresholdSequence.append(item) + if "ThresholdSequence" not in self._dataset: + self._dataset.ThresholdSequence = pydicom.Sequence() + self._dataset.ThresholdSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/age_corrected_sensitivity_deviation_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/age_corrected_sensitivity_deviation_algorithm_sequence_item.py new file mode 100644 index 0000000..5932fde --- /dev/null +++ b/tdwii_plus_examples/domain_model/age_corrected_sensitivity_deviation_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AgeCorrectedSensitivityDeviationAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/alternate_container_identifier_sequence_item.py b/tdwii_plus_examples/domain_model/alternate_container_identifier_sequence_item.py new file mode 100644 index 0000000..fcb5238 --- /dev/null +++ b/tdwii_plus_examples/domain_model/alternate_container_identifier_sequence_item.py @@ -0,0 +1,68 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) + + +class AlternateContainerIdentifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/alternate_content_description_sequence_item.py b/tdwii_plus_examples/domain_model/alternate_content_description_sequence_item.py new file mode 100644 index 0000000..22ec645 --- /dev/null +++ b/tdwii_plus_examples/domain_model/alternate_content_description_sequence_item.py @@ -0,0 +1,93 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AlternateContentDescriptionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._LanguageCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LanguageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LanguageCodeSequence" in self._dataset: + if len(self._LanguageCodeSequence) == len(self._dataset.LanguageCodeSequence): + return self._LanguageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LanguageCodeSequence] + return None + + @LanguageCodeSequence.setter + def LanguageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LanguageCodeSequence = [] + if "LanguageCodeSequence" in self._dataset: + del self._dataset.LanguageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LanguageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LanguageCodeSequence = value + if "LanguageCodeSequence" not in self._dataset: + self._dataset.LanguageCodeSequence = pydicom.Sequence() + self._dataset.LanguageCodeSequence.clear() + self._dataset.LanguageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LanguageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LanguageCodeSequence.append(item) + if "LanguageCodeSequence" not in self._dataset: + self._dataset.LanguageCodeSequence = pydicom.Sequence() + self._dataset.LanguageCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value diff --git a/tdwii_plus_examples/domain_model/alternate_value_sequence_item.py b/tdwii_plus_examples/domain_model/alternate_value_sequence_item.py new file mode 100644 index 0000000..2447b82 --- /dev/null +++ b/tdwii_plus_examples/domain_model/alternate_value_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class AlternateValueSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/ambulatory_ecg.py b/tdwii_plus_examples/domain_model/ambulatory_ecg.py new file mode 100644 index 0000000..f7b83d1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ambulatory_ecg.py @@ -0,0 +1,4262 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class AmbulatoryEcg: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/analog_filter_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/analog_filter_characteristics_sequence_item.py new file mode 100644 index 0000000..cca732d --- /dev/null +++ b/tdwii_plus_examples/domain_model/analog_filter_characteristics_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class AnalogFilterCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AnalogFilterRollOff(self) -> Optional[Decimal]: + if "AnalogFilterRollOf" in self._dataset: + return self._dataset.AnalogFilterRollOff + return None + + @AnalogFilterRollOff.setter + def AnalogFilterRollOff(self, value: Optional[Decimal]): + if value is None: + if "AnalogFilterRollOf" in self._dataset: + del self._dataset.AnalogFilterRollOff + else: + self._dataset.AnalogFilterRollOff = value + + @property + def AnalogFilterType(self) -> Optional[list]: + if "AnalogFilterType" in self._dataset: + return self._dataset.AnalogFilterType + return None + + @AnalogFilterType.setter + def AnalogFilterType(self, value: Optional[list]): + if value is None: + if "AnalogFilterType" in self._dataset: + del self._dataset.AnalogFilterType + else: + self._dataset.AnalogFilterType = value diff --git a/tdwii_plus_examples/domain_model/anatomic_region_modifier_sequence_item.py b/tdwii_plus_examples/domain_model/anatomic_region_modifier_sequence_item.py new file mode 100644 index 0000000..3f241a9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/anatomic_region_modifier_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AnatomicRegionModifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/anatomic_region_sequence_item.py b/tdwii_plus_examples/domain_model/anatomic_region_sequence_item.py new file mode 100644 index 0000000..80b28c5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/anatomic_region_sequence_item.py @@ -0,0 +1,290 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_modifier_sequence_item import AnatomicRegionModifierSequenceItem +from .code_sequence_item import CodeSequenceItem + + +class AnatomicRegionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionModifierSequence: List[AnatomicRegionModifierSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value + + @property + def AnatomicRegionModifierSequence(self) -> Optional[List[AnatomicRegionModifierSequenceItem]]: + if "AnatomicRegionModifierSequence" in self._dataset: + if len(self._AnatomicRegionModifierSequence) == len(self._dataset.AnatomicRegionModifierSequence): + return self._AnatomicRegionModifierSequence + else: + return [AnatomicRegionModifierSequenceItem(x) for x in self._dataset.AnatomicRegionModifierSequence] + return None + + @AnatomicRegionModifierSequence.setter + def AnatomicRegionModifierSequence(self, value: Optional[List[AnatomicRegionModifierSequenceItem]]): + if value is None: + self._AnatomicRegionModifierSequence = [] + if "AnatomicRegionModifierSequence" in self._dataset: + del self._dataset.AnatomicRegionModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionModifierSequenceItem) for item in value): + raise ValueError("AnatomicRegionModifierSequence must be a list of AnatomicRegionModifierSequenceItem objects") + else: + self._AnatomicRegionModifierSequence = value + if "AnatomicRegionModifierSequence" not in self._dataset: + self._dataset.AnatomicRegionModifierSequence = pydicom.Sequence() + self._dataset.AnatomicRegionModifierSequence.clear() + self._dataset.AnatomicRegionModifierSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegionModifier(self, item: AnatomicRegionModifierSequenceItem): + if not isinstance(item, AnatomicRegionModifierSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionModifierSequenceItem") + self._AnatomicRegionModifierSequence.append(item) + if "AnatomicRegionModifierSequence" not in self._dataset: + self._dataset.AnatomicRegionModifierSequence = pydicom.Sequence() + self._dataset.AnatomicRegionModifierSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/animation_curve_sequence_item.py b/tdwii_plus_examples/domain_model/animation_curve_sequence_item.py new file mode 100644 index 0000000..59df134 --- /dev/null +++ b/tdwii_plus_examples/domain_model/animation_curve_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AnimationCurveSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfVolumetricCurvePoints(self) -> Optional[int]: + if "NumberOfVolumetricCurvePoints" in self._dataset: + return self._dataset.NumberOfVolumetricCurvePoints + return None + + @NumberOfVolumetricCurvePoints.setter + def NumberOfVolumetricCurvePoints(self, value: Optional[int]): + if value is None: + if "NumberOfVolumetricCurvePoints" in self._dataset: + del self._dataset.NumberOfVolumetricCurvePoints + else: + self._dataset.NumberOfVolumetricCurvePoints = value + + @property + def VolumetricCurvePoints(self) -> Optional[bytes]: + if "VolumetricCurvePoints" in self._dataset: + return self._dataset.VolumetricCurvePoints + return None + + @VolumetricCurvePoints.setter + def VolumetricCurvePoints(self, value: Optional[bytes]): + if value is None: + if "VolumetricCurvePoints" in self._dataset: + del self._dataset.VolumetricCurvePoints + else: + self._dataset.VolumetricCurvePoints = value + + @property + def VolumetricCurveUpDirections(self) -> Optional[bytes]: + if "VolumetricCurveUpDirections" in self._dataset: + return self._dataset.VolumetricCurveUpDirections + return None + + @VolumetricCurveUpDirections.setter + def VolumetricCurveUpDirections(self, value: Optional[bytes]): + if value is None: + if "VolumetricCurveUpDirections" in self._dataset: + del self._dataset.VolumetricCurveUpDirections + else: + self._dataset.VolumetricCurveUpDirections = value diff --git a/tdwii_plus_examples/domain_model/annotation_group_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/annotation_group_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..aabbdff --- /dev/null +++ b/tdwii_plus_examples/domain_model/annotation_group_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AnnotationGroupAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/annotation_group_sequence_item.py b/tdwii_plus_examples/domain_model/annotation_group_sequence_item.py new file mode 100644 index 0000000..45fd1f2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/annotation_group_sequence_item.py @@ -0,0 +1,443 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .annotation_group_algorithm_identification_sequence_item import ( + AnnotationGroupAlgorithmIdentificationSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .measurements_sequence_item import MeasurementsSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) + + +class AnnotationGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._MeasurementsSequence: List[MeasurementsSequenceItem] = [] + self._AnnotationGroupAlgorithmIdentificationSequence: List[AnnotationGroupAlgorithmIdentificationSequenceItem] = [] + self._AnnotationPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._AnnotationPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def AnnotationGroupNumber(self) -> Optional[int]: + if "AnnotationGroupNumber" in self._dataset: + return self._dataset.AnnotationGroupNumber + return None + + @AnnotationGroupNumber.setter + def AnnotationGroupNumber(self, value: Optional[int]): + if value is None: + if "AnnotationGroupNumber" in self._dataset: + del self._dataset.AnnotationGroupNumber + else: + self._dataset.AnnotationGroupNumber = value + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def PointCoordinatesData(self) -> Optional[bytes]: + if "PointCoordinatesData" in self._dataset: + return self._dataset.PointCoordinatesData + return None + + @PointCoordinatesData.setter + def PointCoordinatesData(self, value: Optional[bytes]): + if value is None: + if "PointCoordinatesData" in self._dataset: + del self._dataset.PointCoordinatesData + else: + self._dataset.PointCoordinatesData = value + + @property + def DoublePointCoordinatesData(self) -> Optional[bytes]: + if "DoublePointCoordinatesData" in self._dataset: + return self._dataset.DoublePointCoordinatesData + return None + + @DoublePointCoordinatesData.setter + def DoublePointCoordinatesData(self, value: Optional[bytes]): + if value is None: + if "DoublePointCoordinatesData" in self._dataset: + del self._dataset.DoublePointCoordinatesData + else: + self._dataset.DoublePointCoordinatesData = value + + @property + def LongPrimitivePointIndexList(self) -> Optional[bytes]: + if "LongPrimitivePointIndexList" in self._dataset: + return self._dataset.LongPrimitivePointIndexList + return None + + @LongPrimitivePointIndexList.setter + def LongPrimitivePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongPrimitivePointIndexList" in self._dataset: + del self._dataset.LongPrimitivePointIndexList + else: + self._dataset.LongPrimitivePointIndexList = value + + @property + def MeasurementsSequence(self) -> Optional[List[MeasurementsSequenceItem]]: + if "MeasurementsSequence" in self._dataset: + if len(self._MeasurementsSequence) == len(self._dataset.MeasurementsSequence): + return self._MeasurementsSequence + else: + return [MeasurementsSequenceItem(x) for x in self._dataset.MeasurementsSequence] + return None + + @MeasurementsSequence.setter + def MeasurementsSequence(self, value: Optional[List[MeasurementsSequenceItem]]): + if value is None: + self._MeasurementsSequence = [] + if "MeasurementsSequence" in self._dataset: + del self._dataset.MeasurementsSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasurementsSequenceItem) for item in value): + raise ValueError("MeasurementsSequence must be a list of MeasurementsSequenceItem objects") + else: + self._MeasurementsSequence = value + if "MeasurementsSequence" not in self._dataset: + self._dataset.MeasurementsSequence = pydicom.Sequence() + self._dataset.MeasurementsSequence.clear() + self._dataset.MeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_Measurements(self, item: MeasurementsSequenceItem): + if not isinstance(item, MeasurementsSequenceItem): + raise ValueError("Item must be an instance of MeasurementsSequenceItem") + self._MeasurementsSequence.append(item) + if "MeasurementsSequence" not in self._dataset: + self._dataset.MeasurementsSequence = pydicom.Sequence() + self._dataset.MeasurementsSequence.append(item.to_dataset()) + + @property + def AnnotationGroupUID(self) -> Optional[str]: + if "AnnotationGroupUID" in self._dataset: + return self._dataset.AnnotationGroupUID + return None + + @AnnotationGroupUID.setter + def AnnotationGroupUID(self, value: Optional[str]): + if value is None: + if "AnnotationGroupUID" in self._dataset: + del self._dataset.AnnotationGroupUID + else: + self._dataset.AnnotationGroupUID = value + + @property + def AnnotationGroupLabel(self) -> Optional[str]: + if "AnnotationGroupLabel" in self._dataset: + return self._dataset.AnnotationGroupLabel + return None + + @AnnotationGroupLabel.setter + def AnnotationGroupLabel(self, value: Optional[str]): + if value is None: + if "AnnotationGroupLabel" in self._dataset: + del self._dataset.AnnotationGroupLabel + else: + self._dataset.AnnotationGroupLabel = value + + @property + def AnnotationGroupDescription(self) -> Optional[str]: + if "AnnotationGroupDescription" in self._dataset: + return self._dataset.AnnotationGroupDescription + return None + + @AnnotationGroupDescription.setter + def AnnotationGroupDescription(self, value: Optional[str]): + if value is None: + if "AnnotationGroupDescription" in self._dataset: + del self._dataset.AnnotationGroupDescription + else: + self._dataset.AnnotationGroupDescription = value + + @property + def AnnotationGroupGenerationType(self) -> Optional[str]: + if "AnnotationGroupGenerationType" in self._dataset: + return self._dataset.AnnotationGroupGenerationType + return None + + @AnnotationGroupGenerationType.setter + def AnnotationGroupGenerationType(self, value: Optional[str]): + if value is None: + if "AnnotationGroupGenerationType" in self._dataset: + del self._dataset.AnnotationGroupGenerationType + else: + self._dataset.AnnotationGroupGenerationType = value + + @property + def AnnotationGroupAlgorithmIdentificationSequence( + self, + ) -> Optional[List[AnnotationGroupAlgorithmIdentificationSequenceItem]]: + if "AnnotationGroupAlgorithmIdentificationSequence" in self._dataset: + if len(self._AnnotationGroupAlgorithmIdentificationSequence) == len( + self._dataset.AnnotationGroupAlgorithmIdentificationSequence + ): + return self._AnnotationGroupAlgorithmIdentificationSequence + else: + return [ + AnnotationGroupAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.AnnotationGroupAlgorithmIdentificationSequence + ] + return None + + @AnnotationGroupAlgorithmIdentificationSequence.setter + def AnnotationGroupAlgorithmIdentificationSequence( + self, value: Optional[List[AnnotationGroupAlgorithmIdentificationSequenceItem]] + ): + if value is None: + self._AnnotationGroupAlgorithmIdentificationSequence = [] + if "AnnotationGroupAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.AnnotationGroupAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, AnnotationGroupAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "AnnotationGroupAlgorithmIdentificationSequence must be a list of" + " AnnotationGroupAlgorithmIdentificationSequenceItem objects" + ) + else: + self._AnnotationGroupAlgorithmIdentificationSequence = value + if "AnnotationGroupAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.AnnotationGroupAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.AnnotationGroupAlgorithmIdentificationSequence.clear() + self._dataset.AnnotationGroupAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AnnotationGroupAlgorithmIdentification(self, item: AnnotationGroupAlgorithmIdentificationSequenceItem): + if not isinstance(item, AnnotationGroupAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of AnnotationGroupAlgorithmIdentificationSequenceItem") + self._AnnotationGroupAlgorithmIdentificationSequence.append(item) + if "AnnotationGroupAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.AnnotationGroupAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.AnnotationGroupAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def AnnotationPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AnnotationPropertyCategoryCodeSequence" in self._dataset: + if len(self._AnnotationPropertyCategoryCodeSequence) == len(self._dataset.AnnotationPropertyCategoryCodeSequence): + return self._AnnotationPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AnnotationPropertyCategoryCodeSequence] + return None + + @AnnotationPropertyCategoryCodeSequence.setter + def AnnotationPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AnnotationPropertyCategoryCodeSequence = [] + if "AnnotationPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.AnnotationPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AnnotationPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AnnotationPropertyCategoryCodeSequence = value + if "AnnotationPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.AnnotationPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.AnnotationPropertyCategoryCodeSequence.clear() + self._dataset.AnnotationPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AnnotationPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AnnotationPropertyCategoryCodeSequence.append(item) + if "AnnotationPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.AnnotationPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.AnnotationPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def AnnotationPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AnnotationPropertyTypeCodeSequence" in self._dataset: + if len(self._AnnotationPropertyTypeCodeSequence) == len(self._dataset.AnnotationPropertyTypeCodeSequence): + return self._AnnotationPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AnnotationPropertyTypeCodeSequence] + return None + + @AnnotationPropertyTypeCodeSequence.setter + def AnnotationPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AnnotationPropertyTypeCodeSequence = [] + if "AnnotationPropertyTypeCodeSequence" in self._dataset: + del self._dataset.AnnotationPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AnnotationPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AnnotationPropertyTypeCodeSequence = value + if "AnnotationPropertyTypeCodeSequence" not in self._dataset: + self._dataset.AnnotationPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.AnnotationPropertyTypeCodeSequence.clear() + self._dataset.AnnotationPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AnnotationPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AnnotationPropertyTypeCodeSequence.append(item) + if "AnnotationPropertyTypeCodeSequence" not in self._dataset: + self._dataset.AnnotationPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.AnnotationPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def NumberOfAnnotations(self) -> Optional[int]: + if "NumberOfAnnotations" in self._dataset: + return self._dataset.NumberOfAnnotations + return None + + @NumberOfAnnotations.setter + def NumberOfAnnotations(self, value: Optional[int]): + if value is None: + if "NumberOfAnnotations" in self._dataset: + del self._dataset.NumberOfAnnotations + else: + self._dataset.NumberOfAnnotations = value + + @property + def AnnotationAppliesToAllOpticalPaths(self) -> Optional[str]: + if "AnnotationAppliesToAllOpticalPaths" in self._dataset: + return self._dataset.AnnotationAppliesToAllOpticalPaths + return None + + @AnnotationAppliesToAllOpticalPaths.setter + def AnnotationAppliesToAllOpticalPaths(self, value: Optional[str]): + if value is None: + if "AnnotationAppliesToAllOpticalPaths" in self._dataset: + del self._dataset.AnnotationAppliesToAllOpticalPaths + else: + self._dataset.AnnotationAppliesToAllOpticalPaths = value + + @property + def ReferencedOpticalPathIdentifier(self) -> Optional[List[str]]: + if "ReferencedOpticalPathIdentifier" in self._dataset: + return self._dataset.ReferencedOpticalPathIdentifier + return None + + @ReferencedOpticalPathIdentifier.setter + def ReferencedOpticalPathIdentifier(self, value: Optional[List[str]]): + if value is None: + if "ReferencedOpticalPathIdentifier" in self._dataset: + del self._dataset.ReferencedOpticalPathIdentifier + else: + self._dataset.ReferencedOpticalPathIdentifier = value + + @property + def AnnotationAppliesToAllZPlanes(self) -> Optional[str]: + if "AnnotationAppliesToAllZPlanes" in self._dataset: + return self._dataset.AnnotationAppliesToAllZPlanes + return None + + @AnnotationAppliesToAllZPlanes.setter + def AnnotationAppliesToAllZPlanes(self, value: Optional[str]): + if value is None: + if "AnnotationAppliesToAllZPlanes" in self._dataset: + del self._dataset.AnnotationAppliesToAllZPlanes + else: + self._dataset.AnnotationAppliesToAllZPlanes = value + + @property + def CommonZCoordinateValue(self) -> Optional[List[float]]: + if "CommonZCoordinateValue" in self._dataset: + return self._dataset.CommonZCoordinateValue + return None + + @CommonZCoordinateValue.setter + def CommonZCoordinateValue(self, value: Optional[List[float]]): + if value is None: + if "CommonZCoordinateValue" in self._dataset: + del self._dataset.CommonZCoordinateValue + else: + self._dataset.CommonZCoordinateValue = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value diff --git a/tdwii_plus_examples/domain_model/anterior_chamber_depth_sequence_item.py b/tdwii_plus_examples/domain_model/anterior_chamber_depth_sequence_item.py new file mode 100644 index 0000000..41a89b1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/anterior_chamber_depth_sequence_item.py @@ -0,0 +1,96 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class AnteriorChamberDepthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._SourceOfAnteriorChamberDepthDataCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def AnteriorChamberDepth(self) -> Optional[float]: + if "AnteriorChamberDepth" in self._dataset: + return self._dataset.AnteriorChamberDepth + return None + + @AnteriorChamberDepth.setter + def AnteriorChamberDepth(self, value: Optional[float]): + if value is None: + if "AnteriorChamberDepth" in self._dataset: + del self._dataset.AnteriorChamberDepth + else: + self._dataset.AnteriorChamberDepth = value + + @property + def SourceOfAnteriorChamberDepthDataCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SourceOfAnteriorChamberDepthDataCodeSequence" in self._dataset: + if len(self._SourceOfAnteriorChamberDepthDataCodeSequence) == len( + self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence + ): + return self._SourceOfAnteriorChamberDepthDataCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence] + return None + + @SourceOfAnteriorChamberDepthDataCodeSequence.setter + def SourceOfAnteriorChamberDepthDataCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SourceOfAnteriorChamberDepthDataCodeSequence = [] + if "SourceOfAnteriorChamberDepthDataCodeSequence" in self._dataset: + del self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SourceOfAnteriorChamberDepthDataCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SourceOfAnteriorChamberDepthDataCodeSequence = value + if "SourceOfAnteriorChamberDepthDataCodeSequence" not in self._dataset: + self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence.clear() + self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceOfAnteriorChamberDepthDataCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SourceOfAnteriorChamberDepthDataCodeSequence.append(item) + if "SourceOfAnteriorChamberDepthDataCodeSequence" not in self._dataset: + self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfAnteriorChamberDepthDataCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/application_setup_sequence_item.py b/tdwii_plus_examples/domain_model/application_setup_sequence_item.py new file mode 100644 index 0000000..3756844 --- /dev/null +++ b/tdwii_plus_examples/domain_model/application_setup_sequence_item.py @@ -0,0 +1,229 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .brachy_accessory_device_sequence_item import BrachyAccessoryDeviceSequenceItem +from .channel_sequence_item import ChannelSequenceItem +from .referenced_reference_image_sequence_item import ( + ReferencedReferenceImageSequenceItem, +) + + +class ApplicationSetupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BrachyAccessoryDeviceSequence: List[BrachyAccessoryDeviceSequenceItem] = [] + self._ChannelSequence: List[ChannelSequenceItem] = [] + self._ReferencedReferenceImageSequence: List[ReferencedReferenceImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ApplicationSetupType(self) -> Optional[str]: + if "ApplicationSetupType" in self._dataset: + return self._dataset.ApplicationSetupType + return None + + @ApplicationSetupType.setter + def ApplicationSetupType(self, value: Optional[str]): + if value is None: + if "ApplicationSetupType" in self._dataset: + del self._dataset.ApplicationSetupType + else: + self._dataset.ApplicationSetupType = value + + @property + def ApplicationSetupNumber(self) -> Optional[int]: + if "ApplicationSetupNumber" in self._dataset: + return self._dataset.ApplicationSetupNumber + return None + + @ApplicationSetupNumber.setter + def ApplicationSetupNumber(self, value: Optional[int]): + if value is None: + if "ApplicationSetupNumber" in self._dataset: + del self._dataset.ApplicationSetupNumber + else: + self._dataset.ApplicationSetupNumber = value + + @property + def ApplicationSetupName(self) -> Optional[str]: + if "ApplicationSetupName" in self._dataset: + return self._dataset.ApplicationSetupName + return None + + @ApplicationSetupName.setter + def ApplicationSetupName(self, value: Optional[str]): + if value is None: + if "ApplicationSetupName" in self._dataset: + del self._dataset.ApplicationSetupName + else: + self._dataset.ApplicationSetupName = value + + @property + def ApplicationSetupManufacturer(self) -> Optional[str]: + if "ApplicationSetupManufacturer" in self._dataset: + return self._dataset.ApplicationSetupManufacturer + return None + + @ApplicationSetupManufacturer.setter + def ApplicationSetupManufacturer(self, value: Optional[str]): + if value is None: + if "ApplicationSetupManufacturer" in self._dataset: + del self._dataset.ApplicationSetupManufacturer + else: + self._dataset.ApplicationSetupManufacturer = value + + @property + def TemplateNumber(self) -> Optional[int]: + if "TemplateNumber" in self._dataset: + return self._dataset.TemplateNumber + return None + + @TemplateNumber.setter + def TemplateNumber(self, value: Optional[int]): + if value is None: + if "TemplateNumber" in self._dataset: + del self._dataset.TemplateNumber + else: + self._dataset.TemplateNumber = value + + @property + def TemplateType(self) -> Optional[str]: + if "TemplateType" in self._dataset: + return self._dataset.TemplateType + return None + + @TemplateType.setter + def TemplateType(self, value: Optional[str]): + if value is None: + if "TemplateType" in self._dataset: + del self._dataset.TemplateType + else: + self._dataset.TemplateType = value + + @property + def TemplateName(self) -> Optional[str]: + if "TemplateName" in self._dataset: + return self._dataset.TemplateName + return None + + @TemplateName.setter + def TemplateName(self, value: Optional[str]): + if value is None: + if "TemplateName" in self._dataset: + del self._dataset.TemplateName + else: + self._dataset.TemplateName = value + + @property + def TotalReferenceAirKerma(self) -> Optional[Decimal]: + if "TotalReferenceAirKerma" in self._dataset: + return self._dataset.TotalReferenceAirKerma + return None + + @TotalReferenceAirKerma.setter + def TotalReferenceAirKerma(self, value: Optional[Decimal]): + if value is None: + if "TotalReferenceAirKerma" in self._dataset: + del self._dataset.TotalReferenceAirKerma + else: + self._dataset.TotalReferenceAirKerma = value + + @property + def BrachyAccessoryDeviceSequence(self) -> Optional[List[BrachyAccessoryDeviceSequenceItem]]: + if "BrachyAccessoryDeviceSequence" in self._dataset: + if len(self._BrachyAccessoryDeviceSequence) == len(self._dataset.BrachyAccessoryDeviceSequence): + return self._BrachyAccessoryDeviceSequence + else: + return [BrachyAccessoryDeviceSequenceItem(x) for x in self._dataset.BrachyAccessoryDeviceSequence] + return None + + @BrachyAccessoryDeviceSequence.setter + def BrachyAccessoryDeviceSequence(self, value: Optional[List[BrachyAccessoryDeviceSequenceItem]]): + if value is None: + self._BrachyAccessoryDeviceSequence = [] + if "BrachyAccessoryDeviceSequence" in self._dataset: + del self._dataset.BrachyAccessoryDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, BrachyAccessoryDeviceSequenceItem) for item in value): + raise ValueError("BrachyAccessoryDeviceSequence must be a list of BrachyAccessoryDeviceSequenceItem objects") + else: + self._BrachyAccessoryDeviceSequence = value + if "BrachyAccessoryDeviceSequence" not in self._dataset: + self._dataset.BrachyAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.BrachyAccessoryDeviceSequence.clear() + self._dataset.BrachyAccessoryDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_BrachyAccessoryDevice(self, item: BrachyAccessoryDeviceSequenceItem): + if not isinstance(item, BrachyAccessoryDeviceSequenceItem): + raise ValueError("Item must be an instance of BrachyAccessoryDeviceSequenceItem") + self._BrachyAccessoryDeviceSequence.append(item) + if "BrachyAccessoryDeviceSequence" not in self._dataset: + self._dataset.BrachyAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.BrachyAccessoryDeviceSequence.append(item.to_dataset()) + + @property + def ChannelSequence(self) -> Optional[List[ChannelSequenceItem]]: + if "ChannelSequence" in self._dataset: + if len(self._ChannelSequence) == len(self._dataset.ChannelSequence): + return self._ChannelSequence + else: + return [ChannelSequenceItem(x) for x in self._dataset.ChannelSequence] + return None + + @ChannelSequence.setter + def ChannelSequence(self, value: Optional[List[ChannelSequenceItem]]): + if value is None: + self._ChannelSequence = [] + if "ChannelSequence" in self._dataset: + del self._dataset.ChannelSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelSequenceItem) for item in value): + raise ValueError("ChannelSequence must be a list of ChannelSequenceItem objects") + else: + self._ChannelSequence = value + if "ChannelSequence" not in self._dataset: + self._dataset.ChannelSequence = pydicom.Sequence() + self._dataset.ChannelSequence.clear() + self._dataset.ChannelSequence.extend([item.to_dataset() for item in value]) + + def add_Channel(self, item: ChannelSequenceItem): + if not isinstance(item, ChannelSequenceItem): + raise ValueError("Item must be an instance of ChannelSequenceItem") + self._ChannelSequence.append(item) + if "ChannelSequence" not in self._dataset: + self._dataset.ChannelSequence = pydicom.Sequence() + self._dataset.ChannelSequence.append(item.to_dataset()) + + @property + def ReferencedReferenceImageSequence(self) -> Optional[List[ReferencedReferenceImageSequenceItem]]: + if "ReferencedReferenceImageSequence" in self._dataset: + if len(self._ReferencedReferenceImageSequence) == len(self._dataset.ReferencedReferenceImageSequence): + return self._ReferencedReferenceImageSequence + else: + return [ReferencedReferenceImageSequenceItem(x) for x in self._dataset.ReferencedReferenceImageSequence] + return None + + @ReferencedReferenceImageSequence.setter + def ReferencedReferenceImageSequence(self, value: Optional[List[ReferencedReferenceImageSequenceItem]]): + if value is None: + self._ReferencedReferenceImageSequence = [] + if "ReferencedReferenceImageSequence" in self._dataset: + del self._dataset.ReferencedReferenceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedReferenceImageSequenceItem) for item in value): + raise ValueError("ReferencedReferenceImageSequence must be a list of ReferencedReferenceImageSequenceItem objects") + else: + self._ReferencedReferenceImageSequence = value + if "ReferencedReferenceImageSequence" not in self._dataset: + self._dataset.ReferencedReferenceImageSequence = pydicom.Sequence() + self._dataset.ReferencedReferenceImageSequence.clear() + self._dataset.ReferencedReferenceImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedReferenceImage(self, item: ReferencedReferenceImageSequenceItem): + if not isinstance(item, ReferencedReferenceImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedReferenceImageSequenceItem") + self._ReferencedReferenceImageSequence.append(item) + if "ReferencedReferenceImageSequence" not in self._dataset: + self._dataset.ReferencedReferenceImageSequence = pydicom.Sequence() + self._dataset.ReferencedReferenceImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/applicator_geometry_sequence_item.py b/tdwii_plus_examples/domain_model/applicator_geometry_sequence_item.py new file mode 100644 index 0000000..f381be4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/applicator_geometry_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ApplicatorGeometrySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ApplicatorApertureShape(self) -> Optional[str]: + if "ApplicatorApertureShape" in self._dataset: + return self._dataset.ApplicatorApertureShape + return None + + @ApplicatorApertureShape.setter + def ApplicatorApertureShape(self, value: Optional[str]): + if value is None: + if "ApplicatorApertureShape" in self._dataset: + del self._dataset.ApplicatorApertureShape + else: + self._dataset.ApplicatorApertureShape = value + + @property + def ApplicatorOpening(self) -> Optional[float]: + if "ApplicatorOpening" in self._dataset: + return self._dataset.ApplicatorOpening + return None + + @ApplicatorOpening.setter + def ApplicatorOpening(self, value: Optional[float]): + if value is None: + if "ApplicatorOpening" in self._dataset: + del self._dataset.ApplicatorOpening + else: + self._dataset.ApplicatorOpening = value + + @property + def ApplicatorOpeningX(self) -> Optional[float]: + if "ApplicatorOpeningX" in self._dataset: + return self._dataset.ApplicatorOpeningX + return None + + @ApplicatorOpeningX.setter + def ApplicatorOpeningX(self, value: Optional[float]): + if value is None: + if "ApplicatorOpeningX" in self._dataset: + del self._dataset.ApplicatorOpeningX + else: + self._dataset.ApplicatorOpeningX = value + + @property + def ApplicatorOpeningY(self) -> Optional[float]: + if "ApplicatorOpeningY" in self._dataset: + return self._dataset.ApplicatorOpeningY + return None + + @ApplicatorOpeningY.setter + def ApplicatorOpeningY(self, value: Optional[float]): + if value is None: + if "ApplicatorOpeningY" in self._dataset: + del self._dataset.ApplicatorOpeningY + else: + self._dataset.ApplicatorOpeningY = value diff --git a/tdwii_plus_examples/domain_model/applicator_sequence_item.py b/tdwii_plus_examples/domain_model/applicator_sequence_item.py new file mode 100644 index 0000000..dffc387 --- /dev/null +++ b/tdwii_plus_examples/domain_model/applicator_sequence_item.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .applicator_geometry_sequence_item import ApplicatorGeometrySequenceItem + + +class ApplicatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ApplicatorGeometrySequence: List[ApplicatorGeometrySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def ApplicatorID(self) -> Optional[str]: + if "ApplicatorID" in self._dataset: + return self._dataset.ApplicatorID + return None + + @ApplicatorID.setter + def ApplicatorID(self, value: Optional[str]): + if value is None: + if "ApplicatorID" in self._dataset: + del self._dataset.ApplicatorID + else: + self._dataset.ApplicatorID = value + + @property + def ApplicatorType(self) -> Optional[str]: + if "ApplicatorType" in self._dataset: + return self._dataset.ApplicatorType + return None + + @ApplicatorType.setter + def ApplicatorType(self, value: Optional[str]): + if value is None: + if "ApplicatorType" in self._dataset: + del self._dataset.ApplicatorType + else: + self._dataset.ApplicatorType = value + + @property + def ApplicatorDescription(self) -> Optional[str]: + if "ApplicatorDescription" in self._dataset: + return self._dataset.ApplicatorDescription + return None + + @ApplicatorDescription.setter + def ApplicatorDescription(self, value: Optional[str]): + if value is None: + if "ApplicatorDescription" in self._dataset: + del self._dataset.ApplicatorDescription + else: + self._dataset.ApplicatorDescription = value + + @property + def ApplicatorGeometrySequence(self) -> Optional[List[ApplicatorGeometrySequenceItem]]: + if "ApplicatorGeometrySequence" in self._dataset: + if len(self._ApplicatorGeometrySequence) == len(self._dataset.ApplicatorGeometrySequence): + return self._ApplicatorGeometrySequence + else: + return [ApplicatorGeometrySequenceItem(x) for x in self._dataset.ApplicatorGeometrySequence] + return None + + @ApplicatorGeometrySequence.setter + def ApplicatorGeometrySequence(self, value: Optional[List[ApplicatorGeometrySequenceItem]]): + if value is None: + self._ApplicatorGeometrySequence = [] + if "ApplicatorGeometrySequence" in self._dataset: + del self._dataset.ApplicatorGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicatorGeometrySequenceItem) for item in value): + raise ValueError("ApplicatorGeometrySequence must be a list of ApplicatorGeometrySequenceItem objects") + else: + self._ApplicatorGeometrySequence = value + if "ApplicatorGeometrySequence" not in self._dataset: + self._dataset.ApplicatorGeometrySequence = pydicom.Sequence() + self._dataset.ApplicatorGeometrySequence.clear() + self._dataset.ApplicatorGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_ApplicatorGeometry(self, item: ApplicatorGeometrySequenceItem): + if not isinstance(item, ApplicatorGeometrySequenceItem): + raise ValueError("Item must be an instance of ApplicatorGeometrySequenceItem") + self._ApplicatorGeometrySequence.append(item) + if "ApplicatorGeometrySequence" not in self._dataset: + self._dataset.ApplicatorGeometrySequence = pydicom.Sequence() + self._dataset.ApplicatorGeometrySequence.append(item.to_dataset()) + + @property + def SourceToApplicatorMountingPositionDistance(self) -> Optional[float]: + if "SourceToApplicatorMountingPositionDistance" in self._dataset: + return self._dataset.SourceToApplicatorMountingPositionDistance + return None + + @SourceToApplicatorMountingPositionDistance.setter + def SourceToApplicatorMountingPositionDistance(self, value: Optional[float]): + if value is None: + if "SourceToApplicatorMountingPositionDistance" in self._dataset: + del self._dataset.SourceToApplicatorMountingPositionDistance + else: + self._dataset.SourceToApplicatorMountingPositionDistance = value diff --git a/tdwii_plus_examples/domain_model/arterial_pulse_waveform.py b/tdwii_plus_examples/domain_model/arterial_pulse_waveform.py new file mode 100644 index 0000000..7ff11dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/arterial_pulse_waveform.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class ArterialPulseWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/asl_bolus_cutoff_timing_sequence_item.py b/tdwii_plus_examples/domain_model/asl_bolus_cutoff_timing_sequence_item.py new file mode 100644 index 0000000..cbf4402 --- /dev/null +++ b/tdwii_plus_examples/domain_model/asl_bolus_cutoff_timing_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ASLBolusCutoffTimingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ASLBolusCutoffTechnique(self) -> Optional[str]: + if "ASLBolusCutoffTechnique" in self._dataset: + return self._dataset.ASLBolusCutoffTechnique + return None + + @ASLBolusCutoffTechnique.setter + def ASLBolusCutoffTechnique(self, value: Optional[str]): + if value is None: + if "ASLBolusCutoffTechnique" in self._dataset: + del self._dataset.ASLBolusCutoffTechnique + else: + self._dataset.ASLBolusCutoffTechnique = value + + @property + def ASLBolusCutoffDelayTime(self) -> Optional[int]: + if "ASLBolusCutoffDelayTime" in self._dataset: + return self._dataset.ASLBolusCutoffDelayTime + return None + + @ASLBolusCutoffDelayTime.setter + def ASLBolusCutoffDelayTime(self, value: Optional[int]): + if value is None: + if "ASLBolusCutoffDelayTime" in self._dataset: + del self._dataset.ASLBolusCutoffDelayTime + else: + self._dataset.ASLBolusCutoffDelayTime = value diff --git a/tdwii_plus_examples/domain_model/asl_slab_sequence_item.py b/tdwii_plus_examples/domain_model/asl_slab_sequence_item.py new file mode 100644 index 0000000..9980689 --- /dev/null +++ b/tdwii_plus_examples/domain_model/asl_slab_sequence_item.py @@ -0,0 +1,152 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) + + +class ASLSlabSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ASLSlabNumber(self) -> Optional[int]: + if "ASLSlabNumber" in self._dataset: + return self._dataset.ASLSlabNumber + return None + + @ASLSlabNumber.setter + def ASLSlabNumber(self, value: Optional[int]): + if value is None: + if "ASLSlabNumber" in self._dataset: + del self._dataset.ASLSlabNumber + else: + self._dataset.ASLSlabNumber = value + + @property + def ASLSlabThickness(self) -> Optional[float]: + if "ASLSlabThickness" in self._dataset: + return self._dataset.ASLSlabThickness + return None + + @ASLSlabThickness.setter + def ASLSlabThickness(self, value: Optional[float]): + if value is None: + if "ASLSlabThickness" in self._dataset: + del self._dataset.ASLSlabThickness + else: + self._dataset.ASLSlabThickness = value + + @property + def ASLSlabOrientation(self) -> Optional[List[float]]: + if "ASLSlabOrientation" in self._dataset: + return self._dataset.ASLSlabOrientation + return None + + @ASLSlabOrientation.setter + def ASLSlabOrientation(self, value: Optional[List[float]]): + if value is None: + if "ASLSlabOrientation" in self._dataset: + del self._dataset.ASLSlabOrientation + else: + self._dataset.ASLSlabOrientation = value + + @property + def ASLMidSlabPosition(self) -> Optional[List[float]]: + if "ASLMidSlabPosition" in self._dataset: + return self._dataset.ASLMidSlabPosition + return None + + @ASLMidSlabPosition.setter + def ASLMidSlabPosition(self, value: Optional[List[float]]): + if value is None: + if "ASLMidSlabPosition" in self._dataset: + del self._dataset.ASLMidSlabPosition + else: + self._dataset.ASLMidSlabPosition = value + + @property + def ASLPulseTrainDuration(self) -> Optional[int]: + if "ASLPulseTrainDuration" in self._dataset: + return self._dataset.ASLPulseTrainDuration + return None + + @ASLPulseTrainDuration.setter + def ASLPulseTrainDuration(self, value: Optional[int]): + if value is None: + if "ASLPulseTrainDuration" in self._dataset: + del self._dataset.ASLPulseTrainDuration + else: + self._dataset.ASLPulseTrainDuration = value diff --git a/tdwii_plus_examples/domain_model/asserter_identification_sequence_item.py b/tdwii_plus_examples/domain_model/asserter_identification_sequence_item.py new file mode 100644 index 0000000..f2a0800 --- /dev/null +++ b/tdwii_plus_examples/domain_model/asserter_identification_sequence_item.py @@ -0,0 +1,329 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AsserterIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/assessed_attribute_value_sequence_item.py b/tdwii_plus_examples/domain_model/assessed_attribute_value_sequence_item.py new file mode 100644 index 0000000..d522e63 --- /dev/null +++ b/tdwii_plus_examples/domain_model/assessed_attribute_value_sequence_item.py @@ -0,0 +1,488 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class AssessedAttributeValueSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectorAEValue(self) -> Optional[List[str]]: + if "SelectorAEValue" in self._dataset: + return self._dataset.SelectorAEValue + return None + + @SelectorAEValue.setter + def SelectorAEValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorAEValue" in self._dataset: + del self._dataset.SelectorAEValue + else: + self._dataset.SelectorAEValue = value + + @property + def SelectorASValue(self) -> Optional[List[str]]: + if "SelectorASValue" in self._dataset: + return self._dataset.SelectorASValue + return None + + @SelectorASValue.setter + def SelectorASValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorASValue" in self._dataset: + del self._dataset.SelectorASValue + else: + self._dataset.SelectorASValue = value + + @property + def SelectorATValue(self) -> Optional[List[int]]: + if "SelectorATValue" in self._dataset: + return self._dataset.SelectorATValue + return None + + @SelectorATValue.setter + def SelectorATValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorATValue" in self._dataset: + del self._dataset.SelectorATValue + else: + self._dataset.SelectorATValue = value + + @property + def SelectorDAValue(self) -> Optional[List[str]]: + if "SelectorDAValue" in self._dataset: + return self._dataset.SelectorDAValue + return None + + @SelectorDAValue.setter + def SelectorDAValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDAValue" in self._dataset: + del self._dataset.SelectorDAValue + else: + self._dataset.SelectorDAValue = value + + @property + def SelectorCSValue(self) -> Optional[List[str]]: + if "SelectorCSValue" in self._dataset: + return self._dataset.SelectorCSValue + return None + + @SelectorCSValue.setter + def SelectorCSValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorCSValue" in self._dataset: + del self._dataset.SelectorCSValue + else: + self._dataset.SelectorCSValue = value + + @property + def SelectorDTValue(self) -> Optional[List[str]]: + if "SelectorDTValue" in self._dataset: + return self._dataset.SelectorDTValue + return None + + @SelectorDTValue.setter + def SelectorDTValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDTValue" in self._dataset: + del self._dataset.SelectorDTValue + else: + self._dataset.SelectorDTValue = value + + @property + def SelectorISValue(self) -> Optional[List[int]]: + if "SelectorISValue" in self._dataset: + return self._dataset.SelectorISValue + return None + + @SelectorISValue.setter + def SelectorISValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorISValue" in self._dataset: + del self._dataset.SelectorISValue + else: + self._dataset.SelectorISValue = value + + @property + def SelectorOBValue(self) -> Optional[bytes]: + if "SelectorOBValue" in self._dataset: + return self._dataset.SelectorOBValue + return None + + @SelectorOBValue.setter + def SelectorOBValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOBValue" in self._dataset: + del self._dataset.SelectorOBValue + else: + self._dataset.SelectorOBValue = value + + @property + def SelectorLOValue(self) -> Optional[List[str]]: + if "SelectorLOValue" in self._dataset: + return self._dataset.SelectorLOValue + return None + + @SelectorLOValue.setter + def SelectorLOValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorLOValue" in self._dataset: + del self._dataset.SelectorLOValue + else: + self._dataset.SelectorLOValue = value + + @property + def SelectorOFValue(self) -> Optional[bytes]: + if "SelectorOFValue" in self._dataset: + return self._dataset.SelectorOFValue + return None + + @SelectorOFValue.setter + def SelectorOFValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOFValue" in self._dataset: + del self._dataset.SelectorOFValue + else: + self._dataset.SelectorOFValue = value + + @property + def SelectorLTValue(self) -> Optional[str]: + if "SelectorLTValue" in self._dataset: + return self._dataset.SelectorLTValue + return None + + @SelectorLTValue.setter + def SelectorLTValue(self, value: Optional[str]): + if value is None: + if "SelectorLTValue" in self._dataset: + del self._dataset.SelectorLTValue + else: + self._dataset.SelectorLTValue = value + + @property + def SelectorOWValue(self) -> Optional[bytes]: + if "SelectorOWValue" in self._dataset: + return self._dataset.SelectorOWValue + return None + + @SelectorOWValue.setter + def SelectorOWValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOWValue" in self._dataset: + del self._dataset.SelectorOWValue + else: + self._dataset.SelectorOWValue = value + + @property + def SelectorPNValue(self) -> Optional[List[str]]: + if "SelectorPNValue" in self._dataset: + return self._dataset.SelectorPNValue + return None + + @SelectorPNValue.setter + def SelectorPNValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorPNValue" in self._dataset: + del self._dataset.SelectorPNValue + else: + self._dataset.SelectorPNValue = value + + @property + def SelectorTMValue(self) -> Optional[List[str]]: + if "SelectorTMValue" in self._dataset: + return self._dataset.SelectorTMValue + return None + + @SelectorTMValue.setter + def SelectorTMValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorTMValue" in self._dataset: + del self._dataset.SelectorTMValue + else: + self._dataset.SelectorTMValue = value + + @property + def SelectorSHValue(self) -> Optional[List[str]]: + if "SelectorSHValue" in self._dataset: + return self._dataset.SelectorSHValue + return None + + @SelectorSHValue.setter + def SelectorSHValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorSHValue" in self._dataset: + del self._dataset.SelectorSHValue + else: + self._dataset.SelectorSHValue = value + + @property + def SelectorUNValue(self) -> Optional[bytes]: + if "SelectorUNValue" in self._dataset: + return self._dataset.SelectorUNValue + return None + + @SelectorUNValue.setter + def SelectorUNValue(self, value: Optional[bytes]): + if value is None: + if "SelectorUNValue" in self._dataset: + del self._dataset.SelectorUNValue + else: + self._dataset.SelectorUNValue = value + + @property + def SelectorSTValue(self) -> Optional[str]: + if "SelectorSTValue" in self._dataset: + return self._dataset.SelectorSTValue + return None + + @SelectorSTValue.setter + def SelectorSTValue(self, value: Optional[str]): + if value is None: + if "SelectorSTValue" in self._dataset: + del self._dataset.SelectorSTValue + else: + self._dataset.SelectorSTValue = value + + @property + def SelectorUCValue(self) -> Optional[List[str]]: + if "SelectorUCValue" in self._dataset: + return self._dataset.SelectorUCValue + return None + + @SelectorUCValue.setter + def SelectorUCValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUCValue" in self._dataset: + del self._dataset.SelectorUCValue + else: + self._dataset.SelectorUCValue = value + + @property + def SelectorUTValue(self) -> Optional[str]: + if "SelectorUTValue" in self._dataset: + return self._dataset.SelectorUTValue + return None + + @SelectorUTValue.setter + def SelectorUTValue(self, value: Optional[str]): + if value is None: + if "SelectorUTValue" in self._dataset: + del self._dataset.SelectorUTValue + else: + self._dataset.SelectorUTValue = value + + @property + def SelectorURValue(self) -> Optional[str]: + if "SelectorURValue" in self._dataset: + return self._dataset.SelectorURValue + return None + + @SelectorURValue.setter + def SelectorURValue(self, value: Optional[str]): + if value is None: + if "SelectorURValue" in self._dataset: + del self._dataset.SelectorURValue + else: + self._dataset.SelectorURValue = value + + @property + def SelectorDSValue(self) -> Optional[List[Decimal]]: + if "SelectorDSValue" in self._dataset: + return self._dataset.SelectorDSValue + return None + + @SelectorDSValue.setter + def SelectorDSValue(self, value: Optional[List[Decimal]]): + if value is None: + if "SelectorDSValue" in self._dataset: + del self._dataset.SelectorDSValue + else: + self._dataset.SelectorDSValue = value + + @property + def SelectorODValue(self) -> Optional[bytes]: + if "SelectorODValue" in self._dataset: + return self._dataset.SelectorODValue + return None + + @SelectorODValue.setter + def SelectorODValue(self, value: Optional[bytes]): + if value is None: + if "SelectorODValue" in self._dataset: + del self._dataset.SelectorODValue + else: + self._dataset.SelectorODValue = value + + @property + def SelectorFDValue(self) -> Optional[List[float]]: + if "SelectorFDValue" in self._dataset: + return self._dataset.SelectorFDValue + return None + + @SelectorFDValue.setter + def SelectorFDValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFDValue" in self._dataset: + del self._dataset.SelectorFDValue + else: + self._dataset.SelectorFDValue = value + + @property + def SelectorOLValue(self) -> Optional[bytes]: + if "SelectorOLValue" in self._dataset: + return self._dataset.SelectorOLValue + return None + + @SelectorOLValue.setter + def SelectorOLValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOLValue" in self._dataset: + del self._dataset.SelectorOLValue + else: + self._dataset.SelectorOLValue = value + + @property + def SelectorFLValue(self) -> Optional[List[float]]: + if "SelectorFLValue" in self._dataset: + return self._dataset.SelectorFLValue + return None + + @SelectorFLValue.setter + def SelectorFLValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFLValue" in self._dataset: + del self._dataset.SelectorFLValue + else: + self._dataset.SelectorFLValue = value + + @property + def SelectorULValue(self) -> Optional[List[int]]: + if "SelectorULValue" in self._dataset: + return self._dataset.SelectorULValue + return None + + @SelectorULValue.setter + def SelectorULValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorULValue" in self._dataset: + del self._dataset.SelectorULValue + else: + self._dataset.SelectorULValue = value + + @property + def SelectorUSValue(self) -> Optional[List[int]]: + if "SelectorUSValue" in self._dataset: + return self._dataset.SelectorUSValue + return None + + @SelectorUSValue.setter + def SelectorUSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUSValue" in self._dataset: + del self._dataset.SelectorUSValue + else: + self._dataset.SelectorUSValue = value + + @property + def SelectorSLValue(self) -> Optional[List[int]]: + if "SelectorSLValue" in self._dataset: + return self._dataset.SelectorSLValue + return None + + @SelectorSLValue.setter + def SelectorSLValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSLValue" in self._dataset: + del self._dataset.SelectorSLValue + else: + self._dataset.SelectorSLValue = value + + @property + def SelectorSSValue(self) -> Optional[List[int]]: + if "SelectorSSValue" in self._dataset: + return self._dataset.SelectorSSValue + return None + + @SelectorSSValue.setter + def SelectorSSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSSValue" in self._dataset: + del self._dataset.SelectorSSValue + else: + self._dataset.SelectorSSValue = value + + @property + def SelectorUIValue(self) -> Optional[List[str]]: + if "SelectorUIValue" in self._dataset: + return self._dataset.SelectorUIValue + return None + + @SelectorUIValue.setter + def SelectorUIValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUIValue" in self._dataset: + del self._dataset.SelectorUIValue + else: + self._dataset.SelectorUIValue = value + + @property + def SelectorCodeSequenceValue(self) -> Optional[list]: + if "SelectorCodeSequenceValue" in self._dataset: + return self._dataset.SelectorCodeSequenceValue + return None + + @SelectorCodeSequenceValue.setter + def SelectorCodeSequenceValue(self, value: Optional[list]): + if value is None: + if "SelectorCodeSequenceValue" in self._dataset: + del self._dataset.SelectorCodeSequenceValue + else: + self._dataset.SelectorCodeSequenceValue = value + + @property + def SelectorOVValue(self) -> Optional[bytes]: + if "SelectorOVValue" in self._dataset: + return self._dataset.SelectorOVValue + return None + + @SelectorOVValue.setter + def SelectorOVValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOVValue" in self._dataset: + del self._dataset.SelectorOVValue + else: + self._dataset.SelectorOVValue = value + + @property + def SelectorSVValue(self) -> Optional[List[int]]: + if "SelectorSVValue" in self._dataset: + return self._dataset.SelectorSVValue + return None + + @SelectorSVValue.setter + def SelectorSVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSVValue" in self._dataset: + del self._dataset.SelectorSVValue + else: + self._dataset.SelectorSVValue = value + + @property + def SelectorUVValue(self) -> Optional[List[int]]: + if "SelectorUVValue" in self._dataset: + return self._dataset.SelectorUVValue + return None + + @SelectorUVValue.setter + def SelectorUVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUVValue" in self._dataset: + del self._dataset.SelectorUVValue + else: + self._dataset.SelectorUVValue = value diff --git a/tdwii_plus_examples/domain_model/assessed_sop_instance_sequence_item.py b/tdwii_plus_examples/domain_model/assessed_sop_instance_sequence_item.py new file mode 100644 index 0000000..30ca67f --- /dev/null +++ b/tdwii_plus_examples/domain_model/assessed_sop_instance_sequence_item.py @@ -0,0 +1,85 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_comparison_sop_instance_sequence_item import ( + ReferencedComparisonSOPInstanceSequenceItem, +) + + +class AssessedSOPInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedComparisonSOPInstanceSequence: List[ReferencedComparisonSOPInstanceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedComparisonSOPInstanceSequence(self) -> Optional[List[ReferencedComparisonSOPInstanceSequenceItem]]: + if "ReferencedComparisonSOPInstanceSequence" in self._dataset: + if len(self._ReferencedComparisonSOPInstanceSequence) == len( + self._dataset.ReferencedComparisonSOPInstanceSequence + ): + return self._ReferencedComparisonSOPInstanceSequence + else: + return [ + ReferencedComparisonSOPInstanceSequenceItem(x) + for x in self._dataset.ReferencedComparisonSOPInstanceSequence + ] + return None + + @ReferencedComparisonSOPInstanceSequence.setter + def ReferencedComparisonSOPInstanceSequence(self, value: Optional[List[ReferencedComparisonSOPInstanceSequenceItem]]): + if value is None: + self._ReferencedComparisonSOPInstanceSequence = [] + if "ReferencedComparisonSOPInstanceSequence" in self._dataset: + del self._dataset.ReferencedComparisonSOPInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedComparisonSOPInstanceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedComparisonSOPInstanceSequence must be a list of ReferencedComparisonSOPInstanceSequenceItem objects" + ) + else: + self._ReferencedComparisonSOPInstanceSequence = value + if "ReferencedComparisonSOPInstanceSequence" not in self._dataset: + self._dataset.ReferencedComparisonSOPInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedComparisonSOPInstanceSequence.clear() + self._dataset.ReferencedComparisonSOPInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedComparisonSOPInstance(self, item: ReferencedComparisonSOPInstanceSequenceItem): + if not isinstance(item, ReferencedComparisonSOPInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedComparisonSOPInstanceSequenceItem") + self._ReferencedComparisonSOPInstanceSequence.append(item) + if "ReferencedComparisonSOPInstanceSequence" not in self._dataset: + self._dataset.ReferencedComparisonSOPInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedComparisonSOPInstanceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/assessment_observations_sequence_item.py b/tdwii_plus_examples/domain_model/assessment_observations_sequence_item.py new file mode 100644 index 0000000..e3f2892 --- /dev/null +++ b/tdwii_plus_examples/domain_model/assessment_observations_sequence_item.py @@ -0,0 +1,119 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .structured_constraint_observation_sequence_item import ( + StructuredConstraintObservationSequenceItem, +) + + +class AssessmentObservationsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._StructuredConstraintObservationSequence: List[StructuredConstraintObservationSequenceItem] = [] + self._ObservationBasisCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ObservationSignificance(self) -> Optional[str]: + if "ObservationSignificance" in self._dataset: + return self._dataset.ObservationSignificance + return None + + @ObservationSignificance.setter + def ObservationSignificance(self, value: Optional[str]): + if value is None: + if "ObservationSignificance" in self._dataset: + del self._dataset.ObservationSignificance + else: + self._dataset.ObservationSignificance = value + + @property + def ObservationDescription(self) -> Optional[str]: + if "ObservationDescription" in self._dataset: + return self._dataset.ObservationDescription + return None + + @ObservationDescription.setter + def ObservationDescription(self, value: Optional[str]): + if value is None: + if "ObservationDescription" in self._dataset: + del self._dataset.ObservationDescription + else: + self._dataset.ObservationDescription = value + + @property + def StructuredConstraintObservationSequence(self) -> Optional[List[StructuredConstraintObservationSequenceItem]]: + if "StructuredConstraintObservationSequence" in self._dataset: + if len(self._StructuredConstraintObservationSequence) == len( + self._dataset.StructuredConstraintObservationSequence + ): + return self._StructuredConstraintObservationSequence + else: + return [ + StructuredConstraintObservationSequenceItem(x) + for x in self._dataset.StructuredConstraintObservationSequence + ] + return None + + @StructuredConstraintObservationSequence.setter + def StructuredConstraintObservationSequence(self, value: Optional[List[StructuredConstraintObservationSequenceItem]]): + if value is None: + self._StructuredConstraintObservationSequence = [] + if "StructuredConstraintObservationSequence" in self._dataset: + del self._dataset.StructuredConstraintObservationSequence + elif not isinstance(value, list) or not all( + isinstance(item, StructuredConstraintObservationSequenceItem) for item in value + ): + raise ValueError( + "StructuredConstraintObservationSequence must be a list of StructuredConstraintObservationSequenceItem objects" + ) + else: + self._StructuredConstraintObservationSequence = value + if "StructuredConstraintObservationSequence" not in self._dataset: + self._dataset.StructuredConstraintObservationSequence = pydicom.Sequence() + self._dataset.StructuredConstraintObservationSequence.clear() + self._dataset.StructuredConstraintObservationSequence.extend([item.to_dataset() for item in value]) + + def add_StructuredConstraintObservation(self, item: StructuredConstraintObservationSequenceItem): + if not isinstance(item, StructuredConstraintObservationSequenceItem): + raise ValueError("Item must be an instance of StructuredConstraintObservationSequenceItem") + self._StructuredConstraintObservationSequence.append(item) + if "StructuredConstraintObservationSequence" not in self._dataset: + self._dataset.StructuredConstraintObservationSequence = pydicom.Sequence() + self._dataset.StructuredConstraintObservationSequence.append(item.to_dataset()) + + @property + def ObservationBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ObservationBasisCodeSequence" in self._dataset: + if len(self._ObservationBasisCodeSequence) == len(self._dataset.ObservationBasisCodeSequence): + return self._ObservationBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ObservationBasisCodeSequence] + return None + + @ObservationBasisCodeSequence.setter + def ObservationBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ObservationBasisCodeSequence = [] + if "ObservationBasisCodeSequence" in self._dataset: + del self._dataset.ObservationBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ObservationBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ObservationBasisCodeSequence = value + if "ObservationBasisCodeSequence" not in self._dataset: + self._dataset.ObservationBasisCodeSequence = pydicom.Sequence() + self._dataset.ObservationBasisCodeSequence.clear() + self._dataset.ObservationBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ObservationBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ObservationBasisCodeSequence.append(item) + if "ObservationBasisCodeSequence" not in self._dataset: + self._dataset.ObservationBasisCodeSequence = pydicom.Sequence() + self._dataset.ObservationBasisCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/assessment_requester_sequence_item.py b/tdwii_plus_examples/domain_model/assessment_requester_sequence_item.py new file mode 100644 index 0000000..ac6ecd4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/assessment_requester_sequence_item.py @@ -0,0 +1,329 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AssessmentRequesterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/assigning_facility_sequence_item.py b/tdwii_plus_examples/domain_model/assigning_facility_sequence_item.py new file mode 100644 index 0000000..362bee1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/assigning_facility_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AssigningFacilitySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/attribute_tolerance_values_sequence_item.py b/tdwii_plus_examples/domain_model/attribute_tolerance_values_sequence_item.py new file mode 100644 index 0000000..9a181bc --- /dev/null +++ b/tdwii_plus_examples/domain_model/attribute_tolerance_values_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class AttributeToleranceValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectorAttribute(self) -> Optional[int]: + if "SelectorAttribute" in self._dataset: + return self._dataset.SelectorAttribute + return None + + @SelectorAttribute.setter + def SelectorAttribute(self, value: Optional[int]): + if value is None: + if "SelectorAttribute" in self._dataset: + del self._dataset.SelectorAttribute + else: + self._dataset.SelectorAttribute = value + + @property + def SelectorValueNumber(self) -> Optional[int]: + if "SelectorValueNumber" in self._dataset: + return self._dataset.SelectorValueNumber + return None + + @SelectorValueNumber.setter + def SelectorValueNumber(self, value: Optional[int]): + if value is None: + if "SelectorValueNumber" in self._dataset: + del self._dataset.SelectorValueNumber + else: + self._dataset.SelectorValueNumber = value + + @property + def SelectorSequencePointer(self) -> Optional[List[int]]: + if "SelectorSequencePointer" in self._dataset: + return self._dataset.SelectorSequencePointer + return None + + @SelectorSequencePointer.setter + def SelectorSequencePointer(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointer" in self._dataset: + del self._dataset.SelectorSequencePointer + else: + self._dataset.SelectorSequencePointer = value + + @property + def SelectorSequencePointerPrivateCreator(self) -> Optional[List[str]]: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + return self._dataset.SelectorSequencePointerPrivateCreator + return None + + @SelectorSequencePointerPrivateCreator.setter + def SelectorSequencePointerPrivateCreator(self, value: Optional[List[str]]): + if value is None: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + del self._dataset.SelectorSequencePointerPrivateCreator + else: + self._dataset.SelectorSequencePointerPrivateCreator = value + + @property + def SelectorAttributePrivateCreator(self) -> Optional[str]: + if "SelectorAttributePrivateCreator" in self._dataset: + return self._dataset.SelectorAttributePrivateCreator + return None + + @SelectorAttributePrivateCreator.setter + def SelectorAttributePrivateCreator(self, value: Optional[str]): + if value is None: + if "SelectorAttributePrivateCreator" in self._dataset: + del self._dataset.SelectorAttributePrivateCreator + else: + self._dataset.SelectorAttributePrivateCreator = value + + @property + def SelectorSequencePointerItems(self) -> Optional[List[int]]: + if "SelectorSequencePointerItems" in self._dataset: + return self._dataset.SelectorSequencePointerItems + return None + + @SelectorSequencePointerItems.setter + def SelectorSequencePointerItems(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointerItems" in self._dataset: + del self._dataset.SelectorSequencePointerItems + else: + self._dataset.SelectorSequencePointerItems = value + + @property + def ToleranceValue(self) -> Optional[float]: + if "ToleranceValue" in self._dataset: + return self._dataset.ToleranceValue + return None + + @ToleranceValue.setter + def ToleranceValue(self, value: Optional[float]): + if value is None: + if "ToleranceValue" in self._dataset: + del self._dataset.ToleranceValue + else: + self._dataset.ToleranceValue = value diff --git a/tdwii_plus_examples/domain_model/author_identification_sequence_item.py b/tdwii_plus_examples/domain_model/author_identification_sequence_item.py new file mode 100644 index 0000000..163c16a --- /dev/null +++ b/tdwii_plus_examples/domain_model/author_identification_sequence_item.py @@ -0,0 +1,329 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AuthorIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/author_observer_sequence_item.py b/tdwii_plus_examples/domain_model/author_observer_sequence_item.py new file mode 100644 index 0000000..ab46941 --- /dev/null +++ b/tdwii_plus_examples/domain_model/author_observer_sequence_item.py @@ -0,0 +1,329 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class AuthorObserverSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/autorefraction_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/autorefraction_left_eye_sequence_item.py new file mode 100644 index 0000000..c2f2778 --- /dev/null +++ b/tdwii_plus_examples/domain_model/autorefraction_left_eye_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cylinder_sequence_item import CylinderSequenceItem + + +class AutorefractionLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VertexDistance(self) -> Optional[float]: + if "VertexDistance" in self._dataset: + return self._dataset.VertexDistance + return None + + @VertexDistance.setter + def VertexDistance(self, value: Optional[float]): + if value is None: + if "VertexDistance" in self._dataset: + del self._dataset.VertexDistance + else: + self._dataset.VertexDistance = value + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PupilSize(self) -> Optional[float]: + if "PupilSize" in self._dataset: + return self._dataset.PupilSize + return None + + @PupilSize.setter + def PupilSize(self, value: Optional[float]): + if value is None: + if "PupilSize" in self._dataset: + del self._dataset.PupilSize + else: + self._dataset.PupilSize = value + + @property + def CornealSize(self) -> Optional[float]: + if "CornealSize" in self._dataset: + return self._dataset.CornealSize + return None + + @CornealSize.setter + def CornealSize(self, value: Optional[float]): + if value is None: + if "CornealSize" in self._dataset: + del self._dataset.CornealSize + else: + self._dataset.CornealSize = value + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/autorefraction_measurements.py b/tdwii_plus_examples/domain_model/autorefraction_measurements.py new file mode 100644 index 0000000..ad2bfd2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/autorefraction_measurements.py @@ -0,0 +1,4194 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .autorefraction_left_eye_sequence_item import AutorefractionLeftEyeSequenceItem +from .autorefraction_right_eye_sequence_item import AutorefractionRightEyeSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class AutorefractionMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._AutorefractionRightEyeSequence: List[AutorefractionRightEyeSequenceItem] = [] + self._AutorefractionLeftEyeSequence: List[AutorefractionLeftEyeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def AutorefractionRightEyeSequence(self) -> Optional[List[AutorefractionRightEyeSequenceItem]]: + if "AutorefractionRightEyeSequence" in self._dataset: + if len(self._AutorefractionRightEyeSequence) == len(self._dataset.AutorefractionRightEyeSequence): + return self._AutorefractionRightEyeSequence + else: + return [AutorefractionRightEyeSequenceItem(x) for x in self._dataset.AutorefractionRightEyeSequence] + return None + + @AutorefractionRightEyeSequence.setter + def AutorefractionRightEyeSequence(self, value: Optional[List[AutorefractionRightEyeSequenceItem]]): + if value is None: + self._AutorefractionRightEyeSequence = [] + if "AutorefractionRightEyeSequence" in self._dataset: + del self._dataset.AutorefractionRightEyeSequence + elif not isinstance(value, list) or not all(isinstance(item, AutorefractionRightEyeSequenceItem) for item in value): + raise ValueError("AutorefractionRightEyeSequence must be a list of AutorefractionRightEyeSequenceItem objects") + else: + self._AutorefractionRightEyeSequence = value + if "AutorefractionRightEyeSequence" not in self._dataset: + self._dataset.AutorefractionRightEyeSequence = pydicom.Sequence() + self._dataset.AutorefractionRightEyeSequence.clear() + self._dataset.AutorefractionRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_AutorefractionRightEye(self, item: AutorefractionRightEyeSequenceItem): + if not isinstance(item, AutorefractionRightEyeSequenceItem): + raise ValueError("Item must be an instance of AutorefractionRightEyeSequenceItem") + self._AutorefractionRightEyeSequence.append(item) + if "AutorefractionRightEyeSequence" not in self._dataset: + self._dataset.AutorefractionRightEyeSequence = pydicom.Sequence() + self._dataset.AutorefractionRightEyeSequence.append(item.to_dataset()) + + @property + def AutorefractionLeftEyeSequence(self) -> Optional[List[AutorefractionLeftEyeSequenceItem]]: + if "AutorefractionLeftEyeSequence" in self._dataset: + if len(self._AutorefractionLeftEyeSequence) == len(self._dataset.AutorefractionLeftEyeSequence): + return self._AutorefractionLeftEyeSequence + else: + return [AutorefractionLeftEyeSequenceItem(x) for x in self._dataset.AutorefractionLeftEyeSequence] + return None + + @AutorefractionLeftEyeSequence.setter + def AutorefractionLeftEyeSequence(self, value: Optional[List[AutorefractionLeftEyeSequenceItem]]): + if value is None: + self._AutorefractionLeftEyeSequence = [] + if "AutorefractionLeftEyeSequence" in self._dataset: + del self._dataset.AutorefractionLeftEyeSequence + elif not isinstance(value, list) or not all(isinstance(item, AutorefractionLeftEyeSequenceItem) for item in value): + raise ValueError("AutorefractionLeftEyeSequence must be a list of AutorefractionLeftEyeSequenceItem objects") + else: + self._AutorefractionLeftEyeSequence = value + if "AutorefractionLeftEyeSequence" not in self._dataset: + self._dataset.AutorefractionLeftEyeSequence = pydicom.Sequence() + self._dataset.AutorefractionLeftEyeSequence.clear() + self._dataset.AutorefractionLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_AutorefractionLeftEye(self, item: AutorefractionLeftEyeSequenceItem): + if not isinstance(item, AutorefractionLeftEyeSequenceItem): + raise ValueError("Item must be an instance of AutorefractionLeftEyeSequenceItem") + self._AutorefractionLeftEyeSequence.append(item) + if "AutorefractionLeftEyeSequence" not in self._dataset: + self._dataset.AutorefractionLeftEyeSequence = pydicom.Sequence() + self._dataset.AutorefractionLeftEyeSequence.append(item.to_dataset()) + + @property + def DistancePupillaryDistance(self) -> Optional[float]: + if "DistancePupillaryDistance" in self._dataset: + return self._dataset.DistancePupillaryDistance + return None + + @DistancePupillaryDistance.setter + def DistancePupillaryDistance(self, value: Optional[float]): + if value is None: + if "DistancePupillaryDistance" in self._dataset: + del self._dataset.DistancePupillaryDistance + else: + self._dataset.DistancePupillaryDistance = value + + @property + def NearPupillaryDistance(self) -> Optional[float]: + if "NearPupillaryDistance" in self._dataset: + return self._dataset.NearPupillaryDistance + return None + + @NearPupillaryDistance.setter + def NearPupillaryDistance(self, value: Optional[float]): + if value is None: + if "NearPupillaryDistance" in self._dataset: + del self._dataset.NearPupillaryDistance + else: + self._dataset.NearPupillaryDistance = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/autorefraction_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/autorefraction_right_eye_sequence_item.py new file mode 100644 index 0000000..4cb085a --- /dev/null +++ b/tdwii_plus_examples/domain_model/autorefraction_right_eye_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cylinder_sequence_item import CylinderSequenceItem + + +class AutorefractionRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VertexDistance(self) -> Optional[float]: + if "VertexDistance" in self._dataset: + return self._dataset.VertexDistance + return None + + @VertexDistance.setter + def VertexDistance(self, value: Optional[float]): + if value is None: + if "VertexDistance" in self._dataset: + del self._dataset.VertexDistance + else: + self._dataset.VertexDistance = value + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PupilSize(self) -> Optional[float]: + if "PupilSize" in self._dataset: + return self._dataset.PupilSize + return None + + @PupilSize.setter + def PupilSize(self, value: Optional[float]): + if value is None: + if "PupilSize" in self._dataset: + del self._dataset.PupilSize + else: + self._dataset.PupilSize = value + + @property + def CornealSize(self) -> Optional[float]: + if "CornealSize" in self._dataset: + return self._dataset.CornealSize + return None + + @CornealSize.setter + def CornealSize(self, value: Optional[float]): + if value is None: + if "CornealSize" in self._dataset: + del self._dataset.CornealSize + else: + self._dataset.CornealSize = value + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/basic_cardiac_electrophysiology_waveform.py b/tdwii_plus_examples/domain_model/basic_cardiac_electrophysiology_waveform.py new file mode 100644 index 0000000..9e70552 --- /dev/null +++ b/tdwii_plus_examples/domain_model/basic_cardiac_electrophysiology_waveform.py @@ -0,0 +1,4262 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class BasicCardiacElectrophysiologyWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/basic_structured_display.py b/tdwii_plus_examples/domain_model/basic_structured_display.py new file mode 100644 index 0000000..a82fc49 --- /dev/null +++ b/tdwii_plus_examples/domain_model/basic_structured_display.py @@ -0,0 +1,4685 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .image_box_synchronization_sequence_item import ImageBoxSynchronizationSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .nominal_screen_definition_sequence_item import NominalScreenDefinitionSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .structured_display_image_box_sequence_item import ( + StructuredDisplayImageBoxSequenceItem, +) +from .structured_display_text_box_sequence_item import ( + StructuredDisplayTextBoxSequenceItem, +) +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class BasicStructuredDisplay: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._NominalScreenDefinitionSequence: List[NominalScreenDefinitionSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._StructuredDisplayTextBoxSequence: List[StructuredDisplayTextBoxSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._StructuredDisplayImageBoxSequence: List[StructuredDisplayImageBoxSequenceItem] = [] + self._ImageBoxSynchronizationSequence: List[ImageBoxSynchronizationSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def HangingProtocolName(self) -> Optional[str]: + if "HangingProtocolName" in self._dataset: + return self._dataset.HangingProtocolName + return None + + @HangingProtocolName.setter + def HangingProtocolName(self, value: Optional[str]): + if value is None: + if "HangingProtocolName" in self._dataset: + del self._dataset.HangingProtocolName + else: + self._dataset.HangingProtocolName = value + + @property + def HangingProtocolCreator(self) -> Optional[str]: + if "HangingProtocolCreator" in self._dataset: + return self._dataset.HangingProtocolCreator + return None + + @HangingProtocolCreator.setter + def HangingProtocolCreator(self, value: Optional[str]): + if value is None: + if "HangingProtocolCreator" in self._dataset: + del self._dataset.HangingProtocolCreator + else: + self._dataset.HangingProtocolCreator = value + + @property + def NumberOfScreens(self) -> Optional[int]: + if "NumberOfScreens" in self._dataset: + return self._dataset.NumberOfScreens + return None + + @NumberOfScreens.setter + def NumberOfScreens(self, value: Optional[int]): + if value is None: + if "NumberOfScreens" in self._dataset: + del self._dataset.NumberOfScreens + else: + self._dataset.NumberOfScreens = value + + @property + def NominalScreenDefinitionSequence(self) -> Optional[List[NominalScreenDefinitionSequenceItem]]: + if "NominalScreenDefinitionSequence" in self._dataset: + if len(self._NominalScreenDefinitionSequence) == len(self._dataset.NominalScreenDefinitionSequence): + return self._NominalScreenDefinitionSequence + else: + return [NominalScreenDefinitionSequenceItem(x) for x in self._dataset.NominalScreenDefinitionSequence] + return None + + @NominalScreenDefinitionSequence.setter + def NominalScreenDefinitionSequence(self, value: Optional[List[NominalScreenDefinitionSequenceItem]]): + if value is None: + self._NominalScreenDefinitionSequence = [] + if "NominalScreenDefinitionSequence" in self._dataset: + del self._dataset.NominalScreenDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, NominalScreenDefinitionSequenceItem) for item in value): + raise ValueError("NominalScreenDefinitionSequence must be a list of NominalScreenDefinitionSequenceItem objects") + else: + self._NominalScreenDefinitionSequence = value + if "NominalScreenDefinitionSequence" not in self._dataset: + self._dataset.NominalScreenDefinitionSequence = pydicom.Sequence() + self._dataset.NominalScreenDefinitionSequence.clear() + self._dataset.NominalScreenDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_NominalScreenDefinition(self, item: NominalScreenDefinitionSequenceItem): + if not isinstance(item, NominalScreenDefinitionSequenceItem): + raise ValueError("Item must be an instance of NominalScreenDefinitionSequenceItem") + self._NominalScreenDefinitionSequence.append(item) + if "NominalScreenDefinitionSequence" not in self._dataset: + self._dataset.NominalScreenDefinitionSequence = pydicom.Sequence() + self._dataset.NominalScreenDefinitionSequence.append(item.to_dataset()) + + @property + def StructuredDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "StructuredDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.StructuredDisplayBackgroundCIELabValue + return None + + @StructuredDisplayBackgroundCIELabValue.setter + def StructuredDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "StructuredDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.StructuredDisplayBackgroundCIELabValue + else: + self._dataset.StructuredDisplayBackgroundCIELabValue = value + + @property + def EmptyImageBoxCIELabValue(self) -> Optional[List[int]]: + if "EmptyImageBoxCIELabValue" in self._dataset: + return self._dataset.EmptyImageBoxCIELabValue + return None + + @EmptyImageBoxCIELabValue.setter + def EmptyImageBoxCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "EmptyImageBoxCIELabValue" in self._dataset: + del self._dataset.EmptyImageBoxCIELabValue + else: + self._dataset.EmptyImageBoxCIELabValue = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def StructuredDisplayTextBoxSequence(self) -> Optional[List[StructuredDisplayTextBoxSequenceItem]]: + if "StructuredDisplayTextBoxSequence" in self._dataset: + if len(self._StructuredDisplayTextBoxSequence) == len(self._dataset.StructuredDisplayTextBoxSequence): + return self._StructuredDisplayTextBoxSequence + else: + return [StructuredDisplayTextBoxSequenceItem(x) for x in self._dataset.StructuredDisplayTextBoxSequence] + return None + + @StructuredDisplayTextBoxSequence.setter + def StructuredDisplayTextBoxSequence(self, value: Optional[List[StructuredDisplayTextBoxSequenceItem]]): + if value is None: + self._StructuredDisplayTextBoxSequence = [] + if "StructuredDisplayTextBoxSequence" in self._dataset: + del self._dataset.StructuredDisplayTextBoxSequence + elif not isinstance(value, list) or not all(isinstance(item, StructuredDisplayTextBoxSequenceItem) for item in value): + raise ValueError("StructuredDisplayTextBoxSequence must be a list of StructuredDisplayTextBoxSequenceItem objects") + else: + self._StructuredDisplayTextBoxSequence = value + if "StructuredDisplayTextBoxSequence" not in self._dataset: + self._dataset.StructuredDisplayTextBoxSequence = pydicom.Sequence() + self._dataset.StructuredDisplayTextBoxSequence.clear() + self._dataset.StructuredDisplayTextBoxSequence.extend([item.to_dataset() for item in value]) + + def add_StructuredDisplayTextBox(self, item: StructuredDisplayTextBoxSequenceItem): + if not isinstance(item, StructuredDisplayTextBoxSequenceItem): + raise ValueError("Item must be an instance of StructuredDisplayTextBoxSequenceItem") + self._StructuredDisplayTextBoxSequence.append(item) + if "StructuredDisplayTextBoxSequence" not in self._dataset: + self._dataset.StructuredDisplayTextBoxSequence = pydicom.Sequence() + self._dataset.StructuredDisplayTextBoxSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StructuredDisplayImageBoxSequence(self) -> Optional[List[StructuredDisplayImageBoxSequenceItem]]: + if "StructuredDisplayImageBoxSequence" in self._dataset: + if len(self._StructuredDisplayImageBoxSequence) == len(self._dataset.StructuredDisplayImageBoxSequence): + return self._StructuredDisplayImageBoxSequence + else: + return [StructuredDisplayImageBoxSequenceItem(x) for x in self._dataset.StructuredDisplayImageBoxSequence] + return None + + @StructuredDisplayImageBoxSequence.setter + def StructuredDisplayImageBoxSequence(self, value: Optional[List[StructuredDisplayImageBoxSequenceItem]]): + if value is None: + self._StructuredDisplayImageBoxSequence = [] + if "StructuredDisplayImageBoxSequence" in self._dataset: + del self._dataset.StructuredDisplayImageBoxSequence + elif not isinstance(value, list) or not all(isinstance(item, StructuredDisplayImageBoxSequenceItem) for item in value): + raise ValueError( + "StructuredDisplayImageBoxSequence must be a list of StructuredDisplayImageBoxSequenceItem objects" + ) + else: + self._StructuredDisplayImageBoxSequence = value + if "StructuredDisplayImageBoxSequence" not in self._dataset: + self._dataset.StructuredDisplayImageBoxSequence = pydicom.Sequence() + self._dataset.StructuredDisplayImageBoxSequence.clear() + self._dataset.StructuredDisplayImageBoxSequence.extend([item.to_dataset() for item in value]) + + def add_StructuredDisplayImageBox(self, item: StructuredDisplayImageBoxSequenceItem): + if not isinstance(item, StructuredDisplayImageBoxSequenceItem): + raise ValueError("Item must be an instance of StructuredDisplayImageBoxSequenceItem") + self._StructuredDisplayImageBoxSequence.append(item) + if "StructuredDisplayImageBoxSequence" not in self._dataset: + self._dataset.StructuredDisplayImageBoxSequence = pydicom.Sequence() + self._dataset.StructuredDisplayImageBoxSequence.append(item.to_dataset()) + + @property + def ImageBoxSynchronizationSequence(self) -> Optional[List[ImageBoxSynchronizationSequenceItem]]: + if "ImageBoxSynchronizationSequence" in self._dataset: + if len(self._ImageBoxSynchronizationSequence) == len(self._dataset.ImageBoxSynchronizationSequence): + return self._ImageBoxSynchronizationSequence + else: + return [ImageBoxSynchronizationSequenceItem(x) for x in self._dataset.ImageBoxSynchronizationSequence] + return None + + @ImageBoxSynchronizationSequence.setter + def ImageBoxSynchronizationSequence(self, value: Optional[List[ImageBoxSynchronizationSequenceItem]]): + if value is None: + self._ImageBoxSynchronizationSequence = [] + if "ImageBoxSynchronizationSequence" in self._dataset: + del self._dataset.ImageBoxSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageBoxSynchronizationSequenceItem) for item in value): + raise ValueError("ImageBoxSynchronizationSequence must be a list of ImageBoxSynchronizationSequenceItem objects") + else: + self._ImageBoxSynchronizationSequence = value + if "ImageBoxSynchronizationSequence" not in self._dataset: + self._dataset.ImageBoxSynchronizationSequence = pydicom.Sequence() + self._dataset.ImageBoxSynchronizationSequence.clear() + self._dataset.ImageBoxSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_ImageBoxSynchronization(self, item: ImageBoxSynchronizationSequenceItem): + if not isinstance(item, ImageBoxSynchronizationSequenceItem): + raise ValueError("Item must be an instance of ImageBoxSynchronizationSequenceItem") + self._ImageBoxSynchronizationSequence.append(item) + if "ImageBoxSynchronizationSequence" not in self._dataset: + self._dataset.ImageBoxSynchronizationSequence = pydicom.Sequence() + self._dataset.ImageBoxSynchronizationSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/basic_text_sr.py b/tdwii_plus_examples/domain_model/basic_text_sr.py new file mode 100644 index 0000000..3877d11 --- /dev/null +++ b/tdwii_plus_examples/domain_model/basic_text_sr.py @@ -0,0 +1,4505 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class BasicTextSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/basic_voice_audio_waveform.py b/tdwii_plus_examples/domain_model/basic_voice_audio_waveform.py new file mode 100644 index 0000000..ab6dfac --- /dev/null +++ b/tdwii_plus_examples/domain_model/basic_voice_audio_waveform.py @@ -0,0 +1,4262 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class BasicVoiceAudioWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/beam_area_limit_sequence_item.py b/tdwii_plus_examples/domain_model/beam_area_limit_sequence_item.py new file mode 100644 index 0000000..f85cf2a --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_area_limit_sequence_item.py @@ -0,0 +1,137 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamAreaLimitSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OutlineShapeType(self) -> Optional[str]: + if "OutlineShapeType" in self._dataset: + return self._dataset.OutlineShapeType + return None + + @OutlineShapeType.setter + def OutlineShapeType(self, value: Optional[str]): + if value is None: + if "OutlineShapeType" in self._dataset: + del self._dataset.OutlineShapeType + else: + self._dataset.OutlineShapeType = value + + @property + def OutlineLeftVerticalEdge(self) -> Optional[float]: + if "OutlineLeftVerticalEdge" in self._dataset: + return self._dataset.OutlineLeftVerticalEdge + return None + + @OutlineLeftVerticalEdge.setter + def OutlineLeftVerticalEdge(self, value: Optional[float]): + if value is None: + if "OutlineLeftVerticalEdge" in self._dataset: + del self._dataset.OutlineLeftVerticalEdge + else: + self._dataset.OutlineLeftVerticalEdge = value + + @property + def OutlineRightVerticalEdge(self) -> Optional[float]: + if "OutlineRightVerticalEdge" in self._dataset: + return self._dataset.OutlineRightVerticalEdge + return None + + @OutlineRightVerticalEdge.setter + def OutlineRightVerticalEdge(self, value: Optional[float]): + if value is None: + if "OutlineRightVerticalEdge" in self._dataset: + del self._dataset.OutlineRightVerticalEdge + else: + self._dataset.OutlineRightVerticalEdge = value + + @property + def OutlineUpperHorizontalEdge(self) -> Optional[float]: + if "OutlineUpperHorizontalEdge" in self._dataset: + return self._dataset.OutlineUpperHorizontalEdge + return None + + @OutlineUpperHorizontalEdge.setter + def OutlineUpperHorizontalEdge(self, value: Optional[float]): + if value is None: + if "OutlineUpperHorizontalEdge" in self._dataset: + del self._dataset.OutlineUpperHorizontalEdge + else: + self._dataset.OutlineUpperHorizontalEdge = value + + @property + def OutlineLowerHorizontalEdge(self) -> Optional[float]: + if "OutlineLowerHorizontalEdge" in self._dataset: + return self._dataset.OutlineLowerHorizontalEdge + return None + + @OutlineLowerHorizontalEdge.setter + def OutlineLowerHorizontalEdge(self, value: Optional[float]): + if value is None: + if "OutlineLowerHorizontalEdge" in self._dataset: + del self._dataset.OutlineLowerHorizontalEdge + else: + self._dataset.OutlineLowerHorizontalEdge = value + + @property + def CenterOfCircularOutline(self) -> Optional[List[float]]: + if "CenterOfCircularOutline" in self._dataset: + return self._dataset.CenterOfCircularOutline + return None + + @CenterOfCircularOutline.setter + def CenterOfCircularOutline(self, value: Optional[List[float]]): + if value is None: + if "CenterOfCircularOutline" in self._dataset: + del self._dataset.CenterOfCircularOutline + else: + self._dataset.CenterOfCircularOutline = value + + @property + def DiameterOfCircularOutline(self) -> Optional[float]: + if "DiameterOfCircularOutline" in self._dataset: + return self._dataset.DiameterOfCircularOutline + return None + + @DiameterOfCircularOutline.setter + def DiameterOfCircularOutline(self, value: Optional[float]): + if value is None: + if "DiameterOfCircularOutline" in self._dataset: + del self._dataset.DiameterOfCircularOutline + else: + self._dataset.DiameterOfCircularOutline = value + + @property + def NumberOfPolygonalVertices(self) -> Optional[int]: + if "NumberOfPolygonalVertices" in self._dataset: + return self._dataset.NumberOfPolygonalVertices + return None + + @NumberOfPolygonalVertices.setter + def NumberOfPolygonalVertices(self, value: Optional[int]): + if value is None: + if "NumberOfPolygonalVertices" in self._dataset: + del self._dataset.NumberOfPolygonalVertices + else: + self._dataset.NumberOfPolygonalVertices = value + + @property + def VerticesOfThePolygonalOutline(self) -> Optional[bytes]: + if "VerticesOfThePolygonalOutline" in self._dataset: + return self._dataset.VerticesOfThePolygonalOutline + return None + + @VerticesOfThePolygonalOutline.setter + def VerticesOfThePolygonalOutline(self, value: Optional[bytes]): + if value is None: + if "VerticesOfThePolygonalOutline" in self._dataset: + del self._dataset.VerticesOfThePolygonalOutline + else: + self._dataset.VerticesOfThePolygonalOutline = value diff --git a/tdwii_plus_examples/domain_model/beam_dose_verification_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/beam_dose_verification_control_point_sequence_item.py new file mode 100644 index 0000000..1e72e0a --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_dose_verification_control_point_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamDoseVerificationControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BeamDosePointDepth(self) -> Optional[float]: + if "BeamDosePointDepth" in self._dataset: + return self._dataset.BeamDosePointDepth + return None + + @BeamDosePointDepth.setter + def BeamDosePointDepth(self, value: Optional[float]): + if value is None: + if "BeamDosePointDepth" in self._dataset: + del self._dataset.BeamDosePointDepth + else: + self._dataset.BeamDosePointDepth = value + + @property + def BeamDosePointEquivalentDepth(self) -> Optional[float]: + if "BeamDosePointEquivalentDepth" in self._dataset: + return self._dataset.BeamDosePointEquivalentDepth + return None + + @BeamDosePointEquivalentDepth.setter + def BeamDosePointEquivalentDepth(self, value: Optional[float]): + if value is None: + if "BeamDosePointEquivalentDepth" in self._dataset: + del self._dataset.BeamDosePointEquivalentDepth + else: + self._dataset.BeamDosePointEquivalentDepth = value + + @property + def BeamDosePointSSD(self) -> Optional[float]: + if "BeamDosePointSSD" in self._dataset: + return self._dataset.BeamDosePointSSD + return None + + @BeamDosePointSSD.setter + def BeamDosePointSSD(self, value: Optional[float]): + if value is None: + if "BeamDosePointSSD" in self._dataset: + del self._dataset.BeamDosePointSSD + else: + self._dataset.BeamDosePointSSD = value + + @property + def BeamDosePointSourceToExternalContourDistance(self) -> Optional[Decimal]: + if "BeamDosePointSourceToExternalContourDistance" in self._dataset: + return self._dataset.BeamDosePointSourceToExternalContourDistance + return None + + @BeamDosePointSourceToExternalContourDistance.setter + def BeamDosePointSourceToExternalContourDistance(self, value: Optional[Decimal]): + if value is None: + if "BeamDosePointSourceToExternalContourDistance" in self._dataset: + del self._dataset.BeamDosePointSourceToExternalContourDistance + else: + self._dataset.BeamDosePointSourceToExternalContourDistance = value + + @property + def CumulativeMetersetWeight(self) -> Optional[Decimal]: + if "CumulativeMetersetWeight" in self._dataset: + return self._dataset.CumulativeMetersetWeight + return None + + @CumulativeMetersetWeight.setter + def CumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "CumulativeMetersetWeight" in self._dataset: + del self._dataset.CumulativeMetersetWeight + else: + self._dataset.CumulativeMetersetWeight = value + + @property + def ReferencedControlPointIndex(self) -> Optional[int]: + if "ReferencedControlPointIndex" in self._dataset: + return self._dataset.ReferencedControlPointIndex + return None + + @ReferencedControlPointIndex.setter + def ReferencedControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedControlPointIndex" in self._dataset: + del self._dataset.ReferencedControlPointIndex + else: + self._dataset.ReferencedControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/beam_hold_originating_device_sequence_item.py b/tdwii_plus_examples/domain_model/beam_hold_originating_device_sequence_item.py new file mode 100644 index 0000000..305de25 --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_hold_originating_device_sequence_item.py @@ -0,0 +1,220 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class BeamHoldOriginatingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/beam_limiting_device_leaf_pairs_sequence_item.py b/tdwii_plus_examples/domain_model/beam_limiting_device_leaf_pairs_sequence_item.py new file mode 100644 index 0000000..cfb3b14 --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_limiting_device_leaf_pairs_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamLimitingDeviceLeafPairsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTBeamLimitingDeviceType(self) -> Optional[str]: + if "RTBeamLimitingDeviceType" in self._dataset: + return self._dataset.RTBeamLimitingDeviceType + return None + + @RTBeamLimitingDeviceType.setter + def RTBeamLimitingDeviceType(self, value: Optional[str]): + if value is None: + if "RTBeamLimitingDeviceType" in self._dataset: + del self._dataset.RTBeamLimitingDeviceType + else: + self._dataset.RTBeamLimitingDeviceType = value + + @property + def NumberOfLeafJawPairs(self) -> Optional[int]: + if "NumberOfLeafJawPairs" in self._dataset: + return self._dataset.NumberOfLeafJawPairs + return None + + @NumberOfLeafJawPairs.setter + def NumberOfLeafJawPairs(self, value: Optional[int]): + if value is None: + if "NumberOfLeafJawPairs" in self._dataset: + del self._dataset.NumberOfLeafJawPairs + else: + self._dataset.NumberOfLeafJawPairs = value diff --git a/tdwii_plus_examples/domain_model/beam_limiting_device_position_sequence_item.py b/tdwii_plus_examples/domain_model/beam_limiting_device_position_sequence_item.py new file mode 100644 index 0000000..1005977 --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_limiting_device_position_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamLimitingDevicePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTBeamLimitingDeviceType(self) -> Optional[str]: + if "RTBeamLimitingDeviceType" in self._dataset: + return self._dataset.RTBeamLimitingDeviceType + return None + + @RTBeamLimitingDeviceType.setter + def RTBeamLimitingDeviceType(self, value: Optional[str]): + if value is None: + if "RTBeamLimitingDeviceType" in self._dataset: + del self._dataset.RTBeamLimitingDeviceType + else: + self._dataset.RTBeamLimitingDeviceType = value + + @property + def LeafJawPositions(self) -> Optional[List[Decimal]]: + if "LeafJawPositions" in self._dataset: + return self._dataset.LeafJawPositions + return None + + @LeafJawPositions.setter + def LeafJawPositions(self, value: Optional[List[Decimal]]): + if value is None: + if "LeafJawPositions" in self._dataset: + del self._dataset.LeafJawPositions + else: + self._dataset.LeafJawPositions = value diff --git a/tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item.py b/tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item.py new file mode 100644 index 0000000..9e1f09a --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamLimitingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTBeamLimitingDeviceType(self) -> Optional[str]: + if "RTBeamLimitingDeviceType" in self._dataset: + return self._dataset.RTBeamLimitingDeviceType + return None + + @RTBeamLimitingDeviceType.setter + def RTBeamLimitingDeviceType(self, value: Optional[str]): + if value is None: + if "RTBeamLimitingDeviceType" in self._dataset: + del self._dataset.RTBeamLimitingDeviceType + else: + self._dataset.RTBeamLimitingDeviceType = value + + @property + def SourceToBeamLimitingDeviceDistance(self) -> Optional[Decimal]: + if "SourceToBeamLimitingDeviceDistance" in self._dataset: + return self._dataset.SourceToBeamLimitingDeviceDistance + return None + + @SourceToBeamLimitingDeviceDistance.setter + def SourceToBeamLimitingDeviceDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToBeamLimitingDeviceDistance" in self._dataset: + del self._dataset.SourceToBeamLimitingDeviceDistance + else: + self._dataset.SourceToBeamLimitingDeviceDistance = value + + @property + def NumberOfLeafJawPairs(self) -> Optional[int]: + if "NumberOfLeafJawPairs" in self._dataset: + return self._dataset.NumberOfLeafJawPairs + return None + + @NumberOfLeafJawPairs.setter + def NumberOfLeafJawPairs(self, value: Optional[int]): + if value is None: + if "NumberOfLeafJawPairs" in self._dataset: + del self._dataset.NumberOfLeafJawPairs + else: + self._dataset.NumberOfLeafJawPairs = value + + @property + def LeafPositionBoundaries(self) -> Optional[List[Decimal]]: + if "LeafPositionBoundaries" in self._dataset: + return self._dataset.LeafPositionBoundaries + return None + + @LeafPositionBoundaries.setter + def LeafPositionBoundaries(self, value: Optional[List[Decimal]]): + if value is None: + if "LeafPositionBoundaries" in self._dataset: + del self._dataset.LeafPositionBoundaries + else: + self._dataset.LeafPositionBoundaries = value diff --git a/tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item_1.py b/tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item_1.py new file mode 100644 index 0000000..4f7b41f --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_limiting_device_sequence_item_1.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamLimitingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTBeamLimitingDeviceType(self) -> Optional[str]: + if "RTBeamLimitingDeviceType" in self._dataset: + return self._dataset.RTBeamLimitingDeviceType + return None + + @RTBeamLimitingDeviceType.setter + def RTBeamLimitingDeviceType(self, value: Optional[str]): + if value is None: + if "RTBeamLimitingDeviceType" in self._dataset: + del self._dataset.RTBeamLimitingDeviceType + else: + self._dataset.RTBeamLimitingDeviceType = value + + @property + def SourceToBeamLimitingDeviceDistance(self) -> Optional[Decimal]: + if "SourceToBeamLimitingDeviceDistance" in self._dataset: + return self._dataset.SourceToBeamLimitingDeviceDistance + return None + + @SourceToBeamLimitingDeviceDistance.setter + def SourceToBeamLimitingDeviceDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToBeamLimitingDeviceDistance" in self._dataset: + del self._dataset.SourceToBeamLimitingDeviceDistance + else: + self._dataset.SourceToBeamLimitingDeviceDistance = value + + @property + def NumberOfLeafJawPairs(self) -> Optional[int]: + if "NumberOfLeafJawPairs" in self._dataset: + return self._dataset.NumberOfLeafJawPairs + return None + + @NumberOfLeafJawPairs.setter + def NumberOfLeafJawPairs(self, value: Optional[int]): + if value is None: + if "NumberOfLeafJawPairs" in self._dataset: + del self._dataset.NumberOfLeafJawPairs + else: + self._dataset.NumberOfLeafJawPairs = value + + @property + def LeafPositionBoundaries(self) -> Optional[List[Decimal]]: + if "LeafPositionBoundaries" in self._dataset: + return self._dataset.LeafPositionBoundaries + return None + + @LeafPositionBoundaries.setter + def LeafPositionBoundaries(self, value: Optional[List[Decimal]]): + if value is None: + if "LeafPositionBoundaries" in self._dataset: + del self._dataset.LeafPositionBoundaries + else: + self._dataset.LeafPositionBoundaries = value + + @property + def LeafJawPositions(self) -> Optional[List[Decimal]]: + if "LeafJawPositions" in self._dataset: + return self._dataset.LeafJawPositions + return None + + @LeafJawPositions.setter + def LeafJawPositions(self, value: Optional[List[Decimal]]): + if value is None: + if "LeafJawPositions" in self._dataset: + del self._dataset.LeafJawPositions + else: + self._dataset.LeafJawPositions = value diff --git a/tdwii_plus_examples/domain_model/beam_limiting_device_tolerance_sequence_item.py b/tdwii_plus_examples/domain_model/beam_limiting_device_tolerance_sequence_item.py new file mode 100644 index 0000000..8a063fd --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_limiting_device_tolerance_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BeamLimitingDeviceToleranceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BeamLimitingDevicePositionTolerance(self) -> Optional[Decimal]: + if "BeamLimitingDevicePositionTolerance" in self._dataset: + return self._dataset.BeamLimitingDevicePositionTolerance + return None + + @BeamLimitingDevicePositionTolerance.setter + def BeamLimitingDevicePositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDevicePositionTolerance" in self._dataset: + del self._dataset.BeamLimitingDevicePositionTolerance + else: + self._dataset.BeamLimitingDevicePositionTolerance = value + + @property + def RTBeamLimitingDeviceType(self) -> Optional[str]: + if "RTBeamLimitingDeviceType" in self._dataset: + return self._dataset.RTBeamLimitingDeviceType + return None + + @RTBeamLimitingDeviceType.setter + def RTBeamLimitingDeviceType(self, value: Optional[str]): + if value is None: + if "RTBeamLimitingDeviceType" in self._dataset: + del self._dataset.RTBeamLimitingDeviceType + else: + self._dataset.RTBeamLimitingDeviceType = value diff --git a/tdwii_plus_examples/domain_model/beam_sequence_item.py b/tdwii_plus_examples/domain_model/beam_sequence_item.py new file mode 100644 index 0000000..a435610 --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_sequence_item.py @@ -0,0 +1,991 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .applicator_sequence_item import ApplicatorSequenceItem +from .beam_limiting_device_sequence_item import BeamLimitingDeviceSequenceItem +from .block_sequence_item import BlockSequenceItem +from .code_sequence_item import CodeSequenceItem +from .compensator_sequence_item import CompensatorSequenceItem +from .control_point_sequence_item import ControlPointSequenceItem +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .enhanced_rt_beam_limiting_device_sequence_item import ( + EnhancedRTBeamLimitingDeviceSequenceItem, +) +from .general_accessory_sequence_item import GeneralAccessorySequenceItem +from .planned_verification_image_sequence_item import ( + PlannedVerificationImageSequenceItem, +) +from .primary_fluence_mode_sequence_item import PrimaryFluenceModeSequenceItem +from .referenced_bolus_sequence_item import ReferencedBolusSequenceItem +from .referenced_dose_reference_sequence_item import ReferencedDoseReferenceSequenceItem +from .referenced_dose_sequence_item import ReferencedDoseSequenceItem +from .referenced_reference_image_sequence_item import ( + ReferencedReferenceImageSequenceItem, +) +from .wedge_sequence_item import WedgeSequenceItem + + +class BeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PrimaryFluenceModeSequence: List[PrimaryFluenceModeSequenceItem] = [] + self._EnhancedRTBeamLimitingDeviceSequence: List[EnhancedRTBeamLimitingDeviceSequenceItem] = [] + self._BeamLimitingDeviceSequence: List[BeamLimitingDeviceSequenceItem] = [] + self._PlannedVerificationImageSequence: List[PlannedVerificationImageSequenceItem] = [] + self._WedgeSequence: List[WedgeSequenceItem] = [] + self._CompensatorSequence: List[CompensatorSequenceItem] = [] + self._BlockSequence: List[BlockSequenceItem] = [] + self._ApplicatorSequence: List[ApplicatorSequenceItem] = [] + self._ControlPointSequence: List[ControlPointSequenceItem] = [] + self._GeneralAccessorySequence: List[GeneralAccessorySequenceItem] = [] + self._ReferencedReferenceImageSequence: List[ReferencedReferenceImageSequenceItem] = [] + self._ReferencedDoseReferenceSequence: List[ReferencedDoseReferenceSequenceItem] = [] + self._ReferencedDoseSequence: List[ReferencedDoseSequenceItem] = [] + self._ReferencedBolusSequence: List[ReferencedBolusSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PrimaryFluenceModeSequence(self) -> Optional[List[PrimaryFluenceModeSequenceItem]]: + if "PrimaryFluenceModeSequence" in self._dataset: + if len(self._PrimaryFluenceModeSequence) == len(self._dataset.PrimaryFluenceModeSequence): + return self._PrimaryFluenceModeSequence + else: + return [PrimaryFluenceModeSequenceItem(x) for x in self._dataset.PrimaryFluenceModeSequence] + return None + + @PrimaryFluenceModeSequence.setter + def PrimaryFluenceModeSequence(self, value: Optional[List[PrimaryFluenceModeSequenceItem]]): + if value is None: + self._PrimaryFluenceModeSequence = [] + if "PrimaryFluenceModeSequence" in self._dataset: + del self._dataset.PrimaryFluenceModeSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryFluenceModeSequenceItem) for item in value): + raise ValueError("PrimaryFluenceModeSequence must be a list of PrimaryFluenceModeSequenceItem objects") + else: + self._PrimaryFluenceModeSequence = value + if "PrimaryFluenceModeSequence" not in self._dataset: + self._dataset.PrimaryFluenceModeSequence = pydicom.Sequence() + self._dataset.PrimaryFluenceModeSequence.clear() + self._dataset.PrimaryFluenceModeSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryFluenceMode(self, item: PrimaryFluenceModeSequenceItem): + if not isinstance(item, PrimaryFluenceModeSequenceItem): + raise ValueError("Item must be an instance of PrimaryFluenceModeSequenceItem") + self._PrimaryFluenceModeSequence.append(item) + if "PrimaryFluenceModeSequence" not in self._dataset: + self._dataset.PrimaryFluenceModeSequence = pydicom.Sequence() + self._dataset.PrimaryFluenceModeSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceSequence(self) -> Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]: + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingDeviceSequence) == len(self._dataset.EnhancedRTBeamLimitingDeviceSequence): + return self._EnhancedRTBeamLimitingDeviceSequence + else: + return [ + EnhancedRTBeamLimitingDeviceSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingDeviceSequence + ] + return None + + @EnhancedRTBeamLimitingDeviceSequence.setter + def EnhancedRTBeamLimitingDeviceSequence(self, value: Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingDeviceSequence = [] + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingDeviceSequence must be a list of EnhancedRTBeamLimitingDeviceSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingDeviceSequence = value + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.clear() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingDevice(self, item: EnhancedRTBeamLimitingDeviceSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingDeviceSequenceItem") + self._EnhancedRTBeamLimitingDeviceSequence.append(item) + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self) -> Optional[str]: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + return self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + return None + + @EnhancedRTBeamLimitingDeviceDefinitionFlag.setter + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self, value: Optional[str]): + if value is None: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + else: + self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag = value + + @property + def TreatmentMachineName(self) -> Optional[str]: + if "TreatmentMachineName" in self._dataset: + return self._dataset.TreatmentMachineName + return None + + @TreatmentMachineName.setter + def TreatmentMachineName(self, value: Optional[str]): + if value is None: + if "TreatmentMachineName" in self._dataset: + del self._dataset.TreatmentMachineName + else: + self._dataset.TreatmentMachineName = value + + @property + def PrimaryDosimeterUnit(self) -> Optional[str]: + if "PrimaryDosimeterUnit" in self._dataset: + return self._dataset.PrimaryDosimeterUnit + return None + + @PrimaryDosimeterUnit.setter + def PrimaryDosimeterUnit(self, value: Optional[str]): + if value is None: + if "PrimaryDosimeterUnit" in self._dataset: + del self._dataset.PrimaryDosimeterUnit + else: + self._dataset.PrimaryDosimeterUnit = value + + @property + def SourceAxisDistance(self) -> Optional[Decimal]: + if "SourceAxisDistance" in self._dataset: + return self._dataset.SourceAxisDistance + return None + + @SourceAxisDistance.setter + def SourceAxisDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceAxisDistance" in self._dataset: + del self._dataset.SourceAxisDistance + else: + self._dataset.SourceAxisDistance = value + + @property + def BeamLimitingDeviceSequence(self) -> Optional[List[BeamLimitingDeviceSequenceItem]]: + if "BeamLimitingDeviceSequence" in self._dataset: + if len(self._BeamLimitingDeviceSequence) == len(self._dataset.BeamLimitingDeviceSequence): + return self._BeamLimitingDeviceSequence + else: + return [BeamLimitingDeviceSequenceItem(x) for x in self._dataset.BeamLimitingDeviceSequence] + return None + + @BeamLimitingDeviceSequence.setter + def BeamLimitingDeviceSequence(self, value: Optional[List[BeamLimitingDeviceSequenceItem]]): + if value is None: + self._BeamLimitingDeviceSequence = [] + if "BeamLimitingDeviceSequence" in self._dataset: + del self._dataset.BeamLimitingDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamLimitingDeviceSequenceItem) for item in value): + raise ValueError("BeamLimitingDeviceSequence must be a list of BeamLimitingDeviceSequenceItem objects") + else: + self._BeamLimitingDeviceSequence = value + if "BeamLimitingDeviceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceSequence.clear() + self._dataset.BeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDevice(self, item: BeamLimitingDeviceSequenceItem): + if not isinstance(item, BeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDeviceSequenceItem") + self._BeamLimitingDeviceSequence.append(item) + if "BeamLimitingDeviceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def BeamNumber(self) -> Optional[int]: + if "BeamNumber" in self._dataset: + return self._dataset.BeamNumber + return None + + @BeamNumber.setter + def BeamNumber(self, value: Optional[int]): + if value is None: + if "BeamNumber" in self._dataset: + del self._dataset.BeamNumber + else: + self._dataset.BeamNumber = value + + @property + def BeamName(self) -> Optional[str]: + if "BeamName" in self._dataset: + return self._dataset.BeamName + return None + + @BeamName.setter + def BeamName(self, value: Optional[str]): + if value is None: + if "BeamName" in self._dataset: + del self._dataset.BeamName + else: + self._dataset.BeamName = value + + @property + def BeamDescription(self) -> Optional[str]: + if "BeamDescription" in self._dataset: + return self._dataset.BeamDescription + return None + + @BeamDescription.setter + def BeamDescription(self, value: Optional[str]): + if value is None: + if "BeamDescription" in self._dataset: + del self._dataset.BeamDescription + else: + self._dataset.BeamDescription = value + + @property + def BeamType(self) -> Optional[str]: + if "BeamType" in self._dataset: + return self._dataset.BeamType + return None + + @BeamType.setter + def BeamType(self, value: Optional[str]): + if value is None: + if "BeamType" in self._dataset: + del self._dataset.BeamType + else: + self._dataset.BeamType = value + + @property + def RadiationType(self) -> Optional[str]: + if "RadiationType" in self._dataset: + return self._dataset.RadiationType + return None + + @RadiationType.setter + def RadiationType(self, value: Optional[str]): + if value is None: + if "RadiationType" in self._dataset: + del self._dataset.RadiationType + else: + self._dataset.RadiationType = value + + @property + def HighDoseTechniqueType(self) -> Optional[str]: + if "HighDoseTechniqueType" in self._dataset: + return self._dataset.HighDoseTechniqueType + return None + + @HighDoseTechniqueType.setter + def HighDoseTechniqueType(self, value: Optional[str]): + if value is None: + if "HighDoseTechniqueType" in self._dataset: + del self._dataset.HighDoseTechniqueType + else: + self._dataset.HighDoseTechniqueType = value + + @property + def PlannedVerificationImageSequence(self) -> Optional[List[PlannedVerificationImageSequenceItem]]: + if "PlannedVerificationImageSequence" in self._dataset: + if len(self._PlannedVerificationImageSequence) == len(self._dataset.PlannedVerificationImageSequence): + return self._PlannedVerificationImageSequence + else: + return [PlannedVerificationImageSequenceItem(x) for x in self._dataset.PlannedVerificationImageSequence] + return None + + @PlannedVerificationImageSequence.setter + def PlannedVerificationImageSequence(self, value: Optional[List[PlannedVerificationImageSequenceItem]]): + if value is None: + self._PlannedVerificationImageSequence = [] + if "PlannedVerificationImageSequence" in self._dataset: + del self._dataset.PlannedVerificationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, PlannedVerificationImageSequenceItem) for item in value): + raise ValueError("PlannedVerificationImageSequence must be a list of PlannedVerificationImageSequenceItem objects") + else: + self._PlannedVerificationImageSequence = value + if "PlannedVerificationImageSequence" not in self._dataset: + self._dataset.PlannedVerificationImageSequence = pydicom.Sequence() + self._dataset.PlannedVerificationImageSequence.clear() + self._dataset.PlannedVerificationImageSequence.extend([item.to_dataset() for item in value]) + + def add_PlannedVerificationImage(self, item: PlannedVerificationImageSequenceItem): + if not isinstance(item, PlannedVerificationImageSequenceItem): + raise ValueError("Item must be an instance of PlannedVerificationImageSequenceItem") + self._PlannedVerificationImageSequence.append(item) + if "PlannedVerificationImageSequence" not in self._dataset: + self._dataset.PlannedVerificationImageSequence = pydicom.Sequence() + self._dataset.PlannedVerificationImageSequence.append(item.to_dataset()) + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def NumberOfWedges(self) -> Optional[int]: + if "NumberOfWedges" in self._dataset: + return self._dataset.NumberOfWedges + return None + + @NumberOfWedges.setter + def NumberOfWedges(self, value: Optional[int]): + if value is None: + if "NumberOfWedges" in self._dataset: + del self._dataset.NumberOfWedges + else: + self._dataset.NumberOfWedges = value + + @property + def WedgeSequence(self) -> Optional[List[WedgeSequenceItem]]: + if "WedgeSequence" in self._dataset: + if len(self._WedgeSequence) == len(self._dataset.WedgeSequence): + return self._WedgeSequence + else: + return [WedgeSequenceItem(x) for x in self._dataset.WedgeSequence] + return None + + @WedgeSequence.setter + def WedgeSequence(self, value: Optional[List[WedgeSequenceItem]]): + if value is None: + self._WedgeSequence = [] + if "WedgeSequence" in self._dataset: + del self._dataset.WedgeSequence + elif not isinstance(value, list) or not all(isinstance(item, WedgeSequenceItem) for item in value): + raise ValueError("WedgeSequence must be a list of WedgeSequenceItem objects") + else: + self._WedgeSequence = value + if "WedgeSequence" not in self._dataset: + self._dataset.WedgeSequence = pydicom.Sequence() + self._dataset.WedgeSequence.clear() + self._dataset.WedgeSequence.extend([item.to_dataset() for item in value]) + + def add_Wedge(self, item: WedgeSequenceItem): + if not isinstance(item, WedgeSequenceItem): + raise ValueError("Item must be an instance of WedgeSequenceItem") + self._WedgeSequence.append(item) + if "WedgeSequence" not in self._dataset: + self._dataset.WedgeSequence = pydicom.Sequence() + self._dataset.WedgeSequence.append(item.to_dataset()) + + @property + def NumberOfCompensators(self) -> Optional[int]: + if "NumberOfCompensators" in self._dataset: + return self._dataset.NumberOfCompensators + return None + + @NumberOfCompensators.setter + def NumberOfCompensators(self, value: Optional[int]): + if value is None: + if "NumberOfCompensators" in self._dataset: + del self._dataset.NumberOfCompensators + else: + self._dataset.NumberOfCompensators = value + + @property + def TotalCompensatorTrayFactor(self) -> Optional[Decimal]: + if "TotalCompensatorTrayFactor" in self._dataset: + return self._dataset.TotalCompensatorTrayFactor + return None + + @TotalCompensatorTrayFactor.setter + def TotalCompensatorTrayFactor(self, value: Optional[Decimal]): + if value is None: + if "TotalCompensatorTrayFactor" in self._dataset: + del self._dataset.TotalCompensatorTrayFactor + else: + self._dataset.TotalCompensatorTrayFactor = value + + @property + def CompensatorSequence(self) -> Optional[List[CompensatorSequenceItem]]: + if "CompensatorSequence" in self._dataset: + if len(self._CompensatorSequence) == len(self._dataset.CompensatorSequence): + return self._CompensatorSequence + else: + return [CompensatorSequenceItem(x) for x in self._dataset.CompensatorSequence] + return None + + @CompensatorSequence.setter + def CompensatorSequence(self, value: Optional[List[CompensatorSequenceItem]]): + if value is None: + self._CompensatorSequence = [] + if "CompensatorSequence" in self._dataset: + del self._dataset.CompensatorSequence + elif not isinstance(value, list) or not all(isinstance(item, CompensatorSequenceItem) for item in value): + raise ValueError("CompensatorSequence must be a list of CompensatorSequenceItem objects") + else: + self._CompensatorSequence = value + if "CompensatorSequence" not in self._dataset: + self._dataset.CompensatorSequence = pydicom.Sequence() + self._dataset.CompensatorSequence.clear() + self._dataset.CompensatorSequence.extend([item.to_dataset() for item in value]) + + def add_Compensator(self, item: CompensatorSequenceItem): + if not isinstance(item, CompensatorSequenceItem): + raise ValueError("Item must be an instance of CompensatorSequenceItem") + self._CompensatorSequence.append(item) + if "CompensatorSequence" not in self._dataset: + self._dataset.CompensatorSequence = pydicom.Sequence() + self._dataset.CompensatorSequence.append(item.to_dataset()) + + @property + def NumberOfBoli(self) -> Optional[int]: + if "NumberOfBoli" in self._dataset: + return self._dataset.NumberOfBoli + return None + + @NumberOfBoli.setter + def NumberOfBoli(self, value: Optional[int]): + if value is None: + if "NumberOfBoli" in self._dataset: + del self._dataset.NumberOfBoli + else: + self._dataset.NumberOfBoli = value + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def TotalBlockTrayFactor(self) -> Optional[Decimal]: + if "TotalBlockTrayFactor" in self._dataset: + return self._dataset.TotalBlockTrayFactor + return None + + @TotalBlockTrayFactor.setter + def TotalBlockTrayFactor(self, value: Optional[Decimal]): + if value is None: + if "TotalBlockTrayFactor" in self._dataset: + del self._dataset.TotalBlockTrayFactor + else: + self._dataset.TotalBlockTrayFactor = value + + @property + def BlockSequence(self) -> Optional[List[BlockSequenceItem]]: + if "BlockSequence" in self._dataset: + if len(self._BlockSequence) == len(self._dataset.BlockSequence): + return self._BlockSequence + else: + return [BlockSequenceItem(x) for x in self._dataset.BlockSequence] + return None + + @BlockSequence.setter + def BlockSequence(self, value: Optional[List[BlockSequenceItem]]): + if value is None: + self._BlockSequence = [] + if "BlockSequence" in self._dataset: + del self._dataset.BlockSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockSequenceItem) for item in value): + raise ValueError("BlockSequence must be a list of BlockSequenceItem objects") + else: + self._BlockSequence = value + if "BlockSequence" not in self._dataset: + self._dataset.BlockSequence = pydicom.Sequence() + self._dataset.BlockSequence.clear() + self._dataset.BlockSequence.extend([item.to_dataset() for item in value]) + + def add_Block(self, item: BlockSequenceItem): + if not isinstance(item, BlockSequenceItem): + raise ValueError("Item must be an instance of BlockSequenceItem") + self._BlockSequence.append(item) + if "BlockSequence" not in self._dataset: + self._dataset.BlockSequence = pydicom.Sequence() + self._dataset.BlockSequence.append(item.to_dataset()) + + @property + def ApplicatorSequence(self) -> Optional[List[ApplicatorSequenceItem]]: + if "ApplicatorSequence" in self._dataset: + if len(self._ApplicatorSequence) == len(self._dataset.ApplicatorSequence): + return self._ApplicatorSequence + else: + return [ApplicatorSequenceItem(x) for x in self._dataset.ApplicatorSequence] + return None + + @ApplicatorSequence.setter + def ApplicatorSequence(self, value: Optional[List[ApplicatorSequenceItem]]): + if value is None: + self._ApplicatorSequence = [] + if "ApplicatorSequence" in self._dataset: + del self._dataset.ApplicatorSequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicatorSequenceItem) for item in value): + raise ValueError("ApplicatorSequence must be a list of ApplicatorSequenceItem objects") + else: + self._ApplicatorSequence = value + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.clear() + self._dataset.ApplicatorSequence.extend([item.to_dataset() for item in value]) + + def add_Applicator(self, item: ApplicatorSequenceItem): + if not isinstance(item, ApplicatorSequenceItem): + raise ValueError("Item must be an instance of ApplicatorSequenceItem") + self._ApplicatorSequence.append(item) + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.append(item.to_dataset()) + + @property + def FinalCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "FinalCumulativeMetersetWeight" in self._dataset: + return self._dataset.FinalCumulativeMetersetWeight + return None + + @FinalCumulativeMetersetWeight.setter + def FinalCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "FinalCumulativeMetersetWeight" in self._dataset: + del self._dataset.FinalCumulativeMetersetWeight + else: + self._dataset.FinalCumulativeMetersetWeight = value + + @property + def NumberOfControlPoints(self) -> Optional[int]: + if "NumberOfControlPoints" in self._dataset: + return self._dataset.NumberOfControlPoints + return None + + @NumberOfControlPoints.setter + def NumberOfControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfControlPoints" in self._dataset: + del self._dataset.NumberOfControlPoints + else: + self._dataset.NumberOfControlPoints = value + + @property + def ControlPointSequence(self) -> Optional[List[ControlPointSequenceItem]]: + if "ControlPointSequence" in self._dataset: + if len(self._ControlPointSequence) == len(self._dataset.ControlPointSequence): + return self._ControlPointSequence + else: + return [ControlPointSequenceItem(x) for x in self._dataset.ControlPointSequence] + return None + + @ControlPointSequence.setter + def ControlPointSequence(self, value: Optional[List[ControlPointSequenceItem]]): + if value is None: + self._ControlPointSequence = [] + if "ControlPointSequence" in self._dataset: + del self._dataset.ControlPointSequence + elif not isinstance(value, list) or not all(isinstance(item, ControlPointSequenceItem) for item in value): + raise ValueError("ControlPointSequence must be a list of ControlPointSequenceItem objects") + else: + self._ControlPointSequence = value + if "ControlPointSequence" not in self._dataset: + self._dataset.ControlPointSequence = pydicom.Sequence() + self._dataset.ControlPointSequence.clear() + self._dataset.ControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_ControlPoint(self, item: ControlPointSequenceItem): + if not isinstance(item, ControlPointSequenceItem): + raise ValueError("Item must be an instance of ControlPointSequenceItem") + self._ControlPointSequence.append(item) + if "ControlPointSequence" not in self._dataset: + self._dataset.ControlPointSequence = pydicom.Sequence() + self._dataset.ControlPointSequence.append(item.to_dataset()) + + @property + def GeneralAccessorySequence(self) -> Optional[List[GeneralAccessorySequenceItem]]: + if "GeneralAccessorySequence" in self._dataset: + if len(self._GeneralAccessorySequence) == len(self._dataset.GeneralAccessorySequence): + return self._GeneralAccessorySequence + else: + return [GeneralAccessorySequenceItem(x) for x in self._dataset.GeneralAccessorySequence] + return None + + @GeneralAccessorySequence.setter + def GeneralAccessorySequence(self, value: Optional[List[GeneralAccessorySequenceItem]]): + if value is None: + self._GeneralAccessorySequence = [] + if "GeneralAccessorySequence" in self._dataset: + del self._dataset.GeneralAccessorySequence + elif not isinstance(value, list) or not all(isinstance(item, GeneralAccessorySequenceItem) for item in value): + raise ValueError("GeneralAccessorySequence must be a list of GeneralAccessorySequenceItem objects") + else: + self._GeneralAccessorySequence = value + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.clear() + self._dataset.GeneralAccessorySequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessory(self, item: GeneralAccessorySequenceItem): + if not isinstance(item, GeneralAccessorySequenceItem): + raise ValueError("Item must be an instance of GeneralAccessorySequenceItem") + self._GeneralAccessorySequence.append(item) + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.append(item.to_dataset()) + + @property + def ReferencedReferenceImageSequence(self) -> Optional[List[ReferencedReferenceImageSequenceItem]]: + if "ReferencedReferenceImageSequence" in self._dataset: + if len(self._ReferencedReferenceImageSequence) == len(self._dataset.ReferencedReferenceImageSequence): + return self._ReferencedReferenceImageSequence + else: + return [ReferencedReferenceImageSequenceItem(x) for x in self._dataset.ReferencedReferenceImageSequence] + return None + + @ReferencedReferenceImageSequence.setter + def ReferencedReferenceImageSequence(self, value: Optional[List[ReferencedReferenceImageSequenceItem]]): + if value is None: + self._ReferencedReferenceImageSequence = [] + if "ReferencedReferenceImageSequence" in self._dataset: + del self._dataset.ReferencedReferenceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedReferenceImageSequenceItem) for item in value): + raise ValueError("ReferencedReferenceImageSequence must be a list of ReferencedReferenceImageSequenceItem objects") + else: + self._ReferencedReferenceImageSequence = value + if "ReferencedReferenceImageSequence" not in self._dataset: + self._dataset.ReferencedReferenceImageSequence = pydicom.Sequence() + self._dataset.ReferencedReferenceImageSequence.clear() + self._dataset.ReferencedReferenceImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedReferenceImage(self, item: ReferencedReferenceImageSequenceItem): + if not isinstance(item, ReferencedReferenceImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedReferenceImageSequenceItem") + self._ReferencedReferenceImageSequence.append(item) + if "ReferencedReferenceImageSequence" not in self._dataset: + self._dataset.ReferencedReferenceImageSequence = pydicom.Sequence() + self._dataset.ReferencedReferenceImageSequence.append(item.to_dataset()) + + @property + def ReferencedDoseReferenceSequence(self) -> Optional[List[ReferencedDoseReferenceSequenceItem]]: + if "ReferencedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedDoseReferenceSequence) == len(self._dataset.ReferencedDoseReferenceSequence): + return self._ReferencedDoseReferenceSequence + else: + return [ReferencedDoseReferenceSequenceItem(x) for x in self._dataset.ReferencedDoseReferenceSequence] + return None + + @ReferencedDoseReferenceSequence.setter + def ReferencedDoseReferenceSequence(self, value: Optional[List[ReferencedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedDoseReferenceSequence = [] + if "ReferencedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseReferenceSequenceItem) for item in value): + raise ValueError("ReferencedDoseReferenceSequence must be a list of ReferencedDoseReferenceSequenceItem objects") + else: + self._ReferencedDoseReferenceSequence = value + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.clear() + self._dataset.ReferencedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDoseReference(self, item: ReferencedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseReferenceSequenceItem") + self._ReferencedDoseReferenceSequence.append(item) + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSetupNumber(self) -> Optional[int]: + if "ReferencedPatientSetupNumber" in self._dataset: + return self._dataset.ReferencedPatientSetupNumber + return None + + @ReferencedPatientSetupNumber.setter + def ReferencedPatientSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedPatientSetupNumber" in self._dataset: + del self._dataset.ReferencedPatientSetupNumber + else: + self._dataset.ReferencedPatientSetupNumber = value + + @property + def ReferencedDoseSequence(self) -> Optional[List[ReferencedDoseSequenceItem]]: + if "ReferencedDoseSequence" in self._dataset: + if len(self._ReferencedDoseSequence) == len(self._dataset.ReferencedDoseSequence): + return self._ReferencedDoseSequence + else: + return [ReferencedDoseSequenceItem(x) for x in self._dataset.ReferencedDoseSequence] + return None + + @ReferencedDoseSequence.setter + def ReferencedDoseSequence(self, value: Optional[List[ReferencedDoseSequenceItem]]): + if value is None: + self._ReferencedDoseSequence = [] + if "ReferencedDoseSequence" in self._dataset: + del self._dataset.ReferencedDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseSequenceItem) for item in value): + raise ValueError("ReferencedDoseSequence must be a list of ReferencedDoseSequenceItem objects") + else: + self._ReferencedDoseSequence = value + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.clear() + self._dataset.ReferencedDoseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDose(self, item: ReferencedDoseSequenceItem): + if not isinstance(item, ReferencedDoseSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseSequenceItem") + self._ReferencedDoseSequence.append(item) + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.append(item.to_dataset()) + + @property + def ReferencedToleranceTableNumber(self) -> Optional[int]: + if "ReferencedToleranceTableNumber" in self._dataset: + return self._dataset.ReferencedToleranceTableNumber + return None + + @ReferencedToleranceTableNumber.setter + def ReferencedToleranceTableNumber(self, value: Optional[int]): + if value is None: + if "ReferencedToleranceTableNumber" in self._dataset: + del self._dataset.ReferencedToleranceTableNumber + else: + self._dataset.ReferencedToleranceTableNumber = value + + @property + def ReferencedBolusSequence(self) -> Optional[List[ReferencedBolusSequenceItem]]: + if "ReferencedBolusSequence" in self._dataset: + if len(self._ReferencedBolusSequence) == len(self._dataset.ReferencedBolusSequence): + return self._ReferencedBolusSequence + else: + return [ReferencedBolusSequenceItem(x) for x in self._dataset.ReferencedBolusSequence] + return None + + @ReferencedBolusSequence.setter + def ReferencedBolusSequence(self, value: Optional[List[ReferencedBolusSequenceItem]]): + if value is None: + self._ReferencedBolusSequence = [] + if "ReferencedBolusSequence" in self._dataset: + del self._dataset.ReferencedBolusSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBolusSequenceItem) for item in value): + raise ValueError("ReferencedBolusSequence must be a list of ReferencedBolusSequenceItem objects") + else: + self._ReferencedBolusSequence = value + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.clear() + self._dataset.ReferencedBolusSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBolus(self, item: ReferencedBolusSequenceItem): + if not isinstance(item, ReferencedBolusSequenceItem): + raise ValueError("Item must be an instance of ReferencedBolusSequenceItem") + self._ReferencedBolusSequence.append(item) + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.append(item.to_dataset()) + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value diff --git a/tdwii_plus_examples/domain_model/beam_task_sequence_item.py b/tdwii_plus_examples/domain_model/beam_task_sequence_item.py new file mode 100644 index 0000000..a8e769f --- /dev/null +++ b/tdwii_plus_examples/domain_model/beam_task_sequence_item.py @@ -0,0 +1,365 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .delivery_verification_image_sequence_item import ( + DeliveryVerificationImageSequenceItem, +) +from .device_motion_control_sequence_item import DeviceMotionControlSequenceItem + + +class BeamTaskSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeliveryVerificationImageSequence: List[DeliveryVerificationImageSequenceItem] = [] + self._DeviceMotionControlSequence: List[DeviceMotionControlSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContinuationStartMeterset(self) -> Optional[float]: + if "ContinuationStartMeterset" in self._dataset: + return self._dataset.ContinuationStartMeterset + return None + + @ContinuationStartMeterset.setter + def ContinuationStartMeterset(self, value: Optional[float]): + if value is None: + if "ContinuationStartMeterset" in self._dataset: + del self._dataset.ContinuationStartMeterset + else: + self._dataset.ContinuationStartMeterset = value + + @property + def ContinuationEndMeterset(self) -> Optional[float]: + if "ContinuationEndMeterset" in self._dataset: + return self._dataset.ContinuationEndMeterset + return None + + @ContinuationEndMeterset.setter + def ContinuationEndMeterset(self, value: Optional[float]): + if value is None: + if "ContinuationEndMeterset" in self._dataset: + del self._dataset.ContinuationEndMeterset + else: + self._dataset.ContinuationEndMeterset = value + + @property + def BeamTaskType(self) -> Optional[str]: + if "BeamTaskType" in self._dataset: + return self._dataset.BeamTaskType + return None + + @BeamTaskType.setter + def BeamTaskType(self, value: Optional[str]): + if value is None: + if "BeamTaskType" in self._dataset: + del self._dataset.BeamTaskType + else: + self._dataset.BeamTaskType = value + + @property + def AutosequenceFlag(self) -> Optional[str]: + if "AutosequenceFlag" in self._dataset: + return self._dataset.AutosequenceFlag + return None + + @AutosequenceFlag.setter + def AutosequenceFlag(self, value: Optional[str]): + if value is None: + if "AutosequenceFlag" in self._dataset: + del self._dataset.AutosequenceFlag + else: + self._dataset.AutosequenceFlag = value + + @property + def TableTopVerticalAdjustedPosition(self) -> Optional[float]: + if "TableTopVerticalAdjustedPosition" in self._dataset: + return self._dataset.TableTopVerticalAdjustedPosition + return None + + @TableTopVerticalAdjustedPosition.setter + def TableTopVerticalAdjustedPosition(self, value: Optional[float]): + if value is None: + if "TableTopVerticalAdjustedPosition" in self._dataset: + del self._dataset.TableTopVerticalAdjustedPosition + else: + self._dataset.TableTopVerticalAdjustedPosition = value + + @property + def TableTopLongitudinalAdjustedPosition(self) -> Optional[float]: + if "TableTopLongitudinalAdjustedPosition" in self._dataset: + return self._dataset.TableTopLongitudinalAdjustedPosition + return None + + @TableTopLongitudinalAdjustedPosition.setter + def TableTopLongitudinalAdjustedPosition(self, value: Optional[float]): + if value is None: + if "TableTopLongitudinalAdjustedPosition" in self._dataset: + del self._dataset.TableTopLongitudinalAdjustedPosition + else: + self._dataset.TableTopLongitudinalAdjustedPosition = value + + @property + def TableTopLateralAdjustedPosition(self) -> Optional[float]: + if "TableTopLateralAdjustedPosition" in self._dataset: + return self._dataset.TableTopLateralAdjustedPosition + return None + + @TableTopLateralAdjustedPosition.setter + def TableTopLateralAdjustedPosition(self, value: Optional[float]): + if value is None: + if "TableTopLateralAdjustedPosition" in self._dataset: + del self._dataset.TableTopLateralAdjustedPosition + else: + self._dataset.TableTopLateralAdjustedPosition = value + + @property + def PatientSupportAdjustedAngle(self) -> Optional[float]: + if "PatientSupportAdjustedAngle" in self._dataset: + return self._dataset.PatientSupportAdjustedAngle + return None + + @PatientSupportAdjustedAngle.setter + def PatientSupportAdjustedAngle(self, value: Optional[float]): + if value is None: + if "PatientSupportAdjustedAngle" in self._dataset: + del self._dataset.PatientSupportAdjustedAngle + else: + self._dataset.PatientSupportAdjustedAngle = value + + @property + def TableTopEccentricAdjustedAngle(self) -> Optional[float]: + if "TableTopEccentricAdjustedAngle" in self._dataset: + return self._dataset.TableTopEccentricAdjustedAngle + return None + + @TableTopEccentricAdjustedAngle.setter + def TableTopEccentricAdjustedAngle(self, value: Optional[float]): + if value is None: + if "TableTopEccentricAdjustedAngle" in self._dataset: + del self._dataset.TableTopEccentricAdjustedAngle + else: + self._dataset.TableTopEccentricAdjustedAngle = value + + @property + def TableTopPitchAdjustedAngle(self) -> Optional[float]: + if "TableTopPitchAdjustedAngle" in self._dataset: + return self._dataset.TableTopPitchAdjustedAngle + return None + + @TableTopPitchAdjustedAngle.setter + def TableTopPitchAdjustedAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAdjustedAngle" in self._dataset: + del self._dataset.TableTopPitchAdjustedAngle + else: + self._dataset.TableTopPitchAdjustedAngle = value + + @property + def TableTopRollAdjustedAngle(self) -> Optional[float]: + if "TableTopRollAdjustedAngle" in self._dataset: + return self._dataset.TableTopRollAdjustedAngle + return None + + @TableTopRollAdjustedAngle.setter + def TableTopRollAdjustedAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAdjustedAngle" in self._dataset: + del self._dataset.TableTopRollAdjustedAngle + else: + self._dataset.TableTopRollAdjustedAngle = value + + @property + def DeliveryVerificationImageSequence(self) -> Optional[List[DeliveryVerificationImageSequenceItem]]: + if "DeliveryVerificationImageSequence" in self._dataset: + if len(self._DeliveryVerificationImageSequence) == len(self._dataset.DeliveryVerificationImageSequence): + return self._DeliveryVerificationImageSequence + else: + return [DeliveryVerificationImageSequenceItem(x) for x in self._dataset.DeliveryVerificationImageSequence] + return None + + @DeliveryVerificationImageSequence.setter + def DeliveryVerificationImageSequence(self, value: Optional[List[DeliveryVerificationImageSequenceItem]]): + if value is None: + self._DeliveryVerificationImageSequence = [] + if "DeliveryVerificationImageSequence" in self._dataset: + del self._dataset.DeliveryVerificationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DeliveryVerificationImageSequenceItem) for item in value): + raise ValueError( + "DeliveryVerificationImageSequence must be a list of DeliveryVerificationImageSequenceItem objects" + ) + else: + self._DeliveryVerificationImageSequence = value + if "DeliveryVerificationImageSequence" not in self._dataset: + self._dataset.DeliveryVerificationImageSequence = pydicom.Sequence() + self._dataset.DeliveryVerificationImageSequence.clear() + self._dataset.DeliveryVerificationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryVerificationImage(self, item: DeliveryVerificationImageSequenceItem): + if not isinstance(item, DeliveryVerificationImageSequenceItem): + raise ValueError("Item must be an instance of DeliveryVerificationImageSequenceItem") + self._DeliveryVerificationImageSequence.append(item) + if "DeliveryVerificationImageSequence" not in self._dataset: + self._dataset.DeliveryVerificationImageSequence = pydicom.Sequence() + self._dataset.DeliveryVerificationImageSequence.append(item.to_dataset()) + + @property + def BeamOrderIndex(self) -> Optional[int]: + if "BeamOrderIndex" in self._dataset: + return self._dataset.BeamOrderIndex + return None + + @BeamOrderIndex.setter + def BeamOrderIndex(self, value: Optional[int]): + if value is None: + if "BeamOrderIndex" in self._dataset: + del self._dataset.BeamOrderIndex + else: + self._dataset.BeamOrderIndex = value + + @property + def CurrentFractionNumber(self) -> Optional[int]: + if "CurrentFractionNumber" in self._dataset: + return self._dataset.CurrentFractionNumber + return None + + @CurrentFractionNumber.setter + def CurrentFractionNumber(self, value: Optional[int]): + if value is None: + if "CurrentFractionNumber" in self._dataset: + del self._dataset.CurrentFractionNumber + else: + self._dataset.CurrentFractionNumber = value + + @property + def PrimaryDosimeterUnit(self) -> Optional[str]: + if "PrimaryDosimeterUnit" in self._dataset: + return self._dataset.PrimaryDosimeterUnit + return None + + @PrimaryDosimeterUnit.setter + def PrimaryDosimeterUnit(self, value: Optional[str]): + if value is None: + if "PrimaryDosimeterUnit" in self._dataset: + del self._dataset.PrimaryDosimeterUnit + else: + self._dataset.PrimaryDosimeterUnit = value + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def TableTopVerticalSetupDisplacement(self) -> Optional[Decimal]: + if "TableTopVerticalSetupDisplacement" in self._dataset: + return self._dataset.TableTopVerticalSetupDisplacement + return None + + @TableTopVerticalSetupDisplacement.setter + def TableTopVerticalSetupDisplacement(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalSetupDisplacement" in self._dataset: + del self._dataset.TableTopVerticalSetupDisplacement + else: + self._dataset.TableTopVerticalSetupDisplacement = value + + @property + def TableTopLongitudinalSetupDisplacement(self) -> Optional[Decimal]: + if "TableTopLongitudinalSetupDisplacement" in self._dataset: + return self._dataset.TableTopLongitudinalSetupDisplacement + return None + + @TableTopLongitudinalSetupDisplacement.setter + def TableTopLongitudinalSetupDisplacement(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalSetupDisplacement" in self._dataset: + del self._dataset.TableTopLongitudinalSetupDisplacement + else: + self._dataset.TableTopLongitudinalSetupDisplacement = value + + @property + def TableTopLateralSetupDisplacement(self) -> Optional[Decimal]: + if "TableTopLateralSetupDisplacement" in self._dataset: + return self._dataset.TableTopLateralSetupDisplacement + return None + + @TableTopLateralSetupDisplacement.setter + def TableTopLateralSetupDisplacement(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralSetupDisplacement" in self._dataset: + del self._dataset.TableTopLateralSetupDisplacement + else: + self._dataset.TableTopLateralSetupDisplacement = value + + @property + def DeviceMotionControlSequence(self) -> Optional[List[DeviceMotionControlSequenceItem]]: + if "DeviceMotionControlSequence" in self._dataset: + if len(self._DeviceMotionControlSequence) == len(self._dataset.DeviceMotionControlSequence): + return self._DeviceMotionControlSequence + else: + return [DeviceMotionControlSequenceItem(x) for x in self._dataset.DeviceMotionControlSequence] + return None + + @DeviceMotionControlSequence.setter + def DeviceMotionControlSequence(self, value: Optional[List[DeviceMotionControlSequenceItem]]): + if value is None: + self._DeviceMotionControlSequence = [] + if "DeviceMotionControlSequence" in self._dataset: + del self._dataset.DeviceMotionControlSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceMotionControlSequenceItem) for item in value): + raise ValueError("DeviceMotionControlSequence must be a list of DeviceMotionControlSequenceItem objects") + else: + self._DeviceMotionControlSequence = value + if "DeviceMotionControlSequence" not in self._dataset: + self._dataset.DeviceMotionControlSequence = pydicom.Sequence() + self._dataset.DeviceMotionControlSequence.clear() + self._dataset.DeviceMotionControlSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceMotionControl(self, item: DeviceMotionControlSequenceItem): + if not isinstance(item, DeviceMotionControlSequenceItem): + raise ValueError("Item must be an instance of DeviceMotionControlSequenceItem") + self._DeviceMotionControlSequence.append(item) + if "DeviceMotionControlSequence" not in self._dataset: + self._dataset.DeviceMotionControlSequence = pydicom.Sequence() + self._dataset.DeviceMotionControlSequence.append(item.to_dataset()) + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value diff --git a/tdwii_plus_examples/domain_model/biopsy_target_sequence_item.py b/tdwii_plus_examples/domain_model/biopsy_target_sequence_item.py new file mode 100644 index 0000000..5c748ec --- /dev/null +++ b/tdwii_plus_examples/domain_model/biopsy_target_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BiopsyTargetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TargetUID(self) -> Optional[str]: + if "TargetUID" in self._dataset: + return self._dataset.TargetUID + return None + + @TargetUID.setter + def TargetUID(self, value: Optional[str]): + if value is None: + if "TargetUID" in self._dataset: + del self._dataset.TargetUID + else: + self._dataset.TargetUID = value + + @property + def LocalizingCursorPosition(self) -> Optional[List[float]]: + if "LocalizingCursorPosition" in self._dataset: + return self._dataset.LocalizingCursorPosition + return None + + @LocalizingCursorPosition.setter + def LocalizingCursorPosition(self, value: Optional[List[float]]): + if value is None: + if "LocalizingCursorPosition" in self._dataset: + del self._dataset.LocalizingCursorPosition + else: + self._dataset.LocalizingCursorPosition = value + + @property + def CalculatedTargetPosition(self) -> Optional[List[float]]: + if "CalculatedTargetPosition" in self._dataset: + return self._dataset.CalculatedTargetPosition + return None + + @CalculatedTargetPosition.setter + def CalculatedTargetPosition(self, value: Optional[List[float]]): + if value is None: + if "CalculatedTargetPosition" in self._dataset: + del self._dataset.CalculatedTargetPosition + else: + self._dataset.CalculatedTargetPosition = value + + @property + def TargetLabel(self) -> Optional[str]: + if "TargetLabel" in self._dataset: + return self._dataset.TargetLabel + return None + + @TargetLabel.setter + def TargetLabel(self, value: Optional[str]): + if value is None: + if "TargetLabel" in self._dataset: + del self._dataset.TargetLabel + else: + self._dataset.TargetLabel = value + + @property + def DisplayedZValue(self) -> Optional[float]: + if "DisplayedZValue" in self._dataset: + return self._dataset.DisplayedZValue + return None + + @DisplayedZValue.setter + def DisplayedZValue(self, value: Optional[float]): + if value is None: + if "DisplayedZValue" in self._dataset: + del self._dataset.DisplayedZValue + else: + self._dataset.DisplayedZValue = value diff --git a/tdwii_plus_examples/domain_model/blending_display_input_sequence_item.py b/tdwii_plus_examples/domain_model/blending_display_input_sequence_item.py new file mode 100644 index 0000000..473c1e3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/blending_display_input_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlendingDisplayInputSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BlendingInputNumber(self) -> Optional[int]: + if "BlendingInputNumber" in self._dataset: + return self._dataset.BlendingInputNumber + return None + + @BlendingInputNumber.setter + def BlendingInputNumber(self, value: Optional[int]): + if value is None: + if "BlendingInputNumber" in self._dataset: + del self._dataset.BlendingInputNumber + else: + self._dataset.BlendingInputNumber = value diff --git a/tdwii_plus_examples/domain_model/blending_display_sequence_item.py b/tdwii_plus_examples/domain_model/blending_display_sequence_item.py new file mode 100644 index 0000000..3c49d97 --- /dev/null +++ b/tdwii_plus_examples/domain_model/blending_display_sequence_item.py @@ -0,0 +1,88 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .blending_display_input_sequence_item import BlendingDisplayInputSequenceItem + + +class BlendingDisplaySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BlendingDisplayInputSequence: List[BlendingDisplayInputSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RelativeOpacity(self) -> Optional[float]: + if "RelativeOpacity" in self._dataset: + return self._dataset.RelativeOpacity + return None + + @RelativeOpacity.setter + def RelativeOpacity(self, value: Optional[float]): + if value is None: + if "RelativeOpacity" in self._dataset: + del self._dataset.RelativeOpacity + else: + self._dataset.RelativeOpacity = value + + @property + def BlendingInputNumber(self) -> Optional[int]: + if "BlendingInputNumber" in self._dataset: + return self._dataset.BlendingInputNumber + return None + + @BlendingInputNumber.setter + def BlendingInputNumber(self, value: Optional[int]): + if value is None: + if "BlendingInputNumber" in self._dataset: + del self._dataset.BlendingInputNumber + else: + self._dataset.BlendingInputNumber = value + + @property + def BlendingDisplayInputSequence(self) -> Optional[List[BlendingDisplayInputSequenceItem]]: + if "BlendingDisplayInputSequence" in self._dataset: + if len(self._BlendingDisplayInputSequence) == len(self._dataset.BlendingDisplayInputSequence): + return self._BlendingDisplayInputSequence + else: + return [BlendingDisplayInputSequenceItem(x) for x in self._dataset.BlendingDisplayInputSequence] + return None + + @BlendingDisplayInputSequence.setter + def BlendingDisplayInputSequence(self, value: Optional[List[BlendingDisplayInputSequenceItem]]): + if value is None: + self._BlendingDisplayInputSequence = [] + if "BlendingDisplayInputSequence" in self._dataset: + del self._dataset.BlendingDisplayInputSequence + elif not isinstance(value, list) or not all(isinstance(item, BlendingDisplayInputSequenceItem) for item in value): + raise ValueError("BlendingDisplayInputSequence must be a list of BlendingDisplayInputSequenceItem objects") + else: + self._BlendingDisplayInputSequence = value + if "BlendingDisplayInputSequence" not in self._dataset: + self._dataset.BlendingDisplayInputSequence = pydicom.Sequence() + self._dataset.BlendingDisplayInputSequence.clear() + self._dataset.BlendingDisplayInputSequence.extend([item.to_dataset() for item in value]) + + def add_BlendingDisplayInput(self, item: BlendingDisplayInputSequenceItem): + if not isinstance(item, BlendingDisplayInputSequenceItem): + raise ValueError("Item must be an instance of BlendingDisplayInputSequenceItem") + self._BlendingDisplayInputSequence.append(item) + if "BlendingDisplayInputSequence" not in self._dataset: + self._dataset.BlendingDisplayInputSequence = pydicom.Sequence() + self._dataset.BlendingDisplayInputSequence.append(item.to_dataset()) + + @property + def BlendingMode(self) -> Optional[str]: + if "BlendingMode" in self._dataset: + return self._dataset.BlendingMode + return None + + @BlendingMode.setter + def BlendingMode(self, value: Optional[str]): + if value is None: + if "BlendingMode" in self._dataset: + del self._dataset.BlendingMode + else: + self._dataset.BlendingMode = value diff --git a/tdwii_plus_examples/domain_model/blending_lut1_sequence_item.py b/tdwii_plus_examples/domain_model/blending_lut1_sequence_item.py new file mode 100644 index 0000000..6768e8d --- /dev/null +++ b/tdwii_plus_examples/domain_model/blending_lut1_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlendingLUT1SequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BlendingLUT1TransferFunction(self) -> Optional[str]: + if "BlendingLUT1TransferFunction" in self._dataset: + return self._dataset.BlendingLUT1TransferFunction + return None + + @BlendingLUT1TransferFunction.setter + def BlendingLUT1TransferFunction(self, value: Optional[str]): + if value is None: + if "BlendingLUT1TransferFunction" in self._dataset: + del self._dataset.BlendingLUT1TransferFunction + else: + self._dataset.BlendingLUT1TransferFunction = value + + @property + def BlendingWeightConstant(self) -> Optional[float]: + if "BlendingWeightConstant" in self._dataset: + return self._dataset.BlendingWeightConstant + return None + + @BlendingWeightConstant.setter + def BlendingWeightConstant(self, value: Optional[float]): + if value is None: + if "BlendingWeightConstant" in self._dataset: + del self._dataset.BlendingWeightConstant + else: + self._dataset.BlendingWeightConstant = value + + @property + def BlendingLookupTableDescriptor(self) -> Optional[List[int]]: + if "BlendingLookupTableDescriptor" in self._dataset: + return self._dataset.BlendingLookupTableDescriptor + return None + + @BlendingLookupTableDescriptor.setter + def BlendingLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BlendingLookupTableDescriptor" in self._dataset: + del self._dataset.BlendingLookupTableDescriptor + else: + self._dataset.BlendingLookupTableDescriptor = value + + @property + def BlendingLookupTableData(self) -> Optional[bytes]: + if "BlendingLookupTableData" in self._dataset: + return self._dataset.BlendingLookupTableData + return None + + @BlendingLookupTableData.setter + def BlendingLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BlendingLookupTableData" in self._dataset: + del self._dataset.BlendingLookupTableData + else: + self._dataset.BlendingLookupTableData = value diff --git a/tdwii_plus_examples/domain_model/blending_lut2_sequence_item.py b/tdwii_plus_examples/domain_model/blending_lut2_sequence_item.py new file mode 100644 index 0000000..675804d --- /dev/null +++ b/tdwii_plus_examples/domain_model/blending_lut2_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlendingLUT2SequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BlendingWeightConstant(self) -> Optional[float]: + if "BlendingWeightConstant" in self._dataset: + return self._dataset.BlendingWeightConstant + return None + + @BlendingWeightConstant.setter + def BlendingWeightConstant(self, value: Optional[float]): + if value is None: + if "BlendingWeightConstant" in self._dataset: + del self._dataset.BlendingWeightConstant + else: + self._dataset.BlendingWeightConstant = value + + @property + def BlendingLookupTableDescriptor(self) -> Optional[List[int]]: + if "BlendingLookupTableDescriptor" in self._dataset: + return self._dataset.BlendingLookupTableDescriptor + return None + + @BlendingLookupTableDescriptor.setter + def BlendingLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BlendingLookupTableDescriptor" in self._dataset: + del self._dataset.BlendingLookupTableDescriptor + else: + self._dataset.BlendingLookupTableDescriptor = value + + @property + def BlendingLookupTableData(self) -> Optional[bytes]: + if "BlendingLookupTableData" in self._dataset: + return self._dataset.BlendingLookupTableData + return None + + @BlendingLookupTableData.setter + def BlendingLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BlendingLookupTableData" in self._dataset: + del self._dataset.BlendingLookupTableData + else: + self._dataset.BlendingLookupTableData = value + + @property + def BlendingLUT2TransferFunction(self) -> Optional[str]: + if "BlendingLUT2TransferFunction" in self._dataset: + return self._dataset.BlendingLUT2TransferFunction + return None + + @BlendingLUT2TransferFunction.setter + def BlendingLUT2TransferFunction(self, value: Optional[str]): + if value is None: + if "BlendingLUT2TransferFunction" in self._dataset: + del self._dataset.BlendingLUT2TransferFunction + else: + self._dataset.BlendingLUT2TransferFunction = value diff --git a/tdwii_plus_examples/domain_model/blending_sequence_item.py b/tdwii_plus_examples/domain_model/blending_sequence_item.py new file mode 100644 index 0000000..31cfe3f --- /dev/null +++ b/tdwii_plus_examples/domain_model/blending_sequence_item.py @@ -0,0 +1,185 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .softcopy_voilut_sequence_item import SoftcopyVOILUTSequenceItem + + +class BlendingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._SoftcopyVOILUTSequence: List[SoftcopyVOILUTSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def SoftcopyVOILUTSequence(self) -> Optional[List[SoftcopyVOILUTSequenceItem]]: + if "SoftcopyVOILUTSequence" in self._dataset: + if len(self._SoftcopyVOILUTSequence) == len(self._dataset.SoftcopyVOILUTSequence): + return self._SoftcopyVOILUTSequence + else: + return [SoftcopyVOILUTSequenceItem(x) for x in self._dataset.SoftcopyVOILUTSequence] + return None + + @SoftcopyVOILUTSequence.setter + def SoftcopyVOILUTSequence(self, value: Optional[List[SoftcopyVOILUTSequenceItem]]): + if value is None: + self._SoftcopyVOILUTSequence = [] + if "SoftcopyVOILUTSequence" in self._dataset: + del self._dataset.SoftcopyVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, SoftcopyVOILUTSequenceItem) for item in value): + raise ValueError("SoftcopyVOILUTSequence must be a list of SoftcopyVOILUTSequenceItem objects") + else: + self._SoftcopyVOILUTSequence = value + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.clear() + self._dataset.SoftcopyVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_SoftcopyVOILUT(self, item: SoftcopyVOILUTSequenceItem): + if not isinstance(item, SoftcopyVOILUTSequenceItem): + raise ValueError("Item must be an instance of SoftcopyVOILUTSequenceItem") + self._SoftcopyVOILUTSequence.append(item) + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.append(item.to_dataset()) + + @property + def BlendingPosition(self) -> Optional[str]: + if "BlendingPosition" in self._dataset: + return self._dataset.BlendingPosition + return None + + @BlendingPosition.setter + def BlendingPosition(self, value: Optional[str]): + if value is None: + if "BlendingPosition" in self._dataset: + del self._dataset.BlendingPosition + else: + self._dataset.BlendingPosition = value diff --git a/tdwii_plus_examples/domain_model/blending_softcopy_presentation_state.py b/tdwii_plus_examples/domain_model/blending_softcopy_presentation_state.py new file mode 100644 index 0000000..94ee264 --- /dev/null +++ b/tdwii_plus_examples/domain_model/blending_softcopy_presentation_state.py @@ -0,0 +1,4719 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .blending_sequence_item import BlendingSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_spatial_registration_sequence_item import ( + ReferencedSpatialRegistrationSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class BlendingSoftcopyPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._BlendingSequence: List[BlendingSequenceItem] = [] + self._ReferencedSpatialRegistrationSequence: List[ReferencedSpatialRegistrationSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def BlendingSequence(self) -> Optional[List[BlendingSequenceItem]]: + if "BlendingSequence" in self._dataset: + if len(self._BlendingSequence) == len(self._dataset.BlendingSequence): + return self._BlendingSequence + else: + return [BlendingSequenceItem(x) for x in self._dataset.BlendingSequence] + return None + + @BlendingSequence.setter + def BlendingSequence(self, value: Optional[List[BlendingSequenceItem]]): + if value is None: + self._BlendingSequence = [] + if "BlendingSequence" in self._dataset: + del self._dataset.BlendingSequence + elif not isinstance(value, list) or not all(isinstance(item, BlendingSequenceItem) for item in value): + raise ValueError("BlendingSequence must be a list of BlendingSequenceItem objects") + else: + self._BlendingSequence = value + if "BlendingSequence" not in self._dataset: + self._dataset.BlendingSequence = pydicom.Sequence() + self._dataset.BlendingSequence.clear() + self._dataset.BlendingSequence.extend([item.to_dataset() for item in value]) + + def add_Blending(self, item: BlendingSequenceItem): + if not isinstance(item, BlendingSequenceItem): + raise ValueError("Item must be an instance of BlendingSequenceItem") + self._BlendingSequence.append(item) + if "BlendingSequence" not in self._dataset: + self._dataset.BlendingSequence = pydicom.Sequence() + self._dataset.BlendingSequence.append(item.to_dataset()) + + @property + def RelativeOpacity(self) -> Optional[float]: + if "RelativeOpacity" in self._dataset: + return self._dataset.RelativeOpacity + return None + + @RelativeOpacity.setter + def RelativeOpacity(self, value: Optional[float]): + if value is None: + if "RelativeOpacity" in self._dataset: + del self._dataset.RelativeOpacity + else: + self._dataset.RelativeOpacity = value + + @property + def ReferencedSpatialRegistrationSequence(self) -> Optional[List[ReferencedSpatialRegistrationSequenceItem]]: + if "ReferencedSpatialRegistrationSequence" in self._dataset: + if len(self._ReferencedSpatialRegistrationSequence) == len(self._dataset.ReferencedSpatialRegistrationSequence): + return self._ReferencedSpatialRegistrationSequence + else: + return [ + ReferencedSpatialRegistrationSequenceItem(x) for x in self._dataset.ReferencedSpatialRegistrationSequence + ] + return None + + @ReferencedSpatialRegistrationSequence.setter + def ReferencedSpatialRegistrationSequence(self, value: Optional[List[ReferencedSpatialRegistrationSequenceItem]]): + if value is None: + self._ReferencedSpatialRegistrationSequence = [] + if "ReferencedSpatialRegistrationSequence" in self._dataset: + del self._dataset.ReferencedSpatialRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedSpatialRegistrationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedSpatialRegistrationSequence must be a list of ReferencedSpatialRegistrationSequenceItem objects" + ) + else: + self._ReferencedSpatialRegistrationSequence = value + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.clear() + self._dataset.ReferencedSpatialRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSpatialRegistration(self, item: ReferencedSpatialRegistrationSequenceItem): + if not isinstance(item, ReferencedSpatialRegistrationSequenceItem): + raise ValueError("Item must be an instance of ReferencedSpatialRegistrationSequenceItem") + self._ReferencedSpatialRegistrationSequence.append(item) + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.append(item.to_dataset()) + + @property + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/block_definition_sequence_item.py b/tdwii_plus_examples/domain_model/block_definition_sequence_item.py new file mode 100644 index 0000000..7e15136 --- /dev/null +++ b/tdwii_plus_examples/domain_model/block_definition_sequence_item.py @@ -0,0 +1,498 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .block_edge_data_sequence_item import BlockEdgeDataSequenceItem +from .block_slab_sequence_item import BlockSlabSequenceItem +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class BlockDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._BlockSlabSequence: List[BlockSlabSequenceItem] = [] + self._BlockEdgeDataSequence: List[BlockEdgeDataSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def BlockDivergence(self) -> Optional[str]: + if "BlockDivergence" in self._dataset: + return self._dataset.BlockDivergence + return None + + @BlockDivergence.setter + def BlockDivergence(self, value: Optional[str]): + if value is None: + if "BlockDivergence" in self._dataset: + del self._dataset.BlockDivergence + else: + self._dataset.BlockDivergence = value + + @property + def NumberOfBlockSlabItems(self) -> Optional[int]: + if "NumberOfBlockSlabItems" in self._dataset: + return self._dataset.NumberOfBlockSlabItems + return None + + @NumberOfBlockSlabItems.setter + def NumberOfBlockSlabItems(self, value: Optional[int]): + if value is None: + if "NumberOfBlockSlabItems" in self._dataset: + del self._dataset.NumberOfBlockSlabItems + else: + self._dataset.NumberOfBlockSlabItems = value + + @property + def BlockSlabSequence(self) -> Optional[List[BlockSlabSequenceItem]]: + if "BlockSlabSequence" in self._dataset: + if len(self._BlockSlabSequence) == len(self._dataset.BlockSlabSequence): + return self._BlockSlabSequence + else: + return [BlockSlabSequenceItem(x) for x in self._dataset.BlockSlabSequence] + return None + + @BlockSlabSequence.setter + def BlockSlabSequence(self, value: Optional[List[BlockSlabSequenceItem]]): + if value is None: + self._BlockSlabSequence = [] + if "BlockSlabSequence" in self._dataset: + del self._dataset.BlockSlabSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockSlabSequenceItem) for item in value): + raise ValueError("BlockSlabSequence must be a list of BlockSlabSequenceItem objects") + else: + self._BlockSlabSequence = value + if "BlockSlabSequence" not in self._dataset: + self._dataset.BlockSlabSequence = pydicom.Sequence() + self._dataset.BlockSlabSequence.clear() + self._dataset.BlockSlabSequence.extend([item.to_dataset() for item in value]) + + def add_BlockSlab(self, item: BlockSlabSequenceItem): + if not isinstance(item, BlockSlabSequenceItem): + raise ValueError("Item must be an instance of BlockSlabSequenceItem") + self._BlockSlabSequence.append(item) + if "BlockSlabSequence" not in self._dataset: + self._dataset.BlockSlabSequence = pydicom.Sequence() + self._dataset.BlockSlabSequence.append(item.to_dataset()) + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def BlockOrientation(self) -> Optional[str]: + if "BlockOrientation" in self._dataset: + return self._dataset.BlockOrientation + return None + + @BlockOrientation.setter + def BlockOrientation(self, value: Optional[str]): + if value is None: + if "BlockOrientation" in self._dataset: + del self._dataset.BlockOrientation + else: + self._dataset.BlockOrientation = value + + @property + def RadiationBeamBlockThickness(self) -> Optional[float]: + if "RadiationBeamBlockThickness" in self._dataset: + return self._dataset.RadiationBeamBlockThickness + return None + + @RadiationBeamBlockThickness.setter + def RadiationBeamBlockThickness(self, value: Optional[float]): + if value is None: + if "RadiationBeamBlockThickness" in self._dataset: + del self._dataset.RadiationBeamBlockThickness + else: + self._dataset.RadiationBeamBlockThickness = value + + @property + def BlockEdgeDataSequence(self) -> Optional[List[BlockEdgeDataSequenceItem]]: + if "BlockEdgeDataSequence" in self._dataset: + if len(self._BlockEdgeDataSequence) == len(self._dataset.BlockEdgeDataSequence): + return self._BlockEdgeDataSequence + else: + return [BlockEdgeDataSequenceItem(x) for x in self._dataset.BlockEdgeDataSequence] + return None + + @BlockEdgeDataSequence.setter + def BlockEdgeDataSequence(self, value: Optional[List[BlockEdgeDataSequenceItem]]): + if value is None: + self._BlockEdgeDataSequence = [] + if "BlockEdgeDataSequence" in self._dataset: + del self._dataset.BlockEdgeDataSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockEdgeDataSequenceItem) for item in value): + raise ValueError("BlockEdgeDataSequence must be a list of BlockEdgeDataSequenceItem objects") + else: + self._BlockEdgeDataSequence = value + if "BlockEdgeDataSequence" not in self._dataset: + self._dataset.BlockEdgeDataSequence = pydicom.Sequence() + self._dataset.BlockEdgeDataSequence.clear() + self._dataset.BlockEdgeDataSequence.extend([item.to_dataset() for item in value]) + + def add_BlockEdgeData(self, item: BlockEdgeDataSequenceItem): + if not isinstance(item, BlockEdgeDataSequenceItem): + raise ValueError("Item must be an instance of BlockEdgeDataSequenceItem") + self._BlockEdgeDataSequence.append(item) + if "BlockEdgeDataSequence" not in self._dataset: + self._dataset.BlockEdgeDataSequence = pydicom.Sequence() + self._dataset.BlockEdgeDataSequence.append(item.to_dataset()) + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/block_edge_data_sequence_item.py b/tdwii_plus_examples/domain_model/block_edge_data_sequence_item.py new file mode 100644 index 0000000..8232e20 --- /dev/null +++ b/tdwii_plus_examples/domain_model/block_edge_data_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlockEdgeDataSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BlockEdgeData(self) -> Optional[bytes]: + if "BlockEdgeData" in self._dataset: + return self._dataset.BlockEdgeData + return None + + @BlockEdgeData.setter + def BlockEdgeData(self, value: Optional[bytes]): + if value is None: + if "BlockEdgeData" in self._dataset: + del self._dataset.BlockEdgeData + else: + self._dataset.BlockEdgeData = value diff --git a/tdwii_plus_examples/domain_model/block_sequence_item.py b/tdwii_plus_examples/domain_model/block_sequence_item.py new file mode 100644 index 0000000..e37c63a --- /dev/null +++ b/tdwii_plus_examples/domain_model/block_sequence_item.py @@ -0,0 +1,208 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def BlockTrayID(self) -> Optional[str]: + if "BlockTrayID" in self._dataset: + return self._dataset.BlockTrayID + return None + + @BlockTrayID.setter + def BlockTrayID(self, value: Optional[str]): + if value is None: + if "BlockTrayID" in self._dataset: + del self._dataset.BlockTrayID + else: + self._dataset.BlockTrayID = value + + @property + def SourceToBlockTrayDistance(self) -> Optional[Decimal]: + if "SourceToBlockTrayDistance" in self._dataset: + return self._dataset.SourceToBlockTrayDistance + return None + + @SourceToBlockTrayDistance.setter + def SourceToBlockTrayDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToBlockTrayDistance" in self._dataset: + del self._dataset.SourceToBlockTrayDistance + else: + self._dataset.SourceToBlockTrayDistance = value + + @property + def BlockType(self) -> Optional[str]: + if "BlockType" in self._dataset: + return self._dataset.BlockType + return None + + @BlockType.setter + def BlockType(self, value: Optional[str]): + if value is None: + if "BlockType" in self._dataset: + del self._dataset.BlockType + else: + self._dataset.BlockType = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockDivergence(self) -> Optional[str]: + if "BlockDivergence" in self._dataset: + return self._dataset.BlockDivergence + return None + + @BlockDivergence.setter + def BlockDivergence(self, value: Optional[str]): + if value is None: + if "BlockDivergence" in self._dataset: + del self._dataset.BlockDivergence + else: + self._dataset.BlockDivergence = value + + @property + def BlockMountingPosition(self) -> Optional[str]: + if "BlockMountingPosition" in self._dataset: + return self._dataset.BlockMountingPosition + return None + + @BlockMountingPosition.setter + def BlockMountingPosition(self, value: Optional[str]): + if value is None: + if "BlockMountingPosition" in self._dataset: + del self._dataset.BlockMountingPosition + else: + self._dataset.BlockMountingPosition = value + + @property + def BlockNumber(self) -> Optional[int]: + if "BlockNumber" in self._dataset: + return self._dataset.BlockNumber + return None + + @BlockNumber.setter + def BlockNumber(self, value: Optional[int]): + if value is None: + if "BlockNumber" in self._dataset: + del self._dataset.BlockNumber + else: + self._dataset.BlockNumber = value + + @property + def BlockName(self) -> Optional[str]: + if "BlockName" in self._dataset: + return self._dataset.BlockName + return None + + @BlockName.setter + def BlockName(self, value: Optional[str]): + if value is None: + if "BlockName" in self._dataset: + del self._dataset.BlockName + else: + self._dataset.BlockName = value + + @property + def BlockThickness(self) -> Optional[Decimal]: + if "BlockThickness" in self._dataset: + return self._dataset.BlockThickness + return None + + @BlockThickness.setter + def BlockThickness(self, value: Optional[Decimal]): + if value is None: + if "BlockThickness" in self._dataset: + del self._dataset.BlockThickness + else: + self._dataset.BlockThickness = value + + @property + def BlockTransmission(self) -> Optional[Decimal]: + if "BlockTransmission" in self._dataset: + return self._dataset.BlockTransmission + return None + + @BlockTransmission.setter + def BlockTransmission(self, value: Optional[Decimal]): + if value is None: + if "BlockTransmission" in self._dataset: + del self._dataset.BlockTransmission + else: + self._dataset.BlockTransmission = value + + @property + def BlockNumberOfPoints(self) -> Optional[int]: + if "BlockNumberOfPoints" in self._dataset: + return self._dataset.BlockNumberOfPoints + return None + + @BlockNumberOfPoints.setter + def BlockNumberOfPoints(self, value: Optional[int]): + if value is None: + if "BlockNumberOfPoints" in self._dataset: + del self._dataset.BlockNumberOfPoints + else: + self._dataset.BlockNumberOfPoints = value + + @property + def BlockData(self) -> Optional[List[Decimal]]: + if "BlockData" in self._dataset: + return self._dataset.BlockData + return None + + @BlockData.setter + def BlockData(self, value: Optional[List[Decimal]]): + if value is None: + if "BlockData" in self._dataset: + del self._dataset.BlockData + else: + self._dataset.BlockData = value + + @property + def TrayAccessoryCode(self) -> Optional[str]: + if "TrayAccessoryCode" in self._dataset: + return self._dataset.TrayAccessoryCode + return None + + @TrayAccessoryCode.setter + def TrayAccessoryCode(self, value: Optional[str]): + if value is None: + if "TrayAccessoryCode" in self._dataset: + del self._dataset.TrayAccessoryCode + else: + self._dataset.TrayAccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/block_sequence_item_1.py b/tdwii_plus_examples/domain_model/block_sequence_item_1.py new file mode 100644 index 0000000..5a391eb --- /dev/null +++ b/tdwii_plus_examples/domain_model/block_sequence_item_1.py @@ -0,0 +1,194 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def BlockTrayID(self) -> Optional[str]: + if "BlockTrayID" in self._dataset: + return self._dataset.BlockTrayID + return None + + @BlockTrayID.setter + def BlockTrayID(self, value: Optional[str]): + if value is None: + if "BlockTrayID" in self._dataset: + del self._dataset.BlockTrayID + else: + self._dataset.BlockTrayID = value + + @property + def SourceToBlockTrayDistance(self) -> Optional[Decimal]: + if "SourceToBlockTrayDistance" in self._dataset: + return self._dataset.SourceToBlockTrayDistance + return None + + @SourceToBlockTrayDistance.setter + def SourceToBlockTrayDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToBlockTrayDistance" in self._dataset: + del self._dataset.SourceToBlockTrayDistance + else: + self._dataset.SourceToBlockTrayDistance = value + + @property + def BlockType(self) -> Optional[str]: + if "BlockType" in self._dataset: + return self._dataset.BlockType + return None + + @BlockType.setter + def BlockType(self, value: Optional[str]): + if value is None: + if "BlockType" in self._dataset: + del self._dataset.BlockType + else: + self._dataset.BlockType = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockDivergence(self) -> Optional[str]: + if "BlockDivergence" in self._dataset: + return self._dataset.BlockDivergence + return None + + @BlockDivergence.setter + def BlockDivergence(self, value: Optional[str]): + if value is None: + if "BlockDivergence" in self._dataset: + del self._dataset.BlockDivergence + else: + self._dataset.BlockDivergence = value + + @property + def BlockMountingPosition(self) -> Optional[str]: + if "BlockMountingPosition" in self._dataset: + return self._dataset.BlockMountingPosition + return None + + @BlockMountingPosition.setter + def BlockMountingPosition(self, value: Optional[str]): + if value is None: + if "BlockMountingPosition" in self._dataset: + del self._dataset.BlockMountingPosition + else: + self._dataset.BlockMountingPosition = value + + @property + def BlockNumber(self) -> Optional[int]: + if "BlockNumber" in self._dataset: + return self._dataset.BlockNumber + return None + + @BlockNumber.setter + def BlockNumber(self, value: Optional[int]): + if value is None: + if "BlockNumber" in self._dataset: + del self._dataset.BlockNumber + else: + self._dataset.BlockNumber = value + + @property + def BlockName(self) -> Optional[str]: + if "BlockName" in self._dataset: + return self._dataset.BlockName + return None + + @BlockName.setter + def BlockName(self, value: Optional[str]): + if value is None: + if "BlockName" in self._dataset: + del self._dataset.BlockName + else: + self._dataset.BlockName = value + + @property + def BlockThickness(self) -> Optional[Decimal]: + if "BlockThickness" in self._dataset: + return self._dataset.BlockThickness + return None + + @BlockThickness.setter + def BlockThickness(self, value: Optional[Decimal]): + if value is None: + if "BlockThickness" in self._dataset: + del self._dataset.BlockThickness + else: + self._dataset.BlockThickness = value + + @property + def BlockNumberOfPoints(self) -> Optional[int]: + if "BlockNumberOfPoints" in self._dataset: + return self._dataset.BlockNumberOfPoints + return None + + @BlockNumberOfPoints.setter + def BlockNumberOfPoints(self, value: Optional[int]): + if value is None: + if "BlockNumberOfPoints" in self._dataset: + del self._dataset.BlockNumberOfPoints + else: + self._dataset.BlockNumberOfPoints = value + + @property + def BlockData(self) -> Optional[List[Decimal]]: + if "BlockData" in self._dataset: + return self._dataset.BlockData + return None + + @BlockData.setter + def BlockData(self, value: Optional[List[Decimal]]): + if value is None: + if "BlockData" in self._dataset: + del self._dataset.BlockData + else: + self._dataset.BlockData = value + + @property + def TrayAccessoryCode(self) -> Optional[str]: + if "TrayAccessoryCode" in self._dataset: + return self._dataset.TrayAccessoryCode + return None + + @TrayAccessoryCode.setter + def TrayAccessoryCode(self, value: Optional[str]): + if value is None: + if "TrayAccessoryCode" in self._dataset: + del self._dataset.TrayAccessoryCode + else: + self._dataset.TrayAccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/block_slab_sequence_item.py b/tdwii_plus_examples/domain_model/block_slab_sequence_item.py new file mode 100644 index 0000000..5e419a4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/block_slab_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlockSlabSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BlockSlabNumber(self) -> Optional[int]: + if "BlockSlabNumber" in self._dataset: + return self._dataset.BlockSlabNumber + return None + + @BlockSlabNumber.setter + def BlockSlabNumber(self, value: Optional[int]): + if value is None: + if "BlockSlabNumber" in self._dataset: + del self._dataset.BlockSlabNumber + else: + self._dataset.BlockSlabNumber = value + + @property + def RadiationBeamBlockSlabThickness(self) -> Optional[float]: + if "RadiationBeamBlockSlabThickness" in self._dataset: + return self._dataset.RadiationBeamBlockSlabThickness + return None + + @RadiationBeamBlockSlabThickness.setter + def RadiationBeamBlockSlabThickness(self, value: Optional[float]): + if value is None: + if "RadiationBeamBlockSlabThickness" in self._dataset: + del self._dataset.RadiationBeamBlockSlabThickness + else: + self._dataset.RadiationBeamBlockSlabThickness = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value diff --git a/tdwii_plus_examples/domain_model/block_slab_sequence_item_1.py b/tdwii_plus_examples/domain_model/block_slab_sequence_item_1.py new file mode 100644 index 0000000..37b40ef --- /dev/null +++ b/tdwii_plus_examples/domain_model/block_slab_sequence_item_1.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BlockSlabSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockSlabThickness(self) -> Optional[Decimal]: + if "BlockSlabThickness" in self._dataset: + return self._dataset.BlockSlabThickness + return None + + @BlockSlabThickness.setter + def BlockSlabThickness(self, value: Optional[Decimal]): + if value is None: + if "BlockSlabThickness" in self._dataset: + del self._dataset.BlockSlabThickness + else: + self._dataset.BlockSlabThickness = value + + @property + def BlockSlabNumber(self) -> Optional[int]: + if "BlockSlabNumber" in self._dataset: + return self._dataset.BlockSlabNumber + return None + + @BlockSlabNumber.setter + def BlockSlabNumber(self, value: Optional[int]): + if value is None: + if "BlockSlabNumber" in self._dataset: + del self._dataset.BlockSlabNumber + else: + self._dataset.BlockSlabNumber = value diff --git a/tdwii_plus_examples/domain_model/body_position_waveform.py b/tdwii_plus_examples/domain_model/body_position_waveform.py new file mode 100644 index 0000000..360660d --- /dev/null +++ b/tdwii_plus_examples/domain_model/body_position_waveform.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class BodyPositionWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/bolus_definition_sequence_item.py b/tdwii_plus_examples/domain_model/bolus_definition_sequence_item.py new file mode 100644 index 0000000..5097a1a --- /dev/null +++ b/tdwii_plus_examples/domain_model/bolus_definition_sequence_item.py @@ -0,0 +1,380 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .conceptual_volume_sequence_item import ConceptualVolumeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class BolusDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._ConceptualVolumeSequence: List[ConceptualVolumeSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def ConceptualVolumeSequence(self) -> Optional[List[ConceptualVolumeSequenceItem]]: + if "ConceptualVolumeSequence" in self._dataset: + if len(self._ConceptualVolumeSequence) == len(self._dataset.ConceptualVolumeSequence): + return self._ConceptualVolumeSequence + else: + return [ConceptualVolumeSequenceItem(x) for x in self._dataset.ConceptualVolumeSequence] + return None + + @ConceptualVolumeSequence.setter + def ConceptualVolumeSequence(self, value: Optional[List[ConceptualVolumeSequenceItem]]): + if value is None: + self._ConceptualVolumeSequence = [] + if "ConceptualVolumeSequence" in self._dataset: + del self._dataset.ConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, ConceptualVolumeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeSequence must be a list of ConceptualVolumeSequenceItem objects") + else: + self._ConceptualVolumeSequence = value + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.clear() + self._dataset.ConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolume(self, item: ConceptualVolumeSequenceItem): + if not isinstance(item, ConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSequenceItem") + self._ConceptualVolumeSequence.append(item) + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.append(item.to_dataset()) + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/brachy_accessory_device_sequence_item.py b/tdwii_plus_examples/domain_model/brachy_accessory_device_sequence_item.py new file mode 100644 index 0000000..2eb8e83 --- /dev/null +++ b/tdwii_plus_examples/domain_model/brachy_accessory_device_sequence_item.py @@ -0,0 +1,124 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BrachyAccessoryDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def BrachyAccessoryDeviceNumber(self) -> Optional[int]: + if "BrachyAccessoryDeviceNumber" in self._dataset: + return self._dataset.BrachyAccessoryDeviceNumber + return None + + @BrachyAccessoryDeviceNumber.setter + def BrachyAccessoryDeviceNumber(self, value: Optional[int]): + if value is None: + if "BrachyAccessoryDeviceNumber" in self._dataset: + del self._dataset.BrachyAccessoryDeviceNumber + else: + self._dataset.BrachyAccessoryDeviceNumber = value + + @property + def BrachyAccessoryDeviceID(self) -> Optional[str]: + if "BrachyAccessoryDeviceID" in self._dataset: + return self._dataset.BrachyAccessoryDeviceID + return None + + @BrachyAccessoryDeviceID.setter + def BrachyAccessoryDeviceID(self, value: Optional[str]): + if value is None: + if "BrachyAccessoryDeviceID" in self._dataset: + del self._dataset.BrachyAccessoryDeviceID + else: + self._dataset.BrachyAccessoryDeviceID = value + + @property + def BrachyAccessoryDeviceType(self) -> Optional[str]: + if "BrachyAccessoryDeviceType" in self._dataset: + return self._dataset.BrachyAccessoryDeviceType + return None + + @BrachyAccessoryDeviceType.setter + def BrachyAccessoryDeviceType(self, value: Optional[str]): + if value is None: + if "BrachyAccessoryDeviceType" in self._dataset: + del self._dataset.BrachyAccessoryDeviceType + else: + self._dataset.BrachyAccessoryDeviceType = value + + @property + def BrachyAccessoryDeviceName(self) -> Optional[str]: + if "BrachyAccessoryDeviceName" in self._dataset: + return self._dataset.BrachyAccessoryDeviceName + return None + + @BrachyAccessoryDeviceName.setter + def BrachyAccessoryDeviceName(self, value: Optional[str]): + if value is None: + if "BrachyAccessoryDeviceName" in self._dataset: + del self._dataset.BrachyAccessoryDeviceName + else: + self._dataset.BrachyAccessoryDeviceName = value + + @property + def BrachyAccessoryDeviceNominalThickness(self) -> Optional[Decimal]: + if "BrachyAccessoryDeviceNominalThickness" in self._dataset: + return self._dataset.BrachyAccessoryDeviceNominalThickness + return None + + @BrachyAccessoryDeviceNominalThickness.setter + def BrachyAccessoryDeviceNominalThickness(self, value: Optional[Decimal]): + if value is None: + if "BrachyAccessoryDeviceNominalThickness" in self._dataset: + del self._dataset.BrachyAccessoryDeviceNominalThickness + else: + self._dataset.BrachyAccessoryDeviceNominalThickness = value + + @property + def BrachyAccessoryDeviceNominalTransmission(self) -> Optional[Decimal]: + if "BrachyAccessoryDeviceNominalTransmission" in self._dataset: + return self._dataset.BrachyAccessoryDeviceNominalTransmission + return None + + @BrachyAccessoryDeviceNominalTransmission.setter + def BrachyAccessoryDeviceNominalTransmission(self, value: Optional[Decimal]): + if value is None: + if "BrachyAccessoryDeviceNominalTransmission" in self._dataset: + del self._dataset.BrachyAccessoryDeviceNominalTransmission + else: + self._dataset.BrachyAccessoryDeviceNominalTransmission = value diff --git a/tdwii_plus_examples/domain_model/brachy_control_point_delivered_sequence_item.py b/tdwii_plus_examples/domain_model/brachy_control_point_delivered_sequence_item.py new file mode 100644 index 0000000..89de6b1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/brachy_control_point_delivered_sequence_item.py @@ -0,0 +1,103 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .override_sequence_item import OverrideSequenceItem + + +class BrachyControlPointDeliveredSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OverrideSequence: List[OverrideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TreatmentControlPointDate(self) -> Optional[str]: + if "TreatmentControlPointDate" in self._dataset: + return self._dataset.TreatmentControlPointDate + return None + + @TreatmentControlPointDate.setter + def TreatmentControlPointDate(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointDate" in self._dataset: + del self._dataset.TreatmentControlPointDate + else: + self._dataset.TreatmentControlPointDate = value + + @property + def TreatmentControlPointTime(self) -> Optional[str]: + if "TreatmentControlPointTime" in self._dataset: + return self._dataset.TreatmentControlPointTime + return None + + @TreatmentControlPointTime.setter + def TreatmentControlPointTime(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointTime" in self._dataset: + del self._dataset.TreatmentControlPointTime + else: + self._dataset.TreatmentControlPointTime = value + + @property + def OverrideSequence(self) -> Optional[List[OverrideSequenceItem]]: + if "OverrideSequence" in self._dataset: + if len(self._OverrideSequence) == len(self._dataset.OverrideSequence): + return self._OverrideSequence + else: + return [OverrideSequenceItem(x) for x in self._dataset.OverrideSequence] + return None + + @OverrideSequence.setter + def OverrideSequence(self, value: Optional[List[OverrideSequenceItem]]): + if value is None: + self._OverrideSequence = [] + if "OverrideSequence" in self._dataset: + del self._dataset.OverrideSequence + elif not isinstance(value, list) or not all(isinstance(item, OverrideSequenceItem) for item in value): + raise ValueError("OverrideSequence must be a list of OverrideSequenceItem objects") + else: + self._OverrideSequence = value + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.clear() + self._dataset.OverrideSequence.extend([item.to_dataset() for item in value]) + + def add_Override(self, item: OverrideSequenceItem): + if not isinstance(item, OverrideSequenceItem): + raise ValueError("Item must be an instance of OverrideSequenceItem") + self._OverrideSequence.append(item) + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.append(item.to_dataset()) + + @property + def ControlPointRelativePosition(self) -> Optional[Decimal]: + if "ControlPointRelativePosition" in self._dataset: + return self._dataset.ControlPointRelativePosition + return None + + @ControlPointRelativePosition.setter + def ControlPointRelativePosition(self, value: Optional[Decimal]): + if value is None: + if "ControlPointRelativePosition" in self._dataset: + del self._dataset.ControlPointRelativePosition + else: + self._dataset.ControlPointRelativePosition = value + + @property + def ReferencedControlPointIndex(self) -> Optional[int]: + if "ReferencedControlPointIndex" in self._dataset: + return self._dataset.ReferencedControlPointIndex + return None + + @ReferencedControlPointIndex.setter + def ReferencedControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedControlPointIndex" in self._dataset: + del self._dataset.ReferencedControlPointIndex + else: + self._dataset.ReferencedControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/brachy_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/brachy_control_point_sequence_item.py new file mode 100644 index 0000000..164bc0a --- /dev/null +++ b/tdwii_plus_examples/domain_model/brachy_control_point_sequence_item.py @@ -0,0 +1,125 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .brachy_referenced_dose_reference_sequence_item import ( + BrachyReferencedDoseReferenceSequenceItem, +) + + +class BrachyControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BrachyReferencedDoseReferenceSequence: List[BrachyReferencedDoseReferenceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ControlPointIndex(self) -> Optional[int]: + if "ControlPointIndex" in self._dataset: + return self._dataset.ControlPointIndex + return None + + @ControlPointIndex.setter + def ControlPointIndex(self, value: Optional[int]): + if value is None: + if "ControlPointIndex" in self._dataset: + del self._dataset.ControlPointIndex + else: + self._dataset.ControlPointIndex = value + + @property + def ControlPointRelativePosition(self) -> Optional[Decimal]: + if "ControlPointRelativePosition" in self._dataset: + return self._dataset.ControlPointRelativePosition + return None + + @ControlPointRelativePosition.setter + def ControlPointRelativePosition(self, value: Optional[Decimal]): + if value is None: + if "ControlPointRelativePosition" in self._dataset: + del self._dataset.ControlPointRelativePosition + else: + self._dataset.ControlPointRelativePosition = value + + @property + def ControlPoint3DPosition(self) -> Optional[List[Decimal]]: + if "ControlPoint3DPosition" in self._dataset: + return self._dataset.ControlPoint3DPosition + return None + + @ControlPoint3DPosition.setter + def ControlPoint3DPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "ControlPoint3DPosition" in self._dataset: + del self._dataset.ControlPoint3DPosition + else: + self._dataset.ControlPoint3DPosition = value + + @property + def CumulativeTimeWeight(self) -> Optional[Decimal]: + if "CumulativeTimeWeight" in self._dataset: + return self._dataset.CumulativeTimeWeight + return None + + @CumulativeTimeWeight.setter + def CumulativeTimeWeight(self, value: Optional[Decimal]): + if value is None: + if "CumulativeTimeWeight" in self._dataset: + del self._dataset.CumulativeTimeWeight + else: + self._dataset.CumulativeTimeWeight = value + + @property + def ControlPointOrientation(self) -> Optional[List[float]]: + if "ControlPointOrientation" in self._dataset: + return self._dataset.ControlPointOrientation + return None + + @ControlPointOrientation.setter + def ControlPointOrientation(self, value: Optional[List[float]]): + if value is None: + if "ControlPointOrientation" in self._dataset: + del self._dataset.ControlPointOrientation + else: + self._dataset.ControlPointOrientation = value + + @property + def BrachyReferencedDoseReferenceSequence(self) -> Optional[List[BrachyReferencedDoseReferenceSequenceItem]]: + if "BrachyReferencedDoseReferenceSequence" in self._dataset: + if len(self._BrachyReferencedDoseReferenceSequence) == len(self._dataset.BrachyReferencedDoseReferenceSequence): + return self._BrachyReferencedDoseReferenceSequence + else: + return [ + BrachyReferencedDoseReferenceSequenceItem(x) for x in self._dataset.BrachyReferencedDoseReferenceSequence + ] + return None + + @BrachyReferencedDoseReferenceSequence.setter + def BrachyReferencedDoseReferenceSequence(self, value: Optional[List[BrachyReferencedDoseReferenceSequenceItem]]): + if value is None: + self._BrachyReferencedDoseReferenceSequence = [] + if "BrachyReferencedDoseReferenceSequence" in self._dataset: + del self._dataset.BrachyReferencedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, BrachyReferencedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "BrachyReferencedDoseReferenceSequence must be a list of BrachyReferencedDoseReferenceSequenceItem objects" + ) + else: + self._BrachyReferencedDoseReferenceSequence = value + if "BrachyReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.BrachyReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.BrachyReferencedDoseReferenceSequence.clear() + self._dataset.BrachyReferencedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_BrachyReferencedDoseReference(self, item: BrachyReferencedDoseReferenceSequenceItem): + if not isinstance(item, BrachyReferencedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of BrachyReferencedDoseReferenceSequenceItem") + self._BrachyReferencedDoseReferenceSequence.append(item) + if "BrachyReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.BrachyReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.BrachyReferencedDoseReferenceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/brachy_pulse_control_point_delivered_sequence_item.py b/tdwii_plus_examples/domain_model/brachy_pulse_control_point_delivered_sequence_item.py new file mode 100644 index 0000000..b65fc6a --- /dev/null +++ b/tdwii_plus_examples/domain_model/brachy_pulse_control_point_delivered_sequence_item.py @@ -0,0 +1,103 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .override_sequence_item import OverrideSequenceItem + + +class BrachyPulseControlPointDeliveredSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OverrideSequence: List[OverrideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TreatmentControlPointDate(self) -> Optional[str]: + if "TreatmentControlPointDate" in self._dataset: + return self._dataset.TreatmentControlPointDate + return None + + @TreatmentControlPointDate.setter + def TreatmentControlPointDate(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointDate" in self._dataset: + del self._dataset.TreatmentControlPointDate + else: + self._dataset.TreatmentControlPointDate = value + + @property + def TreatmentControlPointTime(self) -> Optional[str]: + if "TreatmentControlPointTime" in self._dataset: + return self._dataset.TreatmentControlPointTime + return None + + @TreatmentControlPointTime.setter + def TreatmentControlPointTime(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointTime" in self._dataset: + del self._dataset.TreatmentControlPointTime + else: + self._dataset.TreatmentControlPointTime = value + + @property + def OverrideSequence(self) -> Optional[List[OverrideSequenceItem]]: + if "OverrideSequence" in self._dataset: + if len(self._OverrideSequence) == len(self._dataset.OverrideSequence): + return self._OverrideSequence + else: + return [OverrideSequenceItem(x) for x in self._dataset.OverrideSequence] + return None + + @OverrideSequence.setter + def OverrideSequence(self, value: Optional[List[OverrideSequenceItem]]): + if value is None: + self._OverrideSequence = [] + if "OverrideSequence" in self._dataset: + del self._dataset.OverrideSequence + elif not isinstance(value, list) or not all(isinstance(item, OverrideSequenceItem) for item in value): + raise ValueError("OverrideSequence must be a list of OverrideSequenceItem objects") + else: + self._OverrideSequence = value + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.clear() + self._dataset.OverrideSequence.extend([item.to_dataset() for item in value]) + + def add_Override(self, item: OverrideSequenceItem): + if not isinstance(item, OverrideSequenceItem): + raise ValueError("Item must be an instance of OverrideSequenceItem") + self._OverrideSequence.append(item) + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.append(item.to_dataset()) + + @property + def ControlPointRelativePosition(self) -> Optional[Decimal]: + if "ControlPointRelativePosition" in self._dataset: + return self._dataset.ControlPointRelativePosition + return None + + @ControlPointRelativePosition.setter + def ControlPointRelativePosition(self, value: Optional[Decimal]): + if value is None: + if "ControlPointRelativePosition" in self._dataset: + del self._dataset.ControlPointRelativePosition + else: + self._dataset.ControlPointRelativePosition = value + + @property + def ReferencedControlPointIndex(self) -> Optional[int]: + if "ReferencedControlPointIndex" in self._dataset: + return self._dataset.ReferencedControlPointIndex + return None + + @ReferencedControlPointIndex.setter + def ReferencedControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedControlPointIndex" in self._dataset: + del self._dataset.ReferencedControlPointIndex + else: + self._dataset.ReferencedControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/brachy_referenced_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/brachy_referenced_dose_reference_sequence_item.py new file mode 100644 index 0000000..a528eb7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/brachy_referenced_dose_reference_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class BrachyReferencedDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CumulativeDoseReferenceCoefficient(self) -> Optional[Decimal]: + if "CumulativeDoseReferenceCoefficient" in self._dataset: + return self._dataset.CumulativeDoseReferenceCoefficient + return None + + @CumulativeDoseReferenceCoefficient.setter + def CumulativeDoseReferenceCoefficient(self, value: Optional[Decimal]): + if value is None: + if "CumulativeDoseReferenceCoefficient" in self._dataset: + del self._dataset.CumulativeDoseReferenceCoefficient + else: + self._dataset.CumulativeDoseReferenceCoefficient = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/brachy_task_sequence_item.py b/tdwii_plus_examples/domain_model/brachy_task_sequence_item.py new file mode 100644 index 0000000..2466c81 --- /dev/null +++ b/tdwii_plus_examples/domain_model/brachy_task_sequence_item.py @@ -0,0 +1,143 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .channel_delivery_continuation_sequence_item import ( + ChannelDeliveryContinuationSequenceItem, +) +from .channel_delivery_order_sequence_item import ChannelDeliveryOrderSequenceItem + + +class BrachyTaskSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ChannelDeliveryOrderSequence: List[ChannelDeliveryOrderSequenceItem] = [] + self._ChannelDeliveryContinuationSequence: List[ChannelDeliveryContinuationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContinuationStartTotalReferenceAirKerma(self) -> Optional[Decimal]: + if "ContinuationStartTotalReferenceAirKerma" in self._dataset: + return self._dataset.ContinuationStartTotalReferenceAirKerma + return None + + @ContinuationStartTotalReferenceAirKerma.setter + def ContinuationStartTotalReferenceAirKerma(self, value: Optional[Decimal]): + if value is None: + if "ContinuationStartTotalReferenceAirKerma" in self._dataset: + del self._dataset.ContinuationStartTotalReferenceAirKerma + else: + self._dataset.ContinuationStartTotalReferenceAirKerma = value + + @property + def ContinuationEndTotalReferenceAirKerma(self) -> Optional[Decimal]: + if "ContinuationEndTotalReferenceAirKerma" in self._dataset: + return self._dataset.ContinuationEndTotalReferenceAirKerma + return None + + @ContinuationEndTotalReferenceAirKerma.setter + def ContinuationEndTotalReferenceAirKerma(self, value: Optional[Decimal]): + if value is None: + if "ContinuationEndTotalReferenceAirKerma" in self._dataset: + del self._dataset.ContinuationEndTotalReferenceAirKerma + else: + self._dataset.ContinuationEndTotalReferenceAirKerma = value + + @property + def ChannelDeliveryOrderSequence(self) -> Optional[List[ChannelDeliveryOrderSequenceItem]]: + if "ChannelDeliveryOrderSequence" in self._dataset: + if len(self._ChannelDeliveryOrderSequence) == len(self._dataset.ChannelDeliveryOrderSequence): + return self._ChannelDeliveryOrderSequence + else: + return [ChannelDeliveryOrderSequenceItem(x) for x in self._dataset.ChannelDeliveryOrderSequence] + return None + + @ChannelDeliveryOrderSequence.setter + def ChannelDeliveryOrderSequence(self, value: Optional[List[ChannelDeliveryOrderSequenceItem]]): + if value is None: + self._ChannelDeliveryOrderSequence = [] + if "ChannelDeliveryOrderSequence" in self._dataset: + del self._dataset.ChannelDeliveryOrderSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelDeliveryOrderSequenceItem) for item in value): + raise ValueError("ChannelDeliveryOrderSequence must be a list of ChannelDeliveryOrderSequenceItem objects") + else: + self._ChannelDeliveryOrderSequence = value + if "ChannelDeliveryOrderSequence" not in self._dataset: + self._dataset.ChannelDeliveryOrderSequence = pydicom.Sequence() + self._dataset.ChannelDeliveryOrderSequence.clear() + self._dataset.ChannelDeliveryOrderSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDeliveryOrder(self, item: ChannelDeliveryOrderSequenceItem): + if not isinstance(item, ChannelDeliveryOrderSequenceItem): + raise ValueError("Item must be an instance of ChannelDeliveryOrderSequenceItem") + self._ChannelDeliveryOrderSequence.append(item) + if "ChannelDeliveryOrderSequence" not in self._dataset: + self._dataset.ChannelDeliveryOrderSequence = pydicom.Sequence() + self._dataset.ChannelDeliveryOrderSequence.append(item.to_dataset()) + + @property + def ChannelDeliveryContinuationSequence(self) -> Optional[List[ChannelDeliveryContinuationSequenceItem]]: + if "ChannelDeliveryContinuationSequence" in self._dataset: + if len(self._ChannelDeliveryContinuationSequence) == len(self._dataset.ChannelDeliveryContinuationSequence): + return self._ChannelDeliveryContinuationSequence + else: + return [ChannelDeliveryContinuationSequenceItem(x) for x in self._dataset.ChannelDeliveryContinuationSequence] + return None + + @ChannelDeliveryContinuationSequence.setter + def ChannelDeliveryContinuationSequence(self, value: Optional[List[ChannelDeliveryContinuationSequenceItem]]): + if value is None: + self._ChannelDeliveryContinuationSequence = [] + if "ChannelDeliveryContinuationSequence" in self._dataset: + del self._dataset.ChannelDeliveryContinuationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ChannelDeliveryContinuationSequenceItem) for item in value + ): + raise ValueError( + "ChannelDeliveryContinuationSequence must be a list of ChannelDeliveryContinuationSequenceItem objects" + ) + else: + self._ChannelDeliveryContinuationSequence = value + if "ChannelDeliveryContinuationSequence" not in self._dataset: + self._dataset.ChannelDeliveryContinuationSequence = pydicom.Sequence() + self._dataset.ChannelDeliveryContinuationSequence.clear() + self._dataset.ChannelDeliveryContinuationSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDeliveryContinuation(self, item: ChannelDeliveryContinuationSequenceItem): + if not isinstance(item, ChannelDeliveryContinuationSequenceItem): + raise ValueError("Item must be an instance of ChannelDeliveryContinuationSequenceItem") + self._ChannelDeliveryContinuationSequence.append(item) + if "ChannelDeliveryContinuationSequence" not in self._dataset: + self._dataset.ChannelDeliveryContinuationSequence = pydicom.Sequence() + self._dataset.ChannelDeliveryContinuationSequence.append(item.to_dataset()) + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def ReferencedBrachyApplicationSetupNumber(self) -> Optional[int]: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + return self._dataset.ReferencedBrachyApplicationSetupNumber + return None + + @ReferencedBrachyApplicationSetupNumber.setter + def ReferencedBrachyApplicationSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupNumber + else: + self._dataset.ReferencedBrachyApplicationSetupNumber = value diff --git a/tdwii_plus_examples/domain_model/breast_projection_x_ray_image.py b/tdwii_plus_examples/domain_model/breast_projection_x_ray_image.py new file mode 100644 index 0000000..63fb8ea --- /dev/null +++ b/tdwii_plus_examples/domain_model/breast_projection_x_ray_image.py @@ -0,0 +1,6409 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class BreastProjectionXRayImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PartialViewCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def PresentationIntentType(self) -> Optional[str]: + if "PresentationIntentType" in self._dataset: + return self._dataset.PresentationIntentType + return None + + @PresentationIntentType.setter + def PresentationIntentType(self, value: Optional[str]): + if value is None: + if "PresentationIntentType" in self._dataset: + del self._dataset.PresentationIntentType + else: + self._dataset.PresentationIntentType = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def CompressionForce(self) -> Optional[Decimal]: + if "CompressionForce" in self._dataset: + return self._dataset.CompressionForce + return None + + @CompressionForce.setter + def CompressionForce(self, value: Optional[Decimal]): + if value is None: + if "CompressionForce" in self._dataset: + del self._dataset.CompressionForce + else: + self._dataset.CompressionForce = value + + @property + def CompressionPressure(self) -> Optional[Decimal]: + if "CompressionPressure" in self._dataset: + return self._dataset.CompressionPressure + return None + + @CompressionPressure.setter + def CompressionPressure(self, value: Optional[Decimal]): + if value is None: + if "CompressionPressure" in self._dataset: + del self._dataset.CompressionPressure + else: + self._dataset.CompressionPressure = value + + @property + def PaddleDescription(self) -> Optional[str]: + if "PaddleDescription" in self._dataset: + return self._dataset.PaddleDescription + return None + + @PaddleDescription.setter + def PaddleDescription(self, value: Optional[str]): + if value is None: + if "PaddleDescription" in self._dataset: + del self._dataset.PaddleDescription + else: + self._dataset.PaddleDescription = value + + @property + def CompressionContactArea(self) -> Optional[Decimal]: + if "CompressionContactArea" in self._dataset: + return self._dataset.CompressionContactArea + return None + + @CompressionContactArea.setter + def CompressionContactArea(self, value: Optional[Decimal]): + if value is None: + if "CompressionContactArea" in self._dataset: + del self._dataset.CompressionContactArea + else: + self._dataset.CompressionContactArea = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def PositionerMotion(self) -> Optional[str]: + if "PositionerMotion" in self._dataset: + return self._dataset.PositionerMotion + return None + + @PositionerMotion.setter + def PositionerMotion(self, value: Optional[str]): + if value is None: + if "PositionerMotion" in self._dataset: + del self._dataset.PositionerMotion + else: + self._dataset.PositionerMotion = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def ExposureControlMode(self) -> Optional[str]: + if "ExposureControlMode" in self._dataset: + return self._dataset.ExposureControlMode + return None + + @ExposureControlMode.setter + def ExposureControlMode(self, value: Optional[str]): + if value is None: + if "ExposureControlMode" in self._dataset: + del self._dataset.ExposureControlMode + else: + self._dataset.ExposureControlMode = value + + @property + def ExposureControlModeDescription(self) -> Optional[str]: + if "ExposureControlModeDescription" in self._dataset: + return self._dataset.ExposureControlModeDescription + return None + + @ExposureControlModeDescription.setter + def ExposureControlModeDescription(self, value: Optional[str]): + if value is None: + if "ExposureControlModeDescription" in self._dataset: + del self._dataset.ExposureControlModeDescription + else: + self._dataset.ExposureControlModeDescription = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value + + @property + def TypeOfDetectorMotion(self) -> Optional[str]: + if "TypeOfDetectorMotion" in self._dataset: + return self._dataset.TypeOfDetectorMotion + return None + + @TypeOfDetectorMotion.setter + def TypeOfDetectorMotion(self, value: Optional[str]): + if value is None: + if "TypeOfDetectorMotion" in self._dataset: + del self._dataset.TypeOfDetectorMotion + else: + self._dataset.TypeOfDetectorMotion = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def BreastImplantPresent(self) -> Optional[str]: + if "BreastImplantPresent" in self._dataset: + return self._dataset.BreastImplantPresent + return None + + @BreastImplantPresent.setter + def BreastImplantPresent(self, value: Optional[str]): + if value is None: + if "BreastImplantPresent" in self._dataset: + del self._dataset.BreastImplantPresent + else: + self._dataset.BreastImplantPresent = value + + @property + def PartialView(self) -> Optional[str]: + if "PartialView" in self._dataset: + return self._dataset.PartialView + return None + + @PartialView.setter + def PartialView(self, value: Optional[str]): + if value is None: + if "PartialView" in self._dataset: + del self._dataset.PartialView + else: + self._dataset.PartialView = value + + @property + def PartialViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PartialViewCodeSequence" in self._dataset: + if len(self._PartialViewCodeSequence) == len(self._dataset.PartialViewCodeSequence): + return self._PartialViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PartialViewCodeSequence] + return None + + @PartialViewCodeSequence.setter + def PartialViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PartialViewCodeSequence = [] + if "PartialViewCodeSequence" in self._dataset: + del self._dataset.PartialViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PartialViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PartialViewCodeSequence = value + if "PartialViewCodeSequence" not in self._dataset: + self._dataset.PartialViewCodeSequence = pydicom.Sequence() + self._dataset.PartialViewCodeSequence.clear() + self._dataset.PartialViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PartialViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PartialViewCodeSequence.append(item) + if "PartialViewCodeSequence" not in self._dataset: + self._dataset.PartialViewCodeSequence = pydicom.Sequence() + self._dataset.PartialViewCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/breast_tomosynthesis_image.py b/tdwii_plus_examples/domain_model/breast_tomosynthesis_image.py new file mode 100644 index 0000000..11c277e --- /dev/null +++ b/tdwii_plus_examples/domain_model/breast_tomosynthesis_image.py @@ -0,0 +1,5945 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .contributing_sources_sequence_item import ContributingSourcesSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_irradiation_event_sequence_item import SourceIrradiationEventSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .x_ray3_d_acquisition_sequence_item import XRay3DAcquisitionSequenceItem +from .x_ray3_d_reconstruction_sequence_item import XRay3DReconstructionSequenceItem + + +class BreastTomosynthesisImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._XRay3DReconstructionSequence: List[XRay3DReconstructionSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._ContributingSourcesSequence: List[ContributingSourcesSequenceItem] = [] + self._XRay3DAcquisitionSequence: List[XRay3DAcquisitionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._SourceIrradiationEventSequence: List[SourceIrradiationEventSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PartialViewCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def XRay3DReconstructionSequence(self) -> Optional[List[XRay3DReconstructionSequenceItem]]: + if "XRay3DReconstructionSequence" in self._dataset: + if len(self._XRay3DReconstructionSequence) == len(self._dataset.XRay3DReconstructionSequence): + return self._XRay3DReconstructionSequence + else: + return [XRay3DReconstructionSequenceItem(x) for x in self._dataset.XRay3DReconstructionSequence] + return None + + @XRay3DReconstructionSequence.setter + def XRay3DReconstructionSequence(self, value: Optional[List[XRay3DReconstructionSequenceItem]]): + if value is None: + self._XRay3DReconstructionSequence = [] + if "XRay3DReconstructionSequence" in self._dataset: + del self._dataset.XRay3DReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DReconstructionSequenceItem) for item in value): + raise ValueError("XRay3DReconstructionSequence must be a list of XRay3DReconstructionSequenceItem objects") + else: + self._XRay3DReconstructionSequence = value + if "XRay3DReconstructionSequence" not in self._dataset: + self._dataset.XRay3DReconstructionSequence = pydicom.Sequence() + self._dataset.XRay3DReconstructionSequence.clear() + self._dataset.XRay3DReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DReconstruction(self, item: XRay3DReconstructionSequenceItem): + if not isinstance(item, XRay3DReconstructionSequenceItem): + raise ValueError("Item must be an instance of XRay3DReconstructionSequenceItem") + self._XRay3DReconstructionSequence.append(item) + if "XRay3DReconstructionSequence" not in self._dataset: + self._dataset.XRay3DReconstructionSequence = pydicom.Sequence() + self._dataset.XRay3DReconstructionSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageToEquipmentMappingMatrix(self) -> Optional[List[Decimal]]: + if "ImageToEquipmentMappingMatrix" in self._dataset: + return self._dataset.ImageToEquipmentMappingMatrix + return None + + @ImageToEquipmentMappingMatrix.setter + def ImageToEquipmentMappingMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageToEquipmentMappingMatrix" in self._dataset: + del self._dataset.ImageToEquipmentMappingMatrix + else: + self._dataset.ImageToEquipmentMappingMatrix = value + + @property + def EquipmentCoordinateSystemIdentification(self) -> Optional[str]: + if "EquipmentCoordinateSystemIdentification" in self._dataset: + return self._dataset.EquipmentCoordinateSystemIdentification + return None + + @EquipmentCoordinateSystemIdentification.setter + def EquipmentCoordinateSystemIdentification(self, value: Optional[str]): + if value is None: + if "EquipmentCoordinateSystemIdentification" in self._dataset: + del self._dataset.EquipmentCoordinateSystemIdentification + else: + self._dataset.EquipmentCoordinateSystemIdentification = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def ContributingSourcesSequence(self) -> Optional[List[ContributingSourcesSequenceItem]]: + if "ContributingSourcesSequence" in self._dataset: + if len(self._ContributingSourcesSequence) == len(self._dataset.ContributingSourcesSequence): + return self._ContributingSourcesSequence + else: + return [ContributingSourcesSequenceItem(x) for x in self._dataset.ContributingSourcesSequence] + return None + + @ContributingSourcesSequence.setter + def ContributingSourcesSequence(self, value: Optional[List[ContributingSourcesSequenceItem]]): + if value is None: + self._ContributingSourcesSequence = [] + if "ContributingSourcesSequence" in self._dataset: + del self._dataset.ContributingSourcesSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingSourcesSequenceItem) for item in value): + raise ValueError("ContributingSourcesSequence must be a list of ContributingSourcesSequenceItem objects") + else: + self._ContributingSourcesSequence = value + if "ContributingSourcesSequence" not in self._dataset: + self._dataset.ContributingSourcesSequence = pydicom.Sequence() + self._dataset.ContributingSourcesSequence.clear() + self._dataset.ContributingSourcesSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingSources(self, item: ContributingSourcesSequenceItem): + if not isinstance(item, ContributingSourcesSequenceItem): + raise ValueError("Item must be an instance of ContributingSourcesSequenceItem") + self._ContributingSourcesSequence.append(item) + if "ContributingSourcesSequence" not in self._dataset: + self._dataset.ContributingSourcesSequence = pydicom.Sequence() + self._dataset.ContributingSourcesSequence.append(item.to_dataset()) + + @property + def XRay3DAcquisitionSequence(self) -> Optional[List[XRay3DAcquisitionSequenceItem]]: + if "XRay3DAcquisitionSequence" in self._dataset: + if len(self._XRay3DAcquisitionSequence) == len(self._dataset.XRay3DAcquisitionSequence): + return self._XRay3DAcquisitionSequence + else: + return [XRay3DAcquisitionSequenceItem(x) for x in self._dataset.XRay3DAcquisitionSequence] + return None + + @XRay3DAcquisitionSequence.setter + def XRay3DAcquisitionSequence(self, value: Optional[List[XRay3DAcquisitionSequenceItem]]): + if value is None: + self._XRay3DAcquisitionSequence = [] + if "XRay3DAcquisitionSequence" in self._dataset: + del self._dataset.XRay3DAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DAcquisitionSequenceItem) for item in value): + raise ValueError("XRay3DAcquisitionSequence must be a list of XRay3DAcquisitionSequenceItem objects") + else: + self._XRay3DAcquisitionSequence = value + if "XRay3DAcquisitionSequence" not in self._dataset: + self._dataset.XRay3DAcquisitionSequence = pydicom.Sequence() + self._dataset.XRay3DAcquisitionSequence.clear() + self._dataset.XRay3DAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DAcquisition(self, item: XRay3DAcquisitionSequenceItem): + if not isinstance(item, XRay3DAcquisitionSequenceItem): + raise ValueError("Item must be an instance of XRay3DAcquisitionSequenceItem") + self._XRay3DAcquisitionSequence.append(item) + if "XRay3DAcquisitionSequence" not in self._dataset: + self._dataset.XRay3DAcquisitionSequence = pydicom.Sequence() + self._dataset.XRay3DAcquisitionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def SourceIrradiationEventSequence(self) -> Optional[List[SourceIrradiationEventSequenceItem]]: + if "SourceIrradiationEventSequence" in self._dataset: + if len(self._SourceIrradiationEventSequence) == len(self._dataset.SourceIrradiationEventSequence): + return self._SourceIrradiationEventSequence + else: + return [SourceIrradiationEventSequenceItem(x) for x in self._dataset.SourceIrradiationEventSequence] + return None + + @SourceIrradiationEventSequence.setter + def SourceIrradiationEventSequence(self, value: Optional[List[SourceIrradiationEventSequenceItem]]): + if value is None: + self._SourceIrradiationEventSequence = [] + if "SourceIrradiationEventSequence" in self._dataset: + del self._dataset.SourceIrradiationEventSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceIrradiationEventSequenceItem) for item in value): + raise ValueError("SourceIrradiationEventSequence must be a list of SourceIrradiationEventSequenceItem objects") + else: + self._SourceIrradiationEventSequence = value + if "SourceIrradiationEventSequence" not in self._dataset: + self._dataset.SourceIrradiationEventSequence = pydicom.Sequence() + self._dataset.SourceIrradiationEventSequence.clear() + self._dataset.SourceIrradiationEventSequence.extend([item.to_dataset() for item in value]) + + def add_SourceIrradiationEvent(self, item: SourceIrradiationEventSequenceItem): + if not isinstance(item, SourceIrradiationEventSequenceItem): + raise ValueError("Item must be an instance of SourceIrradiationEventSequenceItem") + self._SourceIrradiationEventSequence.append(item) + if "SourceIrradiationEventSequence" not in self._dataset: + self._dataset.SourceIrradiationEventSequence = pydicom.Sequence() + self._dataset.SourceIrradiationEventSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def BreastImplantPresent(self) -> Optional[str]: + if "BreastImplantPresent" in self._dataset: + return self._dataset.BreastImplantPresent + return None + + @BreastImplantPresent.setter + def BreastImplantPresent(self, value: Optional[str]): + if value is None: + if "BreastImplantPresent" in self._dataset: + del self._dataset.BreastImplantPresent + else: + self._dataset.BreastImplantPresent = value + + @property + def PartialView(self) -> Optional[str]: + if "PartialView" in self._dataset: + return self._dataset.PartialView + return None + + @PartialView.setter + def PartialView(self, value: Optional[str]): + if value is None: + if "PartialView" in self._dataset: + del self._dataset.PartialView + else: + self._dataset.PartialView = value + + @property + def PartialViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PartialViewCodeSequence" in self._dataset: + if len(self._PartialViewCodeSequence) == len(self._dataset.PartialViewCodeSequence): + return self._PartialViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PartialViewCodeSequence] + return None + + @PartialViewCodeSequence.setter + def PartialViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PartialViewCodeSequence = [] + if "PartialViewCodeSequence" in self._dataset: + del self._dataset.PartialViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PartialViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PartialViewCodeSequence = value + if "PartialViewCodeSequence" not in self._dataset: + self._dataset.PartialViewCodeSequence = pydicom.Sequence() + self._dataset.PartialViewCodeSequence.clear() + self._dataset.PartialViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PartialViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PartialViewCodeSequence.append(item) + if "PartialViewCodeSequence" not in self._dataset: + self._dataset.PartialViewCodeSequence = pydicom.Sequence() + self._dataset.PartialViewCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/breed_registration_sequence_item.py b/tdwii_plus_examples/domain_model/breed_registration_sequence_item.py new file mode 100644 index 0000000..79d7f5a --- /dev/null +++ b/tdwii_plus_examples/domain_model/breed_registration_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class BreedRegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BreedRegistryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BreedRegistrationNumber(self) -> Optional[str]: + if "BreedRegistrationNumber" in self._dataset: + return self._dataset.BreedRegistrationNumber + return None + + @BreedRegistrationNumber.setter + def BreedRegistrationNumber(self, value: Optional[str]): + if value is None: + if "BreedRegistrationNumber" in self._dataset: + del self._dataset.BreedRegistrationNumber + else: + self._dataset.BreedRegistrationNumber = value + + @property + def BreedRegistryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "BreedRegistryCodeSequence" in self._dataset: + if len(self._BreedRegistryCodeSequence) == len(self._dataset.BreedRegistryCodeSequence): + return self._BreedRegistryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.BreedRegistryCodeSequence] + return None + + @BreedRegistryCodeSequence.setter + def BreedRegistryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._BreedRegistryCodeSequence = [] + if "BreedRegistryCodeSequence" in self._dataset: + del self._dataset.BreedRegistryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("BreedRegistryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._BreedRegistryCodeSequence = value + if "BreedRegistryCodeSequence" not in self._dataset: + self._dataset.BreedRegistryCodeSequence = pydicom.Sequence() + self._dataset.BreedRegistryCodeSequence.clear() + self._dataset.BreedRegistryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._BreedRegistryCodeSequence.append(item) + if "BreedRegistryCodeSequence" not in self._dataset: + self._dataset.BreedRegistryCodeSequence = pydicom.Sequence() + self._dataset.BreedRegistryCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/c_arm_photon_electron_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/c_arm_photon_electron_control_point_sequence_item.py new file mode 100644 index 0000000..44b20c9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/c_arm_photon_electron_control_point_sequence_item.py @@ -0,0 +1,336 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_area_limit_sequence_item import BeamAreaLimitSequenceItem +from .delivery_rate_unit_sequence_item import DeliveryRateUnitSequenceItem +from .rt_beam_limiting_device_opening_sequence_item import ( + RTBeamLimitingDeviceOpeningSequenceItem, +) +from .wedge_position_sequence_item import WedgePositionSequenceItem + + +class CArmPhotonElectronControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._WedgePositionSequence: List[WedgePositionSequenceItem] = [] + self._DeliveryRateUnitSequence: List[DeliveryRateUnitSequenceItem] = [] + self._RTBeamLimitingDeviceOpeningSequence: List[RTBeamLimitingDeviceOpeningSequenceItem] = [] + self._BeamAreaLimitSequence: List[BeamAreaLimitSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WedgePositionSequence(self) -> Optional[List[WedgePositionSequenceItem]]: + if "WedgePositionSequence" in self._dataset: + if len(self._WedgePositionSequence) == len(self._dataset.WedgePositionSequence): + return self._WedgePositionSequence + else: + return [WedgePositionSequenceItem(x) for x in self._dataset.WedgePositionSequence] + return None + + @WedgePositionSequence.setter + def WedgePositionSequence(self, value: Optional[List[WedgePositionSequenceItem]]): + if value is None: + self._WedgePositionSequence = [] + if "WedgePositionSequence" in self._dataset: + del self._dataset.WedgePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, WedgePositionSequenceItem) for item in value): + raise ValueError("WedgePositionSequence must be a list of WedgePositionSequenceItem objects") + else: + self._WedgePositionSequence = value + if "WedgePositionSequence" not in self._dataset: + self._dataset.WedgePositionSequence = pydicom.Sequence() + self._dataset.WedgePositionSequence.clear() + self._dataset.WedgePositionSequence.extend([item.to_dataset() for item in value]) + + def add_WedgePosition(self, item: WedgePositionSequenceItem): + if not isinstance(item, WedgePositionSequenceItem): + raise ValueError("Item must be an instance of WedgePositionSequenceItem") + self._WedgePositionSequence.append(item) + if "WedgePositionSequence" not in self._dataset: + self._dataset.WedgePositionSequence = pydicom.Sequence() + self._dataset.WedgePositionSequence.append(item.to_dataset()) + + @property + def SourceToExternalContourDistance(self) -> Optional[float]: + if "SourceToExternalContourDistance" in self._dataset: + return self._dataset.SourceToExternalContourDistance + return None + + @SourceToExternalContourDistance.setter + def SourceToExternalContourDistance(self, value: Optional[float]): + if value is None: + if "SourceToExternalContourDistance" in self._dataset: + del self._dataset.SourceToExternalContourDistance + else: + self._dataset.SourceToExternalContourDistance = value + + @property + def RTControlPointIndex(self) -> Optional[int]: + if "RTControlPointIndex" in self._dataset: + return self._dataset.RTControlPointIndex + return None + + @RTControlPointIndex.setter + def RTControlPointIndex(self, value: Optional[int]): + if value is None: + if "RTControlPointIndex" in self._dataset: + del self._dataset.RTControlPointIndex + else: + self._dataset.RTControlPointIndex = value + + @property + def ReferencedRadiationGenerationModeIndex(self) -> Optional[int]: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + return self._dataset.ReferencedRadiationGenerationModeIndex + return None + + @ReferencedRadiationGenerationModeIndex.setter + def ReferencedRadiationGenerationModeIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + del self._dataset.ReferencedRadiationGenerationModeIndex + else: + self._dataset.ReferencedRadiationGenerationModeIndex = value + + @property + def ReferencedTreatmentPositionIndex(self) -> Optional[int]: + if "ReferencedTreatmentPositionIndex" in self._dataset: + return self._dataset.ReferencedTreatmentPositionIndex + return None + + @ReferencedTreatmentPositionIndex.setter + def ReferencedTreatmentPositionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedTreatmentPositionIndex" in self._dataset: + del self._dataset.ReferencedTreatmentPositionIndex + else: + self._dataset.ReferencedTreatmentPositionIndex = value + + @property + def SourceToPatientSurfaceDistance(self) -> Optional[float]: + if "SourceToPatientSurfaceDistance" in self._dataset: + return self._dataset.SourceToPatientSurfaceDistance + return None + + @SourceToPatientSurfaceDistance.setter + def SourceToPatientSurfaceDistance(self, value: Optional[float]): + if value is None: + if "SourceToPatientSurfaceDistance" in self._dataset: + del self._dataset.SourceToPatientSurfaceDistance + else: + self._dataset.SourceToPatientSurfaceDistance = value + + @property + def CumulativeMeterset(self) -> Optional[float]: + if "CumulativeMeterset" in self._dataset: + return self._dataset.CumulativeMeterset + return None + + @CumulativeMeterset.setter + def CumulativeMeterset(self, value: Optional[float]): + if value is None: + if "CumulativeMeterset" in self._dataset: + del self._dataset.CumulativeMeterset + else: + self._dataset.CumulativeMeterset = value + + @property + def DeliveryRate(self) -> Optional[float]: + if "DeliveryRate" in self._dataset: + return self._dataset.DeliveryRate + return None + + @DeliveryRate.setter + def DeliveryRate(self, value: Optional[float]): + if value is None: + if "DeliveryRate" in self._dataset: + del self._dataset.DeliveryRate + else: + self._dataset.DeliveryRate = value + + @property + def DeliveryRateUnitSequence(self) -> Optional[List[DeliveryRateUnitSequenceItem]]: + if "DeliveryRateUnitSequence" in self._dataset: + if len(self._DeliveryRateUnitSequence) == len(self._dataset.DeliveryRateUnitSequence): + return self._DeliveryRateUnitSequence + else: + return [DeliveryRateUnitSequenceItem(x) for x in self._dataset.DeliveryRateUnitSequence] + return None + + @DeliveryRateUnitSequence.setter + def DeliveryRateUnitSequence(self, value: Optional[List[DeliveryRateUnitSequenceItem]]): + if value is None: + self._DeliveryRateUnitSequence = [] + if "DeliveryRateUnitSequence" in self._dataset: + del self._dataset.DeliveryRateUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, DeliveryRateUnitSequenceItem) for item in value): + raise ValueError("DeliveryRateUnitSequence must be a list of DeliveryRateUnitSequenceItem objects") + else: + self._DeliveryRateUnitSequence = value + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.clear() + self._dataset.DeliveryRateUnitSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryRateUnit(self, item: DeliveryRateUnitSequenceItem): + if not isinstance(item, DeliveryRateUnitSequenceItem): + raise ValueError("Item must be an instance of DeliveryRateUnitSequenceItem") + self._DeliveryRateUnitSequence.append(item) + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.append(item.to_dataset()) + + @property + def NumberOfWedgePositions(self) -> Optional[int]: + if "NumberOfWedgePositions" in self._dataset: + return self._dataset.NumberOfWedgePositions + return None + + @NumberOfWedgePositions.setter + def NumberOfWedgePositions(self, value: Optional[int]): + if value is None: + if "NumberOfWedgePositions" in self._dataset: + del self._dataset.NumberOfWedgePositions + else: + self._dataset.NumberOfWedgePositions = value + + @property + def RTBeamLimitingDeviceOpeningSequence(self) -> Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]: + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceOpeningSequence) == len(self._dataset.RTBeamLimitingDeviceOpeningSequence): + return self._RTBeamLimitingDeviceOpeningSequence + else: + return [RTBeamLimitingDeviceOpeningSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceOpeningSequence] + return None + + @RTBeamLimitingDeviceOpeningSequence.setter + def RTBeamLimitingDeviceOpeningSequence(self, value: Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceOpeningSequence = [] + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceOpeningSequence must be a list of RTBeamLimitingDeviceOpeningSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceOpeningSequence = value + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.clear() + self._dataset.RTBeamLimitingDeviceOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceOpening(self, item: RTBeamLimitingDeviceOpeningSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceOpeningSequenceItem") + self._RTBeamLimitingDeviceOpeningSequence.append(item) + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDeviceOpenings(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDeviceOpenings" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDeviceOpenings + return None + + @NumberOfRTBeamLimitingDeviceOpenings.setter + def NumberOfRTBeamLimitingDeviceOpenings(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDeviceOpenings" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDeviceOpenings + else: + self._dataset.NumberOfRTBeamLimitingDeviceOpenings = value + + @property + def RTBeamLimitingDeviceAngle(self) -> Optional[float]: + if "RTBeamLimitingDeviceAngle" in self._dataset: + return self._dataset.RTBeamLimitingDeviceAngle + return None + + @RTBeamLimitingDeviceAngle.setter + def RTBeamLimitingDeviceAngle(self, value: Optional[float]): + if value is None: + if "RTBeamLimitingDeviceAngle" in self._dataset: + del self._dataset.RTBeamLimitingDeviceAngle + else: + self._dataset.RTBeamLimitingDeviceAngle = value + + @property + def SourceRollAngle(self) -> Optional[float]: + if "SourceRollAngle" in self._dataset: + return self._dataset.SourceRollAngle + return None + + @SourceRollAngle.setter + def SourceRollAngle(self, value: Optional[float]): + if value is None: + if "SourceRollAngle" in self._dataset: + del self._dataset.SourceRollAngle + else: + self._dataset.SourceRollAngle = value + + @property + def BeamAreaLimitSequence(self) -> Optional[List[BeamAreaLimitSequenceItem]]: + if "BeamAreaLimitSequence" in self._dataset: + if len(self._BeamAreaLimitSequence) == len(self._dataset.BeamAreaLimitSequence): + return self._BeamAreaLimitSequence + else: + return [BeamAreaLimitSequenceItem(x) for x in self._dataset.BeamAreaLimitSequence] + return None + + @BeamAreaLimitSequence.setter + def BeamAreaLimitSequence(self, value: Optional[List[BeamAreaLimitSequenceItem]]): + if value is None: + self._BeamAreaLimitSequence = [] + if "BeamAreaLimitSequence" in self._dataset: + del self._dataset.BeamAreaLimitSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamAreaLimitSequenceItem) for item in value): + raise ValueError("BeamAreaLimitSequence must be a list of BeamAreaLimitSequenceItem objects") + else: + self._BeamAreaLimitSequence = value + if "BeamAreaLimitSequence" not in self._dataset: + self._dataset.BeamAreaLimitSequence = pydicom.Sequence() + self._dataset.BeamAreaLimitSequence.clear() + self._dataset.BeamAreaLimitSequence.extend([item.to_dataset() for item in value]) + + def add_BeamAreaLimit(self, item: BeamAreaLimitSequenceItem): + if not isinstance(item, BeamAreaLimitSequenceItem): + raise ValueError("Item must be an instance of BeamAreaLimitSequenceItem") + self._BeamAreaLimitSequence.append(item) + if "BeamAreaLimitSequence" not in self._dataset: + self._dataset.BeamAreaLimitSequence = pydicom.Sequence() + self._dataset.BeamAreaLimitSequence.append(item.to_dataset()) + + @property + def RecordedRTControlPointDateTime(self) -> Optional[str]: + if "RecordedRTControlPointDateTime" in self._dataset: + return self._dataset.RecordedRTControlPointDateTime + return None + + @RecordedRTControlPointDateTime.setter + def RecordedRTControlPointDateTime(self, value: Optional[str]): + if value is None: + if "RecordedRTControlPointDateTime" in self._dataset: + del self._dataset.RecordedRTControlPointDateTime + else: + self._dataset.RecordedRTControlPointDateTime = value + + @property + def ReferencedRadiationRTControlPointIndex(self) -> Optional[int]: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + return self._dataset.ReferencedRadiationRTControlPointIndex + return None + + @ReferencedRadiationRTControlPointIndex.setter + def ReferencedRadiationRTControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + del self._dataset.ReferencedRadiationRTControlPointIndex + else: + self._dataset.ReferencedRadiationRTControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation.py b/tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation.py new file mode 100644 index 0000000..0f9372c --- /dev/null +++ b/tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation.py @@ -0,0 +1,5559 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .block_definition_sequence_item import BlockDefinitionSequenceItem +from .bolus_definition_sequence_item import BolusDefinitionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .c_arm_photon_electron_control_point_sequence_item import ( + CArmPhotonElectronControlPointSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .compensator_definition_sequence_item import CompensatorDefinitionSequenceItem +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .general_accessory_definition_sequence_item import ( + GeneralAccessoryDefinitionSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_accessory_holder_definition_sequence_item import ( + RTAccessoryHolderDefinitionSequenceItem, +) +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .udi_sequence_item import UDISequenceItem +from .wedge_definition_sequence_item import WedgeDefinitionSequenceItem + + +class CArmPhotonElectronRadiation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RTAccessoryHolderDefinitionSequence: List[RTAccessoryHolderDefinitionSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._WedgeDefinitionSequence: List[WedgeDefinitionSequenceItem] = [] + self._CompensatorDefinitionSequence: List[CompensatorDefinitionSequenceItem] = [] + self._BlockDefinitionSequence: List[BlockDefinitionSequenceItem] = [] + self._GeneralAccessoryDefinitionSequence: List[GeneralAccessoryDefinitionSequenceItem] = [] + self._BolusDefinitionSequence: List[BolusDefinitionSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._CArmPhotonElectronControlPointSequence: List[CArmPhotonElectronControlPointSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def NumberOfWedges(self) -> Optional[int]: + if "NumberOfWedges" in self._dataset: + return self._dataset.NumberOfWedges + return None + + @NumberOfWedges.setter + def NumberOfWedges(self, value: Optional[int]): + if value is None: + if "NumberOfWedges" in self._dataset: + del self._dataset.NumberOfWedges + else: + self._dataset.NumberOfWedges = value + + @property + def NumberOfCompensators(self) -> Optional[int]: + if "NumberOfCompensators" in self._dataset: + return self._dataset.NumberOfCompensators + return None + + @NumberOfCompensators.setter + def NumberOfCompensators(self, value: Optional[int]): + if value is None: + if "NumberOfCompensators" in self._dataset: + del self._dataset.NumberOfCompensators + else: + self._dataset.NumberOfCompensators = value + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def RTAccessoryHolderDefinitionSequence(self) -> Optional[List[RTAccessoryHolderDefinitionSequenceItem]]: + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + if len(self._RTAccessoryHolderDefinitionSequence) == len(self._dataset.RTAccessoryHolderDefinitionSequence): + return self._RTAccessoryHolderDefinitionSequence + else: + return [RTAccessoryHolderDefinitionSequenceItem(x) for x in self._dataset.RTAccessoryHolderDefinitionSequence] + return None + + @RTAccessoryHolderDefinitionSequence.setter + def RTAccessoryHolderDefinitionSequence(self, value: Optional[List[RTAccessoryHolderDefinitionSequenceItem]]): + if value is None: + self._RTAccessoryHolderDefinitionSequence = [] + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + del self._dataset.RTAccessoryHolderDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTAccessoryHolderDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTAccessoryHolderDefinitionSequence must be a list of RTAccessoryHolderDefinitionSequenceItem objects" + ) + else: + self._RTAccessoryHolderDefinitionSequence = value + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.clear() + self._dataset.RTAccessoryHolderDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAccessoryHolderDefinition(self, item: RTAccessoryHolderDefinitionSequenceItem): + if not isinstance(item, RTAccessoryHolderDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTAccessoryHolderDefinitionSequenceItem") + self._RTAccessoryHolderDefinitionSequence.append(item) + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.append(item.to_dataset()) + + @property + def RadiationSourceAxisDistance(self) -> Optional[float]: + if "RadiationSourceAxisDistance" in self._dataset: + return self._dataset.RadiationSourceAxisDistance + return None + + @RadiationSourceAxisDistance.setter + def RadiationSourceAxisDistance(self, value: Optional[float]): + if value is None: + if "RadiationSourceAxisDistance" in self._dataset: + del self._dataset.RadiationSourceAxisDistance + else: + self._dataset.RadiationSourceAxisDistance = value + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def WedgeDefinitionSequence(self) -> Optional[List[WedgeDefinitionSequenceItem]]: + if "WedgeDefinitionSequence" in self._dataset: + if len(self._WedgeDefinitionSequence) == len(self._dataset.WedgeDefinitionSequence): + return self._WedgeDefinitionSequence + else: + return [WedgeDefinitionSequenceItem(x) for x in self._dataset.WedgeDefinitionSequence] + return None + + @WedgeDefinitionSequence.setter + def WedgeDefinitionSequence(self, value: Optional[List[WedgeDefinitionSequenceItem]]): + if value is None: + self._WedgeDefinitionSequence = [] + if "WedgeDefinitionSequence" in self._dataset: + del self._dataset.WedgeDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, WedgeDefinitionSequenceItem) for item in value): + raise ValueError("WedgeDefinitionSequence must be a list of WedgeDefinitionSequenceItem objects") + else: + self._WedgeDefinitionSequence = value + if "WedgeDefinitionSequence" not in self._dataset: + self._dataset.WedgeDefinitionSequence = pydicom.Sequence() + self._dataset.WedgeDefinitionSequence.clear() + self._dataset.WedgeDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_WedgeDefinition(self, item: WedgeDefinitionSequenceItem): + if not isinstance(item, WedgeDefinitionSequenceItem): + raise ValueError("Item must be an instance of WedgeDefinitionSequenceItem") + self._WedgeDefinitionSequence.append(item) + if "WedgeDefinitionSequence" not in self._dataset: + self._dataset.WedgeDefinitionSequence = pydicom.Sequence() + self._dataset.WedgeDefinitionSequence.append(item.to_dataset()) + + @property + def CompensatorDefinitionSequence(self) -> Optional[List[CompensatorDefinitionSequenceItem]]: + if "CompensatorDefinitionSequence" in self._dataset: + if len(self._CompensatorDefinitionSequence) == len(self._dataset.CompensatorDefinitionSequence): + return self._CompensatorDefinitionSequence + else: + return [CompensatorDefinitionSequenceItem(x) for x in self._dataset.CompensatorDefinitionSequence] + return None + + @CompensatorDefinitionSequence.setter + def CompensatorDefinitionSequence(self, value: Optional[List[CompensatorDefinitionSequenceItem]]): + if value is None: + self._CompensatorDefinitionSequence = [] + if "CompensatorDefinitionSequence" in self._dataset: + del self._dataset.CompensatorDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, CompensatorDefinitionSequenceItem) for item in value): + raise ValueError("CompensatorDefinitionSequence must be a list of CompensatorDefinitionSequenceItem objects") + else: + self._CompensatorDefinitionSequence = value + if "CompensatorDefinitionSequence" not in self._dataset: + self._dataset.CompensatorDefinitionSequence = pydicom.Sequence() + self._dataset.CompensatorDefinitionSequence.clear() + self._dataset.CompensatorDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_CompensatorDefinition(self, item: CompensatorDefinitionSequenceItem): + if not isinstance(item, CompensatorDefinitionSequenceItem): + raise ValueError("Item must be an instance of CompensatorDefinitionSequenceItem") + self._CompensatorDefinitionSequence.append(item) + if "CompensatorDefinitionSequence" not in self._dataset: + self._dataset.CompensatorDefinitionSequence = pydicom.Sequence() + self._dataset.CompensatorDefinitionSequence.append(item.to_dataset()) + + @property + def BlockDefinitionSequence(self) -> Optional[List[BlockDefinitionSequenceItem]]: + if "BlockDefinitionSequence" in self._dataset: + if len(self._BlockDefinitionSequence) == len(self._dataset.BlockDefinitionSequence): + return self._BlockDefinitionSequence + else: + return [BlockDefinitionSequenceItem(x) for x in self._dataset.BlockDefinitionSequence] + return None + + @BlockDefinitionSequence.setter + def BlockDefinitionSequence(self, value: Optional[List[BlockDefinitionSequenceItem]]): + if value is None: + self._BlockDefinitionSequence = [] + if "BlockDefinitionSequence" in self._dataset: + del self._dataset.BlockDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockDefinitionSequenceItem) for item in value): + raise ValueError("BlockDefinitionSequence must be a list of BlockDefinitionSequenceItem objects") + else: + self._BlockDefinitionSequence = value + if "BlockDefinitionSequence" not in self._dataset: + self._dataset.BlockDefinitionSequence = pydicom.Sequence() + self._dataset.BlockDefinitionSequence.clear() + self._dataset.BlockDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_BlockDefinition(self, item: BlockDefinitionSequenceItem): + if not isinstance(item, BlockDefinitionSequenceItem): + raise ValueError("Item must be an instance of BlockDefinitionSequenceItem") + self._BlockDefinitionSequence.append(item) + if "BlockDefinitionSequence" not in self._dataset: + self._dataset.BlockDefinitionSequence = pydicom.Sequence() + self._dataset.BlockDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTAccessoryHolders(self) -> Optional[int]: + if "NumberOfRTAccessoryHolders" in self._dataset: + return self._dataset.NumberOfRTAccessoryHolders + return None + + @NumberOfRTAccessoryHolders.setter + def NumberOfRTAccessoryHolders(self, value: Optional[int]): + if value is None: + if "NumberOfRTAccessoryHolders" in self._dataset: + del self._dataset.NumberOfRTAccessoryHolders + else: + self._dataset.NumberOfRTAccessoryHolders = value + + @property + def GeneralAccessoryDefinitionSequence(self) -> Optional[List[GeneralAccessoryDefinitionSequenceItem]]: + if "GeneralAccessoryDefinitionSequence" in self._dataset: + if len(self._GeneralAccessoryDefinitionSequence) == len(self._dataset.GeneralAccessoryDefinitionSequence): + return self._GeneralAccessoryDefinitionSequence + else: + return [GeneralAccessoryDefinitionSequenceItem(x) for x in self._dataset.GeneralAccessoryDefinitionSequence] + return None + + @GeneralAccessoryDefinitionSequence.setter + def GeneralAccessoryDefinitionSequence(self, value: Optional[List[GeneralAccessoryDefinitionSequenceItem]]): + if value is None: + self._GeneralAccessoryDefinitionSequence = [] + if "GeneralAccessoryDefinitionSequence" in self._dataset: + del self._dataset.GeneralAccessoryDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, GeneralAccessoryDefinitionSequenceItem) for item in value + ): + raise ValueError( + "GeneralAccessoryDefinitionSequence must be a list of GeneralAccessoryDefinitionSequenceItem objects" + ) + else: + self._GeneralAccessoryDefinitionSequence = value + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.clear() + self._dataset.GeneralAccessoryDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessoryDefinition(self, item: GeneralAccessoryDefinitionSequenceItem): + if not isinstance(item, GeneralAccessoryDefinitionSequenceItem): + raise ValueError("Item must be an instance of GeneralAccessoryDefinitionSequenceItem") + self._GeneralAccessoryDefinitionSequence.append(item) + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfGeneralAccessories(self) -> Optional[int]: + if "NumberOfGeneralAccessories" in self._dataset: + return self._dataset.NumberOfGeneralAccessories + return None + + @NumberOfGeneralAccessories.setter + def NumberOfGeneralAccessories(self, value: Optional[int]): + if value is None: + if "NumberOfGeneralAccessories" in self._dataset: + del self._dataset.NumberOfGeneralAccessories + else: + self._dataset.NumberOfGeneralAccessories = value + + @property + def BolusDefinitionSequence(self) -> Optional[List[BolusDefinitionSequenceItem]]: + if "BolusDefinitionSequence" in self._dataset: + if len(self._BolusDefinitionSequence) == len(self._dataset.BolusDefinitionSequence): + return self._BolusDefinitionSequence + else: + return [BolusDefinitionSequenceItem(x) for x in self._dataset.BolusDefinitionSequence] + return None + + @BolusDefinitionSequence.setter + def BolusDefinitionSequence(self, value: Optional[List[BolusDefinitionSequenceItem]]): + if value is None: + self._BolusDefinitionSequence = [] + if "BolusDefinitionSequence" in self._dataset: + del self._dataset.BolusDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, BolusDefinitionSequenceItem) for item in value): + raise ValueError("BolusDefinitionSequence must be a list of BolusDefinitionSequenceItem objects") + else: + self._BolusDefinitionSequence = value + if "BolusDefinitionSequence" not in self._dataset: + self._dataset.BolusDefinitionSequence = pydicom.Sequence() + self._dataset.BolusDefinitionSequence.clear() + self._dataset.BolusDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_BolusDefinition(self, item: BolusDefinitionSequenceItem): + if not isinstance(item, BolusDefinitionSequenceItem): + raise ValueError("Item must be an instance of BolusDefinitionSequenceItem") + self._BolusDefinitionSequence.append(item) + if "BolusDefinitionSequence" not in self._dataset: + self._dataset.BolusDefinitionSequence = pydicom.Sequence() + self._dataset.BolusDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfBoluses(self) -> Optional[int]: + if "NumberOfBoluses" in self._dataset: + return self._dataset.NumberOfBoluses + return None + + @NumberOfBoluses.setter + def NumberOfBoluses(self, value: Optional[int]): + if value is None: + if "NumberOfBoluses" in self._dataset: + del self._dataset.NumberOfBoluses + else: + self._dataset.NumberOfBoluses = value + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def CArmPhotonElectronControlPointSequence(self) -> Optional[List[CArmPhotonElectronControlPointSequenceItem]]: + if "CArmPhotonElectronControlPointSequence" in self._dataset: + if len(self._CArmPhotonElectronControlPointSequence) == len(self._dataset.CArmPhotonElectronControlPointSequence): + return self._CArmPhotonElectronControlPointSequence + else: + return [ + CArmPhotonElectronControlPointSequenceItem(x) for x in self._dataset.CArmPhotonElectronControlPointSequence + ] + return None + + @CArmPhotonElectronControlPointSequence.setter + def CArmPhotonElectronControlPointSequence(self, value: Optional[List[CArmPhotonElectronControlPointSequenceItem]]): + if value is None: + self._CArmPhotonElectronControlPointSequence = [] + if "CArmPhotonElectronControlPointSequence" in self._dataset: + del self._dataset.CArmPhotonElectronControlPointSequence + elif not isinstance(value, list) or not all( + isinstance(item, CArmPhotonElectronControlPointSequenceItem) for item in value + ): + raise ValueError( + "CArmPhotonElectronControlPointSequence must be a list of CArmPhotonElectronControlPointSequenceItem objects" + ) + else: + self._CArmPhotonElectronControlPointSequence = value + if "CArmPhotonElectronControlPointSequence" not in self._dataset: + self._dataset.CArmPhotonElectronControlPointSequence = pydicom.Sequence() + self._dataset.CArmPhotonElectronControlPointSequence.clear() + self._dataset.CArmPhotonElectronControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_CArmPhotonElectronControlPoint(self, item: CArmPhotonElectronControlPointSequenceItem): + if not isinstance(item, CArmPhotonElectronControlPointSequenceItem): + raise ValueError("Item must be an instance of CArmPhotonElectronControlPointSequenceItem") + self._CArmPhotonElectronControlPointSequence.append(item) + if "CArmPhotonElectronControlPointSequence" not in self._dataset: + self._dataset.CArmPhotonElectronControlPointSequence = pydicom.Sequence() + self._dataset.CArmPhotonElectronControlPointSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def TreatmentTimeLimit(self) -> Optional[float]: + if "TreatmentTimeLimit" in self._dataset: + return self._dataset.TreatmentTimeLimit + return None + + @TreatmentTimeLimit.setter + def TreatmentTimeLimit(self, value: Optional[float]): + if value is None: + if "TreatmentTimeLimit" in self._dataset: + del self._dataset.TreatmentTimeLimit + else: + self._dataset.TreatmentTimeLimit = value + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLabel(self) -> Optional[str]: + if "UserContentLabel" in self._dataset: + return self._dataset.UserContentLabel + return None + + @UserContentLabel.setter + def UserContentLabel(self, value: Optional[str]): + if value is None: + if "UserContentLabel" in self._dataset: + del self._dataset.UserContentLabel + else: + self._dataset.UserContentLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation_record.py b/tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation_record.py new file mode 100644 index 0000000..de9a311 --- /dev/null +++ b/tdwii_plus_examples/domain_model/c_arm_photon_electron_radiation_record.py @@ -0,0 +1,6001 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .additional_parameter_recording_instance_sequence_item import ( + AdditionalParameterRecordingInstanceSequenceItem, +) +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .block_definition_sequence_item import BlockDefinitionSequenceItem +from .bolus_definition_sequence_item import BolusDefinitionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .c_arm_photon_electron_control_point_sequence_item import ( + CArmPhotonElectronControlPointSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .compensator_definition_sequence_item import CompensatorDefinitionSequenceItem +from .confirmation_sequence_item import ConfirmationSequenceItem +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .general_accessory_definition_sequence_item import ( + GeneralAccessoryDefinitionSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .interlock_sequence_item import InterlockSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_instance_sequence_item import ReferencedRTInstanceSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_accessory_holder_definition_sequence_item import ( + RTAccessoryHolderDefinitionSequenceItem, +) +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .treatment_tolerance_violation_sequence_item import ( + TreatmentToleranceViolationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .wedge_definition_sequence_item import WedgeDefinitionSequenceItem + + +class CArmPhotonElectronRadiationRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RTAccessoryHolderDefinitionSequence: List[RTAccessoryHolderDefinitionSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._WedgeDefinitionSequence: List[WedgeDefinitionSequenceItem] = [] + self._CompensatorDefinitionSequence: List[CompensatorDefinitionSequenceItem] = [] + self._BlockDefinitionSequence: List[BlockDefinitionSequenceItem] = [] + self._GeneralAccessoryDefinitionSequence: List[GeneralAccessoryDefinitionSequenceItem] = [] + self._BolusDefinitionSequence: List[BolusDefinitionSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._CArmPhotonElectronControlPointSequence: List[CArmPhotonElectronControlPointSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._ReferencedRTInstanceSequence: List[ReferencedRTInstanceSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentToleranceViolationSequence: List[TreatmentToleranceViolationSequenceItem] = [] + self._ConfirmationSequence: List[ConfirmationSequenceItem] = [] + self._InterlockSequence: List[InterlockSequenceItem] = [] + self._AdditionalParameterRecordingInstanceSequence: List[AdditionalParameterRecordingInstanceSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def NumberOfWedges(self) -> Optional[int]: + if "NumberOfWedges" in self._dataset: + return self._dataset.NumberOfWedges + return None + + @NumberOfWedges.setter + def NumberOfWedges(self, value: Optional[int]): + if value is None: + if "NumberOfWedges" in self._dataset: + del self._dataset.NumberOfWedges + else: + self._dataset.NumberOfWedges = value + + @property + def NumberOfCompensators(self) -> Optional[int]: + if "NumberOfCompensators" in self._dataset: + return self._dataset.NumberOfCompensators + return None + + @NumberOfCompensators.setter + def NumberOfCompensators(self, value: Optional[int]): + if value is None: + if "NumberOfCompensators" in self._dataset: + del self._dataset.NumberOfCompensators + else: + self._dataset.NumberOfCompensators = value + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def RTAccessoryHolderDefinitionSequence(self) -> Optional[List[RTAccessoryHolderDefinitionSequenceItem]]: + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + if len(self._RTAccessoryHolderDefinitionSequence) == len(self._dataset.RTAccessoryHolderDefinitionSequence): + return self._RTAccessoryHolderDefinitionSequence + else: + return [RTAccessoryHolderDefinitionSequenceItem(x) for x in self._dataset.RTAccessoryHolderDefinitionSequence] + return None + + @RTAccessoryHolderDefinitionSequence.setter + def RTAccessoryHolderDefinitionSequence(self, value: Optional[List[RTAccessoryHolderDefinitionSequenceItem]]): + if value is None: + self._RTAccessoryHolderDefinitionSequence = [] + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + del self._dataset.RTAccessoryHolderDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTAccessoryHolderDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTAccessoryHolderDefinitionSequence must be a list of RTAccessoryHolderDefinitionSequenceItem objects" + ) + else: + self._RTAccessoryHolderDefinitionSequence = value + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.clear() + self._dataset.RTAccessoryHolderDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAccessoryHolderDefinition(self, item: RTAccessoryHolderDefinitionSequenceItem): + if not isinstance(item, RTAccessoryHolderDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTAccessoryHolderDefinitionSequenceItem") + self._RTAccessoryHolderDefinitionSequence.append(item) + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.append(item.to_dataset()) + + @property + def RadiationSourceAxisDistance(self) -> Optional[float]: + if "RadiationSourceAxisDistance" in self._dataset: + return self._dataset.RadiationSourceAxisDistance + return None + + @RadiationSourceAxisDistance.setter + def RadiationSourceAxisDistance(self, value: Optional[float]): + if value is None: + if "RadiationSourceAxisDistance" in self._dataset: + del self._dataset.RadiationSourceAxisDistance + else: + self._dataset.RadiationSourceAxisDistance = value + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def WedgeDefinitionSequence(self) -> Optional[List[WedgeDefinitionSequenceItem]]: + if "WedgeDefinitionSequence" in self._dataset: + if len(self._WedgeDefinitionSequence) == len(self._dataset.WedgeDefinitionSequence): + return self._WedgeDefinitionSequence + else: + return [WedgeDefinitionSequenceItem(x) for x in self._dataset.WedgeDefinitionSequence] + return None + + @WedgeDefinitionSequence.setter + def WedgeDefinitionSequence(self, value: Optional[List[WedgeDefinitionSequenceItem]]): + if value is None: + self._WedgeDefinitionSequence = [] + if "WedgeDefinitionSequence" in self._dataset: + del self._dataset.WedgeDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, WedgeDefinitionSequenceItem) for item in value): + raise ValueError("WedgeDefinitionSequence must be a list of WedgeDefinitionSequenceItem objects") + else: + self._WedgeDefinitionSequence = value + if "WedgeDefinitionSequence" not in self._dataset: + self._dataset.WedgeDefinitionSequence = pydicom.Sequence() + self._dataset.WedgeDefinitionSequence.clear() + self._dataset.WedgeDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_WedgeDefinition(self, item: WedgeDefinitionSequenceItem): + if not isinstance(item, WedgeDefinitionSequenceItem): + raise ValueError("Item must be an instance of WedgeDefinitionSequenceItem") + self._WedgeDefinitionSequence.append(item) + if "WedgeDefinitionSequence" not in self._dataset: + self._dataset.WedgeDefinitionSequence = pydicom.Sequence() + self._dataset.WedgeDefinitionSequence.append(item.to_dataset()) + + @property + def CompensatorDefinitionSequence(self) -> Optional[List[CompensatorDefinitionSequenceItem]]: + if "CompensatorDefinitionSequence" in self._dataset: + if len(self._CompensatorDefinitionSequence) == len(self._dataset.CompensatorDefinitionSequence): + return self._CompensatorDefinitionSequence + else: + return [CompensatorDefinitionSequenceItem(x) for x in self._dataset.CompensatorDefinitionSequence] + return None + + @CompensatorDefinitionSequence.setter + def CompensatorDefinitionSequence(self, value: Optional[List[CompensatorDefinitionSequenceItem]]): + if value is None: + self._CompensatorDefinitionSequence = [] + if "CompensatorDefinitionSequence" in self._dataset: + del self._dataset.CompensatorDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, CompensatorDefinitionSequenceItem) for item in value): + raise ValueError("CompensatorDefinitionSequence must be a list of CompensatorDefinitionSequenceItem objects") + else: + self._CompensatorDefinitionSequence = value + if "CompensatorDefinitionSequence" not in self._dataset: + self._dataset.CompensatorDefinitionSequence = pydicom.Sequence() + self._dataset.CompensatorDefinitionSequence.clear() + self._dataset.CompensatorDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_CompensatorDefinition(self, item: CompensatorDefinitionSequenceItem): + if not isinstance(item, CompensatorDefinitionSequenceItem): + raise ValueError("Item must be an instance of CompensatorDefinitionSequenceItem") + self._CompensatorDefinitionSequence.append(item) + if "CompensatorDefinitionSequence" not in self._dataset: + self._dataset.CompensatorDefinitionSequence = pydicom.Sequence() + self._dataset.CompensatorDefinitionSequence.append(item.to_dataset()) + + @property + def BlockDefinitionSequence(self) -> Optional[List[BlockDefinitionSequenceItem]]: + if "BlockDefinitionSequence" in self._dataset: + if len(self._BlockDefinitionSequence) == len(self._dataset.BlockDefinitionSequence): + return self._BlockDefinitionSequence + else: + return [BlockDefinitionSequenceItem(x) for x in self._dataset.BlockDefinitionSequence] + return None + + @BlockDefinitionSequence.setter + def BlockDefinitionSequence(self, value: Optional[List[BlockDefinitionSequenceItem]]): + if value is None: + self._BlockDefinitionSequence = [] + if "BlockDefinitionSequence" in self._dataset: + del self._dataset.BlockDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockDefinitionSequenceItem) for item in value): + raise ValueError("BlockDefinitionSequence must be a list of BlockDefinitionSequenceItem objects") + else: + self._BlockDefinitionSequence = value + if "BlockDefinitionSequence" not in self._dataset: + self._dataset.BlockDefinitionSequence = pydicom.Sequence() + self._dataset.BlockDefinitionSequence.clear() + self._dataset.BlockDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_BlockDefinition(self, item: BlockDefinitionSequenceItem): + if not isinstance(item, BlockDefinitionSequenceItem): + raise ValueError("Item must be an instance of BlockDefinitionSequenceItem") + self._BlockDefinitionSequence.append(item) + if "BlockDefinitionSequence" not in self._dataset: + self._dataset.BlockDefinitionSequence = pydicom.Sequence() + self._dataset.BlockDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTAccessoryHolders(self) -> Optional[int]: + if "NumberOfRTAccessoryHolders" in self._dataset: + return self._dataset.NumberOfRTAccessoryHolders + return None + + @NumberOfRTAccessoryHolders.setter + def NumberOfRTAccessoryHolders(self, value: Optional[int]): + if value is None: + if "NumberOfRTAccessoryHolders" in self._dataset: + del self._dataset.NumberOfRTAccessoryHolders + else: + self._dataset.NumberOfRTAccessoryHolders = value + + @property + def GeneralAccessoryDefinitionSequence(self) -> Optional[List[GeneralAccessoryDefinitionSequenceItem]]: + if "GeneralAccessoryDefinitionSequence" in self._dataset: + if len(self._GeneralAccessoryDefinitionSequence) == len(self._dataset.GeneralAccessoryDefinitionSequence): + return self._GeneralAccessoryDefinitionSequence + else: + return [GeneralAccessoryDefinitionSequenceItem(x) for x in self._dataset.GeneralAccessoryDefinitionSequence] + return None + + @GeneralAccessoryDefinitionSequence.setter + def GeneralAccessoryDefinitionSequence(self, value: Optional[List[GeneralAccessoryDefinitionSequenceItem]]): + if value is None: + self._GeneralAccessoryDefinitionSequence = [] + if "GeneralAccessoryDefinitionSequence" in self._dataset: + del self._dataset.GeneralAccessoryDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, GeneralAccessoryDefinitionSequenceItem) for item in value + ): + raise ValueError( + "GeneralAccessoryDefinitionSequence must be a list of GeneralAccessoryDefinitionSequenceItem objects" + ) + else: + self._GeneralAccessoryDefinitionSequence = value + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.clear() + self._dataset.GeneralAccessoryDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessoryDefinition(self, item: GeneralAccessoryDefinitionSequenceItem): + if not isinstance(item, GeneralAccessoryDefinitionSequenceItem): + raise ValueError("Item must be an instance of GeneralAccessoryDefinitionSequenceItem") + self._GeneralAccessoryDefinitionSequence.append(item) + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfGeneralAccessories(self) -> Optional[int]: + if "NumberOfGeneralAccessories" in self._dataset: + return self._dataset.NumberOfGeneralAccessories + return None + + @NumberOfGeneralAccessories.setter + def NumberOfGeneralAccessories(self, value: Optional[int]): + if value is None: + if "NumberOfGeneralAccessories" in self._dataset: + del self._dataset.NumberOfGeneralAccessories + else: + self._dataset.NumberOfGeneralAccessories = value + + @property + def BolusDefinitionSequence(self) -> Optional[List[BolusDefinitionSequenceItem]]: + if "BolusDefinitionSequence" in self._dataset: + if len(self._BolusDefinitionSequence) == len(self._dataset.BolusDefinitionSequence): + return self._BolusDefinitionSequence + else: + return [BolusDefinitionSequenceItem(x) for x in self._dataset.BolusDefinitionSequence] + return None + + @BolusDefinitionSequence.setter + def BolusDefinitionSequence(self, value: Optional[List[BolusDefinitionSequenceItem]]): + if value is None: + self._BolusDefinitionSequence = [] + if "BolusDefinitionSequence" in self._dataset: + del self._dataset.BolusDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, BolusDefinitionSequenceItem) for item in value): + raise ValueError("BolusDefinitionSequence must be a list of BolusDefinitionSequenceItem objects") + else: + self._BolusDefinitionSequence = value + if "BolusDefinitionSequence" not in self._dataset: + self._dataset.BolusDefinitionSequence = pydicom.Sequence() + self._dataset.BolusDefinitionSequence.clear() + self._dataset.BolusDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_BolusDefinition(self, item: BolusDefinitionSequenceItem): + if not isinstance(item, BolusDefinitionSequenceItem): + raise ValueError("Item must be an instance of BolusDefinitionSequenceItem") + self._BolusDefinitionSequence.append(item) + if "BolusDefinitionSequence" not in self._dataset: + self._dataset.BolusDefinitionSequence = pydicom.Sequence() + self._dataset.BolusDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfBoluses(self) -> Optional[int]: + if "NumberOfBoluses" in self._dataset: + return self._dataset.NumberOfBoluses + return None + + @NumberOfBoluses.setter + def NumberOfBoluses(self, value: Optional[int]): + if value is None: + if "NumberOfBoluses" in self._dataset: + del self._dataset.NumberOfBoluses + else: + self._dataset.NumberOfBoluses = value + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def CArmPhotonElectronControlPointSequence(self) -> Optional[List[CArmPhotonElectronControlPointSequenceItem]]: + if "CArmPhotonElectronControlPointSequence" in self._dataset: + if len(self._CArmPhotonElectronControlPointSequence) == len(self._dataset.CArmPhotonElectronControlPointSequence): + return self._CArmPhotonElectronControlPointSequence + else: + return [ + CArmPhotonElectronControlPointSequenceItem(x) for x in self._dataset.CArmPhotonElectronControlPointSequence + ] + return None + + @CArmPhotonElectronControlPointSequence.setter + def CArmPhotonElectronControlPointSequence(self, value: Optional[List[CArmPhotonElectronControlPointSequenceItem]]): + if value is None: + self._CArmPhotonElectronControlPointSequence = [] + if "CArmPhotonElectronControlPointSequence" in self._dataset: + del self._dataset.CArmPhotonElectronControlPointSequence + elif not isinstance(value, list) or not all( + isinstance(item, CArmPhotonElectronControlPointSequenceItem) for item in value + ): + raise ValueError( + "CArmPhotonElectronControlPointSequence must be a list of CArmPhotonElectronControlPointSequenceItem objects" + ) + else: + self._CArmPhotonElectronControlPointSequence = value + if "CArmPhotonElectronControlPointSequence" not in self._dataset: + self._dataset.CArmPhotonElectronControlPointSequence = pydicom.Sequence() + self._dataset.CArmPhotonElectronControlPointSequence.clear() + self._dataset.CArmPhotonElectronControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_CArmPhotonElectronControlPoint(self, item: CArmPhotonElectronControlPointSequenceItem): + if not isinstance(item, CArmPhotonElectronControlPointSequenceItem): + raise ValueError("Item must be an instance of CArmPhotonElectronControlPointSequenceItem") + self._CArmPhotonElectronControlPointSequence.append(item) + if "CArmPhotonElectronControlPointSequence" not in self._dataset: + self._dataset.CArmPhotonElectronControlPointSequence = pydicom.Sequence() + self._dataset.CArmPhotonElectronControlPointSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTInstanceSequence(self) -> Optional[List[ReferencedRTInstanceSequenceItem]]: + if "ReferencedRTInstanceSequence" in self._dataset: + if len(self._ReferencedRTInstanceSequence) == len(self._dataset.ReferencedRTInstanceSequence): + return self._ReferencedRTInstanceSequence + else: + return [ReferencedRTInstanceSequenceItem(x) for x in self._dataset.ReferencedRTInstanceSequence] + return None + + @ReferencedRTInstanceSequence.setter + def ReferencedRTInstanceSequence(self, value: Optional[List[ReferencedRTInstanceSequenceItem]]): + if value is None: + self._ReferencedRTInstanceSequence = [] + if "ReferencedRTInstanceSequence" in self._dataset: + del self._dataset.ReferencedRTInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTInstanceSequenceItem) for item in value): + raise ValueError("ReferencedRTInstanceSequence must be a list of ReferencedRTInstanceSequenceItem objects") + else: + self._ReferencedRTInstanceSequence = value + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.clear() + self._dataset.ReferencedRTInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTInstance(self, item: ReferencedRTInstanceSequenceItem): + if not isinstance(item, ReferencedRTInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTInstanceSequenceItem") + self._ReferencedRTInstanceSequence.append(item) + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RTRadiationUsage(self) -> Optional[str]: + if "RTRadiationUsage" in self._dataset: + return self._dataset.RTRadiationUsage + return None + + @RTRadiationUsage.setter + def RTRadiationUsage(self, value: Optional[str]): + if value is None: + if "RTRadiationUsage" in self._dataset: + del self._dataset.RTRadiationUsage + else: + self._dataset.RTRadiationUsage = value + + @property + def TreatmentDeliveryContinuationFlag(self) -> Optional[str]: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + return self._dataset.TreatmentDeliveryContinuationFlag + return None + + @TreatmentDeliveryContinuationFlag.setter + def TreatmentDeliveryContinuationFlag(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + del self._dataset.TreatmentDeliveryContinuationFlag + else: + self._dataset.TreatmentDeliveryContinuationFlag = value + + @property + def TreatmentRecordContentOrigin(self) -> Optional[str]: + if "TreatmentRecordContentOrigin" in self._dataset: + return self._dataset.TreatmentRecordContentOrigin + return None + + @TreatmentRecordContentOrigin.setter + def TreatmentRecordContentOrigin(self, value: Optional[str]): + if value is None: + if "TreatmentRecordContentOrigin" in self._dataset: + del self._dataset.TreatmentRecordContentOrigin + else: + self._dataset.TreatmentRecordContentOrigin = value + + @property + def RTTreatmentTerminationStatus(self) -> Optional[str]: + if "RTTreatmentTerminationStatus" in self._dataset: + return self._dataset.RTTreatmentTerminationStatus + return None + + @RTTreatmentTerminationStatus.setter + def RTTreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "RTTreatmentTerminationStatus" in self._dataset: + del self._dataset.RTTreatmentTerminationStatus + else: + self._dataset.RTTreatmentTerminationStatus = value + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def TreatmentToleranceViolationSequence(self) -> Optional[List[TreatmentToleranceViolationSequenceItem]]: + if "TreatmentToleranceViolationSequence" in self._dataset: + if len(self._TreatmentToleranceViolationSequence) == len(self._dataset.TreatmentToleranceViolationSequence): + return self._TreatmentToleranceViolationSequence + else: + return [TreatmentToleranceViolationSequenceItem(x) for x in self._dataset.TreatmentToleranceViolationSequence] + return None + + @TreatmentToleranceViolationSequence.setter + def TreatmentToleranceViolationSequence(self, value: Optional[List[TreatmentToleranceViolationSequenceItem]]): + if value is None: + self._TreatmentToleranceViolationSequence = [] + if "TreatmentToleranceViolationSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentToleranceViolationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentToleranceViolationSequence must be a list of TreatmentToleranceViolationSequenceItem objects" + ) + else: + self._TreatmentToleranceViolationSequence = value + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.clear() + self._dataset.TreatmentToleranceViolationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolation(self, item: TreatmentToleranceViolationSequenceItem): + if not isinstance(item, TreatmentToleranceViolationSequenceItem): + raise ValueError("Item must be an instance of TreatmentToleranceViolationSequenceItem") + self._TreatmentToleranceViolationSequence.append(item) + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.append(item.to_dataset()) + + @property + def ConfirmationSequence(self) -> Optional[List[ConfirmationSequenceItem]]: + if "ConfirmationSequence" in self._dataset: + if len(self._ConfirmationSequence) == len(self._dataset.ConfirmationSequence): + return self._ConfirmationSequence + else: + return [ConfirmationSequenceItem(x) for x in self._dataset.ConfirmationSequence] + return None + + @ConfirmationSequence.setter + def ConfirmationSequence(self, value: Optional[List[ConfirmationSequenceItem]]): + if value is None: + self._ConfirmationSequence = [] + if "ConfirmationSequence" in self._dataset: + del self._dataset.ConfirmationSequence + elif not isinstance(value, list) or not all(isinstance(item, ConfirmationSequenceItem) for item in value): + raise ValueError("ConfirmationSequence must be a list of ConfirmationSequenceItem objects") + else: + self._ConfirmationSequence = value + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.clear() + self._dataset.ConfirmationSequence.extend([item.to_dataset() for item in value]) + + def add_Confirmation(self, item: ConfirmationSequenceItem): + if not isinstance(item, ConfirmationSequenceItem): + raise ValueError("Item must be an instance of ConfirmationSequenceItem") + self._ConfirmationSequence.append(item) + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.append(item.to_dataset()) + + @property + def InterlockSequence(self) -> Optional[List[InterlockSequenceItem]]: + if "InterlockSequence" in self._dataset: + if len(self._InterlockSequence) == len(self._dataset.InterlockSequence): + return self._InterlockSequence + else: + return [InterlockSequenceItem(x) for x in self._dataset.InterlockSequence] + return None + + @InterlockSequence.setter + def InterlockSequence(self, value: Optional[List[InterlockSequenceItem]]): + if value is None: + self._InterlockSequence = [] + if "InterlockSequence" in self._dataset: + del self._dataset.InterlockSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockSequenceItem) for item in value): + raise ValueError("InterlockSequence must be a list of InterlockSequenceItem objects") + else: + self._InterlockSequence = value + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.clear() + self._dataset.InterlockSequence.extend([item.to_dataset() for item in value]) + + def add_Interlock(self, item: InterlockSequenceItem): + if not isinstance(item, InterlockSequenceItem): + raise ValueError("Item must be an instance of InterlockSequenceItem") + self._InterlockSequence.append(item) + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.append(item.to_dataset()) + + @property + def AdditionalParameterRecordingInstanceSequence(self) -> Optional[List[AdditionalParameterRecordingInstanceSequenceItem]]: + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + if len(self._AdditionalParameterRecordingInstanceSequence) == len( + self._dataset.AdditionalParameterRecordingInstanceSequence + ): + return self._AdditionalParameterRecordingInstanceSequence + else: + return [ + AdditionalParameterRecordingInstanceSequenceItem(x) + for x in self._dataset.AdditionalParameterRecordingInstanceSequence + ] + return None + + @AdditionalParameterRecordingInstanceSequence.setter + def AdditionalParameterRecordingInstanceSequence( + self, value: Optional[List[AdditionalParameterRecordingInstanceSequenceItem]] + ): + if value is None: + self._AdditionalParameterRecordingInstanceSequence = [] + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + del self._dataset.AdditionalParameterRecordingInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, AdditionalParameterRecordingInstanceSequenceItem) for item in value + ): + raise ValueError( + "AdditionalParameterRecordingInstanceSequence must be a list of" + " AdditionalParameterRecordingInstanceSequenceItem objects" + ) + else: + self._AdditionalParameterRecordingInstanceSequence = value + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.clear() + self._dataset.AdditionalParameterRecordingInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_AdditionalParameterRecordingInstance(self, item: AdditionalParameterRecordingInstanceSequenceItem): + if not isinstance(item, AdditionalParameterRecordingInstanceSequenceItem): + raise ValueError("Item must be an instance of AdditionalParameterRecordingInstanceSequenceItem") + self._AdditionalParameterRecordingInstanceSequence.append(item) + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/calculated_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/calculated_dose_reference_sequence_item.py new file mode 100644 index 0000000..2ad723a --- /dev/null +++ b/tdwii_plus_examples/domain_model/calculated_dose_reference_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CalculatedDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CalculatedDoseReferenceNumber(self) -> Optional[int]: + if "CalculatedDoseReferenceNumber" in self._dataset: + return self._dataset.CalculatedDoseReferenceNumber + return None + + @CalculatedDoseReferenceNumber.setter + def CalculatedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "CalculatedDoseReferenceNumber" in self._dataset: + del self._dataset.CalculatedDoseReferenceNumber + else: + self._dataset.CalculatedDoseReferenceNumber = value + + @property + def CalculatedDoseReferenceDescription(self) -> Optional[str]: + if "CalculatedDoseReferenceDescription" in self._dataset: + return self._dataset.CalculatedDoseReferenceDescription + return None + + @CalculatedDoseReferenceDescription.setter + def CalculatedDoseReferenceDescription(self, value: Optional[str]): + if value is None: + if "CalculatedDoseReferenceDescription" in self._dataset: + del self._dataset.CalculatedDoseReferenceDescription + else: + self._dataset.CalculatedDoseReferenceDescription = value + + @property + def CalculatedDoseReferenceDoseValue(self) -> Optional[Decimal]: + if "CalculatedDoseReferenceDoseValue" in self._dataset: + return self._dataset.CalculatedDoseReferenceDoseValue + return None + + @CalculatedDoseReferenceDoseValue.setter + def CalculatedDoseReferenceDoseValue(self, value: Optional[Decimal]): + if value is None: + if "CalculatedDoseReferenceDoseValue" in self._dataset: + del self._dataset.CalculatedDoseReferenceDoseValue + else: + self._dataset.CalculatedDoseReferenceDoseValue = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/calculation_comment_sequence_item.py b/tdwii_plus_examples/domain_model/calculation_comment_sequence_item.py new file mode 100644 index 0000000..a9f13d3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/calculation_comment_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CalculationCommentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CalculationCommentType(self) -> Optional[str]: + if "CalculationCommentType" in self._dataset: + return self._dataset.CalculationCommentType + return None + + @CalculationCommentType.setter + def CalculationCommentType(self, value: Optional[str]): + if value is None: + if "CalculationCommentType" in self._dataset: + del self._dataset.CalculationCommentType + else: + self._dataset.CalculationCommentType = value + + @property + def CalculationComment(self) -> Optional[str]: + if "CalculationComment" in self._dataset: + return self._dataset.CalculationComment + return None + + @CalculationComment.setter + def CalculationComment(self, value: Optional[str]): + if value is None: + if "CalculationComment" in self._dataset: + del self._dataset.CalculationComment + else: + self._dataset.CalculationComment = value diff --git a/tdwii_plus_examples/domain_model/calibration_data_sequence_item.py b/tdwii_plus_examples/domain_model/calibration_data_sequence_item.py new file mode 100644 index 0000000..7f46f11 --- /dev/null +++ b/tdwii_plus_examples/domain_model/calibration_data_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CalibrationDataSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SyringeCounts(self) -> Optional[int]: + if "SyringeCounts" in self._dataset: + return self._dataset.SyringeCounts + return None + + @SyringeCounts.setter + def SyringeCounts(self, value: Optional[int]): + if value is None: + if "SyringeCounts" in self._dataset: + del self._dataset.SyringeCounts + else: + self._dataset.SyringeCounts = value + + @property + def ResidualSyringeCounts(self) -> Optional[int]: + if "ResidualSyringeCounts" in self._dataset: + return self._dataset.ResidualSyringeCounts + return None + + @ResidualSyringeCounts.setter + def ResidualSyringeCounts(self, value: Optional[int]): + if value is None: + if "ResidualSyringeCounts" in self._dataset: + del self._dataset.ResidualSyringeCounts + else: + self._dataset.ResidualSyringeCounts = value + + @property + def EnergyWindowNumber(self) -> Optional[int]: + if "EnergyWindowNumber" in self._dataset: + return self._dataset.EnergyWindowNumber + return None + + @EnergyWindowNumber.setter + def EnergyWindowNumber(self, value: Optional[int]): + if value is None: + if "EnergyWindowNumber" in self._dataset: + del self._dataset.EnergyWindowNumber + else: + self._dataset.EnergyWindowNumber = value diff --git a/tdwii_plus_examples/domain_model/calibration_sequence_item.py b/tdwii_plus_examples/domain_model/calibration_sequence_item.py new file mode 100644 index 0000000..9c4be4b --- /dev/null +++ b/tdwii_plus_examples/domain_model/calibration_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CalibrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value diff --git a/tdwii_plus_examples/domain_model/camera_position_group_sequence_item.py b/tdwii_plus_examples/domain_model/camera_position_group_sequence_item.py new file mode 100644 index 0000000..61e5114 --- /dev/null +++ b/tdwii_plus_examples/domain_model/camera_position_group_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CameraPositionGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RenderProjection(self) -> Optional[str]: + if "RenderProjection" in self._dataset: + return self._dataset.RenderProjection + return None + + @RenderProjection.setter + def RenderProjection(self, value: Optional[str]): + if value is None: + if "RenderProjection" in self._dataset: + del self._dataset.RenderProjection + else: + self._dataset.RenderProjection = value + + @property + def ViewpointPosition(self) -> Optional[List[float]]: + if "ViewpointPosition" in self._dataset: + return self._dataset.ViewpointPosition + return None + + @ViewpointPosition.setter + def ViewpointPosition(self, value: Optional[List[float]]): + if value is None: + if "ViewpointPosition" in self._dataset: + del self._dataset.ViewpointPosition + else: + self._dataset.ViewpointPosition = value + + @property + def ViewpointLookAtPoint(self) -> Optional[List[float]]: + if "ViewpointLookAtPoint" in self._dataset: + return self._dataset.ViewpointLookAtPoint + return None + + @ViewpointLookAtPoint.setter + def ViewpointLookAtPoint(self, value: Optional[List[float]]): + if value is None: + if "ViewpointLookAtPoint" in self._dataset: + del self._dataset.ViewpointLookAtPoint + else: + self._dataset.ViewpointLookAtPoint = value + + @property + def ViewpointUpDirection(self) -> Optional[List[float]]: + if "ViewpointUpDirection" in self._dataset: + return self._dataset.ViewpointUpDirection + return None + + @ViewpointUpDirection.setter + def ViewpointUpDirection(self, value: Optional[List[float]]): + if value is None: + if "ViewpointUpDirection" in self._dataset: + del self._dataset.ViewpointUpDirection + else: + self._dataset.ViewpointUpDirection = value + + @property + def RenderFieldOfView(self) -> Optional[List[float]]: + if "RenderFieldOfView" in self._dataset: + return self._dataset.RenderFieldOfView + return None + + @RenderFieldOfView.setter + def RenderFieldOfView(self, value: Optional[List[float]]): + if value is None: + if "RenderFieldOfView" in self._dataset: + del self._dataset.RenderFieldOfView + else: + self._dataset.RenderFieldOfView = value diff --git a/tdwii_plus_examples/domain_model/cardiac_synchronization_sequence_item.py b/tdwii_plus_examples/domain_model/cardiac_synchronization_sequence_item.py new file mode 100644 index 0000000..402ed00 --- /dev/null +++ b/tdwii_plus_examples/domain_model/cardiac_synchronization_sequence_item.py @@ -0,0 +1,165 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CardiacSynchronizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def HeartRate(self) -> Optional[int]: + if "HeartRate" in self._dataset: + return self._dataset.HeartRate + return None + + @HeartRate.setter + def HeartRate(self, value: Optional[int]): + if value is None: + if "HeartRate" in self._dataset: + del self._dataset.HeartRate + else: + self._dataset.HeartRate = value + + @property + def NominalCardiacTriggerDelayTime(self) -> Optional[float]: + if "NominalCardiacTriggerDelayTime" in self._dataset: + return self._dataset.NominalCardiacTriggerDelayTime + return None + + @NominalCardiacTriggerDelayTime.setter + def NominalCardiacTriggerDelayTime(self, value: Optional[float]): + if value is None: + if "NominalCardiacTriggerDelayTime" in self._dataset: + del self._dataset.NominalCardiacTriggerDelayTime + else: + self._dataset.NominalCardiacTriggerDelayTime = value + + @property + def NominalCardiacTriggerTimePriorToRPeak(self) -> Optional[float]: + if "NominalCardiacTriggerTimePriorToRPeak" in self._dataset: + return self._dataset.NominalCardiacTriggerTimePriorToRPeak + return None + + @NominalCardiacTriggerTimePriorToRPeak.setter + def NominalCardiacTriggerTimePriorToRPeak(self, value: Optional[float]): + if value is None: + if "NominalCardiacTriggerTimePriorToRPeak" in self._dataset: + del self._dataset.NominalCardiacTriggerTimePriorToRPeak + else: + self._dataset.NominalCardiacTriggerTimePriorToRPeak = value + + @property + def ActualCardiacTriggerTimePriorToRPeak(self) -> Optional[float]: + if "ActualCardiacTriggerTimePriorToRPeak" in self._dataset: + return self._dataset.ActualCardiacTriggerTimePriorToRPeak + return None + + @ActualCardiacTriggerTimePriorToRPeak.setter + def ActualCardiacTriggerTimePriorToRPeak(self, value: Optional[float]): + if value is None: + if "ActualCardiacTriggerTimePriorToRPeak" in self._dataset: + del self._dataset.ActualCardiacTriggerTimePriorToRPeak + else: + self._dataset.ActualCardiacTriggerTimePriorToRPeak = value + + @property + def NominalPercentageOfCardiacPhase(self) -> Optional[float]: + if "NominalPercentageOfCardiacPhase" in self._dataset: + return self._dataset.NominalPercentageOfCardiacPhase + return None + + @NominalPercentageOfCardiacPhase.setter + def NominalPercentageOfCardiacPhase(self, value: Optional[float]): + if value is None: + if "NominalPercentageOfCardiacPhase" in self._dataset: + del self._dataset.NominalPercentageOfCardiacPhase + else: + self._dataset.NominalPercentageOfCardiacPhase = value + + @property + def RRIntervalTimeNominal(self) -> Optional[float]: + if "RRIntervalTimeNominal" in self._dataset: + return self._dataset.RRIntervalTimeNominal + return None + + @RRIntervalTimeNominal.setter + def RRIntervalTimeNominal(self, value: Optional[float]): + if value is None: + if "RRIntervalTimeNominal" in self._dataset: + del self._dataset.RRIntervalTimeNominal + else: + self._dataset.RRIntervalTimeNominal = value + + @property + def ActualCardiacTriggerDelayTime(self) -> Optional[float]: + if "ActualCardiacTriggerDelayTime" in self._dataset: + return self._dataset.ActualCardiacTriggerDelayTime + return None + + @ActualCardiacTriggerDelayTime.setter + def ActualCardiacTriggerDelayTime(self, value: Optional[float]): + if value is None: + if "ActualCardiacTriggerDelayTime" in self._dataset: + del self._dataset.ActualCardiacTriggerDelayTime + else: + self._dataset.ActualCardiacTriggerDelayTime = value diff --git a/tdwii_plus_examples/domain_model/cell_values_sequence_item.py b/tdwii_plus_examples/domain_model/cell_values_sequence_item.py new file mode 100644 index 0000000..e1e0bdb --- /dev/null +++ b/tdwii_plus_examples/domain_model/cell_values_sequence_item.py @@ -0,0 +1,337 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class CellValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def TableRowNumber(self) -> Optional[int]: + if "TableRowNumber" in self._dataset: + return self._dataset.TableRowNumber + return None + + @TableRowNumber.setter + def TableRowNumber(self, value: Optional[int]): + if value is None: + if "TableRowNumber" in self._dataset: + del self._dataset.TableRowNumber + else: + self._dataset.TableRowNumber = value + + @property + def TableColumnNumber(self) -> Optional[int]: + if "TableColumnNumber" in self._dataset: + return self._dataset.TableColumnNumber + return None + + @TableColumnNumber.setter + def TableColumnNumber(self, value: Optional[int]): + if value is None: + if "TableColumnNumber" in self._dataset: + del self._dataset.TableColumnNumber + else: + self._dataset.TableColumnNumber = value + + @property + def ReferencedContentItemIdentifier(self) -> Optional[List[int]]: + if "ReferencedContentItemIdentifier" in self._dataset: + return self._dataset.ReferencedContentItemIdentifier + return None + + @ReferencedContentItemIdentifier.setter + def ReferencedContentItemIdentifier(self, value: Optional[List[int]]): + if value is None: + if "ReferencedContentItemIdentifier" in self._dataset: + del self._dataset.ReferencedContentItemIdentifier + else: + self._dataset.ReferencedContentItemIdentifier = value + + @property + def SelectorAttributeVR(self) -> Optional[str]: + if "SelectorAttributeVR" in self._dataset: + return self._dataset.SelectorAttributeVR + return None + + @SelectorAttributeVR.setter + def SelectorAttributeVR(self, value: Optional[str]): + if value is None: + if "SelectorAttributeVR" in self._dataset: + del self._dataset.SelectorAttributeVR + else: + self._dataset.SelectorAttributeVR = value + + @property + def SelectorDTValue(self) -> Optional[List[str]]: + if "SelectorDTValue" in self._dataset: + return self._dataset.SelectorDTValue + return None + + @SelectorDTValue.setter + def SelectorDTValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDTValue" in self._dataset: + del self._dataset.SelectorDTValue + else: + self._dataset.SelectorDTValue = value + + @property + def SelectorISValue(self) -> Optional[List[int]]: + if "SelectorISValue" in self._dataset: + return self._dataset.SelectorISValue + return None + + @SelectorISValue.setter + def SelectorISValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorISValue" in self._dataset: + del self._dataset.SelectorISValue + else: + self._dataset.SelectorISValue = value + + @property + def SelectorUCValue(self) -> Optional[List[str]]: + if "SelectorUCValue" in self._dataset: + return self._dataset.SelectorUCValue + return None + + @SelectorUCValue.setter + def SelectorUCValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUCValue" in self._dataset: + del self._dataset.SelectorUCValue + else: + self._dataset.SelectorUCValue = value + + @property + def SelectorDSValue(self) -> Optional[List[Decimal]]: + if "SelectorDSValue" in self._dataset: + return self._dataset.SelectorDSValue + return None + + @SelectorDSValue.setter + def SelectorDSValue(self, value: Optional[List[Decimal]]): + if value is None: + if "SelectorDSValue" in self._dataset: + del self._dataset.SelectorDSValue + else: + self._dataset.SelectorDSValue = value + + @property + def SelectorFDValue(self) -> Optional[List[float]]: + if "SelectorFDValue" in self._dataset: + return self._dataset.SelectorFDValue + return None + + @SelectorFDValue.setter + def SelectorFDValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFDValue" in self._dataset: + del self._dataset.SelectorFDValue + else: + self._dataset.SelectorFDValue = value + + @property + def SelectorFLValue(self) -> Optional[List[float]]: + if "SelectorFLValue" in self._dataset: + return self._dataset.SelectorFLValue + return None + + @SelectorFLValue.setter + def SelectorFLValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFLValue" in self._dataset: + del self._dataset.SelectorFLValue + else: + self._dataset.SelectorFLValue = value + + @property + def SelectorULValue(self) -> Optional[List[int]]: + if "SelectorULValue" in self._dataset: + return self._dataset.SelectorULValue + return None + + @SelectorULValue.setter + def SelectorULValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorULValue" in self._dataset: + del self._dataset.SelectorULValue + else: + self._dataset.SelectorULValue = value + + @property + def SelectorUSValue(self) -> Optional[List[int]]: + if "SelectorUSValue" in self._dataset: + return self._dataset.SelectorUSValue + return None + + @SelectorUSValue.setter + def SelectorUSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUSValue" in self._dataset: + del self._dataset.SelectorUSValue + else: + self._dataset.SelectorUSValue = value + + @property + def SelectorSLValue(self) -> Optional[List[int]]: + if "SelectorSLValue" in self._dataset: + return self._dataset.SelectorSLValue + return None + + @SelectorSLValue.setter + def SelectorSLValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSLValue" in self._dataset: + del self._dataset.SelectorSLValue + else: + self._dataset.SelectorSLValue = value + + @property + def SelectorSSValue(self) -> Optional[List[int]]: + if "SelectorSSValue" in self._dataset: + return self._dataset.SelectorSSValue + return None + + @SelectorSSValue.setter + def SelectorSSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSSValue" in self._dataset: + del self._dataset.SelectorSSValue + else: + self._dataset.SelectorSSValue = value + + @property + def SelectorSVValue(self) -> Optional[List[int]]: + if "SelectorSVValue" in self._dataset: + return self._dataset.SelectorSVValue + return None + + @SelectorSVValue.setter + def SelectorSVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSVValue" in self._dataset: + del self._dataset.SelectorSVValue + else: + self._dataset.SelectorSVValue = value + + @property + def SelectorUVValue(self) -> Optional[List[int]]: + if "SelectorUVValue" in self._dataset: + return self._dataset.SelectorUVValue + return None + + @SelectorUVValue.setter + def SelectorUVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUVValue" in self._dataset: + del self._dataset.SelectorUVValue + else: + self._dataset.SelectorUVValue = value diff --git a/tdwii_plus_examples/domain_model/channel_definition_sequence_item.py b/tdwii_plus_examples/domain_model/channel_definition_sequence_item.py new file mode 100644 index 0000000..3974c7c --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_definition_sequence_item.py @@ -0,0 +1,583 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .channel_impedance_sequence_item import ChannelImpedanceSequenceItem +from .channel_sensitivity_units_sequence_item import ChannelSensitivityUnitsSequenceItem +from .channel_source_modifiers_sequence_item import ChannelSourceModifiersSequenceItem +from .channel_source_sequence_item import ChannelSourceSequenceItem +from .filter_high_frequency_characteristics_sequence_item import ( + FilterHighFrequencyCharacteristicsSequenceItem, +) +from .filter_low_frequency_characteristics_sequence_item import ( + FilterLowFrequencyCharacteristicsSequenceItem, +) +from .notch_filter_characteristics_sequence_item import ( + NotchFilterCharacteristicsSequenceItem, +) +from .source_waveform_sequence_item import SourceWaveformSequenceItem + + +class ChannelDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ChannelSourceSequence: List[ChannelSourceSequenceItem] = [] + self._ChannelSourceModifiersSequence: List[ChannelSourceModifiersSequenceItem] = [] + self._SourceWaveformSequence: List[SourceWaveformSequenceItem] = [] + self._ChannelSensitivityUnitsSequence: List[ChannelSensitivityUnitsSequenceItem] = [] + self._ChannelImpedanceSequence: List[ChannelImpedanceSequenceItem] = [] + self._FilterLowFrequencyCharacteristicsSequence: List[FilterLowFrequencyCharacteristicsSequenceItem] = [] + self._FilterHighFrequencyCharacteristicsSequence: List[FilterHighFrequencyCharacteristicsSequenceItem] = [] + self._NotchFilterCharacteristicsSequence: List[NotchFilterCharacteristicsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WaveformChannelNumber(self) -> Optional[int]: + if "WaveformChannelNumber" in self._dataset: + return self._dataset.WaveformChannelNumber + return None + + @WaveformChannelNumber.setter + def WaveformChannelNumber(self, value: Optional[int]): + if value is None: + if "WaveformChannelNumber" in self._dataset: + del self._dataset.WaveformChannelNumber + else: + self._dataset.WaveformChannelNumber = value + + @property + def ChannelLabel(self) -> Optional[str]: + if "ChannelLabel" in self._dataset: + return self._dataset.ChannelLabel + return None + + @ChannelLabel.setter + def ChannelLabel(self, value: Optional[str]): + if value is None: + if "ChannelLabel" in self._dataset: + del self._dataset.ChannelLabel + else: + self._dataset.ChannelLabel = value + + @property + def ChannelStatus(self) -> Optional[List[str]]: + if "ChannelStatus" in self._dataset: + return self._dataset.ChannelStatus + return None + + @ChannelStatus.setter + def ChannelStatus(self, value: Optional[List[str]]): + if value is None: + if "ChannelStatus" in self._dataset: + del self._dataset.ChannelStatus + else: + self._dataset.ChannelStatus = value + + @property + def ChannelSourceSequence(self) -> Optional[List[ChannelSourceSequenceItem]]: + if "ChannelSourceSequence" in self._dataset: + if len(self._ChannelSourceSequence) == len(self._dataset.ChannelSourceSequence): + return self._ChannelSourceSequence + else: + return [ChannelSourceSequenceItem(x) for x in self._dataset.ChannelSourceSequence] + return None + + @ChannelSourceSequence.setter + def ChannelSourceSequence(self, value: Optional[List[ChannelSourceSequenceItem]]): + if value is None: + self._ChannelSourceSequence = [] + if "ChannelSourceSequence" in self._dataset: + del self._dataset.ChannelSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelSourceSequenceItem) for item in value): + raise ValueError("ChannelSourceSequence must be a list of ChannelSourceSequenceItem objects") + else: + self._ChannelSourceSequence = value + if "ChannelSourceSequence" not in self._dataset: + self._dataset.ChannelSourceSequence = pydicom.Sequence() + self._dataset.ChannelSourceSequence.clear() + self._dataset.ChannelSourceSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelSource(self, item: ChannelSourceSequenceItem): + if not isinstance(item, ChannelSourceSequenceItem): + raise ValueError("Item must be an instance of ChannelSourceSequenceItem") + self._ChannelSourceSequence.append(item) + if "ChannelSourceSequence" not in self._dataset: + self._dataset.ChannelSourceSequence = pydicom.Sequence() + self._dataset.ChannelSourceSequence.append(item.to_dataset()) + + @property + def ChannelSourceModifiersSequence(self) -> Optional[List[ChannelSourceModifiersSequenceItem]]: + if "ChannelSourceModifiersSequence" in self._dataset: + if len(self._ChannelSourceModifiersSequence) == len(self._dataset.ChannelSourceModifiersSequence): + return self._ChannelSourceModifiersSequence + else: + return [ChannelSourceModifiersSequenceItem(x) for x in self._dataset.ChannelSourceModifiersSequence] + return None + + @ChannelSourceModifiersSequence.setter + def ChannelSourceModifiersSequence(self, value: Optional[List[ChannelSourceModifiersSequenceItem]]): + if value is None: + self._ChannelSourceModifiersSequence = [] + if "ChannelSourceModifiersSequence" in self._dataset: + del self._dataset.ChannelSourceModifiersSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelSourceModifiersSequenceItem) for item in value): + raise ValueError("ChannelSourceModifiersSequence must be a list of ChannelSourceModifiersSequenceItem objects") + else: + self._ChannelSourceModifiersSequence = value + if "ChannelSourceModifiersSequence" not in self._dataset: + self._dataset.ChannelSourceModifiersSequence = pydicom.Sequence() + self._dataset.ChannelSourceModifiersSequence.clear() + self._dataset.ChannelSourceModifiersSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelSourceModifiers(self, item: ChannelSourceModifiersSequenceItem): + if not isinstance(item, ChannelSourceModifiersSequenceItem): + raise ValueError("Item must be an instance of ChannelSourceModifiersSequenceItem") + self._ChannelSourceModifiersSequence.append(item) + if "ChannelSourceModifiersSequence" not in self._dataset: + self._dataset.ChannelSourceModifiersSequence = pydicom.Sequence() + self._dataset.ChannelSourceModifiersSequence.append(item.to_dataset()) + + @property + def SourceWaveformSequence(self) -> Optional[List[SourceWaveformSequenceItem]]: + if "SourceWaveformSequence" in self._dataset: + if len(self._SourceWaveformSequence) == len(self._dataset.SourceWaveformSequence): + return self._SourceWaveformSequence + else: + return [SourceWaveformSequenceItem(x) for x in self._dataset.SourceWaveformSequence] + return None + + @SourceWaveformSequence.setter + def SourceWaveformSequence(self, value: Optional[List[SourceWaveformSequenceItem]]): + if value is None: + self._SourceWaveformSequence = [] + if "SourceWaveformSequence" in self._dataset: + del self._dataset.SourceWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceWaveformSequenceItem) for item in value): + raise ValueError("SourceWaveformSequence must be a list of SourceWaveformSequenceItem objects") + else: + self._SourceWaveformSequence = value + if "SourceWaveformSequence" not in self._dataset: + self._dataset.SourceWaveformSequence = pydicom.Sequence() + self._dataset.SourceWaveformSequence.clear() + self._dataset.SourceWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_SourceWaveform(self, item: SourceWaveformSequenceItem): + if not isinstance(item, SourceWaveformSequenceItem): + raise ValueError("Item must be an instance of SourceWaveformSequenceItem") + self._SourceWaveformSequence.append(item) + if "SourceWaveformSequence" not in self._dataset: + self._dataset.SourceWaveformSequence = pydicom.Sequence() + self._dataset.SourceWaveformSequence.append(item.to_dataset()) + + @property + def ChannelDerivationDescription(self) -> Optional[str]: + if "ChannelDerivationDescription" in self._dataset: + return self._dataset.ChannelDerivationDescription + return None + + @ChannelDerivationDescription.setter + def ChannelDerivationDescription(self, value: Optional[str]): + if value is None: + if "ChannelDerivationDescription" in self._dataset: + del self._dataset.ChannelDerivationDescription + else: + self._dataset.ChannelDerivationDescription = value + + @property + def ChannelSensitivity(self) -> Optional[Decimal]: + if "ChannelSensitivity" in self._dataset: + return self._dataset.ChannelSensitivity + return None + + @ChannelSensitivity.setter + def ChannelSensitivity(self, value: Optional[Decimal]): + if value is None: + if "ChannelSensitivity" in self._dataset: + del self._dataset.ChannelSensitivity + else: + self._dataset.ChannelSensitivity = value + + @property + def ChannelSensitivityUnitsSequence(self) -> Optional[List[ChannelSensitivityUnitsSequenceItem]]: + if "ChannelSensitivityUnitsSequence" in self._dataset: + if len(self._ChannelSensitivityUnitsSequence) == len(self._dataset.ChannelSensitivityUnitsSequence): + return self._ChannelSensitivityUnitsSequence + else: + return [ChannelSensitivityUnitsSequenceItem(x) for x in self._dataset.ChannelSensitivityUnitsSequence] + return None + + @ChannelSensitivityUnitsSequence.setter + def ChannelSensitivityUnitsSequence(self, value: Optional[List[ChannelSensitivityUnitsSequenceItem]]): + if value is None: + self._ChannelSensitivityUnitsSequence = [] + if "ChannelSensitivityUnitsSequence" in self._dataset: + del self._dataset.ChannelSensitivityUnitsSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelSensitivityUnitsSequenceItem) for item in value): + raise ValueError("ChannelSensitivityUnitsSequence must be a list of ChannelSensitivityUnitsSequenceItem objects") + else: + self._ChannelSensitivityUnitsSequence = value + if "ChannelSensitivityUnitsSequence" not in self._dataset: + self._dataset.ChannelSensitivityUnitsSequence = pydicom.Sequence() + self._dataset.ChannelSensitivityUnitsSequence.clear() + self._dataset.ChannelSensitivityUnitsSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelSensitivityUnits(self, item: ChannelSensitivityUnitsSequenceItem): + if not isinstance(item, ChannelSensitivityUnitsSequenceItem): + raise ValueError("Item must be an instance of ChannelSensitivityUnitsSequenceItem") + self._ChannelSensitivityUnitsSequence.append(item) + if "ChannelSensitivityUnitsSequence" not in self._dataset: + self._dataset.ChannelSensitivityUnitsSequence = pydicom.Sequence() + self._dataset.ChannelSensitivityUnitsSequence.append(item.to_dataset()) + + @property + def ChannelSensitivityCorrectionFactor(self) -> Optional[Decimal]: + if "ChannelSensitivityCorrectionFactor" in self._dataset: + return self._dataset.ChannelSensitivityCorrectionFactor + return None + + @ChannelSensitivityCorrectionFactor.setter + def ChannelSensitivityCorrectionFactor(self, value: Optional[Decimal]): + if value is None: + if "ChannelSensitivityCorrectionFactor" in self._dataset: + del self._dataset.ChannelSensitivityCorrectionFactor + else: + self._dataset.ChannelSensitivityCorrectionFactor = value + + @property + def ChannelBaseline(self) -> Optional[Decimal]: + if "ChannelBaseline" in self._dataset: + return self._dataset.ChannelBaseline + return None + + @ChannelBaseline.setter + def ChannelBaseline(self, value: Optional[Decimal]): + if value is None: + if "ChannelBaseline" in self._dataset: + del self._dataset.ChannelBaseline + else: + self._dataset.ChannelBaseline = value + + @property + def ChannelTimeSkew(self) -> Optional[Decimal]: + if "ChannelTimeSkew" in self._dataset: + return self._dataset.ChannelTimeSkew + return None + + @ChannelTimeSkew.setter + def ChannelTimeSkew(self, value: Optional[Decimal]): + if value is None: + if "ChannelTimeSkew" in self._dataset: + del self._dataset.ChannelTimeSkew + else: + self._dataset.ChannelTimeSkew = value + + @property + def ChannelSampleSkew(self) -> Optional[Decimal]: + if "ChannelSampleSkew" in self._dataset: + return self._dataset.ChannelSampleSkew + return None + + @ChannelSampleSkew.setter + def ChannelSampleSkew(self, value: Optional[Decimal]): + if value is None: + if "ChannelSampleSkew" in self._dataset: + del self._dataset.ChannelSampleSkew + else: + self._dataset.ChannelSampleSkew = value + + @property + def ChannelOffset(self) -> Optional[Decimal]: + if "ChannelOffset" in self._dataset: + return self._dataset.ChannelOffset + return None + + @ChannelOffset.setter + def ChannelOffset(self, value: Optional[Decimal]): + if value is None: + if "ChannelOffset" in self._dataset: + del self._dataset.ChannelOffset + else: + self._dataset.ChannelOffset = value + + @property + def WaveformBitsStored(self) -> Optional[int]: + if "WaveformBitsStored" in self._dataset: + return self._dataset.WaveformBitsStored + return None + + @WaveformBitsStored.setter + def WaveformBitsStored(self, value: Optional[int]): + if value is None: + if "WaveformBitsStored" in self._dataset: + del self._dataset.WaveformBitsStored + else: + self._dataset.WaveformBitsStored = value + + @property + def FilterLowFrequency(self) -> Optional[Decimal]: + if "FilterLowFrequency" in self._dataset: + return self._dataset.FilterLowFrequency + return None + + @FilterLowFrequency.setter + def FilterLowFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterLowFrequency" in self._dataset: + del self._dataset.FilterLowFrequency + else: + self._dataset.FilterLowFrequency = value + + @property + def FilterHighFrequency(self) -> Optional[Decimal]: + if "FilterHighFrequency" in self._dataset: + return self._dataset.FilterHighFrequency + return None + + @FilterHighFrequency.setter + def FilterHighFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterHighFrequency" in self._dataset: + del self._dataset.FilterHighFrequency + else: + self._dataset.FilterHighFrequency = value + + @property + def NotchFilterFrequency(self) -> Optional[Decimal]: + if "NotchFilterFrequency" in self._dataset: + return self._dataset.NotchFilterFrequency + return None + + @NotchFilterFrequency.setter + def NotchFilterFrequency(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterFrequency" in self._dataset: + del self._dataset.NotchFilterFrequency + else: + self._dataset.NotchFilterFrequency = value + + @property + def NotchFilterBandwidth(self) -> Optional[Decimal]: + if "NotchFilterBandwidth" in self._dataset: + return self._dataset.NotchFilterBandwidth + return None + + @NotchFilterBandwidth.setter + def NotchFilterBandwidth(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterBandwidth" in self._dataset: + del self._dataset.NotchFilterBandwidth + else: + self._dataset.NotchFilterBandwidth = value + + @property + def ChannelImpedanceSequence(self) -> Optional[List[ChannelImpedanceSequenceItem]]: + if "ChannelImpedanceSequence" in self._dataset: + if len(self._ChannelImpedanceSequence) == len(self._dataset.ChannelImpedanceSequence): + return self._ChannelImpedanceSequence + else: + return [ChannelImpedanceSequenceItem(x) for x in self._dataset.ChannelImpedanceSequence] + return None + + @ChannelImpedanceSequence.setter + def ChannelImpedanceSequence(self, value: Optional[List[ChannelImpedanceSequenceItem]]): + if value is None: + self._ChannelImpedanceSequence = [] + if "ChannelImpedanceSequence" in self._dataset: + del self._dataset.ChannelImpedanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelImpedanceSequenceItem) for item in value): + raise ValueError("ChannelImpedanceSequence must be a list of ChannelImpedanceSequenceItem objects") + else: + self._ChannelImpedanceSequence = value + if "ChannelImpedanceSequence" not in self._dataset: + self._dataset.ChannelImpedanceSequence = pydicom.Sequence() + self._dataset.ChannelImpedanceSequence.clear() + self._dataset.ChannelImpedanceSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelImpedance(self, item: ChannelImpedanceSequenceItem): + if not isinstance(item, ChannelImpedanceSequenceItem): + raise ValueError("Item must be an instance of ChannelImpedanceSequenceItem") + self._ChannelImpedanceSequence.append(item) + if "ChannelImpedanceSequence" not in self._dataset: + self._dataset.ChannelImpedanceSequence = pydicom.Sequence() + self._dataset.ChannelImpedanceSequence.append(item.to_dataset()) + + @property + def WaveformAmplifierType(self) -> Optional[str]: + if "WaveformAmplifierType" in self._dataset: + return self._dataset.WaveformAmplifierType + return None + + @WaveformAmplifierType.setter + def WaveformAmplifierType(self, value: Optional[str]): + if value is None: + if "WaveformAmplifierType" in self._dataset: + del self._dataset.WaveformAmplifierType + else: + self._dataset.WaveformAmplifierType = value + + @property + def FilterLowFrequencyCharacteristicsSequence(self) -> Optional[List[FilterLowFrequencyCharacteristicsSequenceItem]]: + if "FilterLowFrequencyCharacteristicsSequence" in self._dataset: + if len(self._FilterLowFrequencyCharacteristicsSequence) == len( + self._dataset.FilterLowFrequencyCharacteristicsSequence + ): + return self._FilterLowFrequencyCharacteristicsSequence + else: + return [ + FilterLowFrequencyCharacteristicsSequenceItem(x) + for x in self._dataset.FilterLowFrequencyCharacteristicsSequence + ] + return None + + @FilterLowFrequencyCharacteristicsSequence.setter + def FilterLowFrequencyCharacteristicsSequence(self, value: Optional[List[FilterLowFrequencyCharacteristicsSequenceItem]]): + if value is None: + self._FilterLowFrequencyCharacteristicsSequence = [] + if "FilterLowFrequencyCharacteristicsSequence" in self._dataset: + del self._dataset.FilterLowFrequencyCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, FilterLowFrequencyCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "FilterLowFrequencyCharacteristicsSequence must be a list of FilterLowFrequencyCharacteristicsSequenceItem" + " objects" + ) + else: + self._FilterLowFrequencyCharacteristicsSequence = value + if "FilterLowFrequencyCharacteristicsSequence" not in self._dataset: + self._dataset.FilterLowFrequencyCharacteristicsSequence = pydicom.Sequence() + self._dataset.FilterLowFrequencyCharacteristicsSequence.clear() + self._dataset.FilterLowFrequencyCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_FilterLowFrequencyCharacteristics(self, item: FilterLowFrequencyCharacteristicsSequenceItem): + if not isinstance(item, FilterLowFrequencyCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of FilterLowFrequencyCharacteristicsSequenceItem") + self._FilterLowFrequencyCharacteristicsSequence.append(item) + if "FilterLowFrequencyCharacteristicsSequence" not in self._dataset: + self._dataset.FilterLowFrequencyCharacteristicsSequence = pydicom.Sequence() + self._dataset.FilterLowFrequencyCharacteristicsSequence.append(item.to_dataset()) + + @property + def FilterHighFrequencyCharacteristicsSequence(self) -> Optional[List[FilterHighFrequencyCharacteristicsSequenceItem]]: + if "FilterHighFrequencyCharacteristicsSequence" in self._dataset: + if len(self._FilterHighFrequencyCharacteristicsSequence) == len( + self._dataset.FilterHighFrequencyCharacteristicsSequence + ): + return self._FilterHighFrequencyCharacteristicsSequence + else: + return [ + FilterHighFrequencyCharacteristicsSequenceItem(x) + for x in self._dataset.FilterHighFrequencyCharacteristicsSequence + ] + return None + + @FilterHighFrequencyCharacteristicsSequence.setter + def FilterHighFrequencyCharacteristicsSequence( + self, value: Optional[List[FilterHighFrequencyCharacteristicsSequenceItem]] + ): + if value is None: + self._FilterHighFrequencyCharacteristicsSequence = [] + if "FilterHighFrequencyCharacteristicsSequence" in self._dataset: + del self._dataset.FilterHighFrequencyCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, FilterHighFrequencyCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "FilterHighFrequencyCharacteristicsSequence must be a list of FilterHighFrequencyCharacteristicsSequenceItem" + " objects" + ) + else: + self._FilterHighFrequencyCharacteristicsSequence = value + if "FilterHighFrequencyCharacteristicsSequence" not in self._dataset: + self._dataset.FilterHighFrequencyCharacteristicsSequence = pydicom.Sequence() + self._dataset.FilterHighFrequencyCharacteristicsSequence.clear() + self._dataset.FilterHighFrequencyCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_FilterHighFrequencyCharacteristics(self, item: FilterHighFrequencyCharacteristicsSequenceItem): + if not isinstance(item, FilterHighFrequencyCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of FilterHighFrequencyCharacteristicsSequenceItem") + self._FilterHighFrequencyCharacteristicsSequence.append(item) + if "FilterHighFrequencyCharacteristicsSequence" not in self._dataset: + self._dataset.FilterHighFrequencyCharacteristicsSequence = pydicom.Sequence() + self._dataset.FilterHighFrequencyCharacteristicsSequence.append(item.to_dataset()) + + @property + def SummarizedFilterLookupTable(self) -> Optional[list]: + if "SummarizedFilterLookupTable" in self._dataset: + return self._dataset.SummarizedFilterLookupTable + return None + + @SummarizedFilterLookupTable.setter + def SummarizedFilterLookupTable(self, value: Optional[list]): + if value is None: + if "SummarizedFilterLookupTable" in self._dataset: + del self._dataset.SummarizedFilterLookupTable + else: + self._dataset.SummarizedFilterLookupTable = value + + @property + def NotchFilterCharacteristicsSequence(self) -> Optional[List[NotchFilterCharacteristicsSequenceItem]]: + if "NotchFilterCharacteristicsSequence" in self._dataset: + if len(self._NotchFilterCharacteristicsSequence) == len(self._dataset.NotchFilterCharacteristicsSequence): + return self._NotchFilterCharacteristicsSequence + else: + return [NotchFilterCharacteristicsSequenceItem(x) for x in self._dataset.NotchFilterCharacteristicsSequence] + return None + + @NotchFilterCharacteristicsSequence.setter + def NotchFilterCharacteristicsSequence(self, value: Optional[List[NotchFilterCharacteristicsSequenceItem]]): + if value is None: + self._NotchFilterCharacteristicsSequence = [] + if "NotchFilterCharacteristicsSequence" in self._dataset: + del self._dataset.NotchFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, NotchFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "NotchFilterCharacteristicsSequence must be a list of NotchFilterCharacteristicsSequenceItem objects" + ) + else: + self._NotchFilterCharacteristicsSequence = value + if "NotchFilterCharacteristicsSequence" not in self._dataset: + self._dataset.NotchFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.NotchFilterCharacteristicsSequence.clear() + self._dataset.NotchFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_NotchFilterCharacteristics(self, item: NotchFilterCharacteristicsSequenceItem): + if not isinstance(item, NotchFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of NotchFilterCharacteristicsSequenceItem") + self._NotchFilterCharacteristicsSequence.append(item) + if "NotchFilterCharacteristicsSequence" not in self._dataset: + self._dataset.NotchFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.NotchFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def ChannelMinimumValue(self) -> Optional[bytes]: + if "ChannelMinimumValue" in self._dataset: + return self._dataset.ChannelMinimumValue + return None + + @ChannelMinimumValue.setter + def ChannelMinimumValue(self, value: Optional[bytes]): + if value is None: + if "ChannelMinimumValue" in self._dataset: + del self._dataset.ChannelMinimumValue + else: + self._dataset.ChannelMinimumValue = value + + @property + def ChannelMaximumValue(self) -> Optional[bytes]: + if "ChannelMaximumValue" in self._dataset: + return self._dataset.ChannelMaximumValue + return None + + @ChannelMaximumValue.setter + def ChannelMaximumValue(self, value: Optional[bytes]): + if value is None: + if "ChannelMaximumValue" in self._dataset: + del self._dataset.ChannelMaximumValue + else: + self._dataset.ChannelMaximumValue = value diff --git a/tdwii_plus_examples/domain_model/channel_delivery_continuation_sequence_item.py b/tdwii_plus_examples/domain_model/channel_delivery_continuation_sequence_item.py new file mode 100644 index 0000000..261e711 --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_delivery_continuation_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ChannelDeliveryContinuationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedChannelNumber(self) -> Optional[int]: + if "ReferencedChannelNumber" in self._dataset: + return self._dataset.ReferencedChannelNumber + return None + + @ReferencedChannelNumber.setter + def ReferencedChannelNumber(self, value: Optional[int]): + if value is None: + if "ReferencedChannelNumber" in self._dataset: + del self._dataset.ReferencedChannelNumber + else: + self._dataset.ReferencedChannelNumber = value + + @property + def StartCumulativeTimeWeight(self) -> Optional[Decimal]: + if "StartCumulativeTimeWeight" in self._dataset: + return self._dataset.StartCumulativeTimeWeight + return None + + @StartCumulativeTimeWeight.setter + def StartCumulativeTimeWeight(self, value: Optional[Decimal]): + if value is None: + if "StartCumulativeTimeWeight" in self._dataset: + del self._dataset.StartCumulativeTimeWeight + else: + self._dataset.StartCumulativeTimeWeight = value + + @property + def EndCumulativeTimeWeight(self) -> Optional[Decimal]: + if "EndCumulativeTimeWeight" in self._dataset: + return self._dataset.EndCumulativeTimeWeight + return None + + @EndCumulativeTimeWeight.setter + def EndCumulativeTimeWeight(self, value: Optional[Decimal]): + if value is None: + if "EndCumulativeTimeWeight" in self._dataset: + del self._dataset.EndCumulativeTimeWeight + else: + self._dataset.EndCumulativeTimeWeight = value diff --git a/tdwii_plus_examples/domain_model/channel_delivery_order_sequence_item.py b/tdwii_plus_examples/domain_model/channel_delivery_order_sequence_item.py new file mode 100644 index 0000000..e5d7d69 --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_delivery_order_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ChannelDeliveryOrderSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedChannelNumber(self) -> Optional[int]: + if "ReferencedChannelNumber" in self._dataset: + return self._dataset.ReferencedChannelNumber + return None + + @ReferencedChannelNumber.setter + def ReferencedChannelNumber(self, value: Optional[int]): + if value is None: + if "ReferencedChannelNumber" in self._dataset: + del self._dataset.ReferencedChannelNumber + else: + self._dataset.ReferencedChannelNumber = value + + @property + def ChannelDeliveryOrderIndex(self) -> Optional[int]: + if "ChannelDeliveryOrderIndex" in self._dataset: + return self._dataset.ChannelDeliveryOrderIndex + return None + + @ChannelDeliveryOrderIndex.setter + def ChannelDeliveryOrderIndex(self, value: Optional[int]): + if value is None: + if "ChannelDeliveryOrderIndex" in self._dataset: + del self._dataset.ChannelDeliveryOrderIndex + else: + self._dataset.ChannelDeliveryOrderIndex = value diff --git a/tdwii_plus_examples/domain_model/channel_display_sequence_item.py b/tdwii_plus_examples/domain_model/channel_display_sequence_item.py new file mode 100644 index 0000000..7f0abeb --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_display_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ChannelDisplaySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ChannelOffset(self) -> Optional[Decimal]: + if "ChannelOffset" in self._dataset: + return self._dataset.ChannelOffset + return None + + @ChannelOffset.setter + def ChannelOffset(self, value: Optional[Decimal]): + if value is None: + if "ChannelOffset" in self._dataset: + del self._dataset.ChannelOffset + else: + self._dataset.ChannelOffset = value + + @property + def ChannelRecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "ChannelRecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.ChannelRecommendedDisplayCIELabValue + return None + + @ChannelRecommendedDisplayCIELabValue.setter + def ChannelRecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ChannelRecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.ChannelRecommendedDisplayCIELabValue + else: + self._dataset.ChannelRecommendedDisplayCIELabValue = value + + @property + def ChannelPosition(self) -> Optional[float]: + if "ChannelPosition" in self._dataset: + return self._dataset.ChannelPosition + return None + + @ChannelPosition.setter + def ChannelPosition(self, value: Optional[float]): + if value is None: + if "ChannelPosition" in self._dataset: + del self._dataset.ChannelPosition + else: + self._dataset.ChannelPosition = value + + @property + def DisplayShadingFlag(self) -> Optional[str]: + if "DisplayShadingFlag" in self._dataset: + return self._dataset.DisplayShadingFlag + return None + + @DisplayShadingFlag.setter + def DisplayShadingFlag(self, value: Optional[str]): + if value is None: + if "DisplayShadingFlag" in self._dataset: + del self._dataset.DisplayShadingFlag + else: + self._dataset.DisplayShadingFlag = value + + @property + def FractionalChannelDisplayScale(self) -> Optional[float]: + if "FractionalChannelDisplayScale" in self._dataset: + return self._dataset.FractionalChannelDisplayScale + return None + + @FractionalChannelDisplayScale.setter + def FractionalChannelDisplayScale(self, value: Optional[float]): + if value is None: + if "FractionalChannelDisplayScale" in self._dataset: + del self._dataset.FractionalChannelDisplayScale + else: + self._dataset.FractionalChannelDisplayScale = value + + @property + def AbsoluteChannelDisplayScale(self) -> Optional[float]: + if "AbsoluteChannelDisplayScale" in self._dataset: + return self._dataset.AbsoluteChannelDisplayScale + return None + + @AbsoluteChannelDisplayScale.setter + def AbsoluteChannelDisplayScale(self, value: Optional[float]): + if value is None: + if "AbsoluteChannelDisplayScale" in self._dataset: + del self._dataset.AbsoluteChannelDisplayScale + else: + self._dataset.AbsoluteChannelDisplayScale = value + + @property + def ReferencedWaveformChannels(self) -> Optional[List[int]]: + if "ReferencedWaveformChannels" in self._dataset: + return self._dataset.ReferencedWaveformChannels + return None + + @ReferencedWaveformChannels.setter + def ReferencedWaveformChannels(self, value: Optional[List[int]]): + if value is None: + if "ReferencedWaveformChannels" in self._dataset: + del self._dataset.ReferencedWaveformChannels + else: + self._dataset.ReferencedWaveformChannels = value diff --git a/tdwii_plus_examples/domain_model/channel_impedance_sequence_item.py b/tdwii_plus_examples/domain_model/channel_impedance_sequence_item.py new file mode 100644 index 0000000..54f6755 --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_impedance_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ChannelImpedanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImpedanceValue(self) -> Optional[Decimal]: + if "ImpedanceValue" in self._dataset: + return self._dataset.ImpedanceValue + return None + + @ImpedanceValue.setter + def ImpedanceValue(self, value: Optional[Decimal]): + if value is None: + if "ImpedanceValue" in self._dataset: + del self._dataset.ImpedanceValue + else: + self._dataset.ImpedanceValue = value + + @property + def ImpedanceMeasurementDateTime(self) -> Optional[str]: + if "ImpedanceMeasurementDateTime" in self._dataset: + return self._dataset.ImpedanceMeasurementDateTime + return None + + @ImpedanceMeasurementDateTime.setter + def ImpedanceMeasurementDateTime(self, value: Optional[str]): + if value is None: + if "ImpedanceMeasurementDateTime" in self._dataset: + del self._dataset.ImpedanceMeasurementDateTime + else: + self._dataset.ImpedanceMeasurementDateTime = value + + @property + def ImpedanceMeasurementFrequency(self) -> Optional[Decimal]: + if "ImpedanceMeasurementFrequency" in self._dataset: + return self._dataset.ImpedanceMeasurementFrequency + return None + + @ImpedanceMeasurementFrequency.setter + def ImpedanceMeasurementFrequency(self, value: Optional[Decimal]): + if value is None: + if "ImpedanceMeasurementFrequency" in self._dataset: + del self._dataset.ImpedanceMeasurementFrequency + else: + self._dataset.ImpedanceMeasurementFrequency = value + + @property + def ImpedanceMeasurementCurrentType(self) -> Optional[str]: + if "ImpedanceMeasurementCurrentType" in self._dataset: + return self._dataset.ImpedanceMeasurementCurrentType + return None + + @ImpedanceMeasurementCurrentType.setter + def ImpedanceMeasurementCurrentType(self, value: Optional[str]): + if value is None: + if "ImpedanceMeasurementCurrentType" in self._dataset: + del self._dataset.ImpedanceMeasurementCurrentType + else: + self._dataset.ImpedanceMeasurementCurrentType = value diff --git a/tdwii_plus_examples/domain_model/channel_sensitivity_units_sequence_item.py b/tdwii_plus_examples/domain_model/channel_sensitivity_units_sequence_item.py new file mode 100644 index 0000000..138303d --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_sensitivity_units_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ChannelSensitivityUnitsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/channel_sequence_item.py b/tdwii_plus_examples/domain_model/channel_sequence_item.py new file mode 100644 index 0000000..040c277 --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_sequence_item.py @@ -0,0 +1,459 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .brachy_control_point_sequence_item import BrachyControlPointSequenceItem +from .channel_shield_sequence_item import ChannelShieldSequenceItem + + +class ChannelSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ChannelShieldSequence: List[ChannelShieldSequenceItem] = [] + self._BrachyControlPointSequence: List[BrachyControlPointSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def NumberOfControlPoints(self) -> Optional[int]: + if "NumberOfControlPoints" in self._dataset: + return self._dataset.NumberOfControlPoints + return None + + @NumberOfControlPoints.setter + def NumberOfControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfControlPoints" in self._dataset: + del self._dataset.NumberOfControlPoints + else: + self._dataset.NumberOfControlPoints = value + + @property + def ChannelEffectiveLength(self) -> Optional[Decimal]: + if "ChannelEffectiveLength" in self._dataset: + return self._dataset.ChannelEffectiveLength + return None + + @ChannelEffectiveLength.setter + def ChannelEffectiveLength(self, value: Optional[Decimal]): + if value is None: + if "ChannelEffectiveLength" in self._dataset: + del self._dataset.ChannelEffectiveLength + else: + self._dataset.ChannelEffectiveLength = value + + @property + def ChannelInnerLength(self) -> Optional[Decimal]: + if "ChannelInnerLength" in self._dataset: + return self._dataset.ChannelInnerLength + return None + + @ChannelInnerLength.setter + def ChannelInnerLength(self, value: Optional[Decimal]): + if value is None: + if "ChannelInnerLength" in self._dataset: + del self._dataset.ChannelInnerLength + else: + self._dataset.ChannelInnerLength = value + + @property + def AfterloaderChannelID(self) -> Optional[str]: + if "AfterloaderChannelID" in self._dataset: + return self._dataset.AfterloaderChannelID + return None + + @AfterloaderChannelID.setter + def AfterloaderChannelID(self, value: Optional[str]): + if value is None: + if "AfterloaderChannelID" in self._dataset: + del self._dataset.AfterloaderChannelID + else: + self._dataset.AfterloaderChannelID = value + + @property + def SourceApplicatorTipLength(self) -> Optional[Decimal]: + if "SourceApplicatorTipLength" in self._dataset: + return self._dataset.SourceApplicatorTipLength + return None + + @SourceApplicatorTipLength.setter + def SourceApplicatorTipLength(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorTipLength" in self._dataset: + del self._dataset.SourceApplicatorTipLength + else: + self._dataset.SourceApplicatorTipLength = value + + @property + def ChannelNumber(self) -> Optional[int]: + if "ChannelNumber" in self._dataset: + return self._dataset.ChannelNumber + return None + + @ChannelNumber.setter + def ChannelNumber(self, value: Optional[int]): + if value is None: + if "ChannelNumber" in self._dataset: + del self._dataset.ChannelNumber + else: + self._dataset.ChannelNumber = value + + @property + def ChannelLength(self) -> Optional[Decimal]: + if "ChannelLength" in self._dataset: + return self._dataset.ChannelLength + return None + + @ChannelLength.setter + def ChannelLength(self, value: Optional[Decimal]): + if value is None: + if "ChannelLength" in self._dataset: + del self._dataset.ChannelLength + else: + self._dataset.ChannelLength = value + + @property + def ChannelTotalTime(self) -> Optional[Decimal]: + if "ChannelTotalTime" in self._dataset: + return self._dataset.ChannelTotalTime + return None + + @ChannelTotalTime.setter + def ChannelTotalTime(self, value: Optional[Decimal]): + if value is None: + if "ChannelTotalTime" in self._dataset: + del self._dataset.ChannelTotalTime + else: + self._dataset.ChannelTotalTime = value + + @property + def SourceMovementType(self) -> Optional[str]: + if "SourceMovementType" in self._dataset: + return self._dataset.SourceMovementType + return None + + @SourceMovementType.setter + def SourceMovementType(self, value: Optional[str]): + if value is None: + if "SourceMovementType" in self._dataset: + del self._dataset.SourceMovementType + else: + self._dataset.SourceMovementType = value + + @property + def NumberOfPulses(self) -> Optional[int]: + if "NumberOfPulses" in self._dataset: + return self._dataset.NumberOfPulses + return None + + @NumberOfPulses.setter + def NumberOfPulses(self, value: Optional[int]): + if value is None: + if "NumberOfPulses" in self._dataset: + del self._dataset.NumberOfPulses + else: + self._dataset.NumberOfPulses = value + + @property + def PulseRepetitionInterval(self) -> Optional[Decimal]: + if "PulseRepetitionInterval" in self._dataset: + return self._dataset.PulseRepetitionInterval + return None + + @PulseRepetitionInterval.setter + def PulseRepetitionInterval(self, value: Optional[Decimal]): + if value is None: + if "PulseRepetitionInterval" in self._dataset: + del self._dataset.PulseRepetitionInterval + else: + self._dataset.PulseRepetitionInterval = value + + @property + def SourceApplicatorNumber(self) -> Optional[int]: + if "SourceApplicatorNumber" in self._dataset: + return self._dataset.SourceApplicatorNumber + return None + + @SourceApplicatorNumber.setter + def SourceApplicatorNumber(self, value: Optional[int]): + if value is None: + if "SourceApplicatorNumber" in self._dataset: + del self._dataset.SourceApplicatorNumber + else: + self._dataset.SourceApplicatorNumber = value + + @property + def SourceApplicatorID(self) -> Optional[str]: + if "SourceApplicatorID" in self._dataset: + return self._dataset.SourceApplicatorID + return None + + @SourceApplicatorID.setter + def SourceApplicatorID(self, value: Optional[str]): + if value is None: + if "SourceApplicatorID" in self._dataset: + del self._dataset.SourceApplicatorID + else: + self._dataset.SourceApplicatorID = value + + @property + def SourceApplicatorType(self) -> Optional[str]: + if "SourceApplicatorType" in self._dataset: + return self._dataset.SourceApplicatorType + return None + + @SourceApplicatorType.setter + def SourceApplicatorType(self, value: Optional[str]): + if value is None: + if "SourceApplicatorType" in self._dataset: + del self._dataset.SourceApplicatorType + else: + self._dataset.SourceApplicatorType = value + + @property + def SourceApplicatorName(self) -> Optional[str]: + if "SourceApplicatorName" in self._dataset: + return self._dataset.SourceApplicatorName + return None + + @SourceApplicatorName.setter + def SourceApplicatorName(self, value: Optional[str]): + if value is None: + if "SourceApplicatorName" in self._dataset: + del self._dataset.SourceApplicatorName + else: + self._dataset.SourceApplicatorName = value + + @property + def SourceApplicatorLength(self) -> Optional[Decimal]: + if "SourceApplicatorLength" in self._dataset: + return self._dataset.SourceApplicatorLength + return None + + @SourceApplicatorLength.setter + def SourceApplicatorLength(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorLength" in self._dataset: + del self._dataset.SourceApplicatorLength + else: + self._dataset.SourceApplicatorLength = value + + @property + def SourceApplicatorManufacturer(self) -> Optional[str]: + if "SourceApplicatorManufacturer" in self._dataset: + return self._dataset.SourceApplicatorManufacturer + return None + + @SourceApplicatorManufacturer.setter + def SourceApplicatorManufacturer(self, value: Optional[str]): + if value is None: + if "SourceApplicatorManufacturer" in self._dataset: + del self._dataset.SourceApplicatorManufacturer + else: + self._dataset.SourceApplicatorManufacturer = value + + @property + def SourceApplicatorWallNominalThickness(self) -> Optional[Decimal]: + if "SourceApplicatorWallNominalThickness" in self._dataset: + return self._dataset.SourceApplicatorWallNominalThickness + return None + + @SourceApplicatorWallNominalThickness.setter + def SourceApplicatorWallNominalThickness(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorWallNominalThickness" in self._dataset: + del self._dataset.SourceApplicatorWallNominalThickness + else: + self._dataset.SourceApplicatorWallNominalThickness = value + + @property + def SourceApplicatorWallNominalTransmission(self) -> Optional[Decimal]: + if "SourceApplicatorWallNominalTransmission" in self._dataset: + return self._dataset.SourceApplicatorWallNominalTransmission + return None + + @SourceApplicatorWallNominalTransmission.setter + def SourceApplicatorWallNominalTransmission(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorWallNominalTransmission" in self._dataset: + del self._dataset.SourceApplicatorWallNominalTransmission + else: + self._dataset.SourceApplicatorWallNominalTransmission = value + + @property + def SourceApplicatorStepSize(self) -> Optional[Decimal]: + if "SourceApplicatorStepSize" in self._dataset: + return self._dataset.SourceApplicatorStepSize + return None + + @SourceApplicatorStepSize.setter + def SourceApplicatorStepSize(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorStepSize" in self._dataset: + del self._dataset.SourceApplicatorStepSize + else: + self._dataset.SourceApplicatorStepSize = value + + @property + def ApplicatorShapeReferencedROINumber(self) -> Optional[int]: + if "ApplicatorShapeReferencedROINumber" in self._dataset: + return self._dataset.ApplicatorShapeReferencedROINumber + return None + + @ApplicatorShapeReferencedROINumber.setter + def ApplicatorShapeReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ApplicatorShapeReferencedROINumber" in self._dataset: + del self._dataset.ApplicatorShapeReferencedROINumber + else: + self._dataset.ApplicatorShapeReferencedROINumber = value + + @property + def TransferTubeNumber(self) -> Optional[int]: + if "TransferTubeNumber" in self._dataset: + return self._dataset.TransferTubeNumber + return None + + @TransferTubeNumber.setter + def TransferTubeNumber(self, value: Optional[int]): + if value is None: + if "TransferTubeNumber" in self._dataset: + del self._dataset.TransferTubeNumber + else: + self._dataset.TransferTubeNumber = value + + @property + def TransferTubeLength(self) -> Optional[Decimal]: + if "TransferTubeLength" in self._dataset: + return self._dataset.TransferTubeLength + return None + + @TransferTubeLength.setter + def TransferTubeLength(self, value: Optional[Decimal]): + if value is None: + if "TransferTubeLength" in self._dataset: + del self._dataset.TransferTubeLength + else: + self._dataset.TransferTubeLength = value + + @property + def ChannelShieldSequence(self) -> Optional[List[ChannelShieldSequenceItem]]: + if "ChannelShieldSequence" in self._dataset: + if len(self._ChannelShieldSequence) == len(self._dataset.ChannelShieldSequence): + return self._ChannelShieldSequence + else: + return [ChannelShieldSequenceItem(x) for x in self._dataset.ChannelShieldSequence] + return None + + @ChannelShieldSequence.setter + def ChannelShieldSequence(self, value: Optional[List[ChannelShieldSequenceItem]]): + if value is None: + self._ChannelShieldSequence = [] + if "ChannelShieldSequence" in self._dataset: + del self._dataset.ChannelShieldSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelShieldSequenceItem) for item in value): + raise ValueError("ChannelShieldSequence must be a list of ChannelShieldSequenceItem objects") + else: + self._ChannelShieldSequence = value + if "ChannelShieldSequence" not in self._dataset: + self._dataset.ChannelShieldSequence = pydicom.Sequence() + self._dataset.ChannelShieldSequence.clear() + self._dataset.ChannelShieldSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelShield(self, item: ChannelShieldSequenceItem): + if not isinstance(item, ChannelShieldSequenceItem): + raise ValueError("Item must be an instance of ChannelShieldSequenceItem") + self._ChannelShieldSequence.append(item) + if "ChannelShieldSequence" not in self._dataset: + self._dataset.ChannelShieldSequence = pydicom.Sequence() + self._dataset.ChannelShieldSequence.append(item.to_dataset()) + + @property + def FinalCumulativeTimeWeight(self) -> Optional[Decimal]: + if "FinalCumulativeTimeWeight" in self._dataset: + return self._dataset.FinalCumulativeTimeWeight + return None + + @FinalCumulativeTimeWeight.setter + def FinalCumulativeTimeWeight(self, value: Optional[Decimal]): + if value is None: + if "FinalCumulativeTimeWeight" in self._dataset: + del self._dataset.FinalCumulativeTimeWeight + else: + self._dataset.FinalCumulativeTimeWeight = value + + @property + def BrachyControlPointSequence(self) -> Optional[List[BrachyControlPointSequenceItem]]: + if "BrachyControlPointSequence" in self._dataset: + if len(self._BrachyControlPointSequence) == len(self._dataset.BrachyControlPointSequence): + return self._BrachyControlPointSequence + else: + return [BrachyControlPointSequenceItem(x) for x in self._dataset.BrachyControlPointSequence] + return None + + @BrachyControlPointSequence.setter + def BrachyControlPointSequence(self, value: Optional[List[BrachyControlPointSequenceItem]]): + if value is None: + self._BrachyControlPointSequence = [] + if "BrachyControlPointSequence" in self._dataset: + del self._dataset.BrachyControlPointSequence + elif not isinstance(value, list) or not all(isinstance(item, BrachyControlPointSequenceItem) for item in value): + raise ValueError("BrachyControlPointSequence must be a list of BrachyControlPointSequenceItem objects") + else: + self._BrachyControlPointSequence = value + if "BrachyControlPointSequence" not in self._dataset: + self._dataset.BrachyControlPointSequence = pydicom.Sequence() + self._dataset.BrachyControlPointSequence.clear() + self._dataset.BrachyControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_BrachyControlPoint(self, item: BrachyControlPointSequenceItem): + if not isinstance(item, BrachyControlPointSequenceItem): + raise ValueError("Item must be an instance of BrachyControlPointSequenceItem") + self._BrachyControlPointSequence.append(item) + if "BrachyControlPointSequence" not in self._dataset: + self._dataset.BrachyControlPointSequence = pydicom.Sequence() + self._dataset.BrachyControlPointSequence.append(item.to_dataset()) + + @property + def ReferencedSourceNumber(self) -> Optional[int]: + if "ReferencedSourceNumber" in self._dataset: + return self._dataset.ReferencedSourceNumber + return None + + @ReferencedSourceNumber.setter + def ReferencedSourceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSourceNumber" in self._dataset: + del self._dataset.ReferencedSourceNumber + else: + self._dataset.ReferencedSourceNumber = value diff --git a/tdwii_plus_examples/domain_model/channel_shield_sequence_item.py b/tdwii_plus_examples/domain_model/channel_shield_sequence_item.py new file mode 100644 index 0000000..bea0fa8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_shield_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ChannelShieldSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def ChannelShieldNumber(self) -> Optional[int]: + if "ChannelShieldNumber" in self._dataset: + return self._dataset.ChannelShieldNumber + return None + + @ChannelShieldNumber.setter + def ChannelShieldNumber(self, value: Optional[int]): + if value is None: + if "ChannelShieldNumber" in self._dataset: + del self._dataset.ChannelShieldNumber + else: + self._dataset.ChannelShieldNumber = value + + @property + def ChannelShieldID(self) -> Optional[str]: + if "ChannelShieldID" in self._dataset: + return self._dataset.ChannelShieldID + return None + + @ChannelShieldID.setter + def ChannelShieldID(self, value: Optional[str]): + if value is None: + if "ChannelShieldID" in self._dataset: + del self._dataset.ChannelShieldID + else: + self._dataset.ChannelShieldID = value + + @property + def ChannelShieldName(self) -> Optional[str]: + if "ChannelShieldName" in self._dataset: + return self._dataset.ChannelShieldName + return None + + @ChannelShieldName.setter + def ChannelShieldName(self, value: Optional[str]): + if value is None: + if "ChannelShieldName" in self._dataset: + del self._dataset.ChannelShieldName + else: + self._dataset.ChannelShieldName = value + + @property + def ChannelShieldNominalThickness(self) -> Optional[Decimal]: + if "ChannelShieldNominalThickness" in self._dataset: + return self._dataset.ChannelShieldNominalThickness + return None + + @ChannelShieldNominalThickness.setter + def ChannelShieldNominalThickness(self, value: Optional[Decimal]): + if value is None: + if "ChannelShieldNominalThickness" in self._dataset: + del self._dataset.ChannelShieldNominalThickness + else: + self._dataset.ChannelShieldNominalThickness = value + + @property + def ChannelShieldNominalTransmission(self) -> Optional[Decimal]: + if "ChannelShieldNominalTransmission" in self._dataset: + return self._dataset.ChannelShieldNominalTransmission + return None + + @ChannelShieldNominalTransmission.setter + def ChannelShieldNominalTransmission(self, value: Optional[Decimal]): + if value is None: + if "ChannelShieldNominalTransmission" in self._dataset: + del self._dataset.ChannelShieldNominalTransmission + else: + self._dataset.ChannelShieldNominalTransmission = value diff --git a/tdwii_plus_examples/domain_model/channel_source_modifiers_sequence_item.py b/tdwii_plus_examples/domain_model/channel_source_modifiers_sequence_item.py new file mode 100644 index 0000000..f3f91ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_source_modifiers_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ChannelSourceModifiersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/channel_source_sequence_item.py b/tdwii_plus_examples/domain_model/channel_source_sequence_item.py new file mode 100644 index 0000000..ebc6ba4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/channel_source_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ChannelSourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/chemical_shift_sequence_item.py b/tdwii_plus_examples/domain_model/chemical_shift_sequence_item.py new file mode 100644 index 0000000..9df9102 --- /dev/null +++ b/tdwii_plus_examples/domain_model/chemical_shift_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ChemicalShiftSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ChemicalShiftMinimumIntegrationLimitInppm(self) -> Optional[float]: + if "ChemicalShiftMinimumIntegrationLimitInppm" in self._dataset: + return self._dataset.ChemicalShiftMinimumIntegrationLimitInppm + return None + + @ChemicalShiftMinimumIntegrationLimitInppm.setter + def ChemicalShiftMinimumIntegrationLimitInppm(self, value: Optional[float]): + if value is None: + if "ChemicalShiftMinimumIntegrationLimitInppm" in self._dataset: + del self._dataset.ChemicalShiftMinimumIntegrationLimitInppm + else: + self._dataset.ChemicalShiftMinimumIntegrationLimitInppm = value + + @property + def ChemicalShiftMaximumIntegrationLimitInppm(self) -> Optional[float]: + if "ChemicalShiftMaximumIntegrationLimitInppm" in self._dataset: + return self._dataset.ChemicalShiftMaximumIntegrationLimitInppm + return None + + @ChemicalShiftMaximumIntegrationLimitInppm.setter + def ChemicalShiftMaximumIntegrationLimitInppm(self, value: Optional[float]): + if value is None: + if "ChemicalShiftMaximumIntegrationLimitInppm" in self._dataset: + del self._dataset.ChemicalShiftMaximumIntegrationLimitInppm + else: + self._dataset.ChemicalShiftMaximumIntegrationLimitInppm = value diff --git a/tdwii_plus_examples/domain_model/chest_cad_sr.py b/tdwii_plus_examples/domain_model/chest_cad_sr.py new file mode 100644 index 0000000..089be23 --- /dev/null +++ b/tdwii_plus_examples/domain_model/chest_cad_sr.py @@ -0,0 +1,4617 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class ChestCadSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/code_sequence_item.py b/tdwii_plus_examples/domain_model/code_sequence_item.py new file mode 100644 index 0000000..9d8dbf6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/code_sequence_item.py @@ -0,0 +1,161 @@ +from __future__ import annotations + +from typing import List, Optional # noqa + + +class CodeSequenceItem: + def __init__(self): + self._CodeValue = None + self._CodingSchemeDesignator = None + self._CodingSchemeVersion = None + self._CodeMeaning = None + self._MappingResource = None + self._ContextGroupVersion = None + self._ContextGroupLocalVersion = None + self._ContextGroupExtensionFlag = None + self._ContextGroupExtensionCreatorUID = None + self._ContextIdentifier = None + self._ContextUID = None + self._MappingResourceUID = None + self._LongCodeValue = None + self._URNCodeValue = None + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + self._MappingResourceName = None + + @property + def CodeValue(self): + return self._CodeValue + + @CodeValue.setter + def CodeValue(self, value): + self._CodeValue = value + + @property + def CodingSchemeDesignator(self): + return self._CodingSchemeDesignator + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value): + self._CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self): + return self._CodingSchemeVersion + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value): + self._CodingSchemeVersion = value + + @property + def CodeMeaning(self): + return self._CodeMeaning + + @CodeMeaning.setter + def CodeMeaning(self, value): + self._CodeMeaning = value + + @property + def MappingResource(self): + return self._MappingResource + + @MappingResource.setter + def MappingResource(self, value): + self._MappingResource = value + + @property + def ContextGroupVersion(self): + return self._ContextGroupVersion + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value): + self._ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self): + return self._ContextGroupLocalVersion + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value): + self._ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self): + return self._ContextGroupExtensionFlag + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value): + self._ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self): + return self._ContextGroupExtensionCreatorUID + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value): + self._ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self): + return self._ContextIdentifier + + @ContextIdentifier.setter + def ContextIdentifier(self, value): + self._ContextIdentifier = value + + @property + def ContextUID(self): + return self._ContextUID + + @ContextUID.setter + def ContextUID(self, value): + self._ContextUID = value + + @property + def MappingResourceUID(self): + return self._MappingResourceUID + + @MappingResourceUID.setter + def MappingResourceUID(self, value): + self._MappingResourceUID = value + + @property + def LongCodeValue(self): + return self._LongCodeValue + + @LongCodeValue.setter + def LongCodeValue(self, value): + self._LongCodeValue = value + + @property + def URNCodeValue(self): + return self._URNCodeValue + + @URNCodeValue.setter + def URNCodeValue(self, value): + self._URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> List[CodeSequenceItem]: + return self._EquivalentCodeSequence + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + + @property + def MappingResourceName(self): + return self._MappingResourceName + + @MappingResourceName.setter + def MappingResourceName(self, value): + self._MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/coding_scheme_identification_sequence_item.py b/tdwii_plus_examples/domain_model/coding_scheme_identification_sequence_item.py new file mode 100644 index 0000000..69a3433 --- /dev/null +++ b/tdwii_plus_examples/domain_model/coding_scheme_identification_sequence_item.py @@ -0,0 +1,144 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .coding_scheme_resources_sequence_item import CodingSchemeResourcesSequenceItem + + +class CodingSchemeIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeResourcesSequence: List[CodingSchemeResourcesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodingSchemeResourcesSequence(self) -> Optional[List[CodingSchemeResourcesSequenceItem]]: + if "CodingSchemeResourcesSequence" in self._dataset: + if len(self._CodingSchemeResourcesSequence) == len(self._dataset.CodingSchemeResourcesSequence): + return self._CodingSchemeResourcesSequence + else: + return [CodingSchemeResourcesSequenceItem(x) for x in self._dataset.CodingSchemeResourcesSequence] + return None + + @CodingSchemeResourcesSequence.setter + def CodingSchemeResourcesSequence(self, value: Optional[List[CodingSchemeResourcesSequenceItem]]): + if value is None: + self._CodingSchemeResourcesSequence = [] + if "CodingSchemeResourcesSequence" in self._dataset: + del self._dataset.CodingSchemeResourcesSequence + elif not isinstance(value, list) or not all(isinstance(item, CodingSchemeResourcesSequenceItem) for item in value): + raise ValueError("CodingSchemeResourcesSequence must be a list of CodingSchemeResourcesSequenceItem objects") + else: + self._CodingSchemeResourcesSequence = value + if "CodingSchemeResourcesSequence" not in self._dataset: + self._dataset.CodingSchemeResourcesSequence = pydicom.Sequence() + self._dataset.CodingSchemeResourcesSequence.clear() + self._dataset.CodingSchemeResourcesSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeResources(self, item: CodingSchemeResourcesSequenceItem): + if not isinstance(item, CodingSchemeResourcesSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeResourcesSequenceItem") + self._CodingSchemeResourcesSequence.append(item) + if "CodingSchemeResourcesSequence" not in self._dataset: + self._dataset.CodingSchemeResourcesSequence = pydicom.Sequence() + self._dataset.CodingSchemeResourcesSequence.append(item.to_dataset()) + + @property + def CodingSchemeUID(self) -> Optional[str]: + if "CodingSchemeUID" in self._dataset: + return self._dataset.CodingSchemeUID + return None + + @CodingSchemeUID.setter + def CodingSchemeUID(self, value: Optional[str]): + if value is None: + if "CodingSchemeUID" in self._dataset: + del self._dataset.CodingSchemeUID + else: + self._dataset.CodingSchemeUID = value + + @property + def CodingSchemeRegistry(self) -> Optional[str]: + if "CodingSchemeRegistry" in self._dataset: + return self._dataset.CodingSchemeRegistry + return None + + @CodingSchemeRegistry.setter + def CodingSchemeRegistry(self, value: Optional[str]): + if value is None: + if "CodingSchemeRegistry" in self._dataset: + del self._dataset.CodingSchemeRegistry + else: + self._dataset.CodingSchemeRegistry = value + + @property + def CodingSchemeExternalID(self) -> Optional[str]: + if "CodingSchemeExternalID" in self._dataset: + return self._dataset.CodingSchemeExternalID + return None + + @CodingSchemeExternalID.setter + def CodingSchemeExternalID(self, value: Optional[str]): + if value is None: + if "CodingSchemeExternalID" in self._dataset: + del self._dataset.CodingSchemeExternalID + else: + self._dataset.CodingSchemeExternalID = value + + @property + def CodingSchemeName(self) -> Optional[str]: + if "CodingSchemeName" in self._dataset: + return self._dataset.CodingSchemeName + return None + + @CodingSchemeName.setter + def CodingSchemeName(self, value: Optional[str]): + if value is None: + if "CodingSchemeName" in self._dataset: + del self._dataset.CodingSchemeName + else: + self._dataset.CodingSchemeName = value + + @property + def CodingSchemeResponsibleOrganization(self) -> Optional[str]: + if "CodingSchemeResponsibleOrganization" in self._dataset: + return self._dataset.CodingSchemeResponsibleOrganization + return None + + @CodingSchemeResponsibleOrganization.setter + def CodingSchemeResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "CodingSchemeResponsibleOrganization" in self._dataset: + del self._dataset.CodingSchemeResponsibleOrganization + else: + self._dataset.CodingSchemeResponsibleOrganization = value diff --git a/tdwii_plus_examples/domain_model/coding_scheme_resources_sequence_item.py b/tdwii_plus_examples/domain_model/coding_scheme_resources_sequence_item.py new file mode 100644 index 0000000..44f6978 --- /dev/null +++ b/tdwii_plus_examples/domain_model/coding_scheme_resources_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CodingSchemeResourcesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodingSchemeURLType(self) -> Optional[str]: + if "CodingSchemeURLType" in self._dataset: + return self._dataset.CodingSchemeURLType + return None + + @CodingSchemeURLType.setter + def CodingSchemeURLType(self, value: Optional[str]): + if value is None: + if "CodingSchemeURLType" in self._dataset: + del self._dataset.CodingSchemeURLType + else: + self._dataset.CodingSchemeURLType = value + + @property + def CodingSchemeURL(self) -> Optional[str]: + if "CodingSchemeURL" in self._dataset: + return self._dataset.CodingSchemeURL + return None + + @CodingSchemeURL.setter + def CodingSchemeURL(self, value: Optional[str]): + if value is None: + if "CodingSchemeURL" in self._dataset: + del self._dataset.CodingSchemeURL + else: + self._dataset.CodingSchemeURL = value diff --git a/tdwii_plus_examples/domain_model/collimator_shape_sequence_item.py b/tdwii_plus_examples/domain_model/collimator_shape_sequence_item.py new file mode 100644 index 0000000..f6a09f5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/collimator_shape_sequence_item.py @@ -0,0 +1,123 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CollimatorShapeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value diff --git a/tdwii_plus_examples/domain_model/colon_cad_sr.py b/tdwii_plus_examples/domain_model/colon_cad_sr.py new file mode 100644 index 0000000..8165808 --- /dev/null +++ b/tdwii_plus_examples/domain_model/colon_cad_sr.py @@ -0,0 +1,4561 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class ColonCadSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/color_softcopy_presentation_state.py b/tdwii_plus_examples/domain_model/color_softcopy_presentation_state.py new file mode 100644 index 0000000..65ec961 --- /dev/null +++ b/tdwii_plus_examples/domain_model/color_softcopy_presentation_state.py @@ -0,0 +1,4943 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class ColorSoftcopyPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def OverlayActivationLayer(self) -> Optional[str]: + if "OverlayActivationLayer" in self._dataset: + return self._dataset.OverlayActivationLayer + return None + + @OverlayActivationLayer.setter + def OverlayActivationLayer(self, value: Optional[str]): + if value is None: + if "OverlayActivationLayer" in self._dataset: + del self._dataset.OverlayActivationLayer + else: + self._dataset.OverlayActivationLayer = value + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterOverlayGroup(self) -> Optional[int]: + if "ShutterOverlayGroup" in self._dataset: + return self._dataset.ShutterOverlayGroup + return None + + @ShutterOverlayGroup.setter + def ShutterOverlayGroup(self, value: Optional[int]): + if value is None: + if "ShutterOverlayGroup" in self._dataset: + del self._dataset.ShutterOverlayGroup + else: + self._dataset.ShutterOverlayGroup = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/combination_segment_reference_sequence_item.py b/tdwii_plus_examples/domain_model/combination_segment_reference_sequence_item.py new file mode 100644 index 0000000..d9babb8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/combination_segment_reference_sequence_item.py @@ -0,0 +1,364 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .conceptual_volume_constituent_sequence_item import ( + ConceptualVolumeConstituentSequenceItem, +) +from .conceptual_volume_segmentation_reference_sequence_item import ( + ConceptualVolumeSegmentationReferenceSequenceItem, +) +from .derivation_conceptual_volume_sequence_item import ( + DerivationConceptualVolumeSequenceItem, +) +from .equivalent_conceptual_volumes_sequence_item import ( + EquivalentConceptualVolumesSequenceItem, +) +from .originating_sop_instance_reference_sequence_item import ( + OriginatingSOPInstanceReferenceSequenceItem, +) + + +class CombinationSegmentReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SegmentedPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._SegmentedPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + self._OriginatingSOPInstanceReferenceSequence: List[OriginatingSOPInstanceReferenceSequenceItem] = [] + self._ConceptualVolumeConstituentSequence: List[ConceptualVolumeConstituentSequenceItem] = [] + self._EquivalentConceptualVolumesSequence: List[EquivalentConceptualVolumesSequenceItem] = [] + self._ConceptualVolumeSegmentationReferenceSequence: List[ConceptualVolumeSegmentationReferenceSequenceItem] = [] + self._DerivationConceptualVolumeSequence: List[DerivationConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SegmentedPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + if len(self._SegmentedPropertyCategoryCodeSequence) == len(self._dataset.SegmentedPropertyCategoryCodeSequence): + return self._SegmentedPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyCategoryCodeSequence] + return None + + @SegmentedPropertyCategoryCodeSequence.setter + def SegmentedPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyCategoryCodeSequence = [] + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyCategoryCodeSequence = value + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.clear() + self._dataset.SegmentedPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyCategoryCodeSequence.append(item) + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def SegmentedPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + if len(self._SegmentedPropertyTypeCodeSequence) == len(self._dataset.SegmentedPropertyTypeCodeSequence): + return self._SegmentedPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyTypeCodeSequence] + return None + + @SegmentedPropertyTypeCodeSequence.setter + def SegmentedPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyTypeCodeSequence = [] + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyTypeCodeSequence = value + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.clear() + self._dataset.SegmentedPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyTypeCodeSequence.append(item) + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeUID(self) -> Optional[str]: + if "ConceptualVolumeUID" in self._dataset: + return self._dataset.ConceptualVolumeUID + return None + + @ConceptualVolumeUID.setter + def ConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeUID" in self._dataset: + del self._dataset.ConceptualVolumeUID + else: + self._dataset.ConceptualVolumeUID = value + + @property + def OriginatingSOPInstanceReferenceSequence(self) -> Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]: + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + if len(self._OriginatingSOPInstanceReferenceSequence) == len( + self._dataset.OriginatingSOPInstanceReferenceSequence + ): + return self._OriginatingSOPInstanceReferenceSequence + else: + return [ + OriginatingSOPInstanceReferenceSequenceItem(x) + for x in self._dataset.OriginatingSOPInstanceReferenceSequence + ] + return None + + @OriginatingSOPInstanceReferenceSequence.setter + def OriginatingSOPInstanceReferenceSequence(self, value: Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]): + if value is None: + self._OriginatingSOPInstanceReferenceSequence = [] + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + del self._dataset.OriginatingSOPInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, OriginatingSOPInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "OriginatingSOPInstanceReferenceSequence must be a list of OriginatingSOPInstanceReferenceSequenceItem objects" + ) + else: + self._OriginatingSOPInstanceReferenceSequence = value + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.clear() + self._dataset.OriginatingSOPInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_OriginatingSOPInstanceReference(self, item: OriginatingSOPInstanceReferenceSequenceItem): + if not isinstance(item, OriginatingSOPInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of OriginatingSOPInstanceReferenceSequenceItem") + self._OriginatingSOPInstanceReferenceSequence.append(item) + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeConstituentSequence(self) -> Optional[List[ConceptualVolumeConstituentSequenceItem]]: + if "ConceptualVolumeConstituentSequence" in self._dataset: + if len(self._ConceptualVolumeConstituentSequence) == len(self._dataset.ConceptualVolumeConstituentSequence): + return self._ConceptualVolumeConstituentSequence + else: + return [ConceptualVolumeConstituentSequenceItem(x) for x in self._dataset.ConceptualVolumeConstituentSequence] + return None + + @ConceptualVolumeConstituentSequence.setter + def ConceptualVolumeConstituentSequence(self, value: Optional[List[ConceptualVolumeConstituentSequenceItem]]): + if value is None: + self._ConceptualVolumeConstituentSequence = [] + if "ConceptualVolumeConstituentSequence" in self._dataset: + del self._dataset.ConceptualVolumeConstituentSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeConstituentSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeConstituentSequence must be a list of ConceptualVolumeConstituentSequenceItem objects" + ) + else: + self._ConceptualVolumeConstituentSequence = value + if "ConceptualVolumeConstituentSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSequence.clear() + self._dataset.ConceptualVolumeConstituentSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeConstituent(self, item: ConceptualVolumeConstituentSequenceItem): + if not isinstance(item, ConceptualVolumeConstituentSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeConstituentSequenceItem") + self._ConceptualVolumeConstituentSequence.append(item) + if "ConceptualVolumeConstituentSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSequence.append(item.to_dataset()) + + @property + def EquivalentConceptualVolumesSequence(self) -> Optional[List[EquivalentConceptualVolumesSequenceItem]]: + if "EquivalentConceptualVolumesSequence" in self._dataset: + if len(self._EquivalentConceptualVolumesSequence) == len(self._dataset.EquivalentConceptualVolumesSequence): + return self._EquivalentConceptualVolumesSequence + else: + return [EquivalentConceptualVolumesSequenceItem(x) for x in self._dataset.EquivalentConceptualVolumesSequence] + return None + + @EquivalentConceptualVolumesSequence.setter + def EquivalentConceptualVolumesSequence(self, value: Optional[List[EquivalentConceptualVolumesSequenceItem]]): + if value is None: + self._EquivalentConceptualVolumesSequence = [] + if "EquivalentConceptualVolumesSequence" in self._dataset: + del self._dataset.EquivalentConceptualVolumesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquivalentConceptualVolumesSequenceItem) for item in value + ): + raise ValueError( + "EquivalentConceptualVolumesSequence must be a list of EquivalentConceptualVolumesSequenceItem objects" + ) + else: + self._EquivalentConceptualVolumesSequence = value + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.clear() + self._dataset.EquivalentConceptualVolumesSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentConceptualVolumes(self, item: EquivalentConceptualVolumesSequenceItem): + if not isinstance(item, EquivalentConceptualVolumesSequenceItem): + raise ValueError("Item must be an instance of EquivalentConceptualVolumesSequenceItem") + self._EquivalentConceptualVolumesSequence.append(item) + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeCombinationExpression(self) -> Optional[str]: + if "ConceptualVolumeCombinationExpression" in self._dataset: + return self._dataset.ConceptualVolumeCombinationExpression + return None + + @ConceptualVolumeCombinationExpression.setter + def ConceptualVolumeCombinationExpression(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeCombinationExpression" in self._dataset: + del self._dataset.ConceptualVolumeCombinationExpression + else: + self._dataset.ConceptualVolumeCombinationExpression = value + + @property + def ConceptualVolumeCombinationFlag(self) -> Optional[str]: + if "ConceptualVolumeCombinationFlag" in self._dataset: + return self._dataset.ConceptualVolumeCombinationFlag + return None + + @ConceptualVolumeCombinationFlag.setter + def ConceptualVolumeCombinationFlag(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeCombinationFlag" in self._dataset: + del self._dataset.ConceptualVolumeCombinationFlag + else: + self._dataset.ConceptualVolumeCombinationFlag = value + + @property + def ConceptualVolumeCombinationDescription(self) -> Optional[str]: + if "ConceptualVolumeCombinationDescription" in self._dataset: + return self._dataset.ConceptualVolumeCombinationDescription + return None + + @ConceptualVolumeCombinationDescription.setter + def ConceptualVolumeCombinationDescription(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeCombinationDescription" in self._dataset: + del self._dataset.ConceptualVolumeCombinationDescription + else: + self._dataset.ConceptualVolumeCombinationDescription = value + + @property + def ConceptualVolumeSegmentationDefinedFlag(self) -> Optional[str]: + if "ConceptualVolumeSegmentationDefinedFlag" in self._dataset: + return self._dataset.ConceptualVolumeSegmentationDefinedFlag + return None + + @ConceptualVolumeSegmentationDefinedFlag.setter + def ConceptualVolumeSegmentationDefinedFlag(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeSegmentationDefinedFlag" in self._dataset: + del self._dataset.ConceptualVolumeSegmentationDefinedFlag + else: + self._dataset.ConceptualVolumeSegmentationDefinedFlag = value + + @property + def ConceptualVolumeSegmentationReferenceSequence( + self, + ) -> Optional[List[ConceptualVolumeSegmentationReferenceSequenceItem]]: + if "ConceptualVolumeSegmentationReferenceSequence" in self._dataset: + if len(self._ConceptualVolumeSegmentationReferenceSequence) == len( + self._dataset.ConceptualVolumeSegmentationReferenceSequence + ): + return self._ConceptualVolumeSegmentationReferenceSequence + else: + return [ + ConceptualVolumeSegmentationReferenceSequenceItem(x) + for x in self._dataset.ConceptualVolumeSegmentationReferenceSequence + ] + return None + + @ConceptualVolumeSegmentationReferenceSequence.setter + def ConceptualVolumeSegmentationReferenceSequence( + self, value: Optional[List[ConceptualVolumeSegmentationReferenceSequenceItem]] + ): + if value is None: + self._ConceptualVolumeSegmentationReferenceSequence = [] + if "ConceptualVolumeSegmentationReferenceSequence" in self._dataset: + del self._dataset.ConceptualVolumeSegmentationReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeSegmentationReferenceSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeSegmentationReferenceSequence must be a list of" + " ConceptualVolumeSegmentationReferenceSequenceItem objects" + ) + else: + self._ConceptualVolumeSegmentationReferenceSequence = value + if "ConceptualVolumeSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSegmentationReferenceSequence.clear() + self._dataset.ConceptualVolumeSegmentationReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeSegmentationReference(self, item: ConceptualVolumeSegmentationReferenceSequenceItem): + if not isinstance(item, ConceptualVolumeSegmentationReferenceSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSegmentationReferenceSequenceItem") + self._ConceptualVolumeSegmentationReferenceSequence.append(item) + if "ConceptualVolumeSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSegmentationReferenceSequence.append(item.to_dataset()) + + @property + def DerivationConceptualVolumeSequence(self) -> Optional[List[DerivationConceptualVolumeSequenceItem]]: + if "DerivationConceptualVolumeSequence" in self._dataset: + if len(self._DerivationConceptualVolumeSequence) == len(self._dataset.DerivationConceptualVolumeSequence): + return self._DerivationConceptualVolumeSequence + else: + return [DerivationConceptualVolumeSequenceItem(x) for x in self._dataset.DerivationConceptualVolumeSequence] + return None + + @DerivationConceptualVolumeSequence.setter + def DerivationConceptualVolumeSequence(self, value: Optional[List[DerivationConceptualVolumeSequenceItem]]): + if value is None: + self._DerivationConceptualVolumeSequence = [] + if "DerivationConceptualVolumeSequence" in self._dataset: + del self._dataset.DerivationConceptualVolumeSequence + elif not isinstance(value, list) or not all( + isinstance(item, DerivationConceptualVolumeSequenceItem) for item in value + ): + raise ValueError( + "DerivationConceptualVolumeSequence must be a list of DerivationConceptualVolumeSequenceItem objects" + ) + else: + self._DerivationConceptualVolumeSequence = value + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.clear() + self._dataset.DerivationConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationConceptualVolume(self, item: DerivationConceptualVolumeSequenceItem): + if not isinstance(item, DerivationConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of DerivationConceptualVolumeSequenceItem") + self._DerivationConceptualVolumeSequence.append(item) + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/compensator_definition_sequence_item.py b/tdwii_plus_examples/domain_model/compensator_definition_sequence_item.py new file mode 100644 index 0000000..6322ff9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/compensator_definition_sequence_item.py @@ -0,0 +1,422 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .compensator_shape_sequence_item import CompensatorShapeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class CompensatorDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._CompensatorShapeSequence: List[CompensatorShapeSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def CompensatorMapOrientation(self) -> Optional[str]: + if "CompensatorMapOrientation" in self._dataset: + return self._dataset.CompensatorMapOrientation + return None + + @CompensatorMapOrientation.setter + def CompensatorMapOrientation(self, value: Optional[str]): + if value is None: + if "CompensatorMapOrientation" in self._dataset: + del self._dataset.CompensatorMapOrientation + else: + self._dataset.CompensatorMapOrientation = value + + @property + def CompensatorBasePlaneOffset(self) -> Optional[float]: + if "CompensatorBasePlaneOffset" in self._dataset: + return self._dataset.CompensatorBasePlaneOffset + return None + + @CompensatorBasePlaneOffset.setter + def CompensatorBasePlaneOffset(self, value: Optional[float]): + if value is None: + if "CompensatorBasePlaneOffset" in self._dataset: + del self._dataset.CompensatorBasePlaneOffset + else: + self._dataset.CompensatorBasePlaneOffset = value + + @property + def CompensatorShapeSequence(self) -> Optional[List[CompensatorShapeSequenceItem]]: + if "CompensatorShapeSequence" in self._dataset: + if len(self._CompensatorShapeSequence) == len(self._dataset.CompensatorShapeSequence): + return self._CompensatorShapeSequence + else: + return [CompensatorShapeSequenceItem(x) for x in self._dataset.CompensatorShapeSequence] + return None + + @CompensatorShapeSequence.setter + def CompensatorShapeSequence(self, value: Optional[List[CompensatorShapeSequenceItem]]): + if value is None: + self._CompensatorShapeSequence = [] + if "CompensatorShapeSequence" in self._dataset: + del self._dataset.CompensatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CompensatorShapeSequenceItem) for item in value): + raise ValueError("CompensatorShapeSequence must be a list of CompensatorShapeSequenceItem objects") + else: + self._CompensatorShapeSequence = value + if "CompensatorShapeSequence" not in self._dataset: + self._dataset.CompensatorShapeSequence = pydicom.Sequence() + self._dataset.CompensatorShapeSequence.clear() + self._dataset.CompensatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CompensatorShape(self, item: CompensatorShapeSequenceItem): + if not isinstance(item, CompensatorShapeSequenceItem): + raise ValueError("Item must be an instance of CompensatorShapeSequenceItem") + self._CompensatorShapeSequence.append(item) + if "CompensatorShapeSequence" not in self._dataset: + self._dataset.CompensatorShapeSequence = pydicom.Sequence() + self._dataset.CompensatorShapeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/compensator_sequence_item.py b/tdwii_plus_examples/domain_model/compensator_sequence_item.py new file mode 100644 index 0000000..66d2a11 --- /dev/null +++ b/tdwii_plus_examples/domain_model/compensator_sequence_item.py @@ -0,0 +1,264 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CompensatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def CompensatorNumber(self) -> Optional[int]: + if "CompensatorNumber" in self._dataset: + return self._dataset.CompensatorNumber + return None + + @CompensatorNumber.setter + def CompensatorNumber(self, value: Optional[int]): + if value is None: + if "CompensatorNumber" in self._dataset: + del self._dataset.CompensatorNumber + else: + self._dataset.CompensatorNumber = value + + @property + def CompensatorID(self) -> Optional[str]: + if "CompensatorID" in self._dataset: + return self._dataset.CompensatorID + return None + + @CompensatorID.setter + def CompensatorID(self, value: Optional[str]): + if value is None: + if "CompensatorID" in self._dataset: + del self._dataset.CompensatorID + else: + self._dataset.CompensatorID = value + + @property + def SourceToCompensatorTrayDistance(self) -> Optional[Decimal]: + if "SourceToCompensatorTrayDistance" in self._dataset: + return self._dataset.SourceToCompensatorTrayDistance + return None + + @SourceToCompensatorTrayDistance.setter + def SourceToCompensatorTrayDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToCompensatorTrayDistance" in self._dataset: + del self._dataset.SourceToCompensatorTrayDistance + else: + self._dataset.SourceToCompensatorTrayDistance = value + + @property + def CompensatorRows(self) -> Optional[int]: + if "CompensatorRows" in self._dataset: + return self._dataset.CompensatorRows + return None + + @CompensatorRows.setter + def CompensatorRows(self, value: Optional[int]): + if value is None: + if "CompensatorRows" in self._dataset: + del self._dataset.CompensatorRows + else: + self._dataset.CompensatorRows = value + + @property + def CompensatorColumns(self) -> Optional[int]: + if "CompensatorColumns" in self._dataset: + return self._dataset.CompensatorColumns + return None + + @CompensatorColumns.setter + def CompensatorColumns(self, value: Optional[int]): + if value is None: + if "CompensatorColumns" in self._dataset: + del self._dataset.CompensatorColumns + else: + self._dataset.CompensatorColumns = value + + @property + def CompensatorPixelSpacing(self) -> Optional[List[Decimal]]: + if "CompensatorPixelSpacing" in self._dataset: + return self._dataset.CompensatorPixelSpacing + return None + + @CompensatorPixelSpacing.setter + def CompensatorPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorPixelSpacing" in self._dataset: + del self._dataset.CompensatorPixelSpacing + else: + self._dataset.CompensatorPixelSpacing = value + + @property + def CompensatorPosition(self) -> Optional[List[Decimal]]: + if "CompensatorPosition" in self._dataset: + return self._dataset.CompensatorPosition + return None + + @CompensatorPosition.setter + def CompensatorPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorPosition" in self._dataset: + del self._dataset.CompensatorPosition + else: + self._dataset.CompensatorPosition = value + + @property + def CompensatorTransmissionData(self) -> Optional[List[Decimal]]: + if "CompensatorTransmissionData" in self._dataset: + return self._dataset.CompensatorTransmissionData + return None + + @CompensatorTransmissionData.setter + def CompensatorTransmissionData(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorTransmissionData" in self._dataset: + del self._dataset.CompensatorTransmissionData + else: + self._dataset.CompensatorTransmissionData = value + + @property + def CompensatorThicknessData(self) -> Optional[List[Decimal]]: + if "CompensatorThicknessData" in self._dataset: + return self._dataset.CompensatorThicknessData + return None + + @CompensatorThicknessData.setter + def CompensatorThicknessData(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorThicknessData" in self._dataset: + del self._dataset.CompensatorThicknessData + else: + self._dataset.CompensatorThicknessData = value + + @property + def CompensatorType(self) -> Optional[str]: + if "CompensatorType" in self._dataset: + return self._dataset.CompensatorType + return None + + @CompensatorType.setter + def CompensatorType(self, value: Optional[str]): + if value is None: + if "CompensatorType" in self._dataset: + del self._dataset.CompensatorType + else: + self._dataset.CompensatorType = value + + @property + def CompensatorTrayID(self) -> Optional[str]: + if "CompensatorTrayID" in self._dataset: + return self._dataset.CompensatorTrayID + return None + + @CompensatorTrayID.setter + def CompensatorTrayID(self, value: Optional[str]): + if value is None: + if "CompensatorTrayID" in self._dataset: + del self._dataset.CompensatorTrayID + else: + self._dataset.CompensatorTrayID = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def CompensatorDivergence(self) -> Optional[str]: + if "CompensatorDivergence" in self._dataset: + return self._dataset.CompensatorDivergence + return None + + @CompensatorDivergence.setter + def CompensatorDivergence(self, value: Optional[str]): + if value is None: + if "CompensatorDivergence" in self._dataset: + del self._dataset.CompensatorDivergence + else: + self._dataset.CompensatorDivergence = value + + @property + def CompensatorMountingPosition(self) -> Optional[str]: + if "CompensatorMountingPosition" in self._dataset: + return self._dataset.CompensatorMountingPosition + return None + + @CompensatorMountingPosition.setter + def CompensatorMountingPosition(self, value: Optional[str]): + if value is None: + if "CompensatorMountingPosition" in self._dataset: + del self._dataset.CompensatorMountingPosition + else: + self._dataset.CompensatorMountingPosition = value + + @property + def SourceToCompensatorDistance(self) -> Optional[List[Decimal]]: + if "SourceToCompensatorDistance" in self._dataset: + return self._dataset.SourceToCompensatorDistance + return None + + @SourceToCompensatorDistance.setter + def SourceToCompensatorDistance(self, value: Optional[List[Decimal]]): + if value is None: + if "SourceToCompensatorDistance" in self._dataset: + del self._dataset.SourceToCompensatorDistance + else: + self._dataset.SourceToCompensatorDistance = value + + @property + def CompensatorDescription(self) -> Optional[str]: + if "CompensatorDescription" in self._dataset: + return self._dataset.CompensatorDescription + return None + + @CompensatorDescription.setter + def CompensatorDescription(self, value: Optional[str]): + if value is None: + if "CompensatorDescription" in self._dataset: + del self._dataset.CompensatorDescription + else: + self._dataset.CompensatorDescription = value + + @property + def TrayAccessoryCode(self) -> Optional[str]: + if "TrayAccessoryCode" in self._dataset: + return self._dataset.TrayAccessoryCode + return None + + @TrayAccessoryCode.setter + def TrayAccessoryCode(self, value: Optional[str]): + if value is None: + if "TrayAccessoryCode" in self._dataset: + del self._dataset.TrayAccessoryCode + else: + self._dataset.TrayAccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/compensator_shape_sequence_item.py b/tdwii_plus_examples/domain_model/compensator_shape_sequence_item.py new file mode 100644 index 0000000..a6d7afa --- /dev/null +++ b/tdwii_plus_examples/domain_model/compensator_shape_sequence_item.py @@ -0,0 +1,118 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class CompensatorShapeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CompensatorShapeFabricationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def CompensatorDivergence(self) -> Optional[str]: + if "CompensatorDivergence" in self._dataset: + return self._dataset.CompensatorDivergence + return None + + @CompensatorDivergence.setter + def CompensatorDivergence(self, value: Optional[str]): + if value is None: + if "CompensatorDivergence" in self._dataset: + del self._dataset.CompensatorDivergence + else: + self._dataset.CompensatorDivergence = value + + @property + def CompensatorProximalThicknessMap(self) -> Optional[bytes]: + if "CompensatorProximalThicknessMap" in self._dataset: + return self._dataset.CompensatorProximalThicknessMap + return None + + @CompensatorProximalThicknessMap.setter + def CompensatorProximalThicknessMap(self, value: Optional[bytes]): + if value is None: + if "CompensatorProximalThicknessMap" in self._dataset: + del self._dataset.CompensatorProximalThicknessMap + else: + self._dataset.CompensatorProximalThicknessMap = value + + @property + def CompensatorDistalThicknessMap(self) -> Optional[bytes]: + if "CompensatorDistalThicknessMap" in self._dataset: + return self._dataset.CompensatorDistalThicknessMap + return None + + @CompensatorDistalThicknessMap.setter + def CompensatorDistalThicknessMap(self, value: Optional[bytes]): + if value is None: + if "CompensatorDistalThicknessMap" in self._dataset: + del self._dataset.CompensatorDistalThicknessMap + else: + self._dataset.CompensatorDistalThicknessMap = value + + @property + def CompensatorShapeFabricationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "CompensatorShapeFabricationCodeSequence" in self._dataset: + if len(self._CompensatorShapeFabricationCodeSequence) == len( + self._dataset.CompensatorShapeFabricationCodeSequence + ): + return self._CompensatorShapeFabricationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.CompensatorShapeFabricationCodeSequence] + return None + + @CompensatorShapeFabricationCodeSequence.setter + def CompensatorShapeFabricationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._CompensatorShapeFabricationCodeSequence = [] + if "CompensatorShapeFabricationCodeSequence" in self._dataset: + del self._dataset.CompensatorShapeFabricationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("CompensatorShapeFabricationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._CompensatorShapeFabricationCodeSequence = value + if "CompensatorShapeFabricationCodeSequence" not in self._dataset: + self._dataset.CompensatorShapeFabricationCodeSequence = pydicom.Sequence() + self._dataset.CompensatorShapeFabricationCodeSequence.clear() + self._dataset.CompensatorShapeFabricationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_CompensatorShapeFabricationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._CompensatorShapeFabricationCodeSequence.append(item) + if "CompensatorShapeFabricationCodeSequence" not in self._dataset: + self._dataset.CompensatorShapeFabricationCodeSequence = pydicom.Sequence() + self._dataset.CompensatorShapeFabricationCodeSequence.append(item.to_dataset()) + + @property + def RadiationBeamCompensatorMillingToolDiameter(self) -> Optional[float]: + if "RadiationBeamCompensatorMillingToolDiameter" in self._dataset: + return self._dataset.RadiationBeamCompensatorMillingToolDiameter + return None + + @RadiationBeamCompensatorMillingToolDiameter.setter + def RadiationBeamCompensatorMillingToolDiameter(self, value: Optional[float]): + if value is None: + if "RadiationBeamCompensatorMillingToolDiameter" in self._dataset: + del self._dataset.RadiationBeamCompensatorMillingToolDiameter + else: + self._dataset.RadiationBeamCompensatorMillingToolDiameter = value diff --git a/tdwii_plus_examples/domain_model/component_input_sequence_item.py b/tdwii_plus_examples/domain_model/component_input_sequence_item.py new file mode 100644 index 0000000..4a51323 --- /dev/null +++ b/tdwii_plus_examples/domain_model/component_input_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ComponentInputSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BitsMappedToColorLookupTable(self) -> Optional[int]: + if "BitsMappedToColorLookupTable" in self._dataset: + return self._dataset.BitsMappedToColorLookupTable + return None + + @BitsMappedToColorLookupTable.setter + def BitsMappedToColorLookupTable(self, value: Optional[int]): + if value is None: + if "BitsMappedToColorLookupTable" in self._dataset: + del self._dataset.BitsMappedToColorLookupTable + else: + self._dataset.BitsMappedToColorLookupTable = value + + @property + def VolumetricPresentationInputIndex(self) -> Optional[int]: + if "VolumetricPresentationInputIndex" in self._dataset: + return self._dataset.VolumetricPresentationInputIndex + return None + + @VolumetricPresentationInputIndex.setter + def VolumetricPresentationInputIndex(self, value: Optional[int]): + if value is None: + if "VolumetricPresentationInputIndex" in self._dataset: + del self._dataset.VolumetricPresentationInputIndex + else: + self._dataset.VolumetricPresentationInputIndex = value diff --git a/tdwii_plus_examples/domain_model/compound_graphic_sequence_item.py b/tdwii_plus_examples/domain_model/compound_graphic_sequence_item.py new file mode 100644 index 0000000..3cc5121 --- /dev/null +++ b/tdwii_plus_examples/domain_model/compound_graphic_sequence_item.py @@ -0,0 +1,358 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .fill_style_sequence_item import FillStyleSequenceItem +from .line_style_sequence_item import LineStyleSequenceItem +from .major_ticks_sequence_item import MajorTicksSequenceItem +from .text_style_sequence_item import TextStyleSequenceItem + + +class CompoundGraphicSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TextStyleSequence: List[TextStyleSequenceItem] = [] + self._LineStyleSequence: List[LineStyleSequenceItem] = [] + self._FillStyleSequence: List[FillStyleSequenceItem] = [] + self._MajorTicksSequence: List[MajorTicksSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GraphicDimensions(self) -> Optional[int]: + if "GraphicDimensions" in self._dataset: + return self._dataset.GraphicDimensions + return None + + @GraphicDimensions.setter + def GraphicDimensions(self, value: Optional[int]): + if value is None: + if "GraphicDimensions" in self._dataset: + del self._dataset.GraphicDimensions + else: + self._dataset.GraphicDimensions = value + + @property + def NumberOfGraphicPoints(self) -> Optional[int]: + if "NumberOfGraphicPoints" in self._dataset: + return self._dataset.NumberOfGraphicPoints + return None + + @NumberOfGraphicPoints.setter + def NumberOfGraphicPoints(self, value: Optional[int]): + if value is None: + if "NumberOfGraphicPoints" in self._dataset: + del self._dataset.NumberOfGraphicPoints + else: + self._dataset.NumberOfGraphicPoints = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicFilled(self) -> Optional[str]: + if "GraphicFilled" in self._dataset: + return self._dataset.GraphicFilled + return None + + @GraphicFilled.setter + def GraphicFilled(self, value: Optional[str]): + if value is None: + if "GraphicFilled" in self._dataset: + del self._dataset.GraphicFilled + else: + self._dataset.GraphicFilled = value + + @property + def CompoundGraphicInstanceID(self) -> Optional[int]: + if "CompoundGraphicInstanceID" in self._dataset: + return self._dataset.CompoundGraphicInstanceID + return None + + @CompoundGraphicInstanceID.setter + def CompoundGraphicInstanceID(self, value: Optional[int]): + if value is None: + if "CompoundGraphicInstanceID" in self._dataset: + del self._dataset.CompoundGraphicInstanceID + else: + self._dataset.CompoundGraphicInstanceID = value + + @property + def RotationAngle(self) -> Optional[float]: + if "RotationAngle" in self._dataset: + return self._dataset.RotationAngle + return None + + @RotationAngle.setter + def RotationAngle(self, value: Optional[float]): + if value is None: + if "RotationAngle" in self._dataset: + del self._dataset.RotationAngle + else: + self._dataset.RotationAngle = value + + @property + def TextStyleSequence(self) -> Optional[List[TextStyleSequenceItem]]: + if "TextStyleSequence" in self._dataset: + if len(self._TextStyleSequence) == len(self._dataset.TextStyleSequence): + return self._TextStyleSequence + else: + return [TextStyleSequenceItem(x) for x in self._dataset.TextStyleSequence] + return None + + @TextStyleSequence.setter + def TextStyleSequence(self, value: Optional[List[TextStyleSequenceItem]]): + if value is None: + self._TextStyleSequence = [] + if "TextStyleSequence" in self._dataset: + del self._dataset.TextStyleSequence + elif not isinstance(value, list) or not all(isinstance(item, TextStyleSequenceItem) for item in value): + raise ValueError("TextStyleSequence must be a list of TextStyleSequenceItem objects") + else: + self._TextStyleSequence = value + if "TextStyleSequence" not in self._dataset: + self._dataset.TextStyleSequence = pydicom.Sequence() + self._dataset.TextStyleSequence.clear() + self._dataset.TextStyleSequence.extend([item.to_dataset() for item in value]) + + def add_TextStyle(self, item: TextStyleSequenceItem): + if not isinstance(item, TextStyleSequenceItem): + raise ValueError("Item must be an instance of TextStyleSequenceItem") + self._TextStyleSequence.append(item) + if "TextStyleSequence" not in self._dataset: + self._dataset.TextStyleSequence = pydicom.Sequence() + self._dataset.TextStyleSequence.append(item.to_dataset()) + + @property + def LineStyleSequence(self) -> Optional[List[LineStyleSequenceItem]]: + if "LineStyleSequence" in self._dataset: + if len(self._LineStyleSequence) == len(self._dataset.LineStyleSequence): + return self._LineStyleSequence + else: + return [LineStyleSequenceItem(x) for x in self._dataset.LineStyleSequence] + return None + + @LineStyleSequence.setter + def LineStyleSequence(self, value: Optional[List[LineStyleSequenceItem]]): + if value is None: + self._LineStyleSequence = [] + if "LineStyleSequence" in self._dataset: + del self._dataset.LineStyleSequence + elif not isinstance(value, list) or not all(isinstance(item, LineStyleSequenceItem) for item in value): + raise ValueError("LineStyleSequence must be a list of LineStyleSequenceItem objects") + else: + self._LineStyleSequence = value + if "LineStyleSequence" not in self._dataset: + self._dataset.LineStyleSequence = pydicom.Sequence() + self._dataset.LineStyleSequence.clear() + self._dataset.LineStyleSequence.extend([item.to_dataset() for item in value]) + + def add_LineStyle(self, item: LineStyleSequenceItem): + if not isinstance(item, LineStyleSequenceItem): + raise ValueError("Item must be an instance of LineStyleSequenceItem") + self._LineStyleSequence.append(item) + if "LineStyleSequence" not in self._dataset: + self._dataset.LineStyleSequence = pydicom.Sequence() + self._dataset.LineStyleSequence.append(item.to_dataset()) + + @property + def FillStyleSequence(self) -> Optional[List[FillStyleSequenceItem]]: + if "FillStyleSequence" in self._dataset: + if len(self._FillStyleSequence) == len(self._dataset.FillStyleSequence): + return self._FillStyleSequence + else: + return [FillStyleSequenceItem(x) for x in self._dataset.FillStyleSequence] + return None + + @FillStyleSequence.setter + def FillStyleSequence(self, value: Optional[List[FillStyleSequenceItem]]): + if value is None: + self._FillStyleSequence = [] + if "FillStyleSequence" in self._dataset: + del self._dataset.FillStyleSequence + elif not isinstance(value, list) or not all(isinstance(item, FillStyleSequenceItem) for item in value): + raise ValueError("FillStyleSequence must be a list of FillStyleSequenceItem objects") + else: + self._FillStyleSequence = value + if "FillStyleSequence" not in self._dataset: + self._dataset.FillStyleSequence = pydicom.Sequence() + self._dataset.FillStyleSequence.clear() + self._dataset.FillStyleSequence.extend([item.to_dataset() for item in value]) + + def add_FillStyle(self, item: FillStyleSequenceItem): + if not isinstance(item, FillStyleSequenceItem): + raise ValueError("Item must be an instance of FillStyleSequenceItem") + self._FillStyleSequence.append(item) + if "FillStyleSequence" not in self._dataset: + self._dataset.FillStyleSequence = pydicom.Sequence() + self._dataset.FillStyleSequence.append(item.to_dataset()) + + @property + def GapLength(self) -> Optional[float]: + if "GapLength" in self._dataset: + return self._dataset.GapLength + return None + + @GapLength.setter + def GapLength(self, value: Optional[float]): + if value is None: + if "GapLength" in self._dataset: + del self._dataset.GapLength + else: + self._dataset.GapLength = value + + @property + def DiameterOfVisibility(self) -> Optional[float]: + if "DiameterOfVisibility" in self._dataset: + return self._dataset.DiameterOfVisibility + return None + + @DiameterOfVisibility.setter + def DiameterOfVisibility(self, value: Optional[float]): + if value is None: + if "DiameterOfVisibility" in self._dataset: + del self._dataset.DiameterOfVisibility + else: + self._dataset.DiameterOfVisibility = value + + @property + def RotationPoint(self) -> Optional[List[float]]: + if "RotationPoint" in self._dataset: + return self._dataset.RotationPoint + return None + + @RotationPoint.setter + def RotationPoint(self, value: Optional[List[float]]): + if value is None: + if "RotationPoint" in self._dataset: + del self._dataset.RotationPoint + else: + self._dataset.RotationPoint = value + + @property + def TickAlignment(self) -> Optional[str]: + if "TickAlignment" in self._dataset: + return self._dataset.TickAlignment + return None + + @TickAlignment.setter + def TickAlignment(self, value: Optional[str]): + if value is None: + if "TickAlignment" in self._dataset: + del self._dataset.TickAlignment + else: + self._dataset.TickAlignment = value + + @property + def ShowTickLabel(self) -> Optional[str]: + if "ShowTickLabel" in self._dataset: + return self._dataset.ShowTickLabel + return None + + @ShowTickLabel.setter + def ShowTickLabel(self, value: Optional[str]): + if value is None: + if "ShowTickLabel" in self._dataset: + del self._dataset.ShowTickLabel + else: + self._dataset.ShowTickLabel = value + + @property + def TickLabelAlignment(self) -> Optional[str]: + if "TickLabelAlignment" in self._dataset: + return self._dataset.TickLabelAlignment + return None + + @TickLabelAlignment.setter + def TickLabelAlignment(self, value: Optional[str]): + if value is None: + if "TickLabelAlignment" in self._dataset: + del self._dataset.TickLabelAlignment + else: + self._dataset.TickLabelAlignment = value + + @property + def CompoundGraphicUnits(self) -> Optional[str]: + if "CompoundGraphicUnits" in self._dataset: + return self._dataset.CompoundGraphicUnits + return None + + @CompoundGraphicUnits.setter + def CompoundGraphicUnits(self, value: Optional[str]): + if value is None: + if "CompoundGraphicUnits" in self._dataset: + del self._dataset.CompoundGraphicUnits + else: + self._dataset.CompoundGraphicUnits = value + + @property + def MajorTicksSequence(self) -> Optional[List[MajorTicksSequenceItem]]: + if "MajorTicksSequence" in self._dataset: + if len(self._MajorTicksSequence) == len(self._dataset.MajorTicksSequence): + return self._MajorTicksSequence + else: + return [MajorTicksSequenceItem(x) for x in self._dataset.MajorTicksSequence] + return None + + @MajorTicksSequence.setter + def MajorTicksSequence(self, value: Optional[List[MajorTicksSequenceItem]]): + if value is None: + self._MajorTicksSequence = [] + if "MajorTicksSequence" in self._dataset: + del self._dataset.MajorTicksSequence + elif not isinstance(value, list) or not all(isinstance(item, MajorTicksSequenceItem) for item in value): + raise ValueError("MajorTicksSequence must be a list of MajorTicksSequenceItem objects") + else: + self._MajorTicksSequence = value + if "MajorTicksSequence" not in self._dataset: + self._dataset.MajorTicksSequence = pydicom.Sequence() + self._dataset.MajorTicksSequence.clear() + self._dataset.MajorTicksSequence.extend([item.to_dataset() for item in value]) + + def add_MajorTicks(self, item: MajorTicksSequenceItem): + if not isinstance(item, MajorTicksSequenceItem): + raise ValueError("Item must be an instance of MajorTicksSequenceItem") + self._MajorTicksSequence.append(item) + if "MajorTicksSequence" not in self._dataset: + self._dataset.MajorTicksSequence = pydicom.Sequence() + self._dataset.MajorTicksSequence.append(item.to_dataset()) + + @property + def CompoundGraphicType(self) -> Optional[str]: + if "CompoundGraphicType" in self._dataset: + return self._dataset.CompoundGraphicType + return None + + @CompoundGraphicType.setter + def CompoundGraphicType(self, value: Optional[str]): + if value is None: + if "CompoundGraphicType" in self._dataset: + del self._dataset.CompoundGraphicType + else: + self._dataset.CompoundGraphicType = value + + @property + def GraphicGroupID(self) -> Optional[int]: + if "GraphicGroupID" in self._dataset: + return self._dataset.GraphicGroupID + return None + + @GraphicGroupID.setter + def GraphicGroupID(self, value: Optional[int]): + if value is None: + if "GraphicGroupID" in self._dataset: + del self._dataset.GraphicGroupID + else: + self._dataset.GraphicGroupID = value diff --git a/tdwii_plus_examples/domain_model/comprehensive3d_sr.py b/tdwii_plus_examples/domain_model/comprehensive3d_sr.py new file mode 100644 index 0000000..a61e89e --- /dev/null +++ b/tdwii_plus_examples/domain_model/comprehensive3d_sr.py @@ -0,0 +1,4617 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class Comprehensive3dSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/comprehensive_sr.py b/tdwii_plus_examples/domain_model/comprehensive_sr.py new file mode 100644 index 0000000..3013237 --- /dev/null +++ b/tdwii_plus_examples/domain_model/comprehensive_sr.py @@ -0,0 +1,4617 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class ComprehensiveSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/computed_radiography_image.py b/tdwii_plus_examples/domain_model/computed_radiography_image.py new file mode 100644 index 0000000..1a2af7f --- /dev/null +++ b/tdwii_plus_examples/domain_model/computed_radiography_image.py @@ -0,0 +1,6380 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class ComputedRadiographyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def PlateID(self) -> Optional[str]: + if "PlateID" in self._dataset: + return self._dataset.PlateID + return None + + @PlateID.setter + def PlateID(self, value: Optional[str]): + if value is None: + if "PlateID" in self._dataset: + del self._dataset.PlateID + else: + self._dataset.PlateID = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def GeneratorPower(self) -> Optional[int]: + if "GeneratorPower" in self._dataset: + return self._dataset.GeneratorPower + return None + + @GeneratorPower.setter + def GeneratorPower(self, value: Optional[int]): + if value is None: + if "GeneratorPower" in self._dataset: + del self._dataset.GeneratorPower + else: + self._dataset.GeneratorPower = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value + + @property + def CassetteOrientation(self) -> Optional[str]: + if "CassetteOrientation" in self._dataset: + return self._dataset.CassetteOrientation + return None + + @CassetteOrientation.setter + def CassetteOrientation(self, value: Optional[str]): + if value is None: + if "CassetteOrientation" in self._dataset: + del self._dataset.CassetteOrientation + else: + self._dataset.CassetteOrientation = value + + @property + def CassetteSize(self) -> Optional[str]: + if "CassetteSize" in self._dataset: + return self._dataset.CassetteSize + return None + + @CassetteSize.setter + def CassetteSize(self, value: Optional[str]): + if value is None: + if "CassetteSize" in self._dataset: + del self._dataset.CassetteSize + else: + self._dataset.CassetteSize = value + + @property + def ExposuresOnPlate(self) -> Optional[int]: + if "ExposuresOnPlate" in self._dataset: + return self._dataset.ExposuresOnPlate + return None + + @ExposuresOnPlate.setter + def ExposuresOnPlate(self, value: Optional[int]): + if value is None: + if "ExposuresOnPlate" in self._dataset: + del self._dataset.ExposuresOnPlate + else: + self._dataset.ExposuresOnPlate = value + + @property + def RelativeXRayExposure(self) -> Optional[int]: + if "RelativeXRayExposure" in self._dataset: + return self._dataset.RelativeXRayExposure + return None + + @RelativeXRayExposure.setter + def RelativeXRayExposure(self, value: Optional[int]): + if value is None: + if "RelativeXRayExposure" in self._dataset: + del self._dataset.RelativeXRayExposure + else: + self._dataset.RelativeXRayExposure = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def CollimatorGridName(self) -> Optional[str]: + if "CollimatorGridName" in self._dataset: + return self._dataset.CollimatorGridName + return None + + @CollimatorGridName.setter + def CollimatorGridName(self, value: Optional[str]): + if value is None: + if "CollimatorGridName" in self._dataset: + del self._dataset.CollimatorGridName + else: + self._dataset.CollimatorGridName = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def PlateType(self) -> Optional[str]: + if "PlateType" in self._dataset: + return self._dataset.PlateType + return None + + @PlateType.setter + def PlateType(self, value: Optional[str]): + if value is None: + if "PlateType" in self._dataset: + del self._dataset.PlateType + else: + self._dataset.PlateType = value + + @property + def PhosphorType(self) -> Optional[str]: + if "PhosphorType" in self._dataset: + return self._dataset.PhosphorType + return None + + @PhosphorType.setter + def PhosphorType(self, value: Optional[str]): + if value is None: + if "PhosphorType" in self._dataset: + del self._dataset.PhosphorType + else: + self._dataset.PhosphorType = value + + @property + def ViewPosition(self) -> Optional[str]: + if "ViewPosition" in self._dataset: + return self._dataset.ViewPosition + return None + + @ViewPosition.setter + def ViewPosition(self, value: Optional[str]): + if value is None: + if "ViewPosition" in self._dataset: + del self._dataset.ViewPosition + else: + self._dataset.ViewPosition = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/conceptual_volume_constituent_segmentation_reference_sequence_item.py b/tdwii_plus_examples/domain_model/conceptual_volume_constituent_segmentation_reference_sequence_item.py new file mode 100644 index 0000000..9607fa3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/conceptual_volume_constituent_segmentation_reference_sequence_item.py @@ -0,0 +1,71 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_direct_segment_instance_sequence_item import ( + ReferencedDirectSegmentInstanceSequenceItem, +) + + +class ConceptualVolumeConstituentSegmentationReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedDirectSegmentInstanceSequence: List[ReferencedDirectSegmentInstanceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSegmentReferenceIndex(self) -> Optional[int]: + if "ReferencedSegmentReferenceIndex" in self._dataset: + return self._dataset.ReferencedSegmentReferenceIndex + return None + + @ReferencedSegmentReferenceIndex.setter + def ReferencedSegmentReferenceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedSegmentReferenceIndex" in self._dataset: + del self._dataset.ReferencedSegmentReferenceIndex + else: + self._dataset.ReferencedSegmentReferenceIndex = value + + @property + def ReferencedDirectSegmentInstanceSequence(self) -> Optional[List[ReferencedDirectSegmentInstanceSequenceItem]]: + if "ReferencedDirectSegmentInstanceSequence" in self._dataset: + if len(self._ReferencedDirectSegmentInstanceSequence) == len( + self._dataset.ReferencedDirectSegmentInstanceSequence + ): + return self._ReferencedDirectSegmentInstanceSequence + else: + return [ + ReferencedDirectSegmentInstanceSequenceItem(x) + for x in self._dataset.ReferencedDirectSegmentInstanceSequence + ] + return None + + @ReferencedDirectSegmentInstanceSequence.setter + def ReferencedDirectSegmentInstanceSequence(self, value: Optional[List[ReferencedDirectSegmentInstanceSequenceItem]]): + if value is None: + self._ReferencedDirectSegmentInstanceSequence = [] + if "ReferencedDirectSegmentInstanceSequence" in self._dataset: + del self._dataset.ReferencedDirectSegmentInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedDirectSegmentInstanceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedDirectSegmentInstanceSequence must be a list of ReferencedDirectSegmentInstanceSequenceItem objects" + ) + else: + self._ReferencedDirectSegmentInstanceSequence = value + if "ReferencedDirectSegmentInstanceSequence" not in self._dataset: + self._dataset.ReferencedDirectSegmentInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedDirectSegmentInstanceSequence.clear() + self._dataset.ReferencedDirectSegmentInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDirectSegmentInstance(self, item: ReferencedDirectSegmentInstanceSequenceItem): + if not isinstance(item, ReferencedDirectSegmentInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedDirectSegmentInstanceSequenceItem") + self._ReferencedDirectSegmentInstanceSequence.append(item) + if "ReferencedDirectSegmentInstanceSequence" not in self._dataset: + self._dataset.ReferencedDirectSegmentInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedDirectSegmentInstanceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/conceptual_volume_constituent_sequence_item.py b/tdwii_plus_examples/domain_model/conceptual_volume_constituent_sequence_item.py new file mode 100644 index 0000000..c7c2ff3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/conceptual_volume_constituent_sequence_item.py @@ -0,0 +1,141 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .conceptual_volume_constituent_segmentation_reference_sequence_item import ( + ConceptualVolumeConstituentSegmentationReferenceSequenceItem, +) +from .originating_sop_instance_reference_sequence_item import ( + OriginatingSOPInstanceReferenceSequenceItem, +) + + +class ConceptualVolumeConstituentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OriginatingSOPInstanceReferenceSequence: List[OriginatingSOPInstanceReferenceSequenceItem] = [] + self._ConceptualVolumeConstituentSegmentationReferenceSequence: List[ + ConceptualVolumeConstituentSegmentationReferenceSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OriginatingSOPInstanceReferenceSequence(self) -> Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]: + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + if len(self._OriginatingSOPInstanceReferenceSequence) == len( + self._dataset.OriginatingSOPInstanceReferenceSequence + ): + return self._OriginatingSOPInstanceReferenceSequence + else: + return [ + OriginatingSOPInstanceReferenceSequenceItem(x) + for x in self._dataset.OriginatingSOPInstanceReferenceSequence + ] + return None + + @OriginatingSOPInstanceReferenceSequence.setter + def OriginatingSOPInstanceReferenceSequence(self, value: Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]): + if value is None: + self._OriginatingSOPInstanceReferenceSequence = [] + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + del self._dataset.OriginatingSOPInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, OriginatingSOPInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "OriginatingSOPInstanceReferenceSequence must be a list of OriginatingSOPInstanceReferenceSequenceItem objects" + ) + else: + self._OriginatingSOPInstanceReferenceSequence = value + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.clear() + self._dataset.OriginatingSOPInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_OriginatingSOPInstanceReference(self, item: OriginatingSOPInstanceReferenceSequenceItem): + if not isinstance(item, OriginatingSOPInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of OriginatingSOPInstanceReferenceSequenceItem") + self._OriginatingSOPInstanceReferenceSequence.append(item) + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeConstituentIndex(self) -> Optional[int]: + if "ConceptualVolumeConstituentIndex" in self._dataset: + return self._dataset.ConceptualVolumeConstituentIndex + return None + + @ConceptualVolumeConstituentIndex.setter + def ConceptualVolumeConstituentIndex(self, value: Optional[int]): + if value is None: + if "ConceptualVolumeConstituentIndex" in self._dataset: + del self._dataset.ConceptualVolumeConstituentIndex + else: + self._dataset.ConceptualVolumeConstituentIndex = value + + @property + def ConceptualVolumeConstituentSegmentationReferenceSequence( + self, + ) -> Optional[List[ConceptualVolumeConstituentSegmentationReferenceSequenceItem]]: + if "ConceptualVolumeConstituentSegmentationReferenceSequence" in self._dataset: + if len(self._ConceptualVolumeConstituentSegmentationReferenceSequence) == len( + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence + ): + return self._ConceptualVolumeConstituentSegmentationReferenceSequence + else: + return [ + ConceptualVolumeConstituentSegmentationReferenceSequenceItem(x) + for x in self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence + ] + return None + + @ConceptualVolumeConstituentSegmentationReferenceSequence.setter + def ConceptualVolumeConstituentSegmentationReferenceSequence( + self, value: Optional[List[ConceptualVolumeConstituentSegmentationReferenceSequenceItem]] + ): + if value is None: + self._ConceptualVolumeConstituentSegmentationReferenceSequence = [] + if "ConceptualVolumeConstituentSegmentationReferenceSequence" in self._dataset: + del self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeConstituentSegmentationReferenceSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeConstituentSegmentationReferenceSequence must be a list of" + " ConceptualVolumeConstituentSegmentationReferenceSequenceItem objects" + ) + else: + self._ConceptualVolumeConstituentSegmentationReferenceSequence = value + if "ConceptualVolumeConstituentSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence.clear() + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ConceptualVolumeConstituentSegmentationReference( + self, item: ConceptualVolumeConstituentSegmentationReferenceSequenceItem + ): + if not isinstance(item, ConceptualVolumeConstituentSegmentationReferenceSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeConstituentSegmentationReferenceSequenceItem") + self._ConceptualVolumeConstituentSegmentationReferenceSequence.append(item) + if "ConceptualVolumeConstituentSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence.append(item.to_dataset()) + + @property + def ConstituentConceptualVolumeUID(self) -> Optional[str]: + if "ConstituentConceptualVolumeUID" in self._dataset: + return self._dataset.ConstituentConceptualVolumeUID + return None + + @ConstituentConceptualVolumeUID.setter + def ConstituentConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ConstituentConceptualVolumeUID" in self._dataset: + del self._dataset.ConstituentConceptualVolumeUID + else: + self._dataset.ConstituentConceptualVolumeUID = value diff --git a/tdwii_plus_examples/domain_model/conceptual_volume_derivation_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/conceptual_volume_derivation_algorithm_sequence_item.py new file mode 100644 index 0000000..cbfd2b7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/conceptual_volume_derivation_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ConceptualVolumeDerivationAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/conceptual_volume_identification_sequence_item.py b/tdwii_plus_examples/domain_model/conceptual_volume_identification_sequence_item.py new file mode 100644 index 0000000..2136162 --- /dev/null +++ b/tdwii_plus_examples/domain_model/conceptual_volume_identification_sequence_item.py @@ -0,0 +1,151 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_conceptual_volume_sequence_item import ( + DerivationConceptualVolumeSequenceItem, +) +from .equivalent_conceptual_volumes_sequence_item import ( + EquivalentConceptualVolumesSequenceItem, +) +from .originating_sop_instance_reference_sequence_item import ( + OriginatingSOPInstanceReferenceSequenceItem, +) + + +class ConceptualVolumeIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OriginatingSOPInstanceReferenceSequence: List[OriginatingSOPInstanceReferenceSequenceItem] = [] + self._EquivalentConceptualVolumesSequence: List[EquivalentConceptualVolumesSequenceItem] = [] + self._DerivationConceptualVolumeSequence: List[DerivationConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ConceptualVolumeUID(self) -> Optional[str]: + if "ConceptualVolumeUID" in self._dataset: + return self._dataset.ConceptualVolumeUID + return None + + @ConceptualVolumeUID.setter + def ConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeUID" in self._dataset: + del self._dataset.ConceptualVolumeUID + else: + self._dataset.ConceptualVolumeUID = value + + @property + def OriginatingSOPInstanceReferenceSequence(self) -> Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]: + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + if len(self._OriginatingSOPInstanceReferenceSequence) == len( + self._dataset.OriginatingSOPInstanceReferenceSequence + ): + return self._OriginatingSOPInstanceReferenceSequence + else: + return [ + OriginatingSOPInstanceReferenceSequenceItem(x) + for x in self._dataset.OriginatingSOPInstanceReferenceSequence + ] + return None + + @OriginatingSOPInstanceReferenceSequence.setter + def OriginatingSOPInstanceReferenceSequence(self, value: Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]): + if value is None: + self._OriginatingSOPInstanceReferenceSequence = [] + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + del self._dataset.OriginatingSOPInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, OriginatingSOPInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "OriginatingSOPInstanceReferenceSequence must be a list of OriginatingSOPInstanceReferenceSequenceItem objects" + ) + else: + self._OriginatingSOPInstanceReferenceSequence = value + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.clear() + self._dataset.OriginatingSOPInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_OriginatingSOPInstanceReference(self, item: OriginatingSOPInstanceReferenceSequenceItem): + if not isinstance(item, OriginatingSOPInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of OriginatingSOPInstanceReferenceSequenceItem") + self._OriginatingSOPInstanceReferenceSequence.append(item) + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.append(item.to_dataset()) + + @property + def EquivalentConceptualVolumesSequence(self) -> Optional[List[EquivalentConceptualVolumesSequenceItem]]: + if "EquivalentConceptualVolumesSequence" in self._dataset: + if len(self._EquivalentConceptualVolumesSequence) == len(self._dataset.EquivalentConceptualVolumesSequence): + return self._EquivalentConceptualVolumesSequence + else: + return [EquivalentConceptualVolumesSequenceItem(x) for x in self._dataset.EquivalentConceptualVolumesSequence] + return None + + @EquivalentConceptualVolumesSequence.setter + def EquivalentConceptualVolumesSequence(self, value: Optional[List[EquivalentConceptualVolumesSequenceItem]]): + if value is None: + self._EquivalentConceptualVolumesSequence = [] + if "EquivalentConceptualVolumesSequence" in self._dataset: + del self._dataset.EquivalentConceptualVolumesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquivalentConceptualVolumesSequenceItem) for item in value + ): + raise ValueError( + "EquivalentConceptualVolumesSequence must be a list of EquivalentConceptualVolumesSequenceItem objects" + ) + else: + self._EquivalentConceptualVolumesSequence = value + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.clear() + self._dataset.EquivalentConceptualVolumesSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentConceptualVolumes(self, item: EquivalentConceptualVolumesSequenceItem): + if not isinstance(item, EquivalentConceptualVolumesSequenceItem): + raise ValueError("Item must be an instance of EquivalentConceptualVolumesSequenceItem") + self._EquivalentConceptualVolumesSequence.append(item) + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.append(item.to_dataset()) + + @property + def DerivationConceptualVolumeSequence(self) -> Optional[List[DerivationConceptualVolumeSequenceItem]]: + if "DerivationConceptualVolumeSequence" in self._dataset: + if len(self._DerivationConceptualVolumeSequence) == len(self._dataset.DerivationConceptualVolumeSequence): + return self._DerivationConceptualVolumeSequence + else: + return [DerivationConceptualVolumeSequenceItem(x) for x in self._dataset.DerivationConceptualVolumeSequence] + return None + + @DerivationConceptualVolumeSequence.setter + def DerivationConceptualVolumeSequence(self, value: Optional[List[DerivationConceptualVolumeSequenceItem]]): + if value is None: + self._DerivationConceptualVolumeSequence = [] + if "DerivationConceptualVolumeSequence" in self._dataset: + del self._dataset.DerivationConceptualVolumeSequence + elif not isinstance(value, list) or not all( + isinstance(item, DerivationConceptualVolumeSequenceItem) for item in value + ): + raise ValueError( + "DerivationConceptualVolumeSequence must be a list of DerivationConceptualVolumeSequenceItem objects" + ) + else: + self._DerivationConceptualVolumeSequence = value + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.clear() + self._dataset.DerivationConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationConceptualVolume(self, item: DerivationConceptualVolumeSequenceItem): + if not isinstance(item, DerivationConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of DerivationConceptualVolumeSequenceItem") + self._DerivationConceptualVolumeSequence.append(item) + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/conceptual_volume_segmentation_reference_sequence_item.py b/tdwii_plus_examples/domain_model/conceptual_volume_segmentation_reference_sequence_item.py new file mode 100644 index 0000000..3ea008d --- /dev/null +++ b/tdwii_plus_examples/domain_model/conceptual_volume_segmentation_reference_sequence_item.py @@ -0,0 +1,71 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_direct_segment_instance_sequence_item import ( + ReferencedDirectSegmentInstanceSequenceItem, +) + + +class ConceptualVolumeSegmentationReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedDirectSegmentInstanceSequence: List[ReferencedDirectSegmentInstanceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSegmentReferenceIndex(self) -> Optional[int]: + if "ReferencedSegmentReferenceIndex" in self._dataset: + return self._dataset.ReferencedSegmentReferenceIndex + return None + + @ReferencedSegmentReferenceIndex.setter + def ReferencedSegmentReferenceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedSegmentReferenceIndex" in self._dataset: + del self._dataset.ReferencedSegmentReferenceIndex + else: + self._dataset.ReferencedSegmentReferenceIndex = value + + @property + def ReferencedDirectSegmentInstanceSequence(self) -> Optional[List[ReferencedDirectSegmentInstanceSequenceItem]]: + if "ReferencedDirectSegmentInstanceSequence" in self._dataset: + if len(self._ReferencedDirectSegmentInstanceSequence) == len( + self._dataset.ReferencedDirectSegmentInstanceSequence + ): + return self._ReferencedDirectSegmentInstanceSequence + else: + return [ + ReferencedDirectSegmentInstanceSequenceItem(x) + for x in self._dataset.ReferencedDirectSegmentInstanceSequence + ] + return None + + @ReferencedDirectSegmentInstanceSequence.setter + def ReferencedDirectSegmentInstanceSequence(self, value: Optional[List[ReferencedDirectSegmentInstanceSequenceItem]]): + if value is None: + self._ReferencedDirectSegmentInstanceSequence = [] + if "ReferencedDirectSegmentInstanceSequence" in self._dataset: + del self._dataset.ReferencedDirectSegmentInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedDirectSegmentInstanceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedDirectSegmentInstanceSequence must be a list of ReferencedDirectSegmentInstanceSequenceItem objects" + ) + else: + self._ReferencedDirectSegmentInstanceSequence = value + if "ReferencedDirectSegmentInstanceSequence" not in self._dataset: + self._dataset.ReferencedDirectSegmentInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedDirectSegmentInstanceSequence.clear() + self._dataset.ReferencedDirectSegmentInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDirectSegmentInstance(self, item: ReferencedDirectSegmentInstanceSequenceItem): + if not isinstance(item, ReferencedDirectSegmentInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedDirectSegmentInstanceSequenceItem") + self._ReferencedDirectSegmentInstanceSequence.append(item) + if "ReferencedDirectSegmentInstanceSequence" not in self._dataset: + self._dataset.ReferencedDirectSegmentInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedDirectSegmentInstanceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/conceptual_volume_sequence_item.py b/tdwii_plus_examples/domain_model/conceptual_volume_sequence_item.py new file mode 100644 index 0000000..6c04338 --- /dev/null +++ b/tdwii_plus_examples/domain_model/conceptual_volume_sequence_item.py @@ -0,0 +1,297 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .conceptual_volume_constituent_sequence_item import ( + ConceptualVolumeConstituentSequenceItem, +) +from .conceptual_volume_segmentation_reference_sequence_item import ( + ConceptualVolumeSegmentationReferenceSequenceItem, +) +from .derivation_conceptual_volume_sequence_item import ( + DerivationConceptualVolumeSequenceItem, +) +from .equivalent_conceptual_volumes_sequence_item import ( + EquivalentConceptualVolumesSequenceItem, +) +from .originating_sop_instance_reference_sequence_item import ( + OriginatingSOPInstanceReferenceSequenceItem, +) + + +class ConceptualVolumeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OriginatingSOPInstanceReferenceSequence: List[OriginatingSOPInstanceReferenceSequenceItem] = [] + self._ConceptualVolumeConstituentSequence: List[ConceptualVolumeConstituentSequenceItem] = [] + self._EquivalentConceptualVolumesSequence: List[EquivalentConceptualVolumesSequenceItem] = [] + self._ConceptualVolumeSegmentationReferenceSequence: List[ConceptualVolumeSegmentationReferenceSequenceItem] = [] + self._DerivationConceptualVolumeSequence: List[DerivationConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ConceptualVolumeUID(self) -> Optional[str]: + if "ConceptualVolumeUID" in self._dataset: + return self._dataset.ConceptualVolumeUID + return None + + @ConceptualVolumeUID.setter + def ConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeUID" in self._dataset: + del self._dataset.ConceptualVolumeUID + else: + self._dataset.ConceptualVolumeUID = value + + @property + def OriginatingSOPInstanceReferenceSequence(self) -> Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]: + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + if len(self._OriginatingSOPInstanceReferenceSequence) == len( + self._dataset.OriginatingSOPInstanceReferenceSequence + ): + return self._OriginatingSOPInstanceReferenceSequence + else: + return [ + OriginatingSOPInstanceReferenceSequenceItem(x) + for x in self._dataset.OriginatingSOPInstanceReferenceSequence + ] + return None + + @OriginatingSOPInstanceReferenceSequence.setter + def OriginatingSOPInstanceReferenceSequence(self, value: Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]): + if value is None: + self._OriginatingSOPInstanceReferenceSequence = [] + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + del self._dataset.OriginatingSOPInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, OriginatingSOPInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "OriginatingSOPInstanceReferenceSequence must be a list of OriginatingSOPInstanceReferenceSequenceItem objects" + ) + else: + self._OriginatingSOPInstanceReferenceSequence = value + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.clear() + self._dataset.OriginatingSOPInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_OriginatingSOPInstanceReference(self, item: OriginatingSOPInstanceReferenceSequenceItem): + if not isinstance(item, OriginatingSOPInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of OriginatingSOPInstanceReferenceSequenceItem") + self._OriginatingSOPInstanceReferenceSequence.append(item) + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeConstituentSequence(self) -> Optional[List[ConceptualVolumeConstituentSequenceItem]]: + if "ConceptualVolumeConstituentSequence" in self._dataset: + if len(self._ConceptualVolumeConstituentSequence) == len(self._dataset.ConceptualVolumeConstituentSequence): + return self._ConceptualVolumeConstituentSequence + else: + return [ConceptualVolumeConstituentSequenceItem(x) for x in self._dataset.ConceptualVolumeConstituentSequence] + return None + + @ConceptualVolumeConstituentSequence.setter + def ConceptualVolumeConstituentSequence(self, value: Optional[List[ConceptualVolumeConstituentSequenceItem]]): + if value is None: + self._ConceptualVolumeConstituentSequence = [] + if "ConceptualVolumeConstituentSequence" in self._dataset: + del self._dataset.ConceptualVolumeConstituentSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeConstituentSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeConstituentSequence must be a list of ConceptualVolumeConstituentSequenceItem objects" + ) + else: + self._ConceptualVolumeConstituentSequence = value + if "ConceptualVolumeConstituentSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSequence.clear() + self._dataset.ConceptualVolumeConstituentSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeConstituent(self, item: ConceptualVolumeConstituentSequenceItem): + if not isinstance(item, ConceptualVolumeConstituentSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeConstituentSequenceItem") + self._ConceptualVolumeConstituentSequence.append(item) + if "ConceptualVolumeConstituentSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSequence.append(item.to_dataset()) + + @property + def EquivalentConceptualVolumesSequence(self) -> Optional[List[EquivalentConceptualVolumesSequenceItem]]: + if "EquivalentConceptualVolumesSequence" in self._dataset: + if len(self._EquivalentConceptualVolumesSequence) == len(self._dataset.EquivalentConceptualVolumesSequence): + return self._EquivalentConceptualVolumesSequence + else: + return [EquivalentConceptualVolumesSequenceItem(x) for x in self._dataset.EquivalentConceptualVolumesSequence] + return None + + @EquivalentConceptualVolumesSequence.setter + def EquivalentConceptualVolumesSequence(self, value: Optional[List[EquivalentConceptualVolumesSequenceItem]]): + if value is None: + self._EquivalentConceptualVolumesSequence = [] + if "EquivalentConceptualVolumesSequence" in self._dataset: + del self._dataset.EquivalentConceptualVolumesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquivalentConceptualVolumesSequenceItem) for item in value + ): + raise ValueError( + "EquivalentConceptualVolumesSequence must be a list of EquivalentConceptualVolumesSequenceItem objects" + ) + else: + self._EquivalentConceptualVolumesSequence = value + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.clear() + self._dataset.EquivalentConceptualVolumesSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentConceptualVolumes(self, item: EquivalentConceptualVolumesSequenceItem): + if not isinstance(item, EquivalentConceptualVolumesSequenceItem): + raise ValueError("Item must be an instance of EquivalentConceptualVolumesSequenceItem") + self._EquivalentConceptualVolumesSequence.append(item) + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeCombinationExpression(self) -> Optional[str]: + if "ConceptualVolumeCombinationExpression" in self._dataset: + return self._dataset.ConceptualVolumeCombinationExpression + return None + + @ConceptualVolumeCombinationExpression.setter + def ConceptualVolumeCombinationExpression(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeCombinationExpression" in self._dataset: + del self._dataset.ConceptualVolumeCombinationExpression + else: + self._dataset.ConceptualVolumeCombinationExpression = value + + @property + def ConceptualVolumeCombinationFlag(self) -> Optional[str]: + if "ConceptualVolumeCombinationFlag" in self._dataset: + return self._dataset.ConceptualVolumeCombinationFlag + return None + + @ConceptualVolumeCombinationFlag.setter + def ConceptualVolumeCombinationFlag(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeCombinationFlag" in self._dataset: + del self._dataset.ConceptualVolumeCombinationFlag + else: + self._dataset.ConceptualVolumeCombinationFlag = value + + @property + def ConceptualVolumeCombinationDescription(self) -> Optional[str]: + if "ConceptualVolumeCombinationDescription" in self._dataset: + return self._dataset.ConceptualVolumeCombinationDescription + return None + + @ConceptualVolumeCombinationDescription.setter + def ConceptualVolumeCombinationDescription(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeCombinationDescription" in self._dataset: + del self._dataset.ConceptualVolumeCombinationDescription + else: + self._dataset.ConceptualVolumeCombinationDescription = value + + @property + def ConceptualVolumeSegmentationDefinedFlag(self) -> Optional[str]: + if "ConceptualVolumeSegmentationDefinedFlag" in self._dataset: + return self._dataset.ConceptualVolumeSegmentationDefinedFlag + return None + + @ConceptualVolumeSegmentationDefinedFlag.setter + def ConceptualVolumeSegmentationDefinedFlag(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeSegmentationDefinedFlag" in self._dataset: + del self._dataset.ConceptualVolumeSegmentationDefinedFlag + else: + self._dataset.ConceptualVolumeSegmentationDefinedFlag = value + + @property + def ConceptualVolumeSegmentationReferenceSequence( + self, + ) -> Optional[List[ConceptualVolumeSegmentationReferenceSequenceItem]]: + if "ConceptualVolumeSegmentationReferenceSequence" in self._dataset: + if len(self._ConceptualVolumeSegmentationReferenceSequence) == len( + self._dataset.ConceptualVolumeSegmentationReferenceSequence + ): + return self._ConceptualVolumeSegmentationReferenceSequence + else: + return [ + ConceptualVolumeSegmentationReferenceSequenceItem(x) + for x in self._dataset.ConceptualVolumeSegmentationReferenceSequence + ] + return None + + @ConceptualVolumeSegmentationReferenceSequence.setter + def ConceptualVolumeSegmentationReferenceSequence( + self, value: Optional[List[ConceptualVolumeSegmentationReferenceSequenceItem]] + ): + if value is None: + self._ConceptualVolumeSegmentationReferenceSequence = [] + if "ConceptualVolumeSegmentationReferenceSequence" in self._dataset: + del self._dataset.ConceptualVolumeSegmentationReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeSegmentationReferenceSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeSegmentationReferenceSequence must be a list of" + " ConceptualVolumeSegmentationReferenceSequenceItem objects" + ) + else: + self._ConceptualVolumeSegmentationReferenceSequence = value + if "ConceptualVolumeSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSegmentationReferenceSequence.clear() + self._dataset.ConceptualVolumeSegmentationReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeSegmentationReference(self, item: ConceptualVolumeSegmentationReferenceSequenceItem): + if not isinstance(item, ConceptualVolumeSegmentationReferenceSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSegmentationReferenceSequenceItem") + self._ConceptualVolumeSegmentationReferenceSequence.append(item) + if "ConceptualVolumeSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSegmentationReferenceSequence.append(item.to_dataset()) + + @property + def DerivationConceptualVolumeSequence(self) -> Optional[List[DerivationConceptualVolumeSequenceItem]]: + if "DerivationConceptualVolumeSequence" in self._dataset: + if len(self._DerivationConceptualVolumeSequence) == len(self._dataset.DerivationConceptualVolumeSequence): + return self._DerivationConceptualVolumeSequence + else: + return [DerivationConceptualVolumeSequenceItem(x) for x in self._dataset.DerivationConceptualVolumeSequence] + return None + + @DerivationConceptualVolumeSequence.setter + def DerivationConceptualVolumeSequence(self, value: Optional[List[DerivationConceptualVolumeSequenceItem]]): + if value is None: + self._DerivationConceptualVolumeSequence = [] + if "DerivationConceptualVolumeSequence" in self._dataset: + del self._dataset.DerivationConceptualVolumeSequence + elif not isinstance(value, list) or not all( + isinstance(item, DerivationConceptualVolumeSequenceItem) for item in value + ): + raise ValueError( + "DerivationConceptualVolumeSequence must be a list of DerivationConceptualVolumeSequenceItem objects" + ) + else: + self._DerivationConceptualVolumeSequence = value + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.clear() + self._dataset.DerivationConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationConceptualVolume(self, item: DerivationConceptualVolumeSequenceItem): + if not isinstance(item, DerivationConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of DerivationConceptualVolumeSequenceItem") + self._DerivationConceptualVolumeSequence.append(item) + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/confirmation_sequence_item.py b/tdwii_plus_examples/domain_model/confirmation_sequence_item.py new file mode 100644 index 0000000..bcb26ae --- /dev/null +++ b/tdwii_plus_examples/domain_model/confirmation_sequence_item.py @@ -0,0 +1,204 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .asserter_identification_sequence_item import AsserterIdentificationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .pertinent_documents_sequence_item import PertinentDocumentsSequenceItem +from .related_assertion_sequence_item import RelatedAssertionSequenceItem + + +class ConfirmationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PertinentDocumentsSequence: List[PertinentDocumentsSequenceItem] = [] + self._AssertionCodeSequence: List[CodeSequenceItem] = [] + self._AsserterIdentificationSequence: List[AsserterIdentificationSequenceItem] = [] + self._RelatedAssertionSequence: List[RelatedAssertionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PertinentDocumentsSequence(self) -> Optional[List[PertinentDocumentsSequenceItem]]: + if "PertinentDocumentsSequence" in self._dataset: + if len(self._PertinentDocumentsSequence) == len(self._dataset.PertinentDocumentsSequence): + return self._PertinentDocumentsSequence + else: + return [PertinentDocumentsSequenceItem(x) for x in self._dataset.PertinentDocumentsSequence] + return None + + @PertinentDocumentsSequence.setter + def PertinentDocumentsSequence(self, value: Optional[List[PertinentDocumentsSequenceItem]]): + if value is None: + self._PertinentDocumentsSequence = [] + if "PertinentDocumentsSequence" in self._dataset: + del self._dataset.PertinentDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentDocumentsSequenceItem) for item in value): + raise ValueError("PertinentDocumentsSequence must be a list of PertinentDocumentsSequenceItem objects") + else: + self._PertinentDocumentsSequence = value + if "PertinentDocumentsSequence" not in self._dataset: + self._dataset.PertinentDocumentsSequence = pydicom.Sequence() + self._dataset.PertinentDocumentsSequence.clear() + self._dataset.PertinentDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentDocuments(self, item: PertinentDocumentsSequenceItem): + if not isinstance(item, PertinentDocumentsSequenceItem): + raise ValueError("Item must be an instance of PertinentDocumentsSequenceItem") + self._PertinentDocumentsSequence.append(item) + if "PertinentDocumentsSequence" not in self._dataset: + self._dataset.PertinentDocumentsSequence = pydicom.Sequence() + self._dataset.PertinentDocumentsSequence.append(item.to_dataset()) + + @property + def AssertionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AssertionCodeSequence" in self._dataset: + if len(self._AssertionCodeSequence) == len(self._dataset.AssertionCodeSequence): + return self._AssertionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AssertionCodeSequence] + return None + + @AssertionCodeSequence.setter + def AssertionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AssertionCodeSequence = [] + if "AssertionCodeSequence" in self._dataset: + del self._dataset.AssertionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AssertionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AssertionCodeSequence = value + if "AssertionCodeSequence" not in self._dataset: + self._dataset.AssertionCodeSequence = pydicom.Sequence() + self._dataset.AssertionCodeSequence.clear() + self._dataset.AssertionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AssertionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AssertionCodeSequence.append(item) + if "AssertionCodeSequence" not in self._dataset: + self._dataset.AssertionCodeSequence = pydicom.Sequence() + self._dataset.AssertionCodeSequence.append(item.to_dataset()) + + @property + def AssertionUID(self) -> Optional[str]: + if "AssertionUID" in self._dataset: + return self._dataset.AssertionUID + return None + + @AssertionUID.setter + def AssertionUID(self, value: Optional[str]): + if value is None: + if "AssertionUID" in self._dataset: + del self._dataset.AssertionUID + else: + self._dataset.AssertionUID = value + + @property + def AsserterIdentificationSequence(self) -> Optional[List[AsserterIdentificationSequenceItem]]: + if "AsserterIdentificationSequence" in self._dataset: + if len(self._AsserterIdentificationSequence) == len(self._dataset.AsserterIdentificationSequence): + return self._AsserterIdentificationSequence + else: + return [AsserterIdentificationSequenceItem(x) for x in self._dataset.AsserterIdentificationSequence] + return None + + @AsserterIdentificationSequence.setter + def AsserterIdentificationSequence(self, value: Optional[List[AsserterIdentificationSequenceItem]]): + if value is None: + self._AsserterIdentificationSequence = [] + if "AsserterIdentificationSequence" in self._dataset: + del self._dataset.AsserterIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AsserterIdentificationSequenceItem) for item in value): + raise ValueError("AsserterIdentificationSequence must be a list of AsserterIdentificationSequenceItem objects") + else: + self._AsserterIdentificationSequence = value + if "AsserterIdentificationSequence" not in self._dataset: + self._dataset.AsserterIdentificationSequence = pydicom.Sequence() + self._dataset.AsserterIdentificationSequence.clear() + self._dataset.AsserterIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AsserterIdentification(self, item: AsserterIdentificationSequenceItem): + if not isinstance(item, AsserterIdentificationSequenceItem): + raise ValueError("Item must be an instance of AsserterIdentificationSequenceItem") + self._AsserterIdentificationSequence.append(item) + if "AsserterIdentificationSequence" not in self._dataset: + self._dataset.AsserterIdentificationSequence = pydicom.Sequence() + self._dataset.AsserterIdentificationSequence.append(item.to_dataset()) + + @property + def AssertionDateTime(self) -> Optional[str]: + if "AssertionDateTime" in self._dataset: + return self._dataset.AssertionDateTime + return None + + @AssertionDateTime.setter + def AssertionDateTime(self, value: Optional[str]): + if value is None: + if "AssertionDateTime" in self._dataset: + del self._dataset.AssertionDateTime + else: + self._dataset.AssertionDateTime = value + + @property + def AssertionExpirationDateTime(self) -> Optional[str]: + if "AssertionExpirationDateTime" in self._dataset: + return self._dataset.AssertionExpirationDateTime + return None + + @AssertionExpirationDateTime.setter + def AssertionExpirationDateTime(self, value: Optional[str]): + if value is None: + if "AssertionExpirationDateTime" in self._dataset: + del self._dataset.AssertionExpirationDateTime + else: + self._dataset.AssertionExpirationDateTime = value + + @property + def AssertionComments(self) -> Optional[str]: + if "AssertionComments" in self._dataset: + return self._dataset.AssertionComments + return None + + @AssertionComments.setter + def AssertionComments(self, value: Optional[str]): + if value is None: + if "AssertionComments" in self._dataset: + del self._dataset.AssertionComments + else: + self._dataset.AssertionComments = value + + @property + def RelatedAssertionSequence(self) -> Optional[List[RelatedAssertionSequenceItem]]: + if "RelatedAssertionSequence" in self._dataset: + if len(self._RelatedAssertionSequence) == len(self._dataset.RelatedAssertionSequence): + return self._RelatedAssertionSequence + else: + return [RelatedAssertionSequenceItem(x) for x in self._dataset.RelatedAssertionSequence] + return None + + @RelatedAssertionSequence.setter + def RelatedAssertionSequence(self, value: Optional[List[RelatedAssertionSequenceItem]]): + if value is None: + self._RelatedAssertionSequence = [] + if "RelatedAssertionSequence" in self._dataset: + del self._dataset.RelatedAssertionSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedAssertionSequenceItem) for item in value): + raise ValueError("RelatedAssertionSequence must be a list of RelatedAssertionSequenceItem objects") + else: + self._RelatedAssertionSequence = value + if "RelatedAssertionSequence" not in self._dataset: + self._dataset.RelatedAssertionSequence = pydicom.Sequence() + self._dataset.RelatedAssertionSequence.clear() + self._dataset.RelatedAssertionSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedAssertion(self, item: RelatedAssertionSequenceItem): + if not isinstance(item, RelatedAssertionSequenceItem): + raise ValueError("Item must be an instance of RelatedAssertionSequenceItem") + self._RelatedAssertionSequence.append(item) + if "RelatedAssertionSequence" not in self._dataset: + self._dataset.RelatedAssertionSequence = pydicom.Sequence() + self._dataset.RelatedAssertionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/confocal_microscopy_image.py b/tdwii_plus_examples/domain_model/confocal_microscopy_image.py new file mode 100644 index 0000000..ce8d32e --- /dev/null +++ b/tdwii_plus_examples/domain_model/confocal_microscopy_image.py @@ -0,0 +1,6040 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .optical_path_sequence_item import OpticalPathSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class ConfocalMicroscopyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._OpticalPathSequence: List[OpticalPathSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OpticalPathSequence(self) -> Optional[List[OpticalPathSequenceItem]]: + if "OpticalPathSequence" in self._dataset: + if len(self._OpticalPathSequence) == len(self._dataset.OpticalPathSequence): + return self._OpticalPathSequence + else: + return [OpticalPathSequenceItem(x) for x in self._dataset.OpticalPathSequence] + return None + + @OpticalPathSequence.setter + def OpticalPathSequence(self, value: Optional[List[OpticalPathSequenceItem]]): + if value is None: + self._OpticalPathSequence = [] + if "OpticalPathSequence" in self._dataset: + del self._dataset.OpticalPathSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathSequenceItem) for item in value): + raise ValueError("OpticalPathSequence must be a list of OpticalPathSequenceItem objects") + else: + self._OpticalPathSequence = value + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.clear() + self._dataset.OpticalPathSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPath(self, item: OpticalPathSequenceItem): + if not isinstance(item, OpticalPathSequenceItem): + raise ValueError("Item must be an instance of OpticalPathSequenceItem") + self._OpticalPathSequence.append(item) + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.append(item.to_dataset()) + + @property + def NumberOfOpticalPaths(self) -> Optional[int]: + if "NumberOfOpticalPaths" in self._dataset: + return self._dataset.NumberOfOpticalPaths + return None + + @NumberOfOpticalPaths.setter + def NumberOfOpticalPaths(self, value: Optional[int]): + if value is None: + if "NumberOfOpticalPaths" in self._dataset: + del self._dataset.NumberOfOpticalPaths + else: + self._dataset.NumberOfOpticalPaths = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def OpticalMagnificationFactor(self) -> Optional[Decimal]: + if "OpticalMagnificationFactor" in self._dataset: + return self._dataset.OpticalMagnificationFactor + return None + + @OpticalMagnificationFactor.setter + def OpticalMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "OpticalMagnificationFactor" in self._dataset: + del self._dataset.OpticalMagnificationFactor + else: + self._dataset.OpticalMagnificationFactor = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImageAcquisitionDepth(self) -> Optional[float]: + if "ImageAcquisitionDepth" in self._dataset: + return self._dataset.ImageAcquisitionDepth + return None + + @ImageAcquisitionDepth.setter + def ImageAcquisitionDepth(self, value: Optional[float]): + if value is None: + if "ImageAcquisitionDepth" in self._dataset: + del self._dataset.ImageAcquisitionDepth + else: + self._dataset.ImageAcquisitionDepth = value + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ConfocalMode(self) -> Optional[str]: + if "ConfocalMode" in self._dataset: + return self._dataset.ConfocalMode + return None + + @ConfocalMode.setter + def ConfocalMode(self, value: Optional[str]): + if value is None: + if "ConfocalMode" in self._dataset: + del self._dataset.ConfocalMode + else: + self._dataset.ConfocalMode = value + + @property + def TissueLocation(self) -> Optional[str]: + if "TissueLocation" in self._dataset: + return self._dataset.TissueLocation + return None + + @TissueLocation.setter + def TissueLocation(self, value: Optional[str]): + if value is None: + if "TissueLocation" in self._dataset: + del self._dataset.TissueLocation + else: + self._dataset.TissueLocation = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/confocal_microscopy_image_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/confocal_microscopy_image_frame_type_sequence_item.py new file mode 100644 index 0000000..3b91081 --- /dev/null +++ b/tdwii_plus_examples/domain_model/confocal_microscopy_image_frame_type_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ConfocalMicroscopyImageFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value diff --git a/tdwii_plus_examples/domain_model/confocal_microscopy_tiled_pyramidal_image.py b/tdwii_plus_examples/domain_model/confocal_microscopy_tiled_pyramidal_image.py new file mode 100644 index 0000000..e8afdde --- /dev/null +++ b/tdwii_plus_examples/domain_model/confocal_microscopy_tiled_pyramidal_image.py @@ -0,0 +1,6228 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .optical_path_sequence_item import OpticalPathSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .total_pixel_matrix_origin_sequence_item import TotalPixelMatrixOriginSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class ConfocalMicroscopyTiledPyramidalImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._OpticalPathSequence: List[OpticalPathSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TotalPixelMatrixOriginSequence: List[TotalPixelMatrixOriginSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OpticalPathSequence(self) -> Optional[List[OpticalPathSequenceItem]]: + if "OpticalPathSequence" in self._dataset: + if len(self._OpticalPathSequence) == len(self._dataset.OpticalPathSequence): + return self._OpticalPathSequence + else: + return [OpticalPathSequenceItem(x) for x in self._dataset.OpticalPathSequence] + return None + + @OpticalPathSequence.setter + def OpticalPathSequence(self, value: Optional[List[OpticalPathSequenceItem]]): + if value is None: + self._OpticalPathSequence = [] + if "OpticalPathSequence" in self._dataset: + del self._dataset.OpticalPathSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathSequenceItem) for item in value): + raise ValueError("OpticalPathSequence must be a list of OpticalPathSequenceItem objects") + else: + self._OpticalPathSequence = value + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.clear() + self._dataset.OpticalPathSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPath(self, item: OpticalPathSequenceItem): + if not isinstance(item, OpticalPathSequenceItem): + raise ValueError("Item must be an instance of OpticalPathSequenceItem") + self._OpticalPathSequence.append(item) + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.append(item.to_dataset()) + + @property + def NumberOfOpticalPaths(self) -> Optional[int]: + if "NumberOfOpticalPaths" in self._dataset: + return self._dataset.NumberOfOpticalPaths + return None + + @NumberOfOpticalPaths.setter + def NumberOfOpticalPaths(self, value: Optional[int]): + if value is None: + if "NumberOfOpticalPaths" in self._dataset: + del self._dataset.NumberOfOpticalPaths + else: + self._dataset.NumberOfOpticalPaths = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def ImagedVolumeWidth(self) -> Optional[float]: + if "ImagedVolumeWidth" in self._dataset: + return self._dataset.ImagedVolumeWidth + return None + + @ImagedVolumeWidth.setter + def ImagedVolumeWidth(self, value: Optional[float]): + if value is None: + if "ImagedVolumeWidth" in self._dataset: + del self._dataset.ImagedVolumeWidth + else: + self._dataset.ImagedVolumeWidth = value + + @property + def ImagedVolumeHeight(self) -> Optional[float]: + if "ImagedVolumeHeight" in self._dataset: + return self._dataset.ImagedVolumeHeight + return None + + @ImagedVolumeHeight.setter + def ImagedVolumeHeight(self, value: Optional[float]): + if value is None: + if "ImagedVolumeHeight" in self._dataset: + del self._dataset.ImagedVolumeHeight + else: + self._dataset.ImagedVolumeHeight = value + + @property + def ImagedVolumeDepth(self) -> Optional[float]: + if "ImagedVolumeDepth" in self._dataset: + return self._dataset.ImagedVolumeDepth + return None + + @ImagedVolumeDepth.setter + def ImagedVolumeDepth(self, value: Optional[float]): + if value is None: + if "ImagedVolumeDepth" in self._dataset: + del self._dataset.ImagedVolumeDepth + else: + self._dataset.ImagedVolumeDepth = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def TotalPixelMatrixColumns(self) -> Optional[int]: + if "TotalPixelMatrixColumns" in self._dataset: + return self._dataset.TotalPixelMatrixColumns + return None + + @TotalPixelMatrixColumns.setter + def TotalPixelMatrixColumns(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixColumns" in self._dataset: + del self._dataset.TotalPixelMatrixColumns + else: + self._dataset.TotalPixelMatrixColumns = value + + @property + def TotalPixelMatrixRows(self) -> Optional[int]: + if "TotalPixelMatrixRows" in self._dataset: + return self._dataset.TotalPixelMatrixRows + return None + + @TotalPixelMatrixRows.setter + def TotalPixelMatrixRows(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixRows" in self._dataset: + del self._dataset.TotalPixelMatrixRows + else: + self._dataset.TotalPixelMatrixRows = value + + @property + def TotalPixelMatrixOriginSequence(self) -> Optional[List[TotalPixelMatrixOriginSequenceItem]]: + if "TotalPixelMatrixOriginSequence" in self._dataset: + if len(self._TotalPixelMatrixOriginSequence) == len(self._dataset.TotalPixelMatrixOriginSequence): + return self._TotalPixelMatrixOriginSequence + else: + return [TotalPixelMatrixOriginSequenceItem(x) for x in self._dataset.TotalPixelMatrixOriginSequence] + return None + + @TotalPixelMatrixOriginSequence.setter + def TotalPixelMatrixOriginSequence(self, value: Optional[List[TotalPixelMatrixOriginSequenceItem]]): + if value is None: + self._TotalPixelMatrixOriginSequence = [] + if "TotalPixelMatrixOriginSequence" in self._dataset: + del self._dataset.TotalPixelMatrixOriginSequence + elif not isinstance(value, list) or not all(isinstance(item, TotalPixelMatrixOriginSequenceItem) for item in value): + raise ValueError("TotalPixelMatrixOriginSequence must be a list of TotalPixelMatrixOriginSequenceItem objects") + else: + self._TotalPixelMatrixOriginSequence = value + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.clear() + self._dataset.TotalPixelMatrixOriginSequence.extend([item.to_dataset() for item in value]) + + def add_TotalPixelMatrixOrigin(self, item: TotalPixelMatrixOriginSequenceItem): + if not isinstance(item, TotalPixelMatrixOriginSequenceItem): + raise ValueError("Item must be an instance of TotalPixelMatrixOriginSequenceItem") + self._TotalPixelMatrixOriginSequence.append(item) + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.append(item.to_dataset()) + + @property + def ImageOrientationSlide(self) -> Optional[List[Decimal]]: + if "ImageOrientationSlide" in self._dataset: + return self._dataset.ImageOrientationSlide + return None + + @ImageOrientationSlide.setter + def ImageOrientationSlide(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationSlide" in self._dataset: + del self._dataset.ImageOrientationSlide + else: + self._dataset.ImageOrientationSlide = value + + @property + def TotalPixelMatrixFocalPlanes(self) -> Optional[int]: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + return self._dataset.TotalPixelMatrixFocalPlanes + return None + + @TotalPixelMatrixFocalPlanes.setter + def TotalPixelMatrixFocalPlanes(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + del self._dataset.TotalPixelMatrixFocalPlanes + else: + self._dataset.TotalPixelMatrixFocalPlanes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def PyramidUID(self) -> Optional[str]: + if "PyramidUID" in self._dataset: + return self._dataset.PyramidUID + return None + + @PyramidUID.setter + def PyramidUID(self, value: Optional[str]): + if value is None: + if "PyramidUID" in self._dataset: + del self._dataset.PyramidUID + else: + self._dataset.PyramidUID = value + + @property + def PyramidDescription(self) -> Optional[str]: + if "PyramidDescription" in self._dataset: + return self._dataset.PyramidDescription + return None + + @PyramidDescription.setter + def PyramidDescription(self, value: Optional[str]): + if value is None: + if "PyramidDescription" in self._dataset: + del self._dataset.PyramidDescription + else: + self._dataset.PyramidDescription = value + + @property + def PyramidLabel(self) -> Optional[str]: + if "PyramidLabel" in self._dataset: + return self._dataset.PyramidLabel + return None + + @PyramidLabel.setter + def PyramidLabel(self, value: Optional[str]): + if value is None: + if "PyramidLabel" in self._dataset: + del self._dataset.PyramidLabel + else: + self._dataset.PyramidLabel = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def OpticalMagnificationFactor(self) -> Optional[Decimal]: + if "OpticalMagnificationFactor" in self._dataset: + return self._dataset.OpticalMagnificationFactor + return None + + @OpticalMagnificationFactor.setter + def OpticalMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "OpticalMagnificationFactor" in self._dataset: + del self._dataset.OpticalMagnificationFactor + else: + self._dataset.OpticalMagnificationFactor = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImageAcquisitionDepth(self) -> Optional[float]: + if "ImageAcquisitionDepth" in self._dataset: + return self._dataset.ImageAcquisitionDepth + return None + + @ImageAcquisitionDepth.setter + def ImageAcquisitionDepth(self, value: Optional[float]): + if value is None: + if "ImageAcquisitionDepth" in self._dataset: + del self._dataset.ImageAcquisitionDepth + else: + self._dataset.ImageAcquisitionDepth = value + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ConfocalMode(self) -> Optional[str]: + if "ConfocalMode" in self._dataset: + return self._dataset.ConfocalMode + return None + + @ConfocalMode.setter + def ConfocalMode(self, value: Optional[str]): + if value is None: + if "ConfocalMode" in self._dataset: + del self._dataset.ConfocalMode + else: + self._dataset.ConfocalMode = value + + @property + def TissueLocation(self) -> Optional[str]: + if "TissueLocation" in self._dataset: + return self._dataset.TissueLocation + return None + + @TissueLocation.setter + def TissueLocation(self, value: Optional[str]): + if value is None: + if "TissueLocation" in self._dataset: + del self._dataset.TissueLocation + else: + self._dataset.TissueLocation = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/consent_for_clinical_trial_use_sequence_item.py b/tdwii_plus_examples/domain_model/consent_for_clinical_trial_use_sequence_item.py new file mode 100644 index 0000000..4207def --- /dev/null +++ b/tdwii_plus_examples/domain_model/consent_for_clinical_trial_use_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ConsentForClinicalTrialUseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def DistributionType(self) -> Optional[str]: + if "DistributionType" in self._dataset: + return self._dataset.DistributionType + return None + + @DistributionType.setter + def DistributionType(self, value: Optional[str]): + if value is None: + if "DistributionType" in self._dataset: + del self._dataset.DistributionType + else: + self._dataset.DistributionType = value + + @property + def ConsentForDistributionFlag(self) -> Optional[str]: + if "ConsentForDistributionFlag" in self._dataset: + return self._dataset.ConsentForDistributionFlag + return None + + @ConsentForDistributionFlag.setter + def ConsentForDistributionFlag(self, value: Optional[str]): + if value is None: + if "ConsentForDistributionFlag" in self._dataset: + del self._dataset.ConsentForDistributionFlag + else: + self._dataset.ConsentForDistributionFlag = value diff --git a/tdwii_plus_examples/domain_model/constraint_value_sequence_item.py b/tdwii_plus_examples/domain_model/constraint_value_sequence_item.py new file mode 100644 index 0000000..0bf5248 --- /dev/null +++ b/tdwii_plus_examples/domain_model/constraint_value_sequence_item.py @@ -0,0 +1,488 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ConstraintValueSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectorAEValue(self) -> Optional[List[str]]: + if "SelectorAEValue" in self._dataset: + return self._dataset.SelectorAEValue + return None + + @SelectorAEValue.setter + def SelectorAEValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorAEValue" in self._dataset: + del self._dataset.SelectorAEValue + else: + self._dataset.SelectorAEValue = value + + @property + def SelectorASValue(self) -> Optional[List[str]]: + if "SelectorASValue" in self._dataset: + return self._dataset.SelectorASValue + return None + + @SelectorASValue.setter + def SelectorASValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorASValue" in self._dataset: + del self._dataset.SelectorASValue + else: + self._dataset.SelectorASValue = value + + @property + def SelectorATValue(self) -> Optional[List[int]]: + if "SelectorATValue" in self._dataset: + return self._dataset.SelectorATValue + return None + + @SelectorATValue.setter + def SelectorATValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorATValue" in self._dataset: + del self._dataset.SelectorATValue + else: + self._dataset.SelectorATValue = value + + @property + def SelectorDAValue(self) -> Optional[List[str]]: + if "SelectorDAValue" in self._dataset: + return self._dataset.SelectorDAValue + return None + + @SelectorDAValue.setter + def SelectorDAValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDAValue" in self._dataset: + del self._dataset.SelectorDAValue + else: + self._dataset.SelectorDAValue = value + + @property + def SelectorCSValue(self) -> Optional[List[str]]: + if "SelectorCSValue" in self._dataset: + return self._dataset.SelectorCSValue + return None + + @SelectorCSValue.setter + def SelectorCSValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorCSValue" in self._dataset: + del self._dataset.SelectorCSValue + else: + self._dataset.SelectorCSValue = value + + @property + def SelectorDTValue(self) -> Optional[List[str]]: + if "SelectorDTValue" in self._dataset: + return self._dataset.SelectorDTValue + return None + + @SelectorDTValue.setter + def SelectorDTValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDTValue" in self._dataset: + del self._dataset.SelectorDTValue + else: + self._dataset.SelectorDTValue = value + + @property + def SelectorISValue(self) -> Optional[List[int]]: + if "SelectorISValue" in self._dataset: + return self._dataset.SelectorISValue + return None + + @SelectorISValue.setter + def SelectorISValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorISValue" in self._dataset: + del self._dataset.SelectorISValue + else: + self._dataset.SelectorISValue = value + + @property + def SelectorOBValue(self) -> Optional[bytes]: + if "SelectorOBValue" in self._dataset: + return self._dataset.SelectorOBValue + return None + + @SelectorOBValue.setter + def SelectorOBValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOBValue" in self._dataset: + del self._dataset.SelectorOBValue + else: + self._dataset.SelectorOBValue = value + + @property + def SelectorLOValue(self) -> Optional[List[str]]: + if "SelectorLOValue" in self._dataset: + return self._dataset.SelectorLOValue + return None + + @SelectorLOValue.setter + def SelectorLOValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorLOValue" in self._dataset: + del self._dataset.SelectorLOValue + else: + self._dataset.SelectorLOValue = value + + @property + def SelectorOFValue(self) -> Optional[bytes]: + if "SelectorOFValue" in self._dataset: + return self._dataset.SelectorOFValue + return None + + @SelectorOFValue.setter + def SelectorOFValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOFValue" in self._dataset: + del self._dataset.SelectorOFValue + else: + self._dataset.SelectorOFValue = value + + @property + def SelectorLTValue(self) -> Optional[str]: + if "SelectorLTValue" in self._dataset: + return self._dataset.SelectorLTValue + return None + + @SelectorLTValue.setter + def SelectorLTValue(self, value: Optional[str]): + if value is None: + if "SelectorLTValue" in self._dataset: + del self._dataset.SelectorLTValue + else: + self._dataset.SelectorLTValue = value + + @property + def SelectorOWValue(self) -> Optional[bytes]: + if "SelectorOWValue" in self._dataset: + return self._dataset.SelectorOWValue + return None + + @SelectorOWValue.setter + def SelectorOWValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOWValue" in self._dataset: + del self._dataset.SelectorOWValue + else: + self._dataset.SelectorOWValue = value + + @property + def SelectorPNValue(self) -> Optional[List[str]]: + if "SelectorPNValue" in self._dataset: + return self._dataset.SelectorPNValue + return None + + @SelectorPNValue.setter + def SelectorPNValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorPNValue" in self._dataset: + del self._dataset.SelectorPNValue + else: + self._dataset.SelectorPNValue = value + + @property + def SelectorTMValue(self) -> Optional[List[str]]: + if "SelectorTMValue" in self._dataset: + return self._dataset.SelectorTMValue + return None + + @SelectorTMValue.setter + def SelectorTMValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorTMValue" in self._dataset: + del self._dataset.SelectorTMValue + else: + self._dataset.SelectorTMValue = value + + @property + def SelectorSHValue(self) -> Optional[List[str]]: + if "SelectorSHValue" in self._dataset: + return self._dataset.SelectorSHValue + return None + + @SelectorSHValue.setter + def SelectorSHValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorSHValue" in self._dataset: + del self._dataset.SelectorSHValue + else: + self._dataset.SelectorSHValue = value + + @property + def SelectorUNValue(self) -> Optional[bytes]: + if "SelectorUNValue" in self._dataset: + return self._dataset.SelectorUNValue + return None + + @SelectorUNValue.setter + def SelectorUNValue(self, value: Optional[bytes]): + if value is None: + if "SelectorUNValue" in self._dataset: + del self._dataset.SelectorUNValue + else: + self._dataset.SelectorUNValue = value + + @property + def SelectorSTValue(self) -> Optional[str]: + if "SelectorSTValue" in self._dataset: + return self._dataset.SelectorSTValue + return None + + @SelectorSTValue.setter + def SelectorSTValue(self, value: Optional[str]): + if value is None: + if "SelectorSTValue" in self._dataset: + del self._dataset.SelectorSTValue + else: + self._dataset.SelectorSTValue = value + + @property + def SelectorUCValue(self) -> Optional[List[str]]: + if "SelectorUCValue" in self._dataset: + return self._dataset.SelectorUCValue + return None + + @SelectorUCValue.setter + def SelectorUCValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUCValue" in self._dataset: + del self._dataset.SelectorUCValue + else: + self._dataset.SelectorUCValue = value + + @property + def SelectorUTValue(self) -> Optional[str]: + if "SelectorUTValue" in self._dataset: + return self._dataset.SelectorUTValue + return None + + @SelectorUTValue.setter + def SelectorUTValue(self, value: Optional[str]): + if value is None: + if "SelectorUTValue" in self._dataset: + del self._dataset.SelectorUTValue + else: + self._dataset.SelectorUTValue = value + + @property + def SelectorURValue(self) -> Optional[str]: + if "SelectorURValue" in self._dataset: + return self._dataset.SelectorURValue + return None + + @SelectorURValue.setter + def SelectorURValue(self, value: Optional[str]): + if value is None: + if "SelectorURValue" in self._dataset: + del self._dataset.SelectorURValue + else: + self._dataset.SelectorURValue = value + + @property + def SelectorDSValue(self) -> Optional[List[Decimal]]: + if "SelectorDSValue" in self._dataset: + return self._dataset.SelectorDSValue + return None + + @SelectorDSValue.setter + def SelectorDSValue(self, value: Optional[List[Decimal]]): + if value is None: + if "SelectorDSValue" in self._dataset: + del self._dataset.SelectorDSValue + else: + self._dataset.SelectorDSValue = value + + @property + def SelectorODValue(self) -> Optional[bytes]: + if "SelectorODValue" in self._dataset: + return self._dataset.SelectorODValue + return None + + @SelectorODValue.setter + def SelectorODValue(self, value: Optional[bytes]): + if value is None: + if "SelectorODValue" in self._dataset: + del self._dataset.SelectorODValue + else: + self._dataset.SelectorODValue = value + + @property + def SelectorFDValue(self) -> Optional[List[float]]: + if "SelectorFDValue" in self._dataset: + return self._dataset.SelectorFDValue + return None + + @SelectorFDValue.setter + def SelectorFDValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFDValue" in self._dataset: + del self._dataset.SelectorFDValue + else: + self._dataset.SelectorFDValue = value + + @property + def SelectorOLValue(self) -> Optional[bytes]: + if "SelectorOLValue" in self._dataset: + return self._dataset.SelectorOLValue + return None + + @SelectorOLValue.setter + def SelectorOLValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOLValue" in self._dataset: + del self._dataset.SelectorOLValue + else: + self._dataset.SelectorOLValue = value + + @property + def SelectorFLValue(self) -> Optional[List[float]]: + if "SelectorFLValue" in self._dataset: + return self._dataset.SelectorFLValue + return None + + @SelectorFLValue.setter + def SelectorFLValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFLValue" in self._dataset: + del self._dataset.SelectorFLValue + else: + self._dataset.SelectorFLValue = value + + @property + def SelectorULValue(self) -> Optional[List[int]]: + if "SelectorULValue" in self._dataset: + return self._dataset.SelectorULValue + return None + + @SelectorULValue.setter + def SelectorULValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorULValue" in self._dataset: + del self._dataset.SelectorULValue + else: + self._dataset.SelectorULValue = value + + @property + def SelectorUSValue(self) -> Optional[List[int]]: + if "SelectorUSValue" in self._dataset: + return self._dataset.SelectorUSValue + return None + + @SelectorUSValue.setter + def SelectorUSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUSValue" in self._dataset: + del self._dataset.SelectorUSValue + else: + self._dataset.SelectorUSValue = value + + @property + def SelectorSLValue(self) -> Optional[List[int]]: + if "SelectorSLValue" in self._dataset: + return self._dataset.SelectorSLValue + return None + + @SelectorSLValue.setter + def SelectorSLValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSLValue" in self._dataset: + del self._dataset.SelectorSLValue + else: + self._dataset.SelectorSLValue = value + + @property + def SelectorSSValue(self) -> Optional[List[int]]: + if "SelectorSSValue" in self._dataset: + return self._dataset.SelectorSSValue + return None + + @SelectorSSValue.setter + def SelectorSSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSSValue" in self._dataset: + del self._dataset.SelectorSSValue + else: + self._dataset.SelectorSSValue = value + + @property + def SelectorUIValue(self) -> Optional[List[str]]: + if "SelectorUIValue" in self._dataset: + return self._dataset.SelectorUIValue + return None + + @SelectorUIValue.setter + def SelectorUIValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUIValue" in self._dataset: + del self._dataset.SelectorUIValue + else: + self._dataset.SelectorUIValue = value + + @property + def SelectorCodeSequenceValue(self) -> Optional[list]: + if "SelectorCodeSequenceValue" in self._dataset: + return self._dataset.SelectorCodeSequenceValue + return None + + @SelectorCodeSequenceValue.setter + def SelectorCodeSequenceValue(self, value: Optional[list]): + if value is None: + if "SelectorCodeSequenceValue" in self._dataset: + del self._dataset.SelectorCodeSequenceValue + else: + self._dataset.SelectorCodeSequenceValue = value + + @property + def SelectorOVValue(self) -> Optional[bytes]: + if "SelectorOVValue" in self._dataset: + return self._dataset.SelectorOVValue + return None + + @SelectorOVValue.setter + def SelectorOVValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOVValue" in self._dataset: + del self._dataset.SelectorOVValue + else: + self._dataset.SelectorOVValue = value + + @property + def SelectorSVValue(self) -> Optional[List[int]]: + if "SelectorSVValue" in self._dataset: + return self._dataset.SelectorSVValue + return None + + @SelectorSVValue.setter + def SelectorSVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSVValue" in self._dataset: + del self._dataset.SelectorSVValue + else: + self._dataset.SelectorSVValue = value + + @property + def SelectorUVValue(self) -> Optional[List[int]]: + if "SelectorUVValue" in self._dataset: + return self._dataset.SelectorUVValue + return None + + @SelectorUVValue.setter + def SelectorUVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUVValue" in self._dataset: + del self._dataset.SelectorUVValue + else: + self._dataset.SelectorUVValue = value diff --git a/tdwii_plus_examples/domain_model/consulting_physician_identification_sequence_item.py b/tdwii_plus_examples/domain_model/consulting_physician_identification_sequence_item.py new file mode 100644 index 0000000..9346034 --- /dev/null +++ b/tdwii_plus_examples/domain_model/consulting_physician_identification_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ConsultingPhysicianIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/container_component_sequence_item.py b/tdwii_plus_examples/domain_model/container_component_sequence_item.py new file mode 100644 index 0000000..0e230a5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/container_component_sequence_item.py @@ -0,0 +1,172 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ContainerComponentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ContainerComponentTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def ContainerComponentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerComponentTypeCodeSequence" in self._dataset: + if len(self._ContainerComponentTypeCodeSequence) == len(self._dataset.ContainerComponentTypeCodeSequence): + return self._ContainerComponentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerComponentTypeCodeSequence] + return None + + @ContainerComponentTypeCodeSequence.setter + def ContainerComponentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerComponentTypeCodeSequence = [] + if "ContainerComponentTypeCodeSequence" in self._dataset: + del self._dataset.ContainerComponentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerComponentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerComponentTypeCodeSequence = value + if "ContainerComponentTypeCodeSequence" not in self._dataset: + self._dataset.ContainerComponentTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerComponentTypeCodeSequence.clear() + self._dataset.ContainerComponentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerComponentTypeCodeSequence.append(item) + if "ContainerComponentTypeCodeSequence" not in self._dataset: + self._dataset.ContainerComponentTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerComponentTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerComponentThickness(self) -> Optional[float]: + if "ContainerComponentThickness" in self._dataset: + return self._dataset.ContainerComponentThickness + return None + + @ContainerComponentThickness.setter + def ContainerComponentThickness(self, value: Optional[float]): + if value is None: + if "ContainerComponentThickness" in self._dataset: + del self._dataset.ContainerComponentThickness + else: + self._dataset.ContainerComponentThickness = value + + @property + def ContainerComponentWidth(self) -> Optional[float]: + if "ContainerComponentWidth" in self._dataset: + return self._dataset.ContainerComponentWidth + return None + + @ContainerComponentWidth.setter + def ContainerComponentWidth(self, value: Optional[float]): + if value is None: + if "ContainerComponentWidth" in self._dataset: + del self._dataset.ContainerComponentWidth + else: + self._dataset.ContainerComponentWidth = value + + @property + def ContainerComponentMaterial(self) -> Optional[str]: + if "ContainerComponentMaterial" in self._dataset: + return self._dataset.ContainerComponentMaterial + return None + + @ContainerComponentMaterial.setter + def ContainerComponentMaterial(self, value: Optional[str]): + if value is None: + if "ContainerComponentMaterial" in self._dataset: + del self._dataset.ContainerComponentMaterial + else: + self._dataset.ContainerComponentMaterial = value + + @property + def ContainerComponentID(self) -> Optional[str]: + if "ContainerComponentID" in self._dataset: + return self._dataset.ContainerComponentID + return None + + @ContainerComponentID.setter + def ContainerComponentID(self, value: Optional[str]): + if value is None: + if "ContainerComponentID" in self._dataset: + del self._dataset.ContainerComponentID + else: + self._dataset.ContainerComponentID = value + + @property + def ContainerComponentLength(self) -> Optional[float]: + if "ContainerComponentLength" in self._dataset: + return self._dataset.ContainerComponentLength + return None + + @ContainerComponentLength.setter + def ContainerComponentLength(self, value: Optional[float]): + if value is None: + if "ContainerComponentLength" in self._dataset: + del self._dataset.ContainerComponentLength + else: + self._dataset.ContainerComponentLength = value + + @property + def ContainerComponentDiameter(self) -> Optional[float]: + if "ContainerComponentDiameter" in self._dataset: + return self._dataset.ContainerComponentDiameter + return None + + @ContainerComponentDiameter.setter + def ContainerComponentDiameter(self, value: Optional[float]): + if value is None: + if "ContainerComponentDiameter" in self._dataset: + del self._dataset.ContainerComponentDiameter + else: + self._dataset.ContainerComponentDiameter = value + + @property + def ContainerComponentDescription(self) -> Optional[str]: + if "ContainerComponentDescription" in self._dataset: + return self._dataset.ContainerComponentDescription + return None + + @ContainerComponentDescription.setter + def ContainerComponentDescription(self, value: Optional[str]): + if value is None: + if "ContainerComponentDescription" in self._dataset: + del self._dataset.ContainerComponentDescription + else: + self._dataset.ContainerComponentDescription = value diff --git a/tdwii_plus_examples/domain_model/content_assessment_results.py b/tdwii_plus_examples/domain_model/content_assessment_results.py new file mode 100644 index 0000000..778e780 --- /dev/null +++ b/tdwii_plus_examples/domain_model/content_assessment_results.py @@ -0,0 +1,4259 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .assessed_sop_instance_sequence_item import AssessedSOPInstanceSequenceItem +from .assessment_observations_sequence_item import AssessmentObservationsSequenceItem +from .assessment_requester_sequence_item import AssessmentRequesterSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .pertinent_resources_sequence_item import PertinentResourcesSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class ContentAssessmentResults: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._PertinentResourcesSequence: List[PertinentResourcesSequenceItem] = [] + self._AssessedSOPInstanceSequence: List[AssessedSOPInstanceSequenceItem] = [] + self._AssessmentObservationsSequence: List[AssessmentObservationsSequenceItem] = [] + self._AssessmentRequesterSequence: List[AssessmentRequesterSequenceItem] = [] + self._AssessmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def PertinentResourcesSequence(self) -> Optional[List[PertinentResourcesSequenceItem]]: + if "PertinentResourcesSequence" in self._dataset: + if len(self._PertinentResourcesSequence) == len(self._dataset.PertinentResourcesSequence): + return self._PertinentResourcesSequence + else: + return [PertinentResourcesSequenceItem(x) for x in self._dataset.PertinentResourcesSequence] + return None + + @PertinentResourcesSequence.setter + def PertinentResourcesSequence(self, value: Optional[List[PertinentResourcesSequenceItem]]): + if value is None: + self._PertinentResourcesSequence = [] + if "PertinentResourcesSequence" in self._dataset: + del self._dataset.PertinentResourcesSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentResourcesSequenceItem) for item in value): + raise ValueError("PertinentResourcesSequence must be a list of PertinentResourcesSequenceItem objects") + else: + self._PertinentResourcesSequence = value + if "PertinentResourcesSequence" not in self._dataset: + self._dataset.PertinentResourcesSequence = pydicom.Sequence() + self._dataset.PertinentResourcesSequence.clear() + self._dataset.PertinentResourcesSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentResources(self, item: PertinentResourcesSequenceItem): + if not isinstance(item, PertinentResourcesSequenceItem): + raise ValueError("Item must be an instance of PertinentResourcesSequenceItem") + self._PertinentResourcesSequence.append(item) + if "PertinentResourcesSequence" not in self._dataset: + self._dataset.PertinentResourcesSequence = pydicom.Sequence() + self._dataset.PertinentResourcesSequence.append(item.to_dataset()) + + @property + def AssessmentSummary(self) -> Optional[str]: + if "AssessmentSummary" in self._dataset: + return self._dataset.AssessmentSummary + return None + + @AssessmentSummary.setter + def AssessmentSummary(self, value: Optional[str]): + if value is None: + if "AssessmentSummary" in self._dataset: + del self._dataset.AssessmentSummary + else: + self._dataset.AssessmentSummary = value + + @property + def AssessmentSummaryDescription(self) -> Optional[str]: + if "AssessmentSummaryDescription" in self._dataset: + return self._dataset.AssessmentSummaryDescription + return None + + @AssessmentSummaryDescription.setter + def AssessmentSummaryDescription(self, value: Optional[str]): + if value is None: + if "AssessmentSummaryDescription" in self._dataset: + del self._dataset.AssessmentSummaryDescription + else: + self._dataset.AssessmentSummaryDescription = value + + @property + def AssessedSOPInstanceSequence(self) -> Optional[List[AssessedSOPInstanceSequenceItem]]: + if "AssessedSOPInstanceSequence" in self._dataset: + if len(self._AssessedSOPInstanceSequence) == len(self._dataset.AssessedSOPInstanceSequence): + return self._AssessedSOPInstanceSequence + else: + return [AssessedSOPInstanceSequenceItem(x) for x in self._dataset.AssessedSOPInstanceSequence] + return None + + @AssessedSOPInstanceSequence.setter + def AssessedSOPInstanceSequence(self, value: Optional[List[AssessedSOPInstanceSequenceItem]]): + if value is None: + self._AssessedSOPInstanceSequence = [] + if "AssessedSOPInstanceSequence" in self._dataset: + del self._dataset.AssessedSOPInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, AssessedSOPInstanceSequenceItem) for item in value): + raise ValueError("AssessedSOPInstanceSequence must be a list of AssessedSOPInstanceSequenceItem objects") + else: + self._AssessedSOPInstanceSequence = value + if "AssessedSOPInstanceSequence" not in self._dataset: + self._dataset.AssessedSOPInstanceSequence = pydicom.Sequence() + self._dataset.AssessedSOPInstanceSequence.clear() + self._dataset.AssessedSOPInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_AssessedSOPInstance(self, item: AssessedSOPInstanceSequenceItem): + if not isinstance(item, AssessedSOPInstanceSequenceItem): + raise ValueError("Item must be an instance of AssessedSOPInstanceSequenceItem") + self._AssessedSOPInstanceSequence.append(item) + if "AssessedSOPInstanceSequence" not in self._dataset: + self._dataset.AssessedSOPInstanceSequence = pydicom.Sequence() + self._dataset.AssessedSOPInstanceSequence.append(item.to_dataset()) + + @property + def NumberOfAssessmentObservations(self) -> Optional[int]: + if "NumberOfAssessmentObservations" in self._dataset: + return self._dataset.NumberOfAssessmentObservations + return None + + @NumberOfAssessmentObservations.setter + def NumberOfAssessmentObservations(self, value: Optional[int]): + if value is None: + if "NumberOfAssessmentObservations" in self._dataset: + del self._dataset.NumberOfAssessmentObservations + else: + self._dataset.NumberOfAssessmentObservations = value + + @property + def AssessmentObservationsSequence(self) -> Optional[List[AssessmentObservationsSequenceItem]]: + if "AssessmentObservationsSequence" in self._dataset: + if len(self._AssessmentObservationsSequence) == len(self._dataset.AssessmentObservationsSequence): + return self._AssessmentObservationsSequence + else: + return [AssessmentObservationsSequenceItem(x) for x in self._dataset.AssessmentObservationsSequence] + return None + + @AssessmentObservationsSequence.setter + def AssessmentObservationsSequence(self, value: Optional[List[AssessmentObservationsSequenceItem]]): + if value is None: + self._AssessmentObservationsSequence = [] + if "AssessmentObservationsSequence" in self._dataset: + del self._dataset.AssessmentObservationsSequence + elif not isinstance(value, list) or not all(isinstance(item, AssessmentObservationsSequenceItem) for item in value): + raise ValueError("AssessmentObservationsSequence must be a list of AssessmentObservationsSequenceItem objects") + else: + self._AssessmentObservationsSequence = value + if "AssessmentObservationsSequence" not in self._dataset: + self._dataset.AssessmentObservationsSequence = pydicom.Sequence() + self._dataset.AssessmentObservationsSequence.clear() + self._dataset.AssessmentObservationsSequence.extend([item.to_dataset() for item in value]) + + def add_AssessmentObservations(self, item: AssessmentObservationsSequenceItem): + if not isinstance(item, AssessmentObservationsSequenceItem): + raise ValueError("Item must be an instance of AssessmentObservationsSequenceItem") + self._AssessmentObservationsSequence.append(item) + if "AssessmentObservationsSequence" not in self._dataset: + self._dataset.AssessmentObservationsSequence = pydicom.Sequence() + self._dataset.AssessmentObservationsSequence.append(item.to_dataset()) + + @property + def AssessmentSetID(self) -> Optional[str]: + if "AssessmentSetID" in self._dataset: + return self._dataset.AssessmentSetID + return None + + @AssessmentSetID.setter + def AssessmentSetID(self, value: Optional[str]): + if value is None: + if "AssessmentSetID" in self._dataset: + del self._dataset.AssessmentSetID + else: + self._dataset.AssessmentSetID = value + + @property + def AssessmentRequesterSequence(self) -> Optional[List[AssessmentRequesterSequenceItem]]: + if "AssessmentRequesterSequence" in self._dataset: + if len(self._AssessmentRequesterSequence) == len(self._dataset.AssessmentRequesterSequence): + return self._AssessmentRequesterSequence + else: + return [AssessmentRequesterSequenceItem(x) for x in self._dataset.AssessmentRequesterSequence] + return None + + @AssessmentRequesterSequence.setter + def AssessmentRequesterSequence(self, value: Optional[List[AssessmentRequesterSequenceItem]]): + if value is None: + self._AssessmentRequesterSequence = [] + if "AssessmentRequesterSequence" in self._dataset: + del self._dataset.AssessmentRequesterSequence + elif not isinstance(value, list) or not all(isinstance(item, AssessmentRequesterSequenceItem) for item in value): + raise ValueError("AssessmentRequesterSequence must be a list of AssessmentRequesterSequenceItem objects") + else: + self._AssessmentRequesterSequence = value + if "AssessmentRequesterSequence" not in self._dataset: + self._dataset.AssessmentRequesterSequence = pydicom.Sequence() + self._dataset.AssessmentRequesterSequence.clear() + self._dataset.AssessmentRequesterSequence.extend([item.to_dataset() for item in value]) + + def add_AssessmentRequester(self, item: AssessmentRequesterSequenceItem): + if not isinstance(item, AssessmentRequesterSequenceItem): + raise ValueError("Item must be an instance of AssessmentRequesterSequenceItem") + self._AssessmentRequesterSequence.append(item) + if "AssessmentRequesterSequence" not in self._dataset: + self._dataset.AssessmentRequesterSequence = pydicom.Sequence() + self._dataset.AssessmentRequesterSequence.append(item.to_dataset()) + + @property + def AssessmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AssessmentTypeCodeSequence" in self._dataset: + if len(self._AssessmentTypeCodeSequence) == len(self._dataset.AssessmentTypeCodeSequence): + return self._AssessmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AssessmentTypeCodeSequence] + return None + + @AssessmentTypeCodeSequence.setter + def AssessmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AssessmentTypeCodeSequence = [] + if "AssessmentTypeCodeSequence" in self._dataset: + del self._dataset.AssessmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AssessmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AssessmentTypeCodeSequence = value + if "AssessmentTypeCodeSequence" not in self._dataset: + self._dataset.AssessmentTypeCodeSequence = pydicom.Sequence() + self._dataset.AssessmentTypeCodeSequence.clear() + self._dataset.AssessmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AssessmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AssessmentTypeCodeSequence.append(item) + if "AssessmentTypeCodeSequence" not in self._dataset: + self._dataset.AssessmentTypeCodeSequence = pydicom.Sequence() + self._dataset.AssessmentTypeCodeSequence.append(item.to_dataset()) + + @property + def AssessmentLabel(self) -> Optional[str]: + if "AssessmentLabel" in self._dataset: + return self._dataset.AssessmentLabel + return None + + @AssessmentLabel.setter + def AssessmentLabel(self, value: Optional[str]): + if value is None: + if "AssessmentLabel" in self._dataset: + del self._dataset.AssessmentLabel + else: + self._dataset.AssessmentLabel = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/content_sequence_item.py b/tdwii_plus_examples/domain_model/content_sequence_item.py new file mode 100644 index 0000000..7125ae9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/content_sequence_item.py @@ -0,0 +1,515 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem + + +class ContentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def RelationshipType(self) -> Optional[str]: + if "RelationshipType" in self._dataset: + return self._dataset.RelationshipType + return None + + @RelationshipType.setter + def RelationshipType(self, value: Optional[str]): + if value is None: + if "RelationshipType" in self._dataset: + del self._dataset.RelationshipType + else: + self._dataset.RelationshipType = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def ReferencedContentItemIdentifier(self) -> Optional[List[int]]: + if "ReferencedContentItemIdentifier" in self._dataset: + return self._dataset.ReferencedContentItemIdentifier + return None + + @ReferencedContentItemIdentifier.setter + def ReferencedContentItemIdentifier(self, value: Optional[List[int]]): + if value is None: + if "ReferencedContentItemIdentifier" in self._dataset: + del self._dataset.ReferencedContentItemIdentifier + else: + self._dataset.ReferencedContentItemIdentifier = value + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value diff --git a/tdwii_plus_examples/domain_model/content_template_sequence_item.py b/tdwii_plus_examples/domain_model/content_template_sequence_item.py new file mode 100644 index 0000000..73bf0a2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/content_template_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ContentTemplateSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def TemplateIdentifier(self) -> Optional[str]: + if "TemplateIdentifier" in self._dataset: + return self._dataset.TemplateIdentifier + return None + + @TemplateIdentifier.setter + def TemplateIdentifier(self, value: Optional[str]): + if value is None: + if "TemplateIdentifier" in self._dataset: + del self._dataset.TemplateIdentifier + else: + self._dataset.TemplateIdentifier = value diff --git a/tdwii_plus_examples/domain_model/context_group_identification_sequence_item.py b/tdwii_plus_examples/domain_model/context_group_identification_sequence_item.py new file mode 100644 index 0000000..9a4bb00 --- /dev/null +++ b/tdwii_plus_examples/domain_model/context_group_identification_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ContextGroupIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value diff --git a/tdwii_plus_examples/domain_model/contour_image_sequence_item.py b/tdwii_plus_examples/domain_model/contour_image_sequence_item.py new file mode 100644 index 0000000..1ea956c --- /dev/null +++ b/tdwii_plus_examples/domain_model/contour_image_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ContourImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/contour_sequence_item.py b/tdwii_plus_examples/domain_model/contour_sequence_item.py new file mode 100644 index 0000000..efa5af5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/contour_sequence_item.py @@ -0,0 +1,103 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .contour_image_sequence_item import ContourImageSequenceItem + + +class ContourSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ContourImageSequence: List[ContourImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContourImageSequence(self) -> Optional[List[ContourImageSequenceItem]]: + if "ContourImageSequence" in self._dataset: + if len(self._ContourImageSequence) == len(self._dataset.ContourImageSequence): + return self._ContourImageSequence + else: + return [ContourImageSequenceItem(x) for x in self._dataset.ContourImageSequence] + return None + + @ContourImageSequence.setter + def ContourImageSequence(self, value: Optional[List[ContourImageSequenceItem]]): + if value is None: + self._ContourImageSequence = [] + if "ContourImageSequence" in self._dataset: + del self._dataset.ContourImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContourImageSequenceItem) for item in value): + raise ValueError("ContourImageSequence must be a list of ContourImageSequenceItem objects") + else: + self._ContourImageSequence = value + if "ContourImageSequence" not in self._dataset: + self._dataset.ContourImageSequence = pydicom.Sequence() + self._dataset.ContourImageSequence.clear() + self._dataset.ContourImageSequence.extend([item.to_dataset() for item in value]) + + def add_ContourImage(self, item: ContourImageSequenceItem): + if not isinstance(item, ContourImageSequenceItem): + raise ValueError("Item must be an instance of ContourImageSequenceItem") + self._ContourImageSequence.append(item) + if "ContourImageSequence" not in self._dataset: + self._dataset.ContourImageSequence = pydicom.Sequence() + self._dataset.ContourImageSequence.append(item.to_dataset()) + + @property + def ContourGeometricType(self) -> Optional[str]: + if "ContourGeometricType" in self._dataset: + return self._dataset.ContourGeometricType + return None + + @ContourGeometricType.setter + def ContourGeometricType(self, value: Optional[str]): + if value is None: + if "ContourGeometricType" in self._dataset: + del self._dataset.ContourGeometricType + else: + self._dataset.ContourGeometricType = value + + @property + def NumberOfContourPoints(self) -> Optional[int]: + if "NumberOfContourPoints" in self._dataset: + return self._dataset.NumberOfContourPoints + return None + + @NumberOfContourPoints.setter + def NumberOfContourPoints(self, value: Optional[int]): + if value is None: + if "NumberOfContourPoints" in self._dataset: + del self._dataset.NumberOfContourPoints + else: + self._dataset.NumberOfContourPoints = value + + @property + def ContourNumber(self) -> Optional[int]: + if "ContourNumber" in self._dataset: + return self._dataset.ContourNumber + return None + + @ContourNumber.setter + def ContourNumber(self, value: Optional[int]): + if value is None: + if "ContourNumber" in self._dataset: + del self._dataset.ContourNumber + else: + self._dataset.ContourNumber = value + + @property + def ContourData(self) -> Optional[List[Decimal]]: + if "ContourData" in self._dataset: + return self._dataset.ContourData + return None + + @ContourData.setter + def ContourData(self, value: Optional[List[Decimal]]): + if value is None: + if "ContourData" in self._dataset: + del self._dataset.ContourData + else: + self._dataset.ContourData = value diff --git a/tdwii_plus_examples/domain_model/contrast_administration_profile_sequence_item.py b/tdwii_plus_examples/domain_model/contrast_administration_profile_sequence_item.py new file mode 100644 index 0000000..1f127cf --- /dev/null +++ b/tdwii_plus_examples/domain_model/contrast_administration_profile_sequence_item.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ContrastAdministrationProfileSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value diff --git a/tdwii_plus_examples/domain_model/contrast_bolus_administration_route_sequence_item.py b/tdwii_plus_examples/domain_model/contrast_bolus_administration_route_sequence_item.py new file mode 100644 index 0000000..e3121a5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/contrast_bolus_administration_route_sequence_item.py @@ -0,0 +1,290 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .additional_drug_sequence_item import AdditionalDrugSequenceItem +from .code_sequence_item import CodeSequenceItem + + +class ContrastBolusAdministrationRouteSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + self._AdditionalDrugSequence: List[AdditionalDrugSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value + + @property + def AdditionalDrugSequence(self) -> Optional[List[AdditionalDrugSequenceItem]]: + if "AdditionalDrugSequence" in self._dataset: + if len(self._AdditionalDrugSequence) == len(self._dataset.AdditionalDrugSequence): + return self._AdditionalDrugSequence + else: + return [AdditionalDrugSequenceItem(x) for x in self._dataset.AdditionalDrugSequence] + return None + + @AdditionalDrugSequence.setter + def AdditionalDrugSequence(self, value: Optional[List[AdditionalDrugSequenceItem]]): + if value is None: + self._AdditionalDrugSequence = [] + if "AdditionalDrugSequence" in self._dataset: + del self._dataset.AdditionalDrugSequence + elif not isinstance(value, list) or not all(isinstance(item, AdditionalDrugSequenceItem) for item in value): + raise ValueError("AdditionalDrugSequence must be a list of AdditionalDrugSequenceItem objects") + else: + self._AdditionalDrugSequence = value + if "AdditionalDrugSequence" not in self._dataset: + self._dataset.AdditionalDrugSequence = pydicom.Sequence() + self._dataset.AdditionalDrugSequence.clear() + self._dataset.AdditionalDrugSequence.extend([item.to_dataset() for item in value]) + + def add_AdditionalDrug(self, item: AdditionalDrugSequenceItem): + if not isinstance(item, AdditionalDrugSequenceItem): + raise ValueError("Item must be an instance of AdditionalDrugSequenceItem") + self._AdditionalDrugSequence.append(item) + if "AdditionalDrugSequence" not in self._dataset: + self._dataset.AdditionalDrugSequence = pydicom.Sequence() + self._dataset.AdditionalDrugSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/contrast_bolus_agent_sequence_item.py b/tdwii_plus_examples/domain_model/contrast_bolus_agent_sequence_item.py new file mode 100644 index 0000000..50653cd --- /dev/null +++ b/tdwii_plus_examples/domain_model/contrast_bolus_agent_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ContrastBolusAgentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/contrast_bolus_usage_sequence_item.py b/tdwii_plus_examples/domain_model/contrast_bolus_usage_sequence_item.py new file mode 100644 index 0000000..b03ef25 --- /dev/null +++ b/tdwii_plus_examples/domain_model/contrast_bolus_usage_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ContrastBolusUsageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContrastBolusAgentNumber(self) -> Optional[int]: + if "ContrastBolusAgentNumber" in self._dataset: + return self._dataset.ContrastBolusAgentNumber + return None + + @ContrastBolusAgentNumber.setter + def ContrastBolusAgentNumber(self, value: Optional[int]): + if value is None: + if "ContrastBolusAgentNumber" in self._dataset: + del self._dataset.ContrastBolusAgentNumber + else: + self._dataset.ContrastBolusAgentNumber = value + + @property + def ContrastBolusAgentAdministered(self) -> Optional[str]: + if "ContrastBolusAgentAdministered" in self._dataset: + return self._dataset.ContrastBolusAgentAdministered + return None + + @ContrastBolusAgentAdministered.setter + def ContrastBolusAgentAdministered(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgentAdministered" in self._dataset: + del self._dataset.ContrastBolusAgentAdministered + else: + self._dataset.ContrastBolusAgentAdministered = value + + @property + def ContrastBolusAgentDetected(self) -> Optional[str]: + if "ContrastBolusAgentDetected" in self._dataset: + return self._dataset.ContrastBolusAgentDetected + return None + + @ContrastBolusAgentDetected.setter + def ContrastBolusAgentDetected(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgentDetected" in self._dataset: + del self._dataset.ContrastBolusAgentDetected + else: + self._dataset.ContrastBolusAgentDetected = value + + @property + def ContrastBolusAgentPhase(self) -> Optional[str]: + if "ContrastBolusAgentPhase" in self._dataset: + return self._dataset.ContrastBolusAgentPhase + return None + + @ContrastBolusAgentPhase.setter + def ContrastBolusAgentPhase(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgentPhase" in self._dataset: + del self._dataset.ContrastBolusAgentPhase + else: + self._dataset.ContrastBolusAgentPhase = value diff --git a/tdwii_plus_examples/domain_model/contributing_equipment_sequence_item.py b/tdwii_plus_examples/domain_model/contributing_equipment_sequence_item.py new file mode 100644 index 0000000..afa6fc6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/contributing_equipment_sequence_item.py @@ -0,0 +1,388 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class ContributingEquipmentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def ContributionDateTime(self) -> Optional[str]: + if "ContributionDateTime" in self._dataset: + return self._dataset.ContributionDateTime + return None + + @ContributionDateTime.setter + def ContributionDateTime(self, value: Optional[str]): + if value is None: + if "ContributionDateTime" in self._dataset: + del self._dataset.ContributionDateTime + else: + self._dataset.ContributionDateTime = value + + @property + def ContributionDescription(self) -> Optional[str]: + if "ContributionDescription" in self._dataset: + return self._dataset.ContributionDescription + return None + + @ContributionDescription.setter + def ContributionDescription(self, value: Optional[str]): + if value is None: + if "ContributionDescription" in self._dataset: + del self._dataset.ContributionDescription + else: + self._dataset.ContributionDescription = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/contributing_sop_instances_reference_sequence_item.py b/tdwii_plus_examples/domain_model/contributing_sop_instances_reference_sequence_item.py new file mode 100644 index 0000000..a5e7d05 --- /dev/null +++ b/tdwii_plus_examples/domain_model/contributing_sop_instances_reference_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class ContributingSOPInstancesReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/contributing_sources_sequence_item.py b/tdwii_plus_examples/domain_model/contributing_sources_sequence_item.py new file mode 100644 index 0000000..cbe3c58 --- /dev/null +++ b/tdwii_plus_examples/domain_model/contributing_sources_sequence_item.py @@ -0,0 +1,421 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .contributing_sop_instances_reference_sequence_item import ( + ContributingSOPInstancesReferenceSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem + + +class ContributingSourcesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ContributingSOPInstancesReferenceSequence: List[ContributingSOPInstancesReferenceSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value + + @property + def AcquisitionProtocolName(self) -> Optional[str]: + if "AcquisitionProtocolName" in self._dataset: + return self._dataset.AcquisitionProtocolName + return None + + @AcquisitionProtocolName.setter + def AcquisitionProtocolName(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolName" in self._dataset: + del self._dataset.AcquisitionProtocolName + else: + self._dataset.AcquisitionProtocolName = value + + @property + def PlaneIdentification(self) -> Optional[str]: + if "PlaneIdentification" in self._dataset: + return self._dataset.PlaneIdentification + return None + + @PlaneIdentification.setter + def PlaneIdentification(self, value: Optional[str]): + if value is None: + if "PlaneIdentification" in self._dataset: + del self._dataset.PlaneIdentification + else: + self._dataset.PlaneIdentification = value + + @property + def ContributingSOPInstancesReferenceSequence(self) -> Optional[List[ContributingSOPInstancesReferenceSequenceItem]]: + if "ContributingSOPInstancesReferenceSequence" in self._dataset: + if len(self._ContributingSOPInstancesReferenceSequence) == len( + self._dataset.ContributingSOPInstancesReferenceSequence + ): + return self._ContributingSOPInstancesReferenceSequence + else: + return [ + ContributingSOPInstancesReferenceSequenceItem(x) + for x in self._dataset.ContributingSOPInstancesReferenceSequence + ] + return None + + @ContributingSOPInstancesReferenceSequence.setter + def ContributingSOPInstancesReferenceSequence(self, value: Optional[List[ContributingSOPInstancesReferenceSequenceItem]]): + if value is None: + self._ContributingSOPInstancesReferenceSequence = [] + if "ContributingSOPInstancesReferenceSequence" in self._dataset: + del self._dataset.ContributingSOPInstancesReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContributingSOPInstancesReferenceSequenceItem) for item in value + ): + raise ValueError( + "ContributingSOPInstancesReferenceSequence must be a list of ContributingSOPInstancesReferenceSequenceItem" + " objects" + ) + else: + self._ContributingSOPInstancesReferenceSequence = value + if "ContributingSOPInstancesReferenceSequence" not in self._dataset: + self._dataset.ContributingSOPInstancesReferenceSequence = pydicom.Sequence() + self._dataset.ContributingSOPInstancesReferenceSequence.clear() + self._dataset.ContributingSOPInstancesReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingSOPInstancesReference(self, item: ContributingSOPInstancesReferenceSequenceItem): + if not isinstance(item, ContributingSOPInstancesReferenceSequenceItem): + raise ValueError("Item must be an instance of ContributingSOPInstancesReferenceSequenceItem") + self._ContributingSOPInstancesReferenceSequence.append(item) + if "ContributingSOPInstancesReferenceSequence" not in self._dataset: + self._dataset.ContributingSOPInstancesReferenceSequence = pydicom.Sequence() + self._dataset.ContributingSOPInstancesReferenceSequence.append(item.to_dataset()) + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/contributing_sources_sequence_item_1.py b/tdwii_plus_examples/domain_model/contributing_sources_sequence_item_1.py new file mode 100644 index 0000000..51e468d --- /dev/null +++ b/tdwii_plus_examples/domain_model/contributing_sources_sequence_item_1.py @@ -0,0 +1,407 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .contributing_sop_instances_reference_sequence_item import ( + ContributingSOPInstancesReferenceSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem + + +class ContributingSourcesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ContributingSOPInstancesReferenceSequence: List[ContributingSOPInstancesReferenceSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value + + @property + def AcquisitionProtocolName(self) -> Optional[str]: + if "AcquisitionProtocolName" in self._dataset: + return self._dataset.AcquisitionProtocolName + return None + + @AcquisitionProtocolName.setter + def AcquisitionProtocolName(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolName" in self._dataset: + del self._dataset.AcquisitionProtocolName + else: + self._dataset.AcquisitionProtocolName = value + + @property + def ContributingSOPInstancesReferenceSequence(self) -> Optional[List[ContributingSOPInstancesReferenceSequenceItem]]: + if "ContributingSOPInstancesReferenceSequence" in self._dataset: + if len(self._ContributingSOPInstancesReferenceSequence) == len( + self._dataset.ContributingSOPInstancesReferenceSequence + ): + return self._ContributingSOPInstancesReferenceSequence + else: + return [ + ContributingSOPInstancesReferenceSequenceItem(x) + for x in self._dataset.ContributingSOPInstancesReferenceSequence + ] + return None + + @ContributingSOPInstancesReferenceSequence.setter + def ContributingSOPInstancesReferenceSequence(self, value: Optional[List[ContributingSOPInstancesReferenceSequenceItem]]): + if value is None: + self._ContributingSOPInstancesReferenceSequence = [] + if "ContributingSOPInstancesReferenceSequence" in self._dataset: + del self._dataset.ContributingSOPInstancesReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContributingSOPInstancesReferenceSequenceItem) for item in value + ): + raise ValueError( + "ContributingSOPInstancesReferenceSequence must be a list of ContributingSOPInstancesReferenceSequenceItem" + " objects" + ) + else: + self._ContributingSOPInstancesReferenceSequence = value + if "ContributingSOPInstancesReferenceSequence" not in self._dataset: + self._dataset.ContributingSOPInstancesReferenceSequence = pydicom.Sequence() + self._dataset.ContributingSOPInstancesReferenceSequence.clear() + self._dataset.ContributingSOPInstancesReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingSOPInstancesReference(self, item: ContributingSOPInstancesReferenceSequenceItem): + if not isinstance(item, ContributingSOPInstancesReferenceSequenceItem): + raise ValueError("Item must be an instance of ContributingSOPInstancesReferenceSequenceItem") + self._ContributingSOPInstancesReferenceSequence.append(item) + if "ContributingSOPInstancesReferenceSequence" not in self._dataset: + self._dataset.ContributingSOPInstancesReferenceSequence = pydicom.Sequence() + self._dataset.ContributingSOPInstancesReferenceSequence.append(item.to_dataset()) + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/contributing_sources_sequence_item_2.py b/tdwii_plus_examples/domain_model/contributing_sources_sequence_item_2.py new file mode 100644 index 0000000..5c2489e --- /dev/null +++ b/tdwii_plus_examples/domain_model/contributing_sources_sequence_item_2.py @@ -0,0 +1,435 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .contributing_sop_instances_reference_sequence_item import ( + ContributingSOPInstancesReferenceSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem + + +class ContributingSourcesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ContributingSOPInstancesReferenceSequence: List[ContributingSOPInstancesReferenceSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def AcquisitionProtocolName(self) -> Optional[str]: + if "AcquisitionProtocolName" in self._dataset: + return self._dataset.AcquisitionProtocolName + return None + + @AcquisitionProtocolName.setter + def AcquisitionProtocolName(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolName" in self._dataset: + del self._dataset.AcquisitionProtocolName + else: + self._dataset.AcquisitionProtocolName = value + + @property + def ContributingSOPInstancesReferenceSequence(self) -> Optional[List[ContributingSOPInstancesReferenceSequenceItem]]: + if "ContributingSOPInstancesReferenceSequence" in self._dataset: + if len(self._ContributingSOPInstancesReferenceSequence) == len( + self._dataset.ContributingSOPInstancesReferenceSequence + ): + return self._ContributingSOPInstancesReferenceSequence + else: + return [ + ContributingSOPInstancesReferenceSequenceItem(x) + for x in self._dataset.ContributingSOPInstancesReferenceSequence + ] + return None + + @ContributingSOPInstancesReferenceSequence.setter + def ContributingSOPInstancesReferenceSequence(self, value: Optional[List[ContributingSOPInstancesReferenceSequenceItem]]): + if value is None: + self._ContributingSOPInstancesReferenceSequence = [] + if "ContributingSOPInstancesReferenceSequence" in self._dataset: + del self._dataset.ContributingSOPInstancesReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContributingSOPInstancesReferenceSequenceItem) for item in value + ): + raise ValueError( + "ContributingSOPInstancesReferenceSequence must be a list of ContributingSOPInstancesReferenceSequenceItem" + " objects" + ) + else: + self._ContributingSOPInstancesReferenceSequence = value + if "ContributingSOPInstancesReferenceSequence" not in self._dataset: + self._dataset.ContributingSOPInstancesReferenceSequence = pydicom.Sequence() + self._dataset.ContributingSOPInstancesReferenceSequence.clear() + self._dataset.ContributingSOPInstancesReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingSOPInstancesReference(self, item: ContributingSOPInstancesReferenceSequenceItem): + if not isinstance(item, ContributingSOPInstancesReferenceSequenceItem): + raise ValueError("Item must be an instance of ContributingSOPInstancesReferenceSequenceItem") + self._ContributingSOPInstancesReferenceSequence.append(item) + if "ContributingSOPInstancesReferenceSequence" not in self._dataset: + self._dataset.ContributingSOPInstancesReferenceSequence = pydicom.Sequence() + self._dataset.ContributingSOPInstancesReferenceSequence.append(item.to_dataset()) + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/control_point_delivery_sequence_item.py b/tdwii_plus_examples/domain_model/control_point_delivery_sequence_item.py new file mode 100644 index 0000000..c6ef560 --- /dev/null +++ b/tdwii_plus_examples/domain_model/control_point_delivery_sequence_item.py @@ -0,0 +1,589 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_limiting_device_position_sequence_item import ( + BeamLimitingDevicePositionSequenceItem, +) +from .corrected_parameter_sequence_item import CorrectedParameterSequenceItem +from .enhanced_rt_beam_limiting_opening_sequence_item import ( + EnhancedRTBeamLimitingOpeningSequenceItem, +) +from .override_sequence_item import OverrideSequenceItem +from .wedge_position_sequence_item import WedgePositionSequenceItem + + +class ControlPointDeliverySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OverrideSequence: List[OverrideSequenceItem] = [] + self._CorrectedParameterSequence: List[CorrectedParameterSequenceItem] = [] + self._EnhancedRTBeamLimitingOpeningSequence: List[EnhancedRTBeamLimitingOpeningSequenceItem] = [] + self._WedgePositionSequence: List[WedgePositionSequenceItem] = [] + self._BeamLimitingDevicePositionSequence: List[BeamLimitingDevicePositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TreatmentControlPointDate(self) -> Optional[str]: + if "TreatmentControlPointDate" in self._dataset: + return self._dataset.TreatmentControlPointDate + return None + + @TreatmentControlPointDate.setter + def TreatmentControlPointDate(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointDate" in self._dataset: + del self._dataset.TreatmentControlPointDate + else: + self._dataset.TreatmentControlPointDate = value + + @property + def TreatmentControlPointTime(self) -> Optional[str]: + if "TreatmentControlPointTime" in self._dataset: + return self._dataset.TreatmentControlPointTime + return None + + @TreatmentControlPointTime.setter + def TreatmentControlPointTime(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointTime" in self._dataset: + del self._dataset.TreatmentControlPointTime + else: + self._dataset.TreatmentControlPointTime = value + + @property + def SpecifiedMeterset(self) -> Optional[Decimal]: + if "SpecifiedMeterset" in self._dataset: + return self._dataset.SpecifiedMeterset + return None + + @SpecifiedMeterset.setter + def SpecifiedMeterset(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedMeterset" in self._dataset: + del self._dataset.SpecifiedMeterset + else: + self._dataset.SpecifiedMeterset = value + + @property + def DeliveredMeterset(self) -> Optional[Decimal]: + if "DeliveredMeterset" in self._dataset: + return self._dataset.DeliveredMeterset + return None + + @DeliveredMeterset.setter + def DeliveredMeterset(self, value: Optional[Decimal]): + if value is None: + if "DeliveredMeterset" in self._dataset: + del self._dataset.DeliveredMeterset + else: + self._dataset.DeliveredMeterset = value + + @property + def DoseRateDelivered(self) -> Optional[Decimal]: + if "DoseRateDelivered" in self._dataset: + return self._dataset.DoseRateDelivered + return None + + @DoseRateDelivered.setter + def DoseRateDelivered(self, value: Optional[Decimal]): + if value is None: + if "DoseRateDelivered" in self._dataset: + del self._dataset.DoseRateDelivered + else: + self._dataset.DoseRateDelivered = value + + @property + def OverrideSequence(self) -> Optional[List[OverrideSequenceItem]]: + if "OverrideSequence" in self._dataset: + if len(self._OverrideSequence) == len(self._dataset.OverrideSequence): + return self._OverrideSequence + else: + return [OverrideSequenceItem(x) for x in self._dataset.OverrideSequence] + return None + + @OverrideSequence.setter + def OverrideSequence(self, value: Optional[List[OverrideSequenceItem]]): + if value is None: + self._OverrideSequence = [] + if "OverrideSequence" in self._dataset: + del self._dataset.OverrideSequence + elif not isinstance(value, list) or not all(isinstance(item, OverrideSequenceItem) for item in value): + raise ValueError("OverrideSequence must be a list of OverrideSequenceItem objects") + else: + self._OverrideSequence = value + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.clear() + self._dataset.OverrideSequence.extend([item.to_dataset() for item in value]) + + def add_Override(self, item: OverrideSequenceItem): + if not isinstance(item, OverrideSequenceItem): + raise ValueError("Item must be an instance of OverrideSequenceItem") + self._OverrideSequence.append(item) + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.append(item.to_dataset()) + + @property + def CorrectedParameterSequence(self) -> Optional[List[CorrectedParameterSequenceItem]]: + if "CorrectedParameterSequence" in self._dataset: + if len(self._CorrectedParameterSequence) == len(self._dataset.CorrectedParameterSequence): + return self._CorrectedParameterSequence + else: + return [CorrectedParameterSequenceItem(x) for x in self._dataset.CorrectedParameterSequence] + return None + + @CorrectedParameterSequence.setter + def CorrectedParameterSequence(self, value: Optional[List[CorrectedParameterSequenceItem]]): + if value is None: + self._CorrectedParameterSequence = [] + if "CorrectedParameterSequence" in self._dataset: + del self._dataset.CorrectedParameterSequence + elif not isinstance(value, list) or not all(isinstance(item, CorrectedParameterSequenceItem) for item in value): + raise ValueError("CorrectedParameterSequence must be a list of CorrectedParameterSequenceItem objects") + else: + self._CorrectedParameterSequence = value + if "CorrectedParameterSequence" not in self._dataset: + self._dataset.CorrectedParameterSequence = pydicom.Sequence() + self._dataset.CorrectedParameterSequence.clear() + self._dataset.CorrectedParameterSequence.extend([item.to_dataset() for item in value]) + + def add_CorrectedParameter(self, item: CorrectedParameterSequenceItem): + if not isinstance(item, CorrectedParameterSequenceItem): + raise ValueError("Item must be an instance of CorrectedParameterSequenceItem") + self._CorrectedParameterSequence.append(item) + if "CorrectedParameterSequence" not in self._dataset: + self._dataset.CorrectedParameterSequence = pydicom.Sequence() + self._dataset.CorrectedParameterSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingOpeningSequence(self) -> Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]: + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingOpeningSequence) == len(self._dataset.EnhancedRTBeamLimitingOpeningSequence): + return self._EnhancedRTBeamLimitingOpeningSequence + else: + return [ + EnhancedRTBeamLimitingOpeningSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingOpeningSequence + ] + return None + + @EnhancedRTBeamLimitingOpeningSequence.setter + def EnhancedRTBeamLimitingOpeningSequence(self, value: Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingOpeningSequence = [] + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingOpeningSequence must be a list of EnhancedRTBeamLimitingOpeningSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingOpeningSequence = value + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.clear() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingOpening(self, item: EnhancedRTBeamLimitingOpeningSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingOpeningSequenceItem") + self._EnhancedRTBeamLimitingOpeningSequence.append(item) + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.append(item.to_dataset()) + + @property + def BeamStopperPosition(self) -> Optional[str]: + if "BeamStopperPosition" in self._dataset: + return self._dataset.BeamStopperPosition + return None + + @BeamStopperPosition.setter + def BeamStopperPosition(self, value: Optional[str]): + if value is None: + if "BeamStopperPosition" in self._dataset: + del self._dataset.BeamStopperPosition + else: + self._dataset.BeamStopperPosition = value + + @property + def NominalBeamEnergyUnit(self) -> Optional[str]: + if "NominalBeamEnergyUnit" in self._dataset: + return self._dataset.NominalBeamEnergyUnit + return None + + @NominalBeamEnergyUnit.setter + def NominalBeamEnergyUnit(self, value: Optional[str]): + if value is None: + if "NominalBeamEnergyUnit" in self._dataset: + del self._dataset.NominalBeamEnergyUnit + else: + self._dataset.NominalBeamEnergyUnit = value + + @property + def NominalBeamEnergy(self) -> Optional[Decimal]: + if "NominalBeamEnergy" in self._dataset: + return self._dataset.NominalBeamEnergy + return None + + @NominalBeamEnergy.setter + def NominalBeamEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalBeamEnergy" in self._dataset: + del self._dataset.NominalBeamEnergy + else: + self._dataset.NominalBeamEnergy = value + + @property + def DoseRateSet(self) -> Optional[Decimal]: + if "DoseRateSet" in self._dataset: + return self._dataset.DoseRateSet + return None + + @DoseRateSet.setter + def DoseRateSet(self, value: Optional[Decimal]): + if value is None: + if "DoseRateSet" in self._dataset: + del self._dataset.DoseRateSet + else: + self._dataset.DoseRateSet = value + + @property + def WedgePositionSequence(self) -> Optional[List[WedgePositionSequenceItem]]: + if "WedgePositionSequence" in self._dataset: + if len(self._WedgePositionSequence) == len(self._dataset.WedgePositionSequence): + return self._WedgePositionSequence + else: + return [WedgePositionSequenceItem(x) for x in self._dataset.WedgePositionSequence] + return None + + @WedgePositionSequence.setter + def WedgePositionSequence(self, value: Optional[List[WedgePositionSequenceItem]]): + if value is None: + self._WedgePositionSequence = [] + if "WedgePositionSequence" in self._dataset: + del self._dataset.WedgePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, WedgePositionSequenceItem) for item in value): + raise ValueError("WedgePositionSequence must be a list of WedgePositionSequenceItem objects") + else: + self._WedgePositionSequence = value + if "WedgePositionSequence" not in self._dataset: + self._dataset.WedgePositionSequence = pydicom.Sequence() + self._dataset.WedgePositionSequence.clear() + self._dataset.WedgePositionSequence.extend([item.to_dataset() for item in value]) + + def add_WedgePosition(self, item: WedgePositionSequenceItem): + if not isinstance(item, WedgePositionSequenceItem): + raise ValueError("Item must be an instance of WedgePositionSequenceItem") + self._WedgePositionSequence.append(item) + if "WedgePositionSequence" not in self._dataset: + self._dataset.WedgePositionSequence = pydicom.Sequence() + self._dataset.WedgePositionSequence.append(item.to_dataset()) + + @property + def BeamLimitingDevicePositionSequence(self) -> Optional[List[BeamLimitingDevicePositionSequenceItem]]: + if "BeamLimitingDevicePositionSequence" in self._dataset: + if len(self._BeamLimitingDevicePositionSequence) == len(self._dataset.BeamLimitingDevicePositionSequence): + return self._BeamLimitingDevicePositionSequence + else: + return [BeamLimitingDevicePositionSequenceItem(x) for x in self._dataset.BeamLimitingDevicePositionSequence] + return None + + @BeamLimitingDevicePositionSequence.setter + def BeamLimitingDevicePositionSequence(self, value: Optional[List[BeamLimitingDevicePositionSequenceItem]]): + if value is None: + self._BeamLimitingDevicePositionSequence = [] + if "BeamLimitingDevicePositionSequence" in self._dataset: + del self._dataset.BeamLimitingDevicePositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDevicePositionSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDevicePositionSequence must be a list of BeamLimitingDevicePositionSequenceItem objects" + ) + else: + self._BeamLimitingDevicePositionSequence = value + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.clear() + self._dataset.BeamLimitingDevicePositionSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDevicePosition(self, item: BeamLimitingDevicePositionSequenceItem): + if not isinstance(item, BeamLimitingDevicePositionSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDevicePositionSequenceItem") + self._BeamLimitingDevicePositionSequence.append(item) + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.append(item.to_dataset()) + + @property + def GantryAngle(self) -> Optional[Decimal]: + if "GantryAngle" in self._dataset: + return self._dataset.GantryAngle + return None + + @GantryAngle.setter + def GantryAngle(self, value: Optional[Decimal]): + if value is None: + if "GantryAngle" in self._dataset: + del self._dataset.GantryAngle + else: + self._dataset.GantryAngle = value + + @property + def GantryRotationDirection(self) -> Optional[str]: + if "GantryRotationDirection" in self._dataset: + return self._dataset.GantryRotationDirection + return None + + @GantryRotationDirection.setter + def GantryRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryRotationDirection" in self._dataset: + del self._dataset.GantryRotationDirection + else: + self._dataset.GantryRotationDirection = value + + @property + def BeamLimitingDeviceAngle(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngle" in self._dataset: + return self._dataset.BeamLimitingDeviceAngle + return None + + @BeamLimitingDeviceAngle.setter + def BeamLimitingDeviceAngle(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngle" in self._dataset: + del self._dataset.BeamLimitingDeviceAngle + else: + self._dataset.BeamLimitingDeviceAngle = value + + @property + def BeamLimitingDeviceRotationDirection(self) -> Optional[str]: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + return self._dataset.BeamLimitingDeviceRotationDirection + return None + + @BeamLimitingDeviceRotationDirection.setter + def BeamLimitingDeviceRotationDirection(self, value: Optional[str]): + if value is None: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + del self._dataset.BeamLimitingDeviceRotationDirection + else: + self._dataset.BeamLimitingDeviceRotationDirection = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def PatientSupportRotationDirection(self) -> Optional[str]: + if "PatientSupportRotationDirection" in self._dataset: + return self._dataset.PatientSupportRotationDirection + return None + + @PatientSupportRotationDirection.setter + def PatientSupportRotationDirection(self, value: Optional[str]): + if value is None: + if "PatientSupportRotationDirection" in self._dataset: + del self._dataset.PatientSupportRotationDirection + else: + self._dataset.PatientSupportRotationDirection = value + + @property + def TableTopEccentricAxisDistance(self) -> Optional[Decimal]: + if "TableTopEccentricAxisDistance" in self._dataset: + return self._dataset.TableTopEccentricAxisDistance + return None + + @TableTopEccentricAxisDistance.setter + def TableTopEccentricAxisDistance(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAxisDistance" in self._dataset: + del self._dataset.TableTopEccentricAxisDistance + else: + self._dataset.TableTopEccentricAxisDistance = value + + @property + def TableTopEccentricAngle(self) -> Optional[Decimal]: + if "TableTopEccentricAngle" in self._dataset: + return self._dataset.TableTopEccentricAngle + return None + + @TableTopEccentricAngle.setter + def TableTopEccentricAngle(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAngle" in self._dataset: + del self._dataset.TableTopEccentricAngle + else: + self._dataset.TableTopEccentricAngle = value + + @property + def TableTopEccentricRotationDirection(self) -> Optional[str]: + if "TableTopEccentricRotationDirection" in self._dataset: + return self._dataset.TableTopEccentricRotationDirection + return None + + @TableTopEccentricRotationDirection.setter + def TableTopEccentricRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopEccentricRotationDirection" in self._dataset: + del self._dataset.TableTopEccentricRotationDirection + else: + self._dataset.TableTopEccentricRotationDirection = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopPitchRotationDirection(self) -> Optional[str]: + if "TableTopPitchRotationDirection" in self._dataset: + return self._dataset.TableTopPitchRotationDirection + return None + + @TableTopPitchRotationDirection.setter + def TableTopPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopPitchRotationDirection" in self._dataset: + del self._dataset.TableTopPitchRotationDirection + else: + self._dataset.TableTopPitchRotationDirection = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def TableTopRollRotationDirection(self) -> Optional[str]: + if "TableTopRollRotationDirection" in self._dataset: + return self._dataset.TableTopRollRotationDirection + return None + + @TableTopRollRotationDirection.setter + def TableTopRollRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopRollRotationDirection" in self._dataset: + del self._dataset.TableTopRollRotationDirection + else: + self._dataset.TableTopRollRotationDirection = value + + @property + def GantryPitchAngle(self) -> Optional[float]: + if "GantryPitchAngle" in self._dataset: + return self._dataset.GantryPitchAngle + return None + + @GantryPitchAngle.setter + def GantryPitchAngle(self, value: Optional[float]): + if value is None: + if "GantryPitchAngle" in self._dataset: + del self._dataset.GantryPitchAngle + else: + self._dataset.GantryPitchAngle = value + + @property + def GantryPitchRotationDirection(self) -> Optional[str]: + if "GantryPitchRotationDirection" in self._dataset: + return self._dataset.GantryPitchRotationDirection + return None + + @GantryPitchRotationDirection.setter + def GantryPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryPitchRotationDirection" in self._dataset: + del self._dataset.GantryPitchRotationDirection + else: + self._dataset.GantryPitchRotationDirection = value + + @property + def ReferencedControlPointIndex(self) -> Optional[int]: + if "ReferencedControlPointIndex" in self._dataset: + return self._dataset.ReferencedControlPointIndex + return None + + @ReferencedControlPointIndex.setter + def ReferencedControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedControlPointIndex" in self._dataset: + del self._dataset.ReferencedControlPointIndex + else: + self._dataset.ReferencedControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/control_point_sequence_item.py b/tdwii_plus_examples/domain_model/control_point_sequence_item.py new file mode 100644 index 0000000..3ad3f52 --- /dev/null +++ b/tdwii_plus_examples/domain_model/control_point_sequence_item.py @@ -0,0 +1,575 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_limiting_device_position_sequence_item import ( + BeamLimitingDevicePositionSequenceItem, +) +from .enhanced_rt_beam_limiting_opening_sequence_item import ( + EnhancedRTBeamLimitingOpeningSequenceItem, +) +from .referenced_dose_reference_sequence_item import ReferencedDoseReferenceSequenceItem +from .referenced_dose_sequence_item import ReferencedDoseSequenceItem +from .wedge_position_sequence_item import WedgePositionSequenceItem + + +class ControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EnhancedRTBeamLimitingOpeningSequence: List[EnhancedRTBeamLimitingOpeningSequenceItem] = [] + self._WedgePositionSequence: List[WedgePositionSequenceItem] = [] + self._BeamLimitingDevicePositionSequence: List[BeamLimitingDevicePositionSequenceItem] = [] + self._ReferencedDoseReferenceSequence: List[ReferencedDoseReferenceSequenceItem] = [] + self._ReferencedDoseSequence: List[ReferencedDoseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EnhancedRTBeamLimitingOpeningSequence(self) -> Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]: + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingOpeningSequence) == len(self._dataset.EnhancedRTBeamLimitingOpeningSequence): + return self._EnhancedRTBeamLimitingOpeningSequence + else: + return [ + EnhancedRTBeamLimitingOpeningSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingOpeningSequence + ] + return None + + @EnhancedRTBeamLimitingOpeningSequence.setter + def EnhancedRTBeamLimitingOpeningSequence(self, value: Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingOpeningSequence = [] + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingOpeningSequence must be a list of EnhancedRTBeamLimitingOpeningSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingOpeningSequence = value + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.clear() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingOpening(self, item: EnhancedRTBeamLimitingOpeningSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingOpeningSequenceItem") + self._EnhancedRTBeamLimitingOpeningSequence.append(item) + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.append(item.to_dataset()) + + @property + def ControlPointIndex(self) -> Optional[int]: + if "ControlPointIndex" in self._dataset: + return self._dataset.ControlPointIndex + return None + + @ControlPointIndex.setter + def ControlPointIndex(self, value: Optional[int]): + if value is None: + if "ControlPointIndex" in self._dataset: + del self._dataset.ControlPointIndex + else: + self._dataset.ControlPointIndex = value + + @property + def NominalBeamEnergy(self) -> Optional[Decimal]: + if "NominalBeamEnergy" in self._dataset: + return self._dataset.NominalBeamEnergy + return None + + @NominalBeamEnergy.setter + def NominalBeamEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalBeamEnergy" in self._dataset: + del self._dataset.NominalBeamEnergy + else: + self._dataset.NominalBeamEnergy = value + + @property + def DoseRateSet(self) -> Optional[Decimal]: + if "DoseRateSet" in self._dataset: + return self._dataset.DoseRateSet + return None + + @DoseRateSet.setter + def DoseRateSet(self, value: Optional[Decimal]): + if value is None: + if "DoseRateSet" in self._dataset: + del self._dataset.DoseRateSet + else: + self._dataset.DoseRateSet = value + + @property + def WedgePositionSequence(self) -> Optional[List[WedgePositionSequenceItem]]: + if "WedgePositionSequence" in self._dataset: + if len(self._WedgePositionSequence) == len(self._dataset.WedgePositionSequence): + return self._WedgePositionSequence + else: + return [WedgePositionSequenceItem(x) for x in self._dataset.WedgePositionSequence] + return None + + @WedgePositionSequence.setter + def WedgePositionSequence(self, value: Optional[List[WedgePositionSequenceItem]]): + if value is None: + self._WedgePositionSequence = [] + if "WedgePositionSequence" in self._dataset: + del self._dataset.WedgePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, WedgePositionSequenceItem) for item in value): + raise ValueError("WedgePositionSequence must be a list of WedgePositionSequenceItem objects") + else: + self._WedgePositionSequence = value + if "WedgePositionSequence" not in self._dataset: + self._dataset.WedgePositionSequence = pydicom.Sequence() + self._dataset.WedgePositionSequence.clear() + self._dataset.WedgePositionSequence.extend([item.to_dataset() for item in value]) + + def add_WedgePosition(self, item: WedgePositionSequenceItem): + if not isinstance(item, WedgePositionSequenceItem): + raise ValueError("Item must be an instance of WedgePositionSequenceItem") + self._WedgePositionSequence.append(item) + if "WedgePositionSequence" not in self._dataset: + self._dataset.WedgePositionSequence = pydicom.Sequence() + self._dataset.WedgePositionSequence.append(item.to_dataset()) + + @property + def BeamLimitingDevicePositionSequence(self) -> Optional[List[BeamLimitingDevicePositionSequenceItem]]: + if "BeamLimitingDevicePositionSequence" in self._dataset: + if len(self._BeamLimitingDevicePositionSequence) == len(self._dataset.BeamLimitingDevicePositionSequence): + return self._BeamLimitingDevicePositionSequence + else: + return [BeamLimitingDevicePositionSequenceItem(x) for x in self._dataset.BeamLimitingDevicePositionSequence] + return None + + @BeamLimitingDevicePositionSequence.setter + def BeamLimitingDevicePositionSequence(self, value: Optional[List[BeamLimitingDevicePositionSequenceItem]]): + if value is None: + self._BeamLimitingDevicePositionSequence = [] + if "BeamLimitingDevicePositionSequence" in self._dataset: + del self._dataset.BeamLimitingDevicePositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDevicePositionSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDevicePositionSequence must be a list of BeamLimitingDevicePositionSequenceItem objects" + ) + else: + self._BeamLimitingDevicePositionSequence = value + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.clear() + self._dataset.BeamLimitingDevicePositionSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDevicePosition(self, item: BeamLimitingDevicePositionSequenceItem): + if not isinstance(item, BeamLimitingDevicePositionSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDevicePositionSequenceItem") + self._BeamLimitingDevicePositionSequence.append(item) + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.append(item.to_dataset()) + + @property + def GantryAngle(self) -> Optional[Decimal]: + if "GantryAngle" in self._dataset: + return self._dataset.GantryAngle + return None + + @GantryAngle.setter + def GantryAngle(self, value: Optional[Decimal]): + if value is None: + if "GantryAngle" in self._dataset: + del self._dataset.GantryAngle + else: + self._dataset.GantryAngle = value + + @property + def GantryRotationDirection(self) -> Optional[str]: + if "GantryRotationDirection" in self._dataset: + return self._dataset.GantryRotationDirection + return None + + @GantryRotationDirection.setter + def GantryRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryRotationDirection" in self._dataset: + del self._dataset.GantryRotationDirection + else: + self._dataset.GantryRotationDirection = value + + @property + def BeamLimitingDeviceAngle(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngle" in self._dataset: + return self._dataset.BeamLimitingDeviceAngle + return None + + @BeamLimitingDeviceAngle.setter + def BeamLimitingDeviceAngle(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngle" in self._dataset: + del self._dataset.BeamLimitingDeviceAngle + else: + self._dataset.BeamLimitingDeviceAngle = value + + @property + def BeamLimitingDeviceRotationDirection(self) -> Optional[str]: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + return self._dataset.BeamLimitingDeviceRotationDirection + return None + + @BeamLimitingDeviceRotationDirection.setter + def BeamLimitingDeviceRotationDirection(self, value: Optional[str]): + if value is None: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + del self._dataset.BeamLimitingDeviceRotationDirection + else: + self._dataset.BeamLimitingDeviceRotationDirection = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def PatientSupportRotationDirection(self) -> Optional[str]: + if "PatientSupportRotationDirection" in self._dataset: + return self._dataset.PatientSupportRotationDirection + return None + + @PatientSupportRotationDirection.setter + def PatientSupportRotationDirection(self, value: Optional[str]): + if value is None: + if "PatientSupportRotationDirection" in self._dataset: + del self._dataset.PatientSupportRotationDirection + else: + self._dataset.PatientSupportRotationDirection = value + + @property + def TableTopEccentricAxisDistance(self) -> Optional[Decimal]: + if "TableTopEccentricAxisDistance" in self._dataset: + return self._dataset.TableTopEccentricAxisDistance + return None + + @TableTopEccentricAxisDistance.setter + def TableTopEccentricAxisDistance(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAxisDistance" in self._dataset: + del self._dataset.TableTopEccentricAxisDistance + else: + self._dataset.TableTopEccentricAxisDistance = value + + @property + def TableTopEccentricAngle(self) -> Optional[Decimal]: + if "TableTopEccentricAngle" in self._dataset: + return self._dataset.TableTopEccentricAngle + return None + + @TableTopEccentricAngle.setter + def TableTopEccentricAngle(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAngle" in self._dataset: + del self._dataset.TableTopEccentricAngle + else: + self._dataset.TableTopEccentricAngle = value + + @property + def TableTopEccentricRotationDirection(self) -> Optional[str]: + if "TableTopEccentricRotationDirection" in self._dataset: + return self._dataset.TableTopEccentricRotationDirection + return None + + @TableTopEccentricRotationDirection.setter + def TableTopEccentricRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopEccentricRotationDirection" in self._dataset: + del self._dataset.TableTopEccentricRotationDirection + else: + self._dataset.TableTopEccentricRotationDirection = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def SurfaceEntryPoint(self) -> Optional[List[Decimal]]: + if "SurfaceEntryPoint" in self._dataset: + return self._dataset.SurfaceEntryPoint + return None + + @SurfaceEntryPoint.setter + def SurfaceEntryPoint(self, value: Optional[List[Decimal]]): + if value is None: + if "SurfaceEntryPoint" in self._dataset: + del self._dataset.SurfaceEntryPoint + else: + self._dataset.SurfaceEntryPoint = value + + @property + def SourceToSurfaceDistance(self) -> Optional[Decimal]: + if "SourceToSurfaceDistance" in self._dataset: + return self._dataset.SourceToSurfaceDistance + return None + + @SourceToSurfaceDistance.setter + def SourceToSurfaceDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToSurfaceDistance" in self._dataset: + del self._dataset.SourceToSurfaceDistance + else: + self._dataset.SourceToSurfaceDistance = value + + @property + def SourceToExternalContourDistance(self) -> Optional[float]: + if "SourceToExternalContourDistance" in self._dataset: + return self._dataset.SourceToExternalContourDistance + return None + + @SourceToExternalContourDistance.setter + def SourceToExternalContourDistance(self, value: Optional[float]): + if value is None: + if "SourceToExternalContourDistance" in self._dataset: + del self._dataset.SourceToExternalContourDistance + else: + self._dataset.SourceToExternalContourDistance = value + + @property + def ExternalContourEntryPoint(self) -> Optional[List[float]]: + if "ExternalContourEntryPoint" in self._dataset: + return self._dataset.ExternalContourEntryPoint + return None + + @ExternalContourEntryPoint.setter + def ExternalContourEntryPoint(self, value: Optional[List[float]]): + if value is None: + if "ExternalContourEntryPoint" in self._dataset: + del self._dataset.ExternalContourEntryPoint + else: + self._dataset.ExternalContourEntryPoint = value + + @property + def CumulativeMetersetWeight(self) -> Optional[Decimal]: + if "CumulativeMetersetWeight" in self._dataset: + return self._dataset.CumulativeMetersetWeight + return None + + @CumulativeMetersetWeight.setter + def CumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "CumulativeMetersetWeight" in self._dataset: + del self._dataset.CumulativeMetersetWeight + else: + self._dataset.CumulativeMetersetWeight = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopPitchRotationDirection(self) -> Optional[str]: + if "TableTopPitchRotationDirection" in self._dataset: + return self._dataset.TableTopPitchRotationDirection + return None + + @TableTopPitchRotationDirection.setter + def TableTopPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopPitchRotationDirection" in self._dataset: + del self._dataset.TableTopPitchRotationDirection + else: + self._dataset.TableTopPitchRotationDirection = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def TableTopRollRotationDirection(self) -> Optional[str]: + if "TableTopRollRotationDirection" in self._dataset: + return self._dataset.TableTopRollRotationDirection + return None + + @TableTopRollRotationDirection.setter + def TableTopRollRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopRollRotationDirection" in self._dataset: + del self._dataset.TableTopRollRotationDirection + else: + self._dataset.TableTopRollRotationDirection = value + + @property + def GantryPitchAngle(self) -> Optional[float]: + if "GantryPitchAngle" in self._dataset: + return self._dataset.GantryPitchAngle + return None + + @GantryPitchAngle.setter + def GantryPitchAngle(self, value: Optional[float]): + if value is None: + if "GantryPitchAngle" in self._dataset: + del self._dataset.GantryPitchAngle + else: + self._dataset.GantryPitchAngle = value + + @property + def GantryPitchRotationDirection(self) -> Optional[str]: + if "GantryPitchRotationDirection" in self._dataset: + return self._dataset.GantryPitchRotationDirection + return None + + @GantryPitchRotationDirection.setter + def GantryPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryPitchRotationDirection" in self._dataset: + del self._dataset.GantryPitchRotationDirection + else: + self._dataset.GantryPitchRotationDirection = value + + @property + def ReferencedDoseReferenceSequence(self) -> Optional[List[ReferencedDoseReferenceSequenceItem]]: + if "ReferencedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedDoseReferenceSequence) == len(self._dataset.ReferencedDoseReferenceSequence): + return self._ReferencedDoseReferenceSequence + else: + return [ReferencedDoseReferenceSequenceItem(x) for x in self._dataset.ReferencedDoseReferenceSequence] + return None + + @ReferencedDoseReferenceSequence.setter + def ReferencedDoseReferenceSequence(self, value: Optional[List[ReferencedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedDoseReferenceSequence = [] + if "ReferencedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseReferenceSequenceItem) for item in value): + raise ValueError("ReferencedDoseReferenceSequence must be a list of ReferencedDoseReferenceSequenceItem objects") + else: + self._ReferencedDoseReferenceSequence = value + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.clear() + self._dataset.ReferencedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDoseReference(self, item: ReferencedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseReferenceSequenceItem") + self._ReferencedDoseReferenceSequence.append(item) + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedDoseSequence(self) -> Optional[List[ReferencedDoseSequenceItem]]: + if "ReferencedDoseSequence" in self._dataset: + if len(self._ReferencedDoseSequence) == len(self._dataset.ReferencedDoseSequence): + return self._ReferencedDoseSequence + else: + return [ReferencedDoseSequenceItem(x) for x in self._dataset.ReferencedDoseSequence] + return None + + @ReferencedDoseSequence.setter + def ReferencedDoseSequence(self, value: Optional[List[ReferencedDoseSequenceItem]]): + if value is None: + self._ReferencedDoseSequence = [] + if "ReferencedDoseSequence" in self._dataset: + del self._dataset.ReferencedDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseSequenceItem) for item in value): + raise ValueError("ReferencedDoseSequence must be a list of ReferencedDoseSequenceItem objects") + else: + self._ReferencedDoseSequence = value + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.clear() + self._dataset.ReferencedDoseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDose(self, item: ReferencedDoseSequenceItem): + if not isinstance(item, ReferencedDoseSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseSequenceItem") + self._ReferencedDoseSequence.append(item) + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/conversion_source_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/conversion_source_attributes_sequence_item.py new file mode 100644 index 0000000..c98a541 --- /dev/null +++ b/tdwii_plus_examples/domain_model/conversion_source_attributes_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ConversionSourceAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/cornea_measurements_sequence_item.py b/tdwii_plus_examples/domain_model/cornea_measurements_sequence_item.py new file mode 100644 index 0000000..8a92e7a --- /dev/null +++ b/tdwii_plus_examples/domain_model/cornea_measurements_sequence_item.py @@ -0,0 +1,225 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .flat_corneal_axis_sequence_item import FlatCornealAxisSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .steep_corneal_axis_sequence_item import SteepCornealAxisSequenceItem + + +class CorneaMeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._SourceOfCorneaMeasurementDataCodeSequence: List[CodeSequenceItem] = [] + self._SteepCornealAxisSequence: List[SteepCornealAxisSequenceItem] = [] + self._FlatCornealAxisSequence: List[FlatCornealAxisSequenceItem] = [] + self._CorneaMeasurementMethodCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def KeratometerIndex(self) -> Optional[float]: + if "KeratometerIndex" in self._dataset: + return self._dataset.KeratometerIndex + return None + + @KeratometerIndex.setter + def KeratometerIndex(self, value: Optional[float]): + if value is None: + if "KeratometerIndex" in self._dataset: + del self._dataset.KeratometerIndex + else: + self._dataset.KeratometerIndex = value + + @property + def SourceOfCorneaMeasurementDataCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SourceOfCorneaMeasurementDataCodeSequence" in self._dataset: + if len(self._SourceOfCorneaMeasurementDataCodeSequence) == len( + self._dataset.SourceOfCorneaMeasurementDataCodeSequence + ): + return self._SourceOfCorneaMeasurementDataCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SourceOfCorneaMeasurementDataCodeSequence] + return None + + @SourceOfCorneaMeasurementDataCodeSequence.setter + def SourceOfCorneaMeasurementDataCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SourceOfCorneaMeasurementDataCodeSequence = [] + if "SourceOfCorneaMeasurementDataCodeSequence" in self._dataset: + del self._dataset.SourceOfCorneaMeasurementDataCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SourceOfCorneaMeasurementDataCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SourceOfCorneaMeasurementDataCodeSequence = value + if "SourceOfCorneaMeasurementDataCodeSequence" not in self._dataset: + self._dataset.SourceOfCorneaMeasurementDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfCorneaMeasurementDataCodeSequence.clear() + self._dataset.SourceOfCorneaMeasurementDataCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceOfCorneaMeasurementDataCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SourceOfCorneaMeasurementDataCodeSequence.append(item) + if "SourceOfCorneaMeasurementDataCodeSequence" not in self._dataset: + self._dataset.SourceOfCorneaMeasurementDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfCorneaMeasurementDataCodeSequence.append(item.to_dataset()) + + @property + def SteepCornealAxisSequence(self) -> Optional[List[SteepCornealAxisSequenceItem]]: + if "SteepCornealAxisSequence" in self._dataset: + if len(self._SteepCornealAxisSequence) == len(self._dataset.SteepCornealAxisSequence): + return self._SteepCornealAxisSequence + else: + return [SteepCornealAxisSequenceItem(x) for x in self._dataset.SteepCornealAxisSequence] + return None + + @SteepCornealAxisSequence.setter + def SteepCornealAxisSequence(self, value: Optional[List[SteepCornealAxisSequenceItem]]): + if value is None: + self._SteepCornealAxisSequence = [] + if "SteepCornealAxisSequence" in self._dataset: + del self._dataset.SteepCornealAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, SteepCornealAxisSequenceItem) for item in value): + raise ValueError("SteepCornealAxisSequence must be a list of SteepCornealAxisSequenceItem objects") + else: + self._SteepCornealAxisSequence = value + if "SteepCornealAxisSequence" not in self._dataset: + self._dataset.SteepCornealAxisSequence = pydicom.Sequence() + self._dataset.SteepCornealAxisSequence.clear() + self._dataset.SteepCornealAxisSequence.extend([item.to_dataset() for item in value]) + + def add_SteepCornealAxis(self, item: SteepCornealAxisSequenceItem): + if not isinstance(item, SteepCornealAxisSequenceItem): + raise ValueError("Item must be an instance of SteepCornealAxisSequenceItem") + self._SteepCornealAxisSequence.append(item) + if "SteepCornealAxisSequence" not in self._dataset: + self._dataset.SteepCornealAxisSequence = pydicom.Sequence() + self._dataset.SteepCornealAxisSequence.append(item.to_dataset()) + + @property + def FlatCornealAxisSequence(self) -> Optional[List[FlatCornealAxisSequenceItem]]: + if "FlatCornealAxisSequence" in self._dataset: + if len(self._FlatCornealAxisSequence) == len(self._dataset.FlatCornealAxisSequence): + return self._FlatCornealAxisSequence + else: + return [FlatCornealAxisSequenceItem(x) for x in self._dataset.FlatCornealAxisSequence] + return None + + @FlatCornealAxisSequence.setter + def FlatCornealAxisSequence(self, value: Optional[List[FlatCornealAxisSequenceItem]]): + if value is None: + self._FlatCornealAxisSequence = [] + if "FlatCornealAxisSequence" in self._dataset: + del self._dataset.FlatCornealAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, FlatCornealAxisSequenceItem) for item in value): + raise ValueError("FlatCornealAxisSequence must be a list of FlatCornealAxisSequenceItem objects") + else: + self._FlatCornealAxisSequence = value + if "FlatCornealAxisSequence" not in self._dataset: + self._dataset.FlatCornealAxisSequence = pydicom.Sequence() + self._dataset.FlatCornealAxisSequence.clear() + self._dataset.FlatCornealAxisSequence.extend([item.to_dataset() for item in value]) + + def add_FlatCornealAxis(self, item: FlatCornealAxisSequenceItem): + if not isinstance(item, FlatCornealAxisSequenceItem): + raise ValueError("Item must be an instance of FlatCornealAxisSequenceItem") + self._FlatCornealAxisSequence.append(item) + if "FlatCornealAxisSequence" not in self._dataset: + self._dataset.FlatCornealAxisSequence = pydicom.Sequence() + self._dataset.FlatCornealAxisSequence.append(item.to_dataset()) + + @property + def CorneaMeasurementMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "CorneaMeasurementMethodCodeSequence" in self._dataset: + if len(self._CorneaMeasurementMethodCodeSequence) == len(self._dataset.CorneaMeasurementMethodCodeSequence): + return self._CorneaMeasurementMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.CorneaMeasurementMethodCodeSequence] + return None + + @CorneaMeasurementMethodCodeSequence.setter + def CorneaMeasurementMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._CorneaMeasurementMethodCodeSequence = [] + if "CorneaMeasurementMethodCodeSequence" in self._dataset: + del self._dataset.CorneaMeasurementMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("CorneaMeasurementMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._CorneaMeasurementMethodCodeSequence = value + if "CorneaMeasurementMethodCodeSequence" not in self._dataset: + self._dataset.CorneaMeasurementMethodCodeSequence = pydicom.Sequence() + self._dataset.CorneaMeasurementMethodCodeSequence.clear() + self._dataset.CorneaMeasurementMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_CorneaMeasurementMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._CorneaMeasurementMethodCodeSequence.append(item) + if "CorneaMeasurementMethodCodeSequence" not in self._dataset: + self._dataset.CorneaMeasurementMethodCodeSequence = pydicom.Sequence() + self._dataset.CorneaMeasurementMethodCodeSequence.append(item.to_dataset()) + + @property + def RefractiveIndexOfCornea(self) -> Optional[float]: + if "RefractiveIndexOfCornea" in self._dataset: + return self._dataset.RefractiveIndexOfCornea + return None + + @RefractiveIndexOfCornea.setter + def RefractiveIndexOfCornea(self, value: Optional[float]): + if value is None: + if "RefractiveIndexOfCornea" in self._dataset: + del self._dataset.RefractiveIndexOfCornea + else: + self._dataset.RefractiveIndexOfCornea = value + + @property + def RefractiveIndexOfAqueousHumor(self) -> Optional[float]: + if "RefractiveIndexOfAqueousHumor" in self._dataset: + return self._dataset.RefractiveIndexOfAqueousHumor + return None + + @RefractiveIndexOfAqueousHumor.setter + def RefractiveIndexOfAqueousHumor(self, value: Optional[float]): + if value is None: + if "RefractiveIndexOfAqueousHumor" in self._dataset: + del self._dataset.RefractiveIndexOfAqueousHumor + else: + self._dataset.RefractiveIndexOfAqueousHumor = value diff --git a/tdwii_plus_examples/domain_model/corneal_size_sequence_item.py b/tdwii_plus_examples/domain_model/corneal_size_sequence_item.py new file mode 100644 index 0000000..e474e5d --- /dev/null +++ b/tdwii_plus_examples/domain_model/corneal_size_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class CornealSizeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._SourceOfCornealSizeDataCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def SourceOfCornealSizeDataCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SourceOfCornealSizeDataCodeSequence" in self._dataset: + if len(self._SourceOfCornealSizeDataCodeSequence) == len(self._dataset.SourceOfCornealSizeDataCodeSequence): + return self._SourceOfCornealSizeDataCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SourceOfCornealSizeDataCodeSequence] + return None + + @SourceOfCornealSizeDataCodeSequence.setter + def SourceOfCornealSizeDataCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SourceOfCornealSizeDataCodeSequence = [] + if "SourceOfCornealSizeDataCodeSequence" in self._dataset: + del self._dataset.SourceOfCornealSizeDataCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SourceOfCornealSizeDataCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SourceOfCornealSizeDataCodeSequence = value + if "SourceOfCornealSizeDataCodeSequence" not in self._dataset: + self._dataset.SourceOfCornealSizeDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfCornealSizeDataCodeSequence.clear() + self._dataset.SourceOfCornealSizeDataCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceOfCornealSizeDataCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SourceOfCornealSizeDataCodeSequence.append(item) + if "SourceOfCornealSizeDataCodeSequence" not in self._dataset: + self._dataset.SourceOfCornealSizeDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfCornealSizeDataCodeSequence.append(item.to_dataset()) + + @property + def CornealSize(self) -> Optional[float]: + if "CornealSize" in self._dataset: + return self._dataset.CornealSize + return None + + @CornealSize.setter + def CornealSize(self, value: Optional[float]): + if value is None: + if "CornealSize" in self._dataset: + del self._dataset.CornealSize + else: + self._dataset.CornealSize = value diff --git a/tdwii_plus_examples/domain_model/corneal_topography_map.py b/tdwii_plus_examples/domain_model/corneal_topography_map.py new file mode 100644 index 0000000..e28ba31 --- /dev/null +++ b/tdwii_plus_examples/domain_model/corneal_topography_map.py @@ -0,0 +1,6311 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .corneal_topography_mapping_normals_sequence_item import ( + CornealTopographyMappingNormalsSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .flat_keratometric_axis_sequence_item import FlatKeratometricAxisSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .maximum_corneal_curvature_sequence_item import MaximumCornealCurvatureSequenceItem +from .minimum_keratometric_sequence_item import MinimumKeratometricSequenceItem +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .simulated_keratometric_cylinder_sequence_item import ( + SimulatedKeratometricCylinderSequenceItem, +) +from .source_image_corneal_processed_data_sequence_item import ( + SourceImageCornealProcessedDataSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .steep_keratometric_axis_sequence_item import SteepKeratometricAxisSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class CornealTopographyMap: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._PatientEyeMovementCommandCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._SteepKeratometricAxisSequence: List[SteepKeratometricAxisSequenceItem] = [] + self._FlatKeratometricAxisSequence: List[FlatKeratometricAxisSequenceItem] = [] + self._CornealTopographyMapTypeCodeSequence: List[CodeSequenceItem] = [] + self._CornealTopographyMappingNormalsSequence: List[CornealTopographyMappingNormalsSequenceItem] = [] + self._MaximumCornealCurvatureSequence: List[MaximumCornealCurvatureSequenceItem] = [] + self._MinimumKeratometricSequence: List[MinimumKeratometricSequenceItem] = [] + self._SimulatedKeratometricCylinderSequence: List[SimulatedKeratometricCylinderSequenceItem] = [] + self._SourceImageCornealProcessedDataSequence: List[SourceImageCornealProcessedDataSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def PatientEyeMovementCommanded(self) -> Optional[str]: + if "PatientEyeMovementCommanded" in self._dataset: + return self._dataset.PatientEyeMovementCommanded + return None + + @PatientEyeMovementCommanded.setter + def PatientEyeMovementCommanded(self, value: Optional[str]): + if value is None: + if "PatientEyeMovementCommanded" in self._dataset: + del self._dataset.PatientEyeMovementCommanded + else: + self._dataset.PatientEyeMovementCommanded = value + + @property + def PatientEyeMovementCommandCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + if len(self._PatientEyeMovementCommandCodeSequence) == len(self._dataset.PatientEyeMovementCommandCodeSequence): + return self._PatientEyeMovementCommandCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEyeMovementCommandCodeSequence] + return None + + @PatientEyeMovementCommandCodeSequence.setter + def PatientEyeMovementCommandCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEyeMovementCommandCodeSequence = [] + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + del self._dataset.PatientEyeMovementCommandCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEyeMovementCommandCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEyeMovementCommandCodeSequence = value + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.clear() + self._dataset.PatientEyeMovementCommandCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEyeMovementCommandCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEyeMovementCommandCodeSequence.append(item) + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.append(item.to_dataset()) + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + @property + def OphthalmicMappingDeviceType(self) -> Optional[str]: + if "OphthalmicMappingDeviceType" in self._dataset: + return self._dataset.OphthalmicMappingDeviceType + return None + + @OphthalmicMappingDeviceType.setter + def OphthalmicMappingDeviceType(self, value: Optional[str]): + if value is None: + if "OphthalmicMappingDeviceType" in self._dataset: + del self._dataset.OphthalmicMappingDeviceType + else: + self._dataset.OphthalmicMappingDeviceType = value + + @property + def SteepKeratometricAxisSequence(self) -> Optional[List[SteepKeratometricAxisSequenceItem]]: + if "SteepKeratometricAxisSequence" in self._dataset: + if len(self._SteepKeratometricAxisSequence) == len(self._dataset.SteepKeratometricAxisSequence): + return self._SteepKeratometricAxisSequence + else: + return [SteepKeratometricAxisSequenceItem(x) for x in self._dataset.SteepKeratometricAxisSequence] + return None + + @SteepKeratometricAxisSequence.setter + def SteepKeratometricAxisSequence(self, value: Optional[List[SteepKeratometricAxisSequenceItem]]): + if value is None: + self._SteepKeratometricAxisSequence = [] + if "SteepKeratometricAxisSequence" in self._dataset: + del self._dataset.SteepKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, SteepKeratometricAxisSequenceItem) for item in value): + raise ValueError("SteepKeratometricAxisSequence must be a list of SteepKeratometricAxisSequenceItem objects") + else: + self._SteepKeratometricAxisSequence = value + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.clear() + self._dataset.SteepKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_SteepKeratometricAxis(self, item: SteepKeratometricAxisSequenceItem): + if not isinstance(item, SteepKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of SteepKeratometricAxisSequenceItem") + self._SteepKeratometricAxisSequence.append(item) + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.append(item.to_dataset()) + + @property + def FlatKeratometricAxisSequence(self) -> Optional[List[FlatKeratometricAxisSequenceItem]]: + if "FlatKeratometricAxisSequence" in self._dataset: + if len(self._FlatKeratometricAxisSequence) == len(self._dataset.FlatKeratometricAxisSequence): + return self._FlatKeratometricAxisSequence + else: + return [FlatKeratometricAxisSequenceItem(x) for x in self._dataset.FlatKeratometricAxisSequence] + return None + + @FlatKeratometricAxisSequence.setter + def FlatKeratometricAxisSequence(self, value: Optional[List[FlatKeratometricAxisSequenceItem]]): + if value is None: + self._FlatKeratometricAxisSequence = [] + if "FlatKeratometricAxisSequence" in self._dataset: + del self._dataset.FlatKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, FlatKeratometricAxisSequenceItem) for item in value): + raise ValueError("FlatKeratometricAxisSequence must be a list of FlatKeratometricAxisSequenceItem objects") + else: + self._FlatKeratometricAxisSequence = value + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.clear() + self._dataset.FlatKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_FlatKeratometricAxis(self, item: FlatKeratometricAxisSequenceItem): + if not isinstance(item, FlatKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of FlatKeratometricAxisSequenceItem") + self._FlatKeratometricAxisSequence.append(item) + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.append(item.to_dataset()) + + @property + def CornealTopographySurface(self) -> Optional[str]: + if "CornealTopographySurface" in self._dataset: + return self._dataset.CornealTopographySurface + return None + + @CornealTopographySurface.setter + def CornealTopographySurface(self, value: Optional[str]): + if value is None: + if "CornealTopographySurface" in self._dataset: + del self._dataset.CornealTopographySurface + else: + self._dataset.CornealTopographySurface = value + + @property + def CornealVertexLocation(self) -> Optional[List[float]]: + if "CornealVertexLocation" in self._dataset: + return self._dataset.CornealVertexLocation + return None + + @CornealVertexLocation.setter + def CornealVertexLocation(self, value: Optional[List[float]]): + if value is None: + if "CornealVertexLocation" in self._dataset: + del self._dataset.CornealVertexLocation + else: + self._dataset.CornealVertexLocation = value + + @property + def PupilCentroidXCoordinate(self) -> Optional[float]: + if "PupilCentroidXCoordinate" in self._dataset: + return self._dataset.PupilCentroidXCoordinate + return None + + @PupilCentroidXCoordinate.setter + def PupilCentroidXCoordinate(self, value: Optional[float]): + if value is None: + if "PupilCentroidXCoordinate" in self._dataset: + del self._dataset.PupilCentroidXCoordinate + else: + self._dataset.PupilCentroidXCoordinate = value + + @property + def PupilCentroidYCoordinate(self) -> Optional[float]: + if "PupilCentroidYCoordinate" in self._dataset: + return self._dataset.PupilCentroidYCoordinate + return None + + @PupilCentroidYCoordinate.setter + def PupilCentroidYCoordinate(self, value: Optional[float]): + if value is None: + if "PupilCentroidYCoordinate" in self._dataset: + del self._dataset.PupilCentroidYCoordinate + else: + self._dataset.PupilCentroidYCoordinate = value + + @property + def EquivalentPupilRadius(self) -> Optional[float]: + if "EquivalentPupilRadius" in self._dataset: + return self._dataset.EquivalentPupilRadius + return None + + @EquivalentPupilRadius.setter + def EquivalentPupilRadius(self, value: Optional[float]): + if value is None: + if "EquivalentPupilRadius" in self._dataset: + del self._dataset.EquivalentPupilRadius + else: + self._dataset.EquivalentPupilRadius = value + + @property + def CornealTopographyMapTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "CornealTopographyMapTypeCodeSequence" in self._dataset: + if len(self._CornealTopographyMapTypeCodeSequence) == len(self._dataset.CornealTopographyMapTypeCodeSequence): + return self._CornealTopographyMapTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.CornealTopographyMapTypeCodeSequence] + return None + + @CornealTopographyMapTypeCodeSequence.setter + def CornealTopographyMapTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._CornealTopographyMapTypeCodeSequence = [] + if "CornealTopographyMapTypeCodeSequence" in self._dataset: + del self._dataset.CornealTopographyMapTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("CornealTopographyMapTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._CornealTopographyMapTypeCodeSequence = value + if "CornealTopographyMapTypeCodeSequence" not in self._dataset: + self._dataset.CornealTopographyMapTypeCodeSequence = pydicom.Sequence() + self._dataset.CornealTopographyMapTypeCodeSequence.clear() + self._dataset.CornealTopographyMapTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_CornealTopographyMapTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._CornealTopographyMapTypeCodeSequence.append(item) + if "CornealTopographyMapTypeCodeSequence" not in self._dataset: + self._dataset.CornealTopographyMapTypeCodeSequence = pydicom.Sequence() + self._dataset.CornealTopographyMapTypeCodeSequence.append(item.to_dataset()) + + @property + def VerticesOfTheOutlineOfPupil(self) -> Optional[List[int]]: + if "VerticesOfTheOutlineOfPupil" in self._dataset: + return self._dataset.VerticesOfTheOutlineOfPupil + return None + + @VerticesOfTheOutlineOfPupil.setter + def VerticesOfTheOutlineOfPupil(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfTheOutlineOfPupil" in self._dataset: + del self._dataset.VerticesOfTheOutlineOfPupil + else: + self._dataset.VerticesOfTheOutlineOfPupil = value + + @property + def CornealTopographyMappingNormalsSequence(self) -> Optional[List[CornealTopographyMappingNormalsSequenceItem]]: + if "CornealTopographyMappingNormalsSequence" in self._dataset: + if len(self._CornealTopographyMappingNormalsSequence) == len( + self._dataset.CornealTopographyMappingNormalsSequence + ): + return self._CornealTopographyMappingNormalsSequence + else: + return [ + CornealTopographyMappingNormalsSequenceItem(x) + for x in self._dataset.CornealTopographyMappingNormalsSequence + ] + return None + + @CornealTopographyMappingNormalsSequence.setter + def CornealTopographyMappingNormalsSequence(self, value: Optional[List[CornealTopographyMappingNormalsSequenceItem]]): + if value is None: + self._CornealTopographyMappingNormalsSequence = [] + if "CornealTopographyMappingNormalsSequence" in self._dataset: + del self._dataset.CornealTopographyMappingNormalsSequence + elif not isinstance(value, list) or not all( + isinstance(item, CornealTopographyMappingNormalsSequenceItem) for item in value + ): + raise ValueError( + "CornealTopographyMappingNormalsSequence must be a list of CornealTopographyMappingNormalsSequenceItem objects" + ) + else: + self._CornealTopographyMappingNormalsSequence = value + if "CornealTopographyMappingNormalsSequence" not in self._dataset: + self._dataset.CornealTopographyMappingNormalsSequence = pydicom.Sequence() + self._dataset.CornealTopographyMappingNormalsSequence.clear() + self._dataset.CornealTopographyMappingNormalsSequence.extend([item.to_dataset() for item in value]) + + def add_CornealTopographyMappingNormals(self, item: CornealTopographyMappingNormalsSequenceItem): + if not isinstance(item, CornealTopographyMappingNormalsSequenceItem): + raise ValueError("Item must be an instance of CornealTopographyMappingNormalsSequenceItem") + self._CornealTopographyMappingNormalsSequence.append(item) + if "CornealTopographyMappingNormalsSequence" not in self._dataset: + self._dataset.CornealTopographyMappingNormalsSequence = pydicom.Sequence() + self._dataset.CornealTopographyMappingNormalsSequence.append(item.to_dataset()) + + @property + def MaximumCornealCurvatureSequence(self) -> Optional[List[MaximumCornealCurvatureSequenceItem]]: + if "MaximumCornealCurvatureSequence" in self._dataset: + if len(self._MaximumCornealCurvatureSequence) == len(self._dataset.MaximumCornealCurvatureSequence): + return self._MaximumCornealCurvatureSequence + else: + return [MaximumCornealCurvatureSequenceItem(x) for x in self._dataset.MaximumCornealCurvatureSequence] + return None + + @MaximumCornealCurvatureSequence.setter + def MaximumCornealCurvatureSequence(self, value: Optional[List[MaximumCornealCurvatureSequenceItem]]): + if value is None: + self._MaximumCornealCurvatureSequence = [] + if "MaximumCornealCurvatureSequence" in self._dataset: + del self._dataset.MaximumCornealCurvatureSequence + elif not isinstance(value, list) or not all(isinstance(item, MaximumCornealCurvatureSequenceItem) for item in value): + raise ValueError("MaximumCornealCurvatureSequence must be a list of MaximumCornealCurvatureSequenceItem objects") + else: + self._MaximumCornealCurvatureSequence = value + if "MaximumCornealCurvatureSequence" not in self._dataset: + self._dataset.MaximumCornealCurvatureSequence = pydicom.Sequence() + self._dataset.MaximumCornealCurvatureSequence.clear() + self._dataset.MaximumCornealCurvatureSequence.extend([item.to_dataset() for item in value]) + + def add_MaximumCornealCurvature(self, item: MaximumCornealCurvatureSequenceItem): + if not isinstance(item, MaximumCornealCurvatureSequenceItem): + raise ValueError("Item must be an instance of MaximumCornealCurvatureSequenceItem") + self._MaximumCornealCurvatureSequence.append(item) + if "MaximumCornealCurvatureSequence" not in self._dataset: + self._dataset.MaximumCornealCurvatureSequence = pydicom.Sequence() + self._dataset.MaximumCornealCurvatureSequence.append(item.to_dataset()) + + @property + def MinimumKeratometricSequence(self) -> Optional[List[MinimumKeratometricSequenceItem]]: + if "MinimumKeratometricSequence" in self._dataset: + if len(self._MinimumKeratometricSequence) == len(self._dataset.MinimumKeratometricSequence): + return self._MinimumKeratometricSequence + else: + return [MinimumKeratometricSequenceItem(x) for x in self._dataset.MinimumKeratometricSequence] + return None + + @MinimumKeratometricSequence.setter + def MinimumKeratometricSequence(self, value: Optional[List[MinimumKeratometricSequenceItem]]): + if value is None: + self._MinimumKeratometricSequence = [] + if "MinimumKeratometricSequence" in self._dataset: + del self._dataset.MinimumKeratometricSequence + elif not isinstance(value, list) or not all(isinstance(item, MinimumKeratometricSequenceItem) for item in value): + raise ValueError("MinimumKeratometricSequence must be a list of MinimumKeratometricSequenceItem objects") + else: + self._MinimumKeratometricSequence = value + if "MinimumKeratometricSequence" not in self._dataset: + self._dataset.MinimumKeratometricSequence = pydicom.Sequence() + self._dataset.MinimumKeratometricSequence.clear() + self._dataset.MinimumKeratometricSequence.extend([item.to_dataset() for item in value]) + + def add_MinimumKeratometric(self, item: MinimumKeratometricSequenceItem): + if not isinstance(item, MinimumKeratometricSequenceItem): + raise ValueError("Item must be an instance of MinimumKeratometricSequenceItem") + self._MinimumKeratometricSequence.append(item) + if "MinimumKeratometricSequence" not in self._dataset: + self._dataset.MinimumKeratometricSequence = pydicom.Sequence() + self._dataset.MinimumKeratometricSequence.append(item.to_dataset()) + + @property + def SimulatedKeratometricCylinderSequence(self) -> Optional[List[SimulatedKeratometricCylinderSequenceItem]]: + if "SimulatedKeratometricCylinderSequence" in self._dataset: + if len(self._SimulatedKeratometricCylinderSequence) == len(self._dataset.SimulatedKeratometricCylinderSequence): + return self._SimulatedKeratometricCylinderSequence + else: + return [ + SimulatedKeratometricCylinderSequenceItem(x) for x in self._dataset.SimulatedKeratometricCylinderSequence + ] + return None + + @SimulatedKeratometricCylinderSequence.setter + def SimulatedKeratometricCylinderSequence(self, value: Optional[List[SimulatedKeratometricCylinderSequenceItem]]): + if value is None: + self._SimulatedKeratometricCylinderSequence = [] + if "SimulatedKeratometricCylinderSequence" in self._dataset: + del self._dataset.SimulatedKeratometricCylinderSequence + elif not isinstance(value, list) or not all( + isinstance(item, SimulatedKeratometricCylinderSequenceItem) for item in value + ): + raise ValueError( + "SimulatedKeratometricCylinderSequence must be a list of SimulatedKeratometricCylinderSequenceItem objects" + ) + else: + self._SimulatedKeratometricCylinderSequence = value + if "SimulatedKeratometricCylinderSequence" not in self._dataset: + self._dataset.SimulatedKeratometricCylinderSequence = pydicom.Sequence() + self._dataset.SimulatedKeratometricCylinderSequence.clear() + self._dataset.SimulatedKeratometricCylinderSequence.extend([item.to_dataset() for item in value]) + + def add_SimulatedKeratometricCylinder(self, item: SimulatedKeratometricCylinderSequenceItem): + if not isinstance(item, SimulatedKeratometricCylinderSequenceItem): + raise ValueError("Item must be an instance of SimulatedKeratometricCylinderSequenceItem") + self._SimulatedKeratometricCylinderSequence.append(item) + if "SimulatedKeratometricCylinderSequence" not in self._dataset: + self._dataset.SimulatedKeratometricCylinderSequence = pydicom.Sequence() + self._dataset.SimulatedKeratometricCylinderSequence.append(item.to_dataset()) + + @property + def AverageCornealPower(self) -> Optional[float]: + if "AverageCornealPower" in self._dataset: + return self._dataset.AverageCornealPower + return None + + @AverageCornealPower.setter + def AverageCornealPower(self, value: Optional[float]): + if value is None: + if "AverageCornealPower" in self._dataset: + del self._dataset.AverageCornealPower + else: + self._dataset.AverageCornealPower = value + + @property + def CornealISValue(self) -> Optional[float]: + if "CornealISValue" in self._dataset: + return self._dataset.CornealISValue + return None + + @CornealISValue.setter + def CornealISValue(self, value: Optional[float]): + if value is None: + if "CornealISValue" in self._dataset: + del self._dataset.CornealISValue + else: + self._dataset.CornealISValue = value + + @property + def AnalyzedArea(self) -> Optional[float]: + if "AnalyzedArea" in self._dataset: + return self._dataset.AnalyzedArea + return None + + @AnalyzedArea.setter + def AnalyzedArea(self, value: Optional[float]): + if value is None: + if "AnalyzedArea" in self._dataset: + del self._dataset.AnalyzedArea + else: + self._dataset.AnalyzedArea = value + + @property + def SurfaceRegularityIndex(self) -> Optional[float]: + if "SurfaceRegularityIndex" in self._dataset: + return self._dataset.SurfaceRegularityIndex + return None + + @SurfaceRegularityIndex.setter + def SurfaceRegularityIndex(self, value: Optional[float]): + if value is None: + if "SurfaceRegularityIndex" in self._dataset: + del self._dataset.SurfaceRegularityIndex + else: + self._dataset.SurfaceRegularityIndex = value + + @property + def SurfaceAsymmetryIndex(self) -> Optional[float]: + if "SurfaceAsymmetryIndex" in self._dataset: + return self._dataset.SurfaceAsymmetryIndex + return None + + @SurfaceAsymmetryIndex.setter + def SurfaceAsymmetryIndex(self, value: Optional[float]): + if value is None: + if "SurfaceAsymmetryIndex" in self._dataset: + del self._dataset.SurfaceAsymmetryIndex + else: + self._dataset.SurfaceAsymmetryIndex = value + + @property + def CornealEccentricityIndex(self) -> Optional[float]: + if "CornealEccentricityIndex" in self._dataset: + return self._dataset.CornealEccentricityIndex + return None + + @CornealEccentricityIndex.setter + def CornealEccentricityIndex(self, value: Optional[float]): + if value is None: + if "CornealEccentricityIndex" in self._dataset: + del self._dataset.CornealEccentricityIndex + else: + self._dataset.CornealEccentricityIndex = value + + @property + def KeratoconusPredictionIndex(self) -> Optional[float]: + if "KeratoconusPredictionIndex" in self._dataset: + return self._dataset.KeratoconusPredictionIndex + return None + + @KeratoconusPredictionIndex.setter + def KeratoconusPredictionIndex(self, value: Optional[float]): + if value is None: + if "KeratoconusPredictionIndex" in self._dataset: + del self._dataset.KeratoconusPredictionIndex + else: + self._dataset.KeratoconusPredictionIndex = value + + @property + def DecimalPotentialVisualAcuity(self) -> Optional[float]: + if "DecimalPotentialVisualAcuity" in self._dataset: + return self._dataset.DecimalPotentialVisualAcuity + return None + + @DecimalPotentialVisualAcuity.setter + def DecimalPotentialVisualAcuity(self, value: Optional[float]): + if value is None: + if "DecimalPotentialVisualAcuity" in self._dataset: + del self._dataset.DecimalPotentialVisualAcuity + else: + self._dataset.DecimalPotentialVisualAcuity = value + + @property + def CornealTopographyMapQualityEvaluation(self) -> Optional[str]: + if "CornealTopographyMapQualityEvaluation" in self._dataset: + return self._dataset.CornealTopographyMapQualityEvaluation + return None + + @CornealTopographyMapQualityEvaluation.setter + def CornealTopographyMapQualityEvaluation(self, value: Optional[str]): + if value is None: + if "CornealTopographyMapQualityEvaluation" in self._dataset: + del self._dataset.CornealTopographyMapQualityEvaluation + else: + self._dataset.CornealTopographyMapQualityEvaluation = value + + @property + def SourceImageCornealProcessedDataSequence(self) -> Optional[List[SourceImageCornealProcessedDataSequenceItem]]: + if "SourceImageCornealProcessedDataSequence" in self._dataset: + if len(self._SourceImageCornealProcessedDataSequence) == len( + self._dataset.SourceImageCornealProcessedDataSequence + ): + return self._SourceImageCornealProcessedDataSequence + else: + return [ + SourceImageCornealProcessedDataSequenceItem(x) + for x in self._dataset.SourceImageCornealProcessedDataSequence + ] + return None + + @SourceImageCornealProcessedDataSequence.setter + def SourceImageCornealProcessedDataSequence(self, value: Optional[List[SourceImageCornealProcessedDataSequenceItem]]): + if value is None: + self._SourceImageCornealProcessedDataSequence = [] + if "SourceImageCornealProcessedDataSequence" in self._dataset: + del self._dataset.SourceImageCornealProcessedDataSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourceImageCornealProcessedDataSequenceItem) for item in value + ): + raise ValueError( + "SourceImageCornealProcessedDataSequence must be a list of SourceImageCornealProcessedDataSequenceItem objects" + ) + else: + self._SourceImageCornealProcessedDataSequence = value + if "SourceImageCornealProcessedDataSequence" not in self._dataset: + self._dataset.SourceImageCornealProcessedDataSequence = pydicom.Sequence() + self._dataset.SourceImageCornealProcessedDataSequence.clear() + self._dataset.SourceImageCornealProcessedDataSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/corneal_topography_mapping_normals_sequence_item.py b/tdwii_plus_examples/domain_model/corneal_topography_mapping_normals_sequence_item.py new file mode 100644 index 0000000..16a4ec4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/corneal_topography_mapping_normals_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CornealTopographyMappingNormalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataSetName(self) -> Optional[str]: + if "DataSetName" in self._dataset: + return self._dataset.DataSetName + return None + + @DataSetName.setter + def DataSetName(self, value: Optional[str]): + if value is None: + if "DataSetName" in self._dataset: + del self._dataset.DataSetName + else: + self._dataset.DataSetName = value + + @property + def DataSetVersion(self) -> Optional[str]: + if "DataSetVersion" in self._dataset: + return self._dataset.DataSetVersion + return None + + @DataSetVersion.setter + def DataSetVersion(self, value: Optional[str]): + if value is None: + if "DataSetVersion" in self._dataset: + del self._dataset.DataSetVersion + else: + self._dataset.DataSetVersion = value + + @property + def DataSetSource(self) -> Optional[str]: + if "DataSetSource" in self._dataset: + return self._dataset.DataSetSource + return None + + @DataSetSource.setter + def DataSetSource(self, value: Optional[str]): + if value is None: + if "DataSetSource" in self._dataset: + del self._dataset.DataSetSource + else: + self._dataset.DataSetSource = value + + @property + def DataSetDescription(self) -> Optional[str]: + if "DataSetDescription" in self._dataset: + return self._dataset.DataSetDescription + return None + + @DataSetDescription.setter + def DataSetDescription(self, value: Optional[str]): + if value is None: + if "DataSetDescription" in self._dataset: + del self._dataset.DataSetDescription + else: + self._dataset.DataSetDescription = value diff --git a/tdwii_plus_examples/domain_model/corrected_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/corrected_parameter_sequence_item.py new file mode 100644 index 0000000..010b5ae --- /dev/null +++ b/tdwii_plus_examples/domain_model/corrected_parameter_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CorrectedParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ParameterSequencePointer(self) -> Optional[int]: + if "ParameterSequencePointer" in self._dataset: + return self._dataset.ParameterSequencePointer + return None + + @ParameterSequencePointer.setter + def ParameterSequencePointer(self, value: Optional[int]): + if value is None: + if "ParameterSequencePointer" in self._dataset: + del self._dataset.ParameterSequencePointer + else: + self._dataset.ParameterSequencePointer = value + + @property + def ParameterItemIndex(self) -> Optional[int]: + if "ParameterItemIndex" in self._dataset: + return self._dataset.ParameterItemIndex + return None + + @ParameterItemIndex.setter + def ParameterItemIndex(self, value: Optional[int]): + if value is None: + if "ParameterItemIndex" in self._dataset: + del self._dataset.ParameterItemIndex + else: + self._dataset.ParameterItemIndex = value + + @property + def ParameterPointer(self) -> Optional[int]: + if "ParameterPointer" in self._dataset: + return self._dataset.ParameterPointer + return None + + @ParameterPointer.setter + def ParameterPointer(self, value: Optional[int]): + if value is None: + if "ParameterPointer" in self._dataset: + del self._dataset.ParameterPointer + else: + self._dataset.ParameterPointer = value + + @property + def CorrectionValue(self) -> Optional[float]: + if "CorrectionValue" in self._dataset: + return self._dataset.CorrectionValue + return None + + @CorrectionValue.setter + def CorrectionValue(self, value: Optional[float]): + if value is None: + if "CorrectionValue" in self._dataset: + del self._dataset.CorrectionValue + else: + self._dataset.CorrectionValue = value diff --git a/tdwii_plus_examples/domain_model/ct_acquisition_details_sequence_item.py b/tdwii_plus_examples/domain_model/ct_acquisition_details_sequence_item.py new file mode 100644 index 0000000..f93f159 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_acquisition_details_sequence_item.py @@ -0,0 +1,124 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTAcquisitionDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataCollectionDiameter(self) -> Optional[Decimal]: + if "DataCollectionDiameter" in self._dataset: + return self._dataset.DataCollectionDiameter + return None + + @DataCollectionDiameter.setter + def DataCollectionDiameter(self, value: Optional[Decimal]): + if value is None: + if "DataCollectionDiameter" in self._dataset: + del self._dataset.DataCollectionDiameter + else: + self._dataset.DataCollectionDiameter = value + + @property + def GantryDetectorTilt(self) -> Optional[Decimal]: + if "GantryDetectorTilt" in self._dataset: + return self._dataset.GantryDetectorTilt + return None + + @GantryDetectorTilt.setter + def GantryDetectorTilt(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorTilt" in self._dataset: + del self._dataset.GantryDetectorTilt + else: + self._dataset.GantryDetectorTilt = value + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value + + @property + def RotationDirection(self) -> Optional[str]: + if "RotationDirection" in self._dataset: + return self._dataset.RotationDirection + return None + + @RotationDirection.setter + def RotationDirection(self, value: Optional[str]): + if value is None: + if "RotationDirection" in self._dataset: + del self._dataset.RotationDirection + else: + self._dataset.RotationDirection = value + + @property + def RevolutionTime(self) -> Optional[float]: + if "RevolutionTime" in self._dataset: + return self._dataset.RevolutionTime + return None + + @RevolutionTime.setter + def RevolutionTime(self, value: Optional[float]): + if value is None: + if "RevolutionTime" in self._dataset: + del self._dataset.RevolutionTime + else: + self._dataset.RevolutionTime = value + + @property + def SingleCollimationWidth(self) -> Optional[float]: + if "SingleCollimationWidth" in self._dataset: + return self._dataset.SingleCollimationWidth + return None + + @SingleCollimationWidth.setter + def SingleCollimationWidth(self, value: Optional[float]): + if value is None: + if "SingleCollimationWidth" in self._dataset: + del self._dataset.SingleCollimationWidth + else: + self._dataset.SingleCollimationWidth = value + + @property + def TotalCollimationWidth(self) -> Optional[float]: + if "TotalCollimationWidth" in self._dataset: + return self._dataset.TotalCollimationWidth + return None + + @TotalCollimationWidth.setter + def TotalCollimationWidth(self, value: Optional[float]): + if value is None: + if "TotalCollimationWidth" in self._dataset: + del self._dataset.TotalCollimationWidth + else: + self._dataset.TotalCollimationWidth = value + + @property + def ReferencedPathIndex(self) -> Optional[List[int]]: + if "ReferencedPathIndex" in self._dataset: + return self._dataset.ReferencedPathIndex + return None + + @ReferencedPathIndex.setter + def ReferencedPathIndex(self, value: Optional[List[int]]): + if value is None: + if "ReferencedPathIndex" in self._dataset: + del self._dataset.ReferencedPathIndex + else: + self._dataset.ReferencedPathIndex = value diff --git a/tdwii_plus_examples/domain_model/ct_acquisition_type_sequence_item.py b/tdwii_plus_examples/domain_model/ct_acquisition_type_sequence_item.py new file mode 100644 index 0000000..e2b6e70 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_acquisition_type_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTAcquisitionTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AcquisitionType(self) -> Optional[str]: + if "AcquisitionType" in self._dataset: + return self._dataset.AcquisitionType + return None + + @AcquisitionType.setter + def AcquisitionType(self, value: Optional[str]): + if value is None: + if "AcquisitionType" in self._dataset: + del self._dataset.AcquisitionType + else: + self._dataset.AcquisitionType = value + + @property + def TubeAngle(self) -> Optional[float]: + if "TubeAngle" in self._dataset: + return self._dataset.TubeAngle + return None + + @TubeAngle.setter + def TubeAngle(self, value: Optional[float]): + if value is None: + if "TubeAngle" in self._dataset: + del self._dataset.TubeAngle + else: + self._dataset.TubeAngle = value + + @property + def ConstantVolumeFlag(self) -> Optional[str]: + if "ConstantVolumeFlag" in self._dataset: + return self._dataset.ConstantVolumeFlag + return None + + @ConstantVolumeFlag.setter + def ConstantVolumeFlag(self, value: Optional[str]): + if value is None: + if "ConstantVolumeFlag" in self._dataset: + del self._dataset.ConstantVolumeFlag + else: + self._dataset.ConstantVolumeFlag = value + + @property + def FluoroscopyFlag(self) -> Optional[str]: + if "FluoroscopyFlag" in self._dataset: + return self._dataset.FluoroscopyFlag + return None + + @FluoroscopyFlag.setter + def FluoroscopyFlag(self, value: Optional[str]): + if value is None: + if "FluoroscopyFlag" in self._dataset: + del self._dataset.FluoroscopyFlag + else: + self._dataset.FluoroscopyFlag = value diff --git a/tdwii_plus_examples/domain_model/ct_additional_x_ray_source_sequence_item.py b/tdwii_plus_examples/domain_model/ct_additional_x_ray_source_sequence_item.py new file mode 100644 index 0000000..af16b09 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_additional_x_ray_source_sequence_item.py @@ -0,0 +1,124 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTAdditionalXRaySourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DataCollectionDiameter(self) -> Optional[Decimal]: + if "DataCollectionDiameter" in self._dataset: + return self._dataset.DataCollectionDiameter + return None + + @DataCollectionDiameter.setter + def DataCollectionDiameter(self, value: Optional[Decimal]): + if value is None: + if "DataCollectionDiameter" in self._dataset: + del self._dataset.DataCollectionDiameter + else: + self._dataset.DataCollectionDiameter = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def EnergyWeightingFactor(self) -> Optional[float]: + if "EnergyWeightingFactor" in self._dataset: + return self._dataset.EnergyWeightingFactor + return None + + @EnergyWeightingFactor.setter + def EnergyWeightingFactor(self, value: Optional[float]): + if value is None: + if "EnergyWeightingFactor" in self._dataset: + del self._dataset.EnergyWeightingFactor + else: + self._dataset.EnergyWeightingFactor = value diff --git a/tdwii_plus_examples/domain_model/ct_exposure_sequence_item.py b/tdwii_plus_examples/domain_model/ct_exposure_sequence_item.py new file mode 100644 index 0000000..e19bfe1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_exposure_sequence_item.py @@ -0,0 +1,194 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class CTExposureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._WaterEquivalentDiameterCalculationMethodCodeSequence: List[CodeSequenceItem] = [] + self._CTDIPhantomTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def WaterEquivalentDiameter(self) -> Optional[float]: + if "WaterEquivalentDiameter" in self._dataset: + return self._dataset.WaterEquivalentDiameter + return None + + @WaterEquivalentDiameter.setter + def WaterEquivalentDiameter(self, value: Optional[float]): + if value is None: + if "WaterEquivalentDiameter" in self._dataset: + del self._dataset.WaterEquivalentDiameter + else: + self._dataset.WaterEquivalentDiameter = value + + @property + def WaterEquivalentDiameterCalculationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "WaterEquivalentDiameterCalculationMethodCodeSequence" in self._dataset: + if len(self._WaterEquivalentDiameterCalculationMethodCodeSequence) == len( + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence + ): + return self._WaterEquivalentDiameterCalculationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence] + return None + + @WaterEquivalentDiameterCalculationMethodCodeSequence.setter + def WaterEquivalentDiameterCalculationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._WaterEquivalentDiameterCalculationMethodCodeSequence = [] + if "WaterEquivalentDiameterCalculationMethodCodeSequence" in self._dataset: + del self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("WaterEquivalentDiameterCalculationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._WaterEquivalentDiameterCalculationMethodCodeSequence = value + if "WaterEquivalentDiameterCalculationMethodCodeSequence" not in self._dataset: + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence = pydicom.Sequence() + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence.clear() + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_WaterEquivalentDiameterCalculationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._WaterEquivalentDiameterCalculationMethodCodeSequence.append(item) + if "WaterEquivalentDiameterCalculationMethodCodeSequence" not in self._dataset: + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence = pydicom.Sequence() + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence.append(item.to_dataset()) + + @property + def ExposureModulationType(self) -> Optional[List[str]]: + if "ExposureModulationType" in self._dataset: + return self._dataset.ExposureModulationType + return None + + @ExposureModulationType.setter + def ExposureModulationType(self, value: Optional[List[str]]): + if value is None: + if "ExposureModulationType" in self._dataset: + del self._dataset.ExposureModulationType + else: + self._dataset.ExposureModulationType = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def CTDIvol(self) -> Optional[float]: + if "CTDIvol" in self._dataset: + return self._dataset.CTDIvol + return None + + @CTDIvol.setter + def CTDIvol(self, value: Optional[float]): + if value is None: + if "CTDIvol" in self._dataset: + del self._dataset.CTDIvol + else: + self._dataset.CTDIvol = value + + @property + def CTDIPhantomTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "CTDIPhantomTypeCodeSequence" in self._dataset: + if len(self._CTDIPhantomTypeCodeSequence) == len(self._dataset.CTDIPhantomTypeCodeSequence): + return self._CTDIPhantomTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.CTDIPhantomTypeCodeSequence] + return None + + @CTDIPhantomTypeCodeSequence.setter + def CTDIPhantomTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._CTDIPhantomTypeCodeSequence = [] + if "CTDIPhantomTypeCodeSequence" in self._dataset: + del self._dataset.CTDIPhantomTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("CTDIPhantomTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._CTDIPhantomTypeCodeSequence = value + if "CTDIPhantomTypeCodeSequence" not in self._dataset: + self._dataset.CTDIPhantomTypeCodeSequence = pydicom.Sequence() + self._dataset.CTDIPhantomTypeCodeSequence.clear() + self._dataset.CTDIPhantomTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_CTDIPhantomTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._CTDIPhantomTypeCodeSequence.append(item) + if "CTDIPhantomTypeCodeSequence" not in self._dataset: + self._dataset.CTDIPhantomTypeCodeSequence = pydicom.Sequence() + self._dataset.CTDIPhantomTypeCodeSequence.append(item.to_dataset()) + + @property + def ReferencedXRaySourceIndex(self) -> Optional[List[int]]: + if "ReferencedXRaySourceIndex" in self._dataset: + return self._dataset.ReferencedXRaySourceIndex + return None + + @ReferencedXRaySourceIndex.setter + def ReferencedXRaySourceIndex(self, value: Optional[List[int]]): + if value is None: + if "ReferencedXRaySourceIndex" in self._dataset: + del self._dataset.ReferencedXRaySourceIndex + else: + self._dataset.ReferencedXRaySourceIndex = value diff --git a/tdwii_plus_examples/domain_model/ct_geometry_sequence_item.py b/tdwii_plus_examples/domain_model/ct_geometry_sequence_item.py new file mode 100644 index 0000000..9bb1731 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_geometry_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTGeometrySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToDataCollectionCenter(self) -> Optional[float]: + if "DistanceSourceToDataCollectionCenter" in self._dataset: + return self._dataset.DistanceSourceToDataCollectionCenter + return None + + @DistanceSourceToDataCollectionCenter.setter + def DistanceSourceToDataCollectionCenter(self, value: Optional[float]): + if value is None: + if "DistanceSourceToDataCollectionCenter" in self._dataset: + del self._dataset.DistanceSourceToDataCollectionCenter + else: + self._dataset.DistanceSourceToDataCollectionCenter = value + + @property + def ReferencedPathIndex(self) -> Optional[List[int]]: + if "ReferencedPathIndex" in self._dataset: + return self._dataset.ReferencedPathIndex + return None + + @ReferencedPathIndex.setter + def ReferencedPathIndex(self, value: Optional[List[int]]): + if value is None: + if "ReferencedPathIndex" in self._dataset: + del self._dataset.ReferencedPathIndex + else: + self._dataset.ReferencedPathIndex = value diff --git a/tdwii_plus_examples/domain_model/ct_image.py b/tdwii_plus_examples/domain_model/ct_image.py new file mode 100644 index 0000000..7f6f6f0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_image.py @@ -0,0 +1,6901 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .ct_additional_x_ray_source_sequence_item import CTAdditionalXRaySourceSequenceItem +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .multienergy_ct_acquisition_sequence_item import ( + MultienergyCTAcquisitionSequenceItem, +) +from .multienergy_ct_characteristics_sequence_item import ( + MultienergyCTCharacteristicsSequenceItem, +) +from .multienergy_ct_processing_sequence_item import MultienergyCTProcessingSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class CtImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._WaterEquivalentDiameterCalculationMethodCodeSequence: List[CodeSequenceItem] = [] + self._CTDIPhantomTypeCodeSequence: List[CodeSequenceItem] = [] + self._CTAdditionalXRaySourceSequence: List[CTAdditionalXRaySourceSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._MultienergyCTAcquisitionSequence: List[MultienergyCTAcquisitionSequenceItem] = [] + self._MultienergyCTProcessingSequence: List[MultienergyCTProcessingSequenceItem] = [] + self._MultienergyCTCharacteristicsSequence: List[MultienergyCTCharacteristicsSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def SliceLocation(self) -> Optional[Decimal]: + if "SliceLocation" in self._dataset: + return self._dataset.SliceLocation + return None + + @SliceLocation.setter + def SliceLocation(self, value: Optional[Decimal]): + if value is None: + if "SliceLocation" in self._dataset: + del self._dataset.SliceLocation + else: + self._dataset.SliceLocation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DataCollectionDiameter(self) -> Optional[Decimal]: + if "DataCollectionDiameter" in self._dataset: + return self._dataset.DataCollectionDiameter + return None + + @DataCollectionDiameter.setter + def DataCollectionDiameter(self, value: Optional[Decimal]): + if value is None: + if "DataCollectionDiameter" in self._dataset: + del self._dataset.DataCollectionDiameter + else: + self._dataset.DataCollectionDiameter = value + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def GantryDetectorTilt(self) -> Optional[Decimal]: + if "GantryDetectorTilt" in self._dataset: + return self._dataset.GantryDetectorTilt + return None + + @GantryDetectorTilt.setter + def GantryDetectorTilt(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorTilt" in self._dataset: + del self._dataset.GantryDetectorTilt + else: + self._dataset.GantryDetectorTilt = value + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value + + @property + def RotationDirection(self) -> Optional[str]: + if "RotationDirection" in self._dataset: + return self._dataset.RotationDirection + return None + + @RotationDirection.setter + def RotationDirection(self, value: Optional[str]): + if value is None: + if "RotationDirection" in self._dataset: + del self._dataset.RotationDirection + else: + self._dataset.RotationDirection = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def GeneratorPower(self) -> Optional[int]: + if "GeneratorPower" in self._dataset: + return self._dataset.GeneratorPower + return None + + @GeneratorPower.setter + def GeneratorPower(self, value: Optional[int]): + if value is None: + if "GeneratorPower" in self._dataset: + del self._dataset.GeneratorPower + else: + self._dataset.GeneratorPower = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def WaterEquivalentDiameter(self) -> Optional[float]: + if "WaterEquivalentDiameter" in self._dataset: + return self._dataset.WaterEquivalentDiameter + return None + + @WaterEquivalentDiameter.setter + def WaterEquivalentDiameter(self, value: Optional[float]): + if value is None: + if "WaterEquivalentDiameter" in self._dataset: + del self._dataset.WaterEquivalentDiameter + else: + self._dataset.WaterEquivalentDiameter = value + + @property + def WaterEquivalentDiameterCalculationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "WaterEquivalentDiameterCalculationMethodCodeSequence" in self._dataset: + if len(self._WaterEquivalentDiameterCalculationMethodCodeSequence) == len( + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence + ): + return self._WaterEquivalentDiameterCalculationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence] + return None + + @WaterEquivalentDiameterCalculationMethodCodeSequence.setter + def WaterEquivalentDiameterCalculationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._WaterEquivalentDiameterCalculationMethodCodeSequence = [] + if "WaterEquivalentDiameterCalculationMethodCodeSequence" in self._dataset: + del self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("WaterEquivalentDiameterCalculationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._WaterEquivalentDiameterCalculationMethodCodeSequence = value + if "WaterEquivalentDiameterCalculationMethodCodeSequence" not in self._dataset: + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence = pydicom.Sequence() + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence.clear() + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_WaterEquivalentDiameterCalculationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._WaterEquivalentDiameterCalculationMethodCodeSequence.append(item) + if "WaterEquivalentDiameterCalculationMethodCodeSequence" not in self._dataset: + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence = pydicom.Sequence() + self._dataset.WaterEquivalentDiameterCalculationMethodCodeSequence.append(item.to_dataset()) + + @property + def RevolutionTime(self) -> Optional[float]: + if "RevolutionTime" in self._dataset: + return self._dataset.RevolutionTime + return None + + @RevolutionTime.setter + def RevolutionTime(self, value: Optional[float]): + if value is None: + if "RevolutionTime" in self._dataset: + del self._dataset.RevolutionTime + else: + self._dataset.RevolutionTime = value + + @property + def SingleCollimationWidth(self) -> Optional[float]: + if "SingleCollimationWidth" in self._dataset: + return self._dataset.SingleCollimationWidth + return None + + @SingleCollimationWidth.setter + def SingleCollimationWidth(self, value: Optional[float]): + if value is None: + if "SingleCollimationWidth" in self._dataset: + del self._dataset.SingleCollimationWidth + else: + self._dataset.SingleCollimationWidth = value + + @property + def TotalCollimationWidth(self) -> Optional[float]: + if "TotalCollimationWidth" in self._dataset: + return self._dataset.TotalCollimationWidth + return None + + @TotalCollimationWidth.setter + def TotalCollimationWidth(self, value: Optional[float]): + if value is None: + if "TotalCollimationWidth" in self._dataset: + del self._dataset.TotalCollimationWidth + else: + self._dataset.TotalCollimationWidth = value + + @property + def TableSpeed(self) -> Optional[float]: + if "TableSpeed" in self._dataset: + return self._dataset.TableSpeed + return None + + @TableSpeed.setter + def TableSpeed(self, value: Optional[float]): + if value is None: + if "TableSpeed" in self._dataset: + del self._dataset.TableSpeed + else: + self._dataset.TableSpeed = value + + @property + def TableFeedPerRotation(self) -> Optional[float]: + if "TableFeedPerRotation" in self._dataset: + return self._dataset.TableFeedPerRotation + return None + + @TableFeedPerRotation.setter + def TableFeedPerRotation(self, value: Optional[float]): + if value is None: + if "TableFeedPerRotation" in self._dataset: + del self._dataset.TableFeedPerRotation + else: + self._dataset.TableFeedPerRotation = value + + @property + def SpiralPitchFactor(self) -> Optional[float]: + if "SpiralPitchFactor" in self._dataset: + return self._dataset.SpiralPitchFactor + return None + + @SpiralPitchFactor.setter + def SpiralPitchFactor(self, value: Optional[float]): + if value is None: + if "SpiralPitchFactor" in self._dataset: + del self._dataset.SpiralPitchFactor + else: + self._dataset.SpiralPitchFactor = value + + @property + def DataCollectionCenterPatient(self) -> Optional[List[float]]: + if "DataCollectionCenterPatient" in self._dataset: + return self._dataset.DataCollectionCenterPatient + return None + + @DataCollectionCenterPatient.setter + def DataCollectionCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "DataCollectionCenterPatient" in self._dataset: + del self._dataset.DataCollectionCenterPatient + else: + self._dataset.DataCollectionCenterPatient = value + + @property + def ReconstructionTargetCenterPatient(self) -> Optional[List[float]]: + if "ReconstructionTargetCenterPatient" in self._dataset: + return self._dataset.ReconstructionTargetCenterPatient + return None + + @ReconstructionTargetCenterPatient.setter + def ReconstructionTargetCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionTargetCenterPatient" in self._dataset: + del self._dataset.ReconstructionTargetCenterPatient + else: + self._dataset.ReconstructionTargetCenterPatient = value + + @property + def ExposureModulationType(self) -> Optional[List[str]]: + if "ExposureModulationType" in self._dataset: + return self._dataset.ExposureModulationType + return None + + @ExposureModulationType.setter + def ExposureModulationType(self, value: Optional[List[str]]): + if value is None: + if "ExposureModulationType" in self._dataset: + del self._dataset.ExposureModulationType + else: + self._dataset.ExposureModulationType = value + + @property + def CTDIvol(self) -> Optional[float]: + if "CTDIvol" in self._dataset: + return self._dataset.CTDIvol + return None + + @CTDIvol.setter + def CTDIvol(self, value: Optional[float]): + if value is None: + if "CTDIvol" in self._dataset: + del self._dataset.CTDIvol + else: + self._dataset.CTDIvol = value + + @property + def CTDIPhantomTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "CTDIPhantomTypeCodeSequence" in self._dataset: + if len(self._CTDIPhantomTypeCodeSequence) == len(self._dataset.CTDIPhantomTypeCodeSequence): + return self._CTDIPhantomTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.CTDIPhantomTypeCodeSequence] + return None + + @CTDIPhantomTypeCodeSequence.setter + def CTDIPhantomTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._CTDIPhantomTypeCodeSequence = [] + if "CTDIPhantomTypeCodeSequence" in self._dataset: + del self._dataset.CTDIPhantomTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("CTDIPhantomTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._CTDIPhantomTypeCodeSequence = value + if "CTDIPhantomTypeCodeSequence" not in self._dataset: + self._dataset.CTDIPhantomTypeCodeSequence = pydicom.Sequence() + self._dataset.CTDIPhantomTypeCodeSequence.clear() + self._dataset.CTDIPhantomTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_CTDIPhantomTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._CTDIPhantomTypeCodeSequence.append(item) + if "CTDIPhantomTypeCodeSequence" not in self._dataset: + self._dataset.CTDIPhantomTypeCodeSequence = pydicom.Sequence() + self._dataset.CTDIPhantomTypeCodeSequence.append(item.to_dataset()) + + @property + def CalciumScoringMassFactorPatient(self) -> Optional[float]: + if "CalciumScoringMassFactorPatient" in self._dataset: + return self._dataset.CalciumScoringMassFactorPatient + return None + + @CalciumScoringMassFactorPatient.setter + def CalciumScoringMassFactorPatient(self, value: Optional[float]): + if value is None: + if "CalciumScoringMassFactorPatient" in self._dataset: + del self._dataset.CalciumScoringMassFactorPatient + else: + self._dataset.CalciumScoringMassFactorPatient = value + + @property + def CalciumScoringMassFactorDevice(self) -> Optional[List[float]]: + if "CalciumScoringMassFactorDevice" in self._dataset: + return self._dataset.CalciumScoringMassFactorDevice + return None + + @CalciumScoringMassFactorDevice.setter + def CalciumScoringMassFactorDevice(self, value: Optional[List[float]]): + if value is None: + if "CalciumScoringMassFactorDevice" in self._dataset: + del self._dataset.CalciumScoringMassFactorDevice + else: + self._dataset.CalciumScoringMassFactorDevice = value + + @property + def EnergyWeightingFactor(self) -> Optional[float]: + if "EnergyWeightingFactor" in self._dataset: + return self._dataset.EnergyWeightingFactor + return None + + @EnergyWeightingFactor.setter + def EnergyWeightingFactor(self, value: Optional[float]): + if value is None: + if "EnergyWeightingFactor" in self._dataset: + del self._dataset.EnergyWeightingFactor + else: + self._dataset.EnergyWeightingFactor = value + + @property + def CTAdditionalXRaySourceSequence(self) -> Optional[List[CTAdditionalXRaySourceSequenceItem]]: + if "CTAdditionalXRaySourceSequence" in self._dataset: + if len(self._CTAdditionalXRaySourceSequence) == len(self._dataset.CTAdditionalXRaySourceSequence): + return self._CTAdditionalXRaySourceSequence + else: + return [CTAdditionalXRaySourceSequenceItem(x) for x in self._dataset.CTAdditionalXRaySourceSequence] + return None + + @CTAdditionalXRaySourceSequence.setter + def CTAdditionalXRaySourceSequence(self, value: Optional[List[CTAdditionalXRaySourceSequenceItem]]): + if value is None: + self._CTAdditionalXRaySourceSequence = [] + if "CTAdditionalXRaySourceSequence" in self._dataset: + del self._dataset.CTAdditionalXRaySourceSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAdditionalXRaySourceSequenceItem) for item in value): + raise ValueError("CTAdditionalXRaySourceSequence must be a list of CTAdditionalXRaySourceSequenceItem objects") + else: + self._CTAdditionalXRaySourceSequence = value + if "CTAdditionalXRaySourceSequence" not in self._dataset: + self._dataset.CTAdditionalXRaySourceSequence = pydicom.Sequence() + self._dataset.CTAdditionalXRaySourceSequence.clear() + self._dataset.CTAdditionalXRaySourceSequence.extend([item.to_dataset() for item in value]) + + def add_CTAdditionalXRaySource(self, item: CTAdditionalXRaySourceSequenceItem): + if not isinstance(item, CTAdditionalXRaySourceSequenceItem): + raise ValueError("Item must be an instance of CTAdditionalXRaySourceSequenceItem") + self._CTAdditionalXRaySourceSequence.append(item) + if "CTAdditionalXRaySourceSequence" not in self._dataset: + self._dataset.CTAdditionalXRaySourceSequence = pydicom.Sequence() + self._dataset.CTAdditionalXRaySourceSequence.append(item.to_dataset()) + + @property + def MultienergyCTAcquisition(self) -> Optional[str]: + if "MultienergyCTAcquisition" in self._dataset: + return self._dataset.MultienergyCTAcquisition + return None + + @MultienergyCTAcquisition.setter + def MultienergyCTAcquisition(self, value: Optional[str]): + if value is None: + if "MultienergyCTAcquisition" in self._dataset: + del self._dataset.MultienergyCTAcquisition + else: + self._dataset.MultienergyCTAcquisition = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def MultienergyCTAcquisitionSequence(self) -> Optional[List[MultienergyCTAcquisitionSequenceItem]]: + if "MultienergyCTAcquisitionSequence" in self._dataset: + if len(self._MultienergyCTAcquisitionSequence) == len(self._dataset.MultienergyCTAcquisitionSequence): + return self._MultienergyCTAcquisitionSequence + else: + return [MultienergyCTAcquisitionSequenceItem(x) for x in self._dataset.MultienergyCTAcquisitionSequence] + return None + + @MultienergyCTAcquisitionSequence.setter + def MultienergyCTAcquisitionSequence(self, value: Optional[List[MultienergyCTAcquisitionSequenceItem]]): + if value is None: + self._MultienergyCTAcquisitionSequence = [] + if "MultienergyCTAcquisitionSequence" in self._dataset: + del self._dataset.MultienergyCTAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTAcquisitionSequenceItem) for item in value): + raise ValueError("MultienergyCTAcquisitionSequence must be a list of MultienergyCTAcquisitionSequenceItem objects") + else: + self._MultienergyCTAcquisitionSequence = value + if "MultienergyCTAcquisitionSequence" not in self._dataset: + self._dataset.MultienergyCTAcquisitionSequence = pydicom.Sequence() + self._dataset.MultienergyCTAcquisitionSequence.clear() + self._dataset.MultienergyCTAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTAcquisition(self, item: MultienergyCTAcquisitionSequenceItem): + if not isinstance(item, MultienergyCTAcquisitionSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTAcquisitionSequenceItem") + self._MultienergyCTAcquisitionSequence.append(item) + if "MultienergyCTAcquisitionSequence" not in self._dataset: + self._dataset.MultienergyCTAcquisitionSequence = pydicom.Sequence() + self._dataset.MultienergyCTAcquisitionSequence.append(item.to_dataset()) + + @property + def MultienergyCTProcessingSequence(self) -> Optional[List[MultienergyCTProcessingSequenceItem]]: + if "MultienergyCTProcessingSequence" in self._dataset: + if len(self._MultienergyCTProcessingSequence) == len(self._dataset.MultienergyCTProcessingSequence): + return self._MultienergyCTProcessingSequence + else: + return [MultienergyCTProcessingSequenceItem(x) for x in self._dataset.MultienergyCTProcessingSequence] + return None + + @MultienergyCTProcessingSequence.setter + def MultienergyCTProcessingSequence(self, value: Optional[List[MultienergyCTProcessingSequenceItem]]): + if value is None: + self._MultienergyCTProcessingSequence = [] + if "MultienergyCTProcessingSequence" in self._dataset: + del self._dataset.MultienergyCTProcessingSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTProcessingSequenceItem) for item in value): + raise ValueError("MultienergyCTProcessingSequence must be a list of MultienergyCTProcessingSequenceItem objects") + else: + self._MultienergyCTProcessingSequence = value + if "MultienergyCTProcessingSequence" not in self._dataset: + self._dataset.MultienergyCTProcessingSequence = pydicom.Sequence() + self._dataset.MultienergyCTProcessingSequence.clear() + self._dataset.MultienergyCTProcessingSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTProcessing(self, item: MultienergyCTProcessingSequenceItem): + if not isinstance(item, MultienergyCTProcessingSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTProcessingSequenceItem") + self._MultienergyCTProcessingSequence.append(item) + if "MultienergyCTProcessingSequence" not in self._dataset: + self._dataset.MultienergyCTProcessingSequence = pydicom.Sequence() + self._dataset.MultienergyCTProcessingSequence.append(item.to_dataset()) + + @property + def MultienergyCTCharacteristicsSequence(self) -> Optional[List[MultienergyCTCharacteristicsSequenceItem]]: + if "MultienergyCTCharacteristicsSequence" in self._dataset: + if len(self._MultienergyCTCharacteristicsSequence) == len(self._dataset.MultienergyCTCharacteristicsSequence): + return self._MultienergyCTCharacteristicsSequence + else: + return [ + MultienergyCTCharacteristicsSequenceItem(x) for x in self._dataset.MultienergyCTCharacteristicsSequence + ] + return None + + @MultienergyCTCharacteristicsSequence.setter + def MultienergyCTCharacteristicsSequence(self, value: Optional[List[MultienergyCTCharacteristicsSequenceItem]]): + if value is None: + self._MultienergyCTCharacteristicsSequence = [] + if "MultienergyCTCharacteristicsSequence" in self._dataset: + del self._dataset.MultienergyCTCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, MultienergyCTCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "MultienergyCTCharacteristicsSequence must be a list of MultienergyCTCharacteristicsSequenceItem objects" + ) + else: + self._MultienergyCTCharacteristicsSequence = value + if "MultienergyCTCharacteristicsSequence" not in self._dataset: + self._dataset.MultienergyCTCharacteristicsSequence = pydicom.Sequence() + self._dataset.MultienergyCTCharacteristicsSequence.clear() + self._dataset.MultienergyCTCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTCharacteristics(self, item: MultienergyCTCharacteristicsSequenceItem): + if not isinstance(item, MultienergyCTCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTCharacteristicsSequenceItem") + self._MultienergyCTCharacteristicsSequence.append(item) + if "MultienergyCTCharacteristicsSequence" not in self._dataset: + self._dataset.MultienergyCTCharacteristicsSequence = pydicom.Sequence() + self._dataset.MultienergyCTCharacteristicsSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ct_image_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/ct_image_frame_type_sequence_item.py new file mode 100644 index 0000000..787f45c --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_image_frame_type_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTImageFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value diff --git a/tdwii_plus_examples/domain_model/ct_imaging_acquisition_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/ct_imaging_acquisition_parameter_sequence_item.py new file mode 100644 index 0000000..48fb941 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_imaging_acquisition_parameter_sequence_item.py @@ -0,0 +1,142 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .parameters_specification_sequence_item import ParametersSpecificationSequenceItem +from .scan_start_position_sequence_item import ScanStartPositionSequenceItem +from .scan_stop_position_sequence_item import ScanStopPositionSequenceItem + + +class CTImagingAcquisitionParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ParametersSpecificationSequence: List[ParametersSpecificationSequenceItem] = [] + self._ScanStartPositionSequence: List[ScanStartPositionSequenceItem] = [] + self._ScanStopPositionSequence: List[ScanStopPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ParametersSpecificationSequence(self) -> Optional[List[ParametersSpecificationSequenceItem]]: + if "ParametersSpecificationSequence" in self._dataset: + if len(self._ParametersSpecificationSequence) == len(self._dataset.ParametersSpecificationSequence): + return self._ParametersSpecificationSequence + else: + return [ParametersSpecificationSequenceItem(x) for x in self._dataset.ParametersSpecificationSequence] + return None + + @ParametersSpecificationSequence.setter + def ParametersSpecificationSequence(self, value: Optional[List[ParametersSpecificationSequenceItem]]): + if value is None: + self._ParametersSpecificationSequence = [] + if "ParametersSpecificationSequence" in self._dataset: + del self._dataset.ParametersSpecificationSequence + elif not isinstance(value, list) or not all(isinstance(item, ParametersSpecificationSequenceItem) for item in value): + raise ValueError("ParametersSpecificationSequence must be a list of ParametersSpecificationSequenceItem objects") + else: + self._ParametersSpecificationSequence = value + if "ParametersSpecificationSequence" not in self._dataset: + self._dataset.ParametersSpecificationSequence = pydicom.Sequence() + self._dataset.ParametersSpecificationSequence.clear() + self._dataset.ParametersSpecificationSequence.extend([item.to_dataset() for item in value]) + + def add_ParametersSpecification(self, item: ParametersSpecificationSequenceItem): + if not isinstance(item, ParametersSpecificationSequenceItem): + raise ValueError("Item must be an instance of ParametersSpecificationSequenceItem") + self._ParametersSpecificationSequence.append(item) + if "ParametersSpecificationSequence" not in self._dataset: + self._dataset.ParametersSpecificationSequence = pydicom.Sequence() + self._dataset.ParametersSpecificationSequence.append(item.to_dataset()) + + @property + def ScanStartPositionSequence(self) -> Optional[List[ScanStartPositionSequenceItem]]: + if "ScanStartPositionSequence" in self._dataset: + if len(self._ScanStartPositionSequence) == len(self._dataset.ScanStartPositionSequence): + return self._ScanStartPositionSequence + else: + return [ScanStartPositionSequenceItem(x) for x in self._dataset.ScanStartPositionSequence] + return None + + @ScanStartPositionSequence.setter + def ScanStartPositionSequence(self, value: Optional[List[ScanStartPositionSequenceItem]]): + if value is None: + self._ScanStartPositionSequence = [] + if "ScanStartPositionSequence" in self._dataset: + del self._dataset.ScanStartPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ScanStartPositionSequenceItem) for item in value): + raise ValueError("ScanStartPositionSequence must be a list of ScanStartPositionSequenceItem objects") + else: + self._ScanStartPositionSequence = value + if "ScanStartPositionSequence" not in self._dataset: + self._dataset.ScanStartPositionSequence = pydicom.Sequence() + self._dataset.ScanStartPositionSequence.clear() + self._dataset.ScanStartPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ScanStartPosition(self, item: ScanStartPositionSequenceItem): + if not isinstance(item, ScanStartPositionSequenceItem): + raise ValueError("Item must be an instance of ScanStartPositionSequenceItem") + self._ScanStartPositionSequence.append(item) + if "ScanStartPositionSequence" not in self._dataset: + self._dataset.ScanStartPositionSequence = pydicom.Sequence() + self._dataset.ScanStartPositionSequence.append(item.to_dataset()) + + @property + def ScanStopPositionSequence(self) -> Optional[List[ScanStopPositionSequenceItem]]: + if "ScanStopPositionSequence" in self._dataset: + if len(self._ScanStopPositionSequence) == len(self._dataset.ScanStopPositionSequence): + return self._ScanStopPositionSequence + else: + return [ScanStopPositionSequenceItem(x) for x in self._dataset.ScanStopPositionSequence] + return None + + @ScanStopPositionSequence.setter + def ScanStopPositionSequence(self, value: Optional[List[ScanStopPositionSequenceItem]]): + if value is None: + self._ScanStopPositionSequence = [] + if "ScanStopPositionSequence" in self._dataset: + del self._dataset.ScanStopPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ScanStopPositionSequenceItem) for item in value): + raise ValueError("ScanStopPositionSequence must be a list of ScanStopPositionSequenceItem objects") + else: + self._ScanStopPositionSequence = value + if "ScanStopPositionSequence" not in self._dataset: + self._dataset.ScanStopPositionSequence = pydicom.Sequence() + self._dataset.ScanStopPositionSequence.clear() + self._dataset.ScanStopPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ScanStopPosition(self, item: ScanStopPositionSequenceItem): + if not isinstance(item, ScanStopPositionSequenceItem): + raise ValueError("Item must be an instance of ScanStopPositionSequenceItem") + self._ScanStopPositionSequence.append(item) + if "ScanStopPositionSequence" not in self._dataset: + self._dataset.ScanStopPositionSequence = pydicom.Sequence() + self._dataset.ScanStopPositionSequence.append(item.to_dataset()) + + @property + def ScanArcType(self) -> Optional[str]: + if "ScanArcType" in self._dataset: + return self._dataset.ScanArcType + return None + + @ScanArcType.setter + def ScanArcType(self, value: Optional[str]): + if value is None: + if "ScanArcType" in self._dataset: + del self._dataset.ScanArcType + else: + self._dataset.ScanArcType = value + + @property + def DetectorPositioningType(self) -> Optional[str]: + if "DetectorPositioningType" in self._dataset: + return self._dataset.DetectorPositioningType + return None + + @DetectorPositioningType.setter + def DetectorPositioningType(self, value: Optional[str]): + if value is None: + if "DetectorPositioningType" in self._dataset: + del self._dataset.DetectorPositioningType + else: + self._dataset.DetectorPositioningType = value diff --git a/tdwii_plus_examples/domain_model/ct_performed_procedure_protocol.py b/tdwii_plus_examples/domain_model/ct_performed_procedure_protocol.py new file mode 100644 index 0000000..1309c6e --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_performed_procedure_protocol.py @@ -0,0 +1,4807 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_protocol_element_sequence_item import ( + AcquisitionProtocolElementSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instruction_sequence_item import InstructionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_positioning_instruction_sequence_item import ( + PatientPositioningInstructionSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .positioning_landmark_sequence_item import PositioningLandmarkSequenceItem +from .predecessor_protocol_sequence_item import PredecessorProtocolSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .reconstruction_protocol_element_sequence_item import ( + ReconstructionProtocolElementSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .storage_protocol_element_sequence_item import StorageProtocolElementSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class CtPerformedProcedureProtocol: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ResponsibleGroupCodeSequence: List[CodeSequenceItem] = [] + self._PotentialScheduledProtocolCodeSequence: List[CodeSequenceItem] = [] + self._PotentialRequestedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PotentialReasonsForProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ContraindicationsCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorProtocolSequence: List[PredecessorProtocolSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._InstructionSequence: List[InstructionSequenceItem] = [] + self._ReconstructionProtocolElementSequence: List[ReconstructionProtocolElementSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._PatientPositioningInstructionSequence: List[PatientPositioningInstructionSequenceItem] = [] + self._PositioningMethodCodeSequence: List[CodeSequenceItem] = [] + self._PositioningLandmarkSequence: List[PositioningLandmarkSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._StorageProtocolElementSequence: List[StorageProtocolElementSequenceItem] = [] + self._AcquisitionProtocolElementSequence: List[AcquisitionProtocolElementSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ResponsibleGroupCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ResponsibleGroupCodeSequence" in self._dataset: + if len(self._ResponsibleGroupCodeSequence) == len(self._dataset.ResponsibleGroupCodeSequence): + return self._ResponsibleGroupCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ResponsibleGroupCodeSequence] + return None + + @ResponsibleGroupCodeSequence.setter + def ResponsibleGroupCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ResponsibleGroupCodeSequence = [] + if "ResponsibleGroupCodeSequence" in self._dataset: + del self._dataset.ResponsibleGroupCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ResponsibleGroupCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ResponsibleGroupCodeSequence = value + if "ResponsibleGroupCodeSequence" not in self._dataset: + self._dataset.ResponsibleGroupCodeSequence = pydicom.Sequence() + self._dataset.ResponsibleGroupCodeSequence.clear() + self._dataset.ResponsibleGroupCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ResponsibleGroupCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ResponsibleGroupCodeSequence.append(item) + if "ResponsibleGroupCodeSequence" not in self._dataset: + self._dataset.ResponsibleGroupCodeSequence = pydicom.Sequence() + self._dataset.ResponsibleGroupCodeSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PotentialScheduledProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PotentialScheduledProtocolCodeSequence" in self._dataset: + if len(self._PotentialScheduledProtocolCodeSequence) == len(self._dataset.PotentialScheduledProtocolCodeSequence): + return self._PotentialScheduledProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PotentialScheduledProtocolCodeSequence] + return None + + @PotentialScheduledProtocolCodeSequence.setter + def PotentialScheduledProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PotentialScheduledProtocolCodeSequence = [] + if "PotentialScheduledProtocolCodeSequence" in self._dataset: + del self._dataset.PotentialScheduledProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PotentialScheduledProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PotentialScheduledProtocolCodeSequence = value + if "PotentialScheduledProtocolCodeSequence" not in self._dataset: + self._dataset.PotentialScheduledProtocolCodeSequence = pydicom.Sequence() + self._dataset.PotentialScheduledProtocolCodeSequence.clear() + self._dataset.PotentialScheduledProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PotentialScheduledProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PotentialScheduledProtocolCodeSequence.append(item) + if "PotentialScheduledProtocolCodeSequence" not in self._dataset: + self._dataset.PotentialScheduledProtocolCodeSequence = pydicom.Sequence() + self._dataset.PotentialScheduledProtocolCodeSequence.append(item.to_dataset()) + + @property + def PotentialRequestedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PotentialRequestedProcedureCodeSequence" in self._dataset: + if len(self._PotentialRequestedProcedureCodeSequence) == len( + self._dataset.PotentialRequestedProcedureCodeSequence + ): + return self._PotentialRequestedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PotentialRequestedProcedureCodeSequence] + return None + + @PotentialRequestedProcedureCodeSequence.setter + def PotentialRequestedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PotentialRequestedProcedureCodeSequence = [] + if "PotentialRequestedProcedureCodeSequence" in self._dataset: + del self._dataset.PotentialRequestedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PotentialRequestedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PotentialRequestedProcedureCodeSequence = value + if "PotentialRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialRequestedProcedureCodeSequence.clear() + self._dataset.PotentialRequestedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PotentialRequestedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PotentialRequestedProcedureCodeSequence.append(item) + if "PotentialRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialRequestedProcedureCodeSequence.append(item.to_dataset()) + + @property + def PotentialReasonsForProcedure(self) -> Optional[List[str]]: + if "PotentialReasonsForProcedure" in self._dataset: + return self._dataset.PotentialReasonsForProcedure + return None + + @PotentialReasonsForProcedure.setter + def PotentialReasonsForProcedure(self, value: Optional[List[str]]): + if value is None: + if "PotentialReasonsForProcedure" in self._dataset: + del self._dataset.PotentialReasonsForProcedure + else: + self._dataset.PotentialReasonsForProcedure = value + + @property + def PotentialReasonsForProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PotentialReasonsForProcedureCodeSequence" in self._dataset: + if len(self._PotentialReasonsForProcedureCodeSequence) == len( + self._dataset.PotentialReasonsForProcedureCodeSequence + ): + return self._PotentialReasonsForProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PotentialReasonsForProcedureCodeSequence] + return None + + @PotentialReasonsForProcedureCodeSequence.setter + def PotentialReasonsForProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PotentialReasonsForProcedureCodeSequence = [] + if "PotentialReasonsForProcedureCodeSequence" in self._dataset: + del self._dataset.PotentialReasonsForProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PotentialReasonsForProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PotentialReasonsForProcedureCodeSequence = value + if "PotentialReasonsForProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialReasonsForProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialReasonsForProcedureCodeSequence.clear() + self._dataset.PotentialReasonsForProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PotentialReasonsForProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PotentialReasonsForProcedureCodeSequence.append(item) + if "PotentialReasonsForProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialReasonsForProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialReasonsForProcedureCodeSequence.append(item.to_dataset()) + + @property + def PotentialDiagnosticTasks(self) -> Optional[List[str]]: + if "PotentialDiagnosticTasks" in self._dataset: + return self._dataset.PotentialDiagnosticTasks + return None + + @PotentialDiagnosticTasks.setter + def PotentialDiagnosticTasks(self, value: Optional[List[str]]): + if value is None: + if "PotentialDiagnosticTasks" in self._dataset: + del self._dataset.PotentialDiagnosticTasks + else: + self._dataset.PotentialDiagnosticTasks = value + + @property + def ContraindicationsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContraindicationsCodeSequence" in self._dataset: + if len(self._ContraindicationsCodeSequence) == len(self._dataset.ContraindicationsCodeSequence): + return self._ContraindicationsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContraindicationsCodeSequence] + return None + + @ContraindicationsCodeSequence.setter + def ContraindicationsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContraindicationsCodeSequence = [] + if "ContraindicationsCodeSequence" in self._dataset: + del self._dataset.ContraindicationsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContraindicationsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContraindicationsCodeSequence = value + if "ContraindicationsCodeSequence" not in self._dataset: + self._dataset.ContraindicationsCodeSequence = pydicom.Sequence() + self._dataset.ContraindicationsCodeSequence.clear() + self._dataset.ContraindicationsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContraindicationsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContraindicationsCodeSequence.append(item) + if "ContraindicationsCodeSequence" not in self._dataset: + self._dataset.ContraindicationsCodeSequence = pydicom.Sequence() + self._dataset.ContraindicationsCodeSequence.append(item.to_dataset()) + + @property + def PredecessorProtocolSequence(self) -> Optional[List[PredecessorProtocolSequenceItem]]: + if "PredecessorProtocolSequence" in self._dataset: + if len(self._PredecessorProtocolSequence) == len(self._dataset.PredecessorProtocolSequence): + return self._PredecessorProtocolSequence + else: + return [PredecessorProtocolSequenceItem(x) for x in self._dataset.PredecessorProtocolSequence] + return None + + @PredecessorProtocolSequence.setter + def PredecessorProtocolSequence(self, value: Optional[List[PredecessorProtocolSequenceItem]]): + if value is None: + self._PredecessorProtocolSequence = [] + if "PredecessorProtocolSequence" in self._dataset: + del self._dataset.PredecessorProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorProtocolSequenceItem) for item in value): + raise ValueError("PredecessorProtocolSequence must be a list of PredecessorProtocolSequenceItem objects") + else: + self._PredecessorProtocolSequence = value + if "PredecessorProtocolSequence" not in self._dataset: + self._dataset.PredecessorProtocolSequence = pydicom.Sequence() + self._dataset.PredecessorProtocolSequence.clear() + self._dataset.PredecessorProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorProtocol(self, item: PredecessorProtocolSequenceItem): + if not isinstance(item, PredecessorProtocolSequenceItem): + raise ValueError("Item must be an instance of PredecessorProtocolSequenceItem") + self._PredecessorProtocolSequence.append(item) + if "PredecessorProtocolSequence" not in self._dataset: + self._dataset.PredecessorProtocolSequence = pydicom.Sequence() + self._dataset.PredecessorProtocolSequence.append(item.to_dataset()) + + @property + def ProtocolPlanningInformation(self) -> Optional[str]: + if "ProtocolPlanningInformation" in self._dataset: + return self._dataset.ProtocolPlanningInformation + return None + + @ProtocolPlanningInformation.setter + def ProtocolPlanningInformation(self, value: Optional[str]): + if value is None: + if "ProtocolPlanningInformation" in self._dataset: + del self._dataset.ProtocolPlanningInformation + else: + self._dataset.ProtocolPlanningInformation = value + + @property + def ProtocolDesignRationale(self) -> Optional[str]: + if "ProtocolDesignRationale" in self._dataset: + return self._dataset.ProtocolDesignRationale + return None + + @ProtocolDesignRationale.setter + def ProtocolDesignRationale(self, value: Optional[str]): + if value is None: + if "ProtocolDesignRationale" in self._dataset: + del self._dataset.ProtocolDesignRationale + else: + self._dataset.ProtocolDesignRationale = value + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def InstructionSequence(self) -> Optional[List[InstructionSequenceItem]]: + if "InstructionSequence" in self._dataset: + if len(self._InstructionSequence) == len(self._dataset.InstructionSequence): + return self._InstructionSequence + else: + return [InstructionSequenceItem(x) for x in self._dataset.InstructionSequence] + return None + + @InstructionSequence.setter + def InstructionSequence(self, value: Optional[List[InstructionSequenceItem]]): + if value is None: + self._InstructionSequence = [] + if "InstructionSequence" in self._dataset: + del self._dataset.InstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, InstructionSequenceItem) for item in value): + raise ValueError("InstructionSequence must be a list of InstructionSequenceItem objects") + else: + self._InstructionSequence = value + if "InstructionSequence" not in self._dataset: + self._dataset.InstructionSequence = pydicom.Sequence() + self._dataset.InstructionSequence.clear() + self._dataset.InstructionSequence.extend([item.to_dataset() for item in value]) + + def add_Instruction(self, item: InstructionSequenceItem): + if not isinstance(item, InstructionSequenceItem): + raise ValueError("Item must be an instance of InstructionSequenceItem") + self._InstructionSequence.append(item) + if "InstructionSequence" not in self._dataset: + self._dataset.InstructionSequence = pydicom.Sequence() + self._dataset.InstructionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReconstructionProtocolElementSequence(self) -> Optional[List[ReconstructionProtocolElementSequenceItem]]: + if "ReconstructionProtocolElementSequence" in self._dataset: + if len(self._ReconstructionProtocolElementSequence) == len(self._dataset.ReconstructionProtocolElementSequence): + return self._ReconstructionProtocolElementSequence + else: + return [ + ReconstructionProtocolElementSequenceItem(x) for x in self._dataset.ReconstructionProtocolElementSequence + ] + return None + + @ReconstructionProtocolElementSequence.setter + def ReconstructionProtocolElementSequence(self, value: Optional[List[ReconstructionProtocolElementSequenceItem]]): + if value is None: + self._ReconstructionProtocolElementSequence = [] + if "ReconstructionProtocolElementSequence" in self._dataset: + del self._dataset.ReconstructionProtocolElementSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReconstructionProtocolElementSequenceItem) for item in value + ): + raise ValueError( + "ReconstructionProtocolElementSequence must be a list of ReconstructionProtocolElementSequenceItem objects" + ) + else: + self._ReconstructionProtocolElementSequence = value + if "ReconstructionProtocolElementSequence" not in self._dataset: + self._dataset.ReconstructionProtocolElementSequence = pydicom.Sequence() + self._dataset.ReconstructionProtocolElementSequence.clear() + self._dataset.ReconstructionProtocolElementSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionProtocolElement(self, item: ReconstructionProtocolElementSequenceItem): + if not isinstance(item, ReconstructionProtocolElementSequenceItem): + raise ValueError("Item must be an instance of ReconstructionProtocolElementSequenceItem") + self._ReconstructionProtocolElementSequence.append(item) + if "ReconstructionProtocolElementSequence" not in self._dataset: + self._dataset.ReconstructionProtocolElementSequence = pydicom.Sequence() + self._dataset.ReconstructionProtocolElementSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def PatientPositioningInstructionSequence(self) -> Optional[List[PatientPositioningInstructionSequenceItem]]: + if "PatientPositioningInstructionSequence" in self._dataset: + if len(self._PatientPositioningInstructionSequence) == len(self._dataset.PatientPositioningInstructionSequence): + return self._PatientPositioningInstructionSequence + else: + return [ + PatientPositioningInstructionSequenceItem(x) for x in self._dataset.PatientPositioningInstructionSequence + ] + return None + + @PatientPositioningInstructionSequence.setter + def PatientPositioningInstructionSequence(self, value: Optional[List[PatientPositioningInstructionSequenceItem]]): + if value is None: + self._PatientPositioningInstructionSequence = [] + if "PatientPositioningInstructionSequence" in self._dataset: + del self._dataset.PatientPositioningInstructionSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientPositioningInstructionSequenceItem) for item in value + ): + raise ValueError( + "PatientPositioningInstructionSequence must be a list of PatientPositioningInstructionSequenceItem objects" + ) + else: + self._PatientPositioningInstructionSequence = value + if "PatientPositioningInstructionSequence" not in self._dataset: + self._dataset.PatientPositioningInstructionSequence = pydicom.Sequence() + self._dataset.PatientPositioningInstructionSequence.clear() + self._dataset.PatientPositioningInstructionSequence.extend([item.to_dataset() for item in value]) + + def add_PatientPositioningInstruction(self, item: PatientPositioningInstructionSequenceItem): + if not isinstance(item, PatientPositioningInstructionSequenceItem): + raise ValueError("Item must be an instance of PatientPositioningInstructionSequenceItem") + self._PatientPositioningInstructionSequence.append(item) + if "PatientPositioningInstructionSequence" not in self._dataset: + self._dataset.PatientPositioningInstructionSequence = pydicom.Sequence() + self._dataset.PatientPositioningInstructionSequence.append(item.to_dataset()) + + @property + def PositioningMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PositioningMethodCodeSequence" in self._dataset: + if len(self._PositioningMethodCodeSequence) == len(self._dataset.PositioningMethodCodeSequence): + return self._PositioningMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PositioningMethodCodeSequence] + return None + + @PositioningMethodCodeSequence.setter + def PositioningMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PositioningMethodCodeSequence = [] + if "PositioningMethodCodeSequence" in self._dataset: + del self._dataset.PositioningMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PositioningMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PositioningMethodCodeSequence = value + if "PositioningMethodCodeSequence" not in self._dataset: + self._dataset.PositioningMethodCodeSequence = pydicom.Sequence() + self._dataset.PositioningMethodCodeSequence.clear() + self._dataset.PositioningMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PositioningMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PositioningMethodCodeSequence.append(item) + if "PositioningMethodCodeSequence" not in self._dataset: + self._dataset.PositioningMethodCodeSequence = pydicom.Sequence() + self._dataset.PositioningMethodCodeSequence.append(item.to_dataset()) + + @property + def PositioningLandmarkSequence(self) -> Optional[List[PositioningLandmarkSequenceItem]]: + if "PositioningLandmarkSequence" in self._dataset: + if len(self._PositioningLandmarkSequence) == len(self._dataset.PositioningLandmarkSequence): + return self._PositioningLandmarkSequence + else: + return [PositioningLandmarkSequenceItem(x) for x in self._dataset.PositioningLandmarkSequence] + return None + + @PositioningLandmarkSequence.setter + def PositioningLandmarkSequence(self, value: Optional[List[PositioningLandmarkSequenceItem]]): + if value is None: + self._PositioningLandmarkSequence = [] + if "PositioningLandmarkSequence" in self._dataset: + del self._dataset.PositioningLandmarkSequence + elif not isinstance(value, list) or not all(isinstance(item, PositioningLandmarkSequenceItem) for item in value): + raise ValueError("PositioningLandmarkSequence must be a list of PositioningLandmarkSequenceItem objects") + else: + self._PositioningLandmarkSequence = value + if "PositioningLandmarkSequence" not in self._dataset: + self._dataset.PositioningLandmarkSequence = pydicom.Sequence() + self._dataset.PositioningLandmarkSequence.clear() + self._dataset.PositioningLandmarkSequence.extend([item.to_dataset() for item in value]) + + def add_PositioningLandmark(self, item: PositioningLandmarkSequenceItem): + if not isinstance(item, PositioningLandmarkSequenceItem): + raise ValueError("Item must be an instance of PositioningLandmarkSequenceItem") + self._PositioningLandmarkSequence.append(item) + if "PositioningLandmarkSequence" not in self._dataset: + self._dataset.PositioningLandmarkSequence = pydicom.Sequence() + self._dataset.PositioningLandmarkSequence.append(item.to_dataset()) + + @property + def TargetFrameOfReferenceUID(self) -> Optional[str]: + if "TargetFrameOfReferenceUID" in self._dataset: + return self._dataset.TargetFrameOfReferenceUID + return None + + @TargetFrameOfReferenceUID.setter + def TargetFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "TargetFrameOfReferenceUID" in self._dataset: + del self._dataset.TargetFrameOfReferenceUID + else: + self._dataset.TargetFrameOfReferenceUID = value + + @property + def ProtocolDefinedPatientPosition(self) -> Optional[str]: + if "ProtocolDefinedPatientPosition" in self._dataset: + return self._dataset.ProtocolDefinedPatientPosition + return None + + @ProtocolDefinedPatientPosition.setter + def ProtocolDefinedPatientPosition(self, value: Optional[str]): + if value is None: + if "ProtocolDefinedPatientPosition" in self._dataset: + del self._dataset.ProtocolDefinedPatientPosition + else: + self._dataset.ProtocolDefinedPatientPosition = value + + @property + def TargetPositionReferenceIndicator(self) -> Optional[str]: + if "TargetPositionReferenceIndicator" in self._dataset: + return self._dataset.TargetPositionReferenceIndicator + return None + + @TargetPositionReferenceIndicator.setter + def TargetPositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "TargetPositionReferenceIndicator" in self._dataset: + del self._dataset.TargetPositionReferenceIndicator + else: + self._dataset.TargetPositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def StorageProtocolElementSequence(self) -> Optional[List[StorageProtocolElementSequenceItem]]: + if "StorageProtocolElementSequence" in self._dataset: + if len(self._StorageProtocolElementSequence) == len(self._dataset.StorageProtocolElementSequence): + return self._StorageProtocolElementSequence + else: + return [StorageProtocolElementSequenceItem(x) for x in self._dataset.StorageProtocolElementSequence] + return None + + @StorageProtocolElementSequence.setter + def StorageProtocolElementSequence(self, value: Optional[List[StorageProtocolElementSequenceItem]]): + if value is None: + self._StorageProtocolElementSequence = [] + if "StorageProtocolElementSequence" in self._dataset: + del self._dataset.StorageProtocolElementSequence + elif not isinstance(value, list) or not all(isinstance(item, StorageProtocolElementSequenceItem) for item in value): + raise ValueError("StorageProtocolElementSequence must be a list of StorageProtocolElementSequenceItem objects") + else: + self._StorageProtocolElementSequence = value + if "StorageProtocolElementSequence" not in self._dataset: + self._dataset.StorageProtocolElementSequence = pydicom.Sequence() + self._dataset.StorageProtocolElementSequence.clear() + self._dataset.StorageProtocolElementSequence.extend([item.to_dataset() for item in value]) + + def add_StorageProtocolElement(self, item: StorageProtocolElementSequenceItem): + if not isinstance(item, StorageProtocolElementSequenceItem): + raise ValueError("Item must be an instance of StorageProtocolElementSequenceItem") + self._StorageProtocolElementSequence.append(item) + if "StorageProtocolElementSequence" not in self._dataset: + self._dataset.StorageProtocolElementSequence = pydicom.Sequence() + self._dataset.StorageProtocolElementSequence.append(item.to_dataset()) + + @property + def AcquisitionProtocolElementSequence(self) -> Optional[List[AcquisitionProtocolElementSequenceItem]]: + if "AcquisitionProtocolElementSequence" in self._dataset: + if len(self._AcquisitionProtocolElementSequence) == len(self._dataset.AcquisitionProtocolElementSequence): + return self._AcquisitionProtocolElementSequence + else: + return [AcquisitionProtocolElementSequenceItem(x) for x in self._dataset.AcquisitionProtocolElementSequence] + return None + + @AcquisitionProtocolElementSequence.setter + def AcquisitionProtocolElementSequence(self, value: Optional[List[AcquisitionProtocolElementSequenceItem]]): + if value is None: + self._AcquisitionProtocolElementSequence = [] + if "AcquisitionProtocolElementSequence" in self._dataset: + del self._dataset.AcquisitionProtocolElementSequence + elif not isinstance(value, list) or not all( + isinstance(item, AcquisitionProtocolElementSequenceItem) for item in value + ): + raise ValueError( + "AcquisitionProtocolElementSequence must be a list of AcquisitionProtocolElementSequenceItem objects" + ) + else: + self._AcquisitionProtocolElementSequence = value + if "AcquisitionProtocolElementSequence" not in self._dataset: + self._dataset.AcquisitionProtocolElementSequence = pydicom.Sequence() + self._dataset.AcquisitionProtocolElementSequence.clear() + self._dataset.AcquisitionProtocolElementSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionProtocolElement(self, item: AcquisitionProtocolElementSequenceItem): + if not isinstance(item, AcquisitionProtocolElementSequenceItem): + raise ValueError("Item must be an instance of AcquisitionProtocolElementSequenceItem") + self._AcquisitionProtocolElementSequence.append(item) + if "AcquisitionProtocolElementSequence" not in self._dataset: + self._dataset.AcquisitionProtocolElementSequence = pydicom.Sequence() + self._dataset.AcquisitionProtocolElementSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ct_position_sequence_item.py b/tdwii_plus_examples/domain_model/ct_position_sequence_item.py new file mode 100644 index 0000000..d180d13 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_position_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataCollectionCenterPatient(self) -> Optional[List[float]]: + if "DataCollectionCenterPatient" in self._dataset: + return self._dataset.DataCollectionCenterPatient + return None + + @DataCollectionCenterPatient.setter + def DataCollectionCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "DataCollectionCenterPatient" in self._dataset: + del self._dataset.DataCollectionCenterPatient + else: + self._dataset.DataCollectionCenterPatient = value + + @property + def ReconstructionTargetCenterPatient(self) -> Optional[List[float]]: + if "ReconstructionTargetCenterPatient" in self._dataset: + return self._dataset.ReconstructionTargetCenterPatient + return None + + @ReconstructionTargetCenterPatient.setter + def ReconstructionTargetCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionTargetCenterPatient" in self._dataset: + del self._dataset.ReconstructionTargetCenterPatient + else: + self._dataset.ReconstructionTargetCenterPatient = value + + @property + def TablePosition(self) -> Optional[float]: + if "TablePosition" in self._dataset: + return self._dataset.TablePosition + return None + + @TablePosition.setter + def TablePosition(self, value: Optional[float]): + if value is None: + if "TablePosition" in self._dataset: + del self._dataset.TablePosition + else: + self._dataset.TablePosition = value diff --git a/tdwii_plus_examples/domain_model/ct_reconstruction_sequence_item.py b/tdwii_plus_examples/domain_model/ct_reconstruction_sequence_item.py new file mode 100644 index 0000000..b3604c6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_reconstruction_sequence_item.py @@ -0,0 +1,124 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTReconstructionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def ReconstructionAlgorithm(self) -> Optional[str]: + if "ReconstructionAlgorithm" in self._dataset: + return self._dataset.ReconstructionAlgorithm + return None + + @ReconstructionAlgorithm.setter + def ReconstructionAlgorithm(self, value: Optional[str]): + if value is None: + if "ReconstructionAlgorithm" in self._dataset: + del self._dataset.ReconstructionAlgorithm + else: + self._dataset.ReconstructionAlgorithm = value + + @property + def ConvolutionKernelGroup(self) -> Optional[str]: + if "ConvolutionKernelGroup" in self._dataset: + return self._dataset.ConvolutionKernelGroup + return None + + @ConvolutionKernelGroup.setter + def ConvolutionKernelGroup(self, value: Optional[str]): + if value is None: + if "ConvolutionKernelGroup" in self._dataset: + del self._dataset.ConvolutionKernelGroup + else: + self._dataset.ConvolutionKernelGroup = value + + @property + def ReconstructionFieldOfView(self) -> Optional[List[float]]: + if "ReconstructionFieldOfView" in self._dataset: + return self._dataset.ReconstructionFieldOfView + return None + + @ReconstructionFieldOfView.setter + def ReconstructionFieldOfView(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionFieldOfView" in self._dataset: + del self._dataset.ReconstructionFieldOfView + else: + self._dataset.ReconstructionFieldOfView = value + + @property + def ReconstructionAngle(self) -> Optional[float]: + if "ReconstructionAngle" in self._dataset: + return self._dataset.ReconstructionAngle + return None + + @ReconstructionAngle.setter + def ReconstructionAngle(self, value: Optional[float]): + if value is None: + if "ReconstructionAngle" in self._dataset: + del self._dataset.ReconstructionAngle + else: + self._dataset.ReconstructionAngle = value + + @property + def ImageFilter(self) -> Optional[str]: + if "ImageFilter" in self._dataset: + return self._dataset.ImageFilter + return None + + @ImageFilter.setter + def ImageFilter(self, value: Optional[str]): + if value is None: + if "ImageFilter" in self._dataset: + del self._dataset.ImageFilter + else: + self._dataset.ImageFilter = value + + @property + def ReconstructionPixelSpacing(self) -> Optional[List[float]]: + if "ReconstructionPixelSpacing" in self._dataset: + return self._dataset.ReconstructionPixelSpacing + return None + + @ReconstructionPixelSpacing.setter + def ReconstructionPixelSpacing(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionPixelSpacing" in self._dataset: + del self._dataset.ReconstructionPixelSpacing + else: + self._dataset.ReconstructionPixelSpacing = value diff --git a/tdwii_plus_examples/domain_model/ct_table_dynamics_sequence_item.py b/tdwii_plus_examples/domain_model/ct_table_dynamics_sequence_item.py new file mode 100644 index 0000000..49f1e4b --- /dev/null +++ b/tdwii_plus_examples/domain_model/ct_table_dynamics_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTTableDynamicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TableSpeed(self) -> Optional[float]: + if "TableSpeed" in self._dataset: + return self._dataset.TableSpeed + return None + + @TableSpeed.setter + def TableSpeed(self, value: Optional[float]): + if value is None: + if "TableSpeed" in self._dataset: + del self._dataset.TableSpeed + else: + self._dataset.TableSpeed = value + + @property + def TableFeedPerRotation(self) -> Optional[float]: + if "TableFeedPerRotation" in self._dataset: + return self._dataset.TableFeedPerRotation + return None + + @TableFeedPerRotation.setter + def TableFeedPerRotation(self, value: Optional[float]): + if value is None: + if "TableFeedPerRotation" in self._dataset: + del self._dataset.TableFeedPerRotation + else: + self._dataset.TableFeedPerRotation = value + + @property + def SpiralPitchFactor(self) -> Optional[float]: + if "SpiralPitchFactor" in self._dataset: + return self._dataset.SpiralPitchFactor + return None + + @SpiralPitchFactor.setter + def SpiralPitchFactor(self, value: Optional[float]): + if value is None: + if "SpiralPitchFactor" in self._dataset: + del self._dataset.SpiralPitchFactor + else: + self._dataset.SpiralPitchFactor = value diff --git a/tdwii_plus_examples/domain_model/ctx_ray_details_sequence_item.py b/tdwii_plus_examples/domain_model/ctx_ray_details_sequence_item.py new file mode 100644 index 0000000..9b9cf4c --- /dev/null +++ b/tdwii_plus_examples/domain_model/ctx_ray_details_sequence_item.py @@ -0,0 +1,348 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class CTXRayDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DataCollectionDiameter(self) -> Optional[Decimal]: + if "DataCollectionDiameter" in self._dataset: + return self._dataset.DataCollectionDiameter + return None + + @DataCollectionDiameter.setter + def DataCollectionDiameter(self, value: Optional[Decimal]): + if value is None: + if "DataCollectionDiameter" in self._dataset: + del self._dataset.DataCollectionDiameter + else: + self._dataset.DataCollectionDiameter = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def ExposureModulationType(self) -> Optional[List[str]]: + if "ExposureModulationType" in self._dataset: + return self._dataset.ExposureModulationType + return None + + @ExposureModulationType.setter + def ExposureModulationType(self, value: Optional[List[str]]): + if value is None: + if "ExposureModulationType" in self._dataset: + del self._dataset.ExposureModulationType + else: + self._dataset.ExposureModulationType = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def AutoKVPSelectionType(self) -> Optional[str]: + if "AutoKVPSelectionType" in self._dataset: + return self._dataset.AutoKVPSelectionType + return None + + @AutoKVPSelectionType.setter + def AutoKVPSelectionType(self, value: Optional[str]): + if value is None: + if "AutoKVPSelectionType" in self._dataset: + del self._dataset.AutoKVPSelectionType + else: + self._dataset.AutoKVPSelectionType = value + + @property + def AutoKVPUpperBound(self) -> Optional[float]: + if "AutoKVPUpperBound" in self._dataset: + return self._dataset.AutoKVPUpperBound + return None + + @AutoKVPUpperBound.setter + def AutoKVPUpperBound(self, value: Optional[float]): + if value is None: + if "AutoKVPUpperBound" in self._dataset: + del self._dataset.AutoKVPUpperBound + else: + self._dataset.AutoKVPUpperBound = value + + @property + def AutoKVPLowerBound(self) -> Optional[float]: + if "AutoKVPLowerBound" in self._dataset: + return self._dataset.AutoKVPLowerBound + return None + + @AutoKVPLowerBound.setter + def AutoKVPLowerBound(self, value: Optional[float]): + if value is None: + if "AutoKVPLowerBound" in self._dataset: + del self._dataset.AutoKVPLowerBound + else: + self._dataset.AutoKVPLowerBound = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def BeamNumber(self) -> Optional[int]: + if "BeamNumber" in self._dataset: + return self._dataset.BeamNumber + return None + + @BeamNumber.setter + def BeamNumber(self, value: Optional[int]): + if value is None: + if "BeamNumber" in self._dataset: + del self._dataset.BeamNumber + else: + self._dataset.BeamNumber = value diff --git a/tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item.py b/tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item.py new file mode 100644 index 0000000..fb1de84 --- /dev/null +++ b/tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item.py @@ -0,0 +1,148 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .camera_position_group_sequence_item import CameraPositionGroupSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_usefulness_group_sequence_item import FrameUsefulnessGroupSequenceItem +from .time_of_frame_group_sequence_item import TimeOfFrameGroupSequenceItem + + +class CurrentFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._FrameUsefulnessGroupSequence: List[FrameUsefulnessGroupSequenceItem] = [] + self._CameraPositionGroupSequence: List[CameraPositionGroupSequenceItem] = [] + self._TimeOfFrameGroupSequence: List[TimeOfFrameGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def FrameUsefulnessGroupSequence(self) -> Optional[List[FrameUsefulnessGroupSequenceItem]]: + if "FrameUsefulnessGroupSequence" in self._dataset: + if len(self._FrameUsefulnessGroupSequence) == len(self._dataset.FrameUsefulnessGroupSequence): + return self._FrameUsefulnessGroupSequence + else: + return [FrameUsefulnessGroupSequenceItem(x) for x in self._dataset.FrameUsefulnessGroupSequence] + return None + + @FrameUsefulnessGroupSequence.setter + def FrameUsefulnessGroupSequence(self, value: Optional[List[FrameUsefulnessGroupSequenceItem]]): + if value is None: + self._FrameUsefulnessGroupSequence = [] + if "FrameUsefulnessGroupSequence" in self._dataset: + del self._dataset.FrameUsefulnessGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameUsefulnessGroupSequenceItem) for item in value): + raise ValueError("FrameUsefulnessGroupSequence must be a list of FrameUsefulnessGroupSequenceItem objects") + else: + self._FrameUsefulnessGroupSequence = value + if "FrameUsefulnessGroupSequence" not in self._dataset: + self._dataset.FrameUsefulnessGroupSequence = pydicom.Sequence() + self._dataset.FrameUsefulnessGroupSequence.clear() + self._dataset.FrameUsefulnessGroupSequence.extend([item.to_dataset() for item in value]) + + def add_FrameUsefulnessGroup(self, item: FrameUsefulnessGroupSequenceItem): + if not isinstance(item, FrameUsefulnessGroupSequenceItem): + raise ValueError("Item must be an instance of FrameUsefulnessGroupSequenceItem") + self._FrameUsefulnessGroupSequence.append(item) + if "FrameUsefulnessGroupSequence" not in self._dataset: + self._dataset.FrameUsefulnessGroupSequence = pydicom.Sequence() + self._dataset.FrameUsefulnessGroupSequence.append(item.to_dataset()) + + @property + def CameraPositionGroupSequence(self) -> Optional[List[CameraPositionGroupSequenceItem]]: + if "CameraPositionGroupSequence" in self._dataset: + if len(self._CameraPositionGroupSequence) == len(self._dataset.CameraPositionGroupSequence): + return self._CameraPositionGroupSequence + else: + return [CameraPositionGroupSequenceItem(x) for x in self._dataset.CameraPositionGroupSequence] + return None + + @CameraPositionGroupSequence.setter + def CameraPositionGroupSequence(self, value: Optional[List[CameraPositionGroupSequenceItem]]): + if value is None: + self._CameraPositionGroupSequence = [] + if "CameraPositionGroupSequence" in self._dataset: + del self._dataset.CameraPositionGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, CameraPositionGroupSequenceItem) for item in value): + raise ValueError("CameraPositionGroupSequence must be a list of CameraPositionGroupSequenceItem objects") + else: + self._CameraPositionGroupSequence = value + if "CameraPositionGroupSequence" not in self._dataset: + self._dataset.CameraPositionGroupSequence = pydicom.Sequence() + self._dataset.CameraPositionGroupSequence.clear() + self._dataset.CameraPositionGroupSequence.extend([item.to_dataset() for item in value]) + + def add_CameraPositionGroup(self, item: CameraPositionGroupSequenceItem): + if not isinstance(item, CameraPositionGroupSequenceItem): + raise ValueError("Item must be an instance of CameraPositionGroupSequenceItem") + self._CameraPositionGroupSequence.append(item) + if "CameraPositionGroupSequence" not in self._dataset: + self._dataset.CameraPositionGroupSequence = pydicom.Sequence() + self._dataset.CameraPositionGroupSequence.append(item.to_dataset()) + + @property + def TimeOfFrameGroupSequence(self) -> Optional[List[TimeOfFrameGroupSequenceItem]]: + if "TimeOfFrameGroupSequence" in self._dataset: + if len(self._TimeOfFrameGroupSequence) == len(self._dataset.TimeOfFrameGroupSequence): + return self._TimeOfFrameGroupSequence + else: + return [TimeOfFrameGroupSequenceItem(x) for x in self._dataset.TimeOfFrameGroupSequence] + return None + + @TimeOfFrameGroupSequence.setter + def TimeOfFrameGroupSequence(self, value: Optional[List[TimeOfFrameGroupSequenceItem]]): + if value is None: + self._TimeOfFrameGroupSequence = [] + if "TimeOfFrameGroupSequence" in self._dataset: + del self._dataset.TimeOfFrameGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, TimeOfFrameGroupSequenceItem) for item in value): + raise ValueError("TimeOfFrameGroupSequence must be a list of TimeOfFrameGroupSequenceItem objects") + else: + self._TimeOfFrameGroupSequence = value + if "TimeOfFrameGroupSequence" not in self._dataset: + self._dataset.TimeOfFrameGroupSequence = pydicom.Sequence() + self._dataset.TimeOfFrameGroupSequence.clear() + self._dataset.TimeOfFrameGroupSequence.extend([item.to_dataset() for item in value]) + + def add_TimeOfFrameGroup(self, item: TimeOfFrameGroupSequenceItem): + if not isinstance(item, TimeOfFrameGroupSequenceItem): + raise ValueError("Item must be an instance of TimeOfFrameGroupSequenceItem") + self._TimeOfFrameGroupSequence.append(item) + if "TimeOfFrameGroupSequence" not in self._dataset: + self._dataset.TimeOfFrameGroupSequence = pydicom.Sequence() + self._dataset.TimeOfFrameGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item_1.py b/tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item_1.py new file mode 100644 index 0000000..b74d786 --- /dev/null +++ b/tdwii_plus_examples/domain_model/current_frame_functional_groups_sequence_item_1.py @@ -0,0 +1,46 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .time_of_frame_group_sequence_item import TimeOfFrameGroupSequenceItem + + +class CurrentFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TimeOfFrameGroupSequence: List[TimeOfFrameGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TimeOfFrameGroupSequence(self) -> Optional[List[TimeOfFrameGroupSequenceItem]]: + if "TimeOfFrameGroupSequence" in self._dataset: + if len(self._TimeOfFrameGroupSequence) == len(self._dataset.TimeOfFrameGroupSequence): + return self._TimeOfFrameGroupSequence + else: + return [TimeOfFrameGroupSequenceItem(x) for x in self._dataset.TimeOfFrameGroupSequence] + return None + + @TimeOfFrameGroupSequence.setter + def TimeOfFrameGroupSequence(self, value: Optional[List[TimeOfFrameGroupSequenceItem]]): + if value is None: + self._TimeOfFrameGroupSequence = [] + if "TimeOfFrameGroupSequence" in self._dataset: + del self._dataset.TimeOfFrameGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, TimeOfFrameGroupSequenceItem) for item in value): + raise ValueError("TimeOfFrameGroupSequence must be a list of TimeOfFrameGroupSequenceItem objects") + else: + self._TimeOfFrameGroupSequence = value + if "TimeOfFrameGroupSequence" not in self._dataset: + self._dataset.TimeOfFrameGroupSequence = pydicom.Sequence() + self._dataset.TimeOfFrameGroupSequence.clear() + self._dataset.TimeOfFrameGroupSequence.extend([item.to_dataset() for item in value]) + + def add_TimeOfFrameGroup(self, item: TimeOfFrameGroupSequenceItem): + if not isinstance(item, TimeOfFrameGroupSequenceItem): + raise ValueError("Item must be an instance of TimeOfFrameGroupSequenceItem") + self._TimeOfFrameGroupSequence.append(item) + if "TimeOfFrameGroupSequence" not in self._dataset: + self._dataset.TimeOfFrameGroupSequence = pydicom.Sequence() + self._dataset.TimeOfFrameGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/current_requested_procedure_evidence_sequence_item.py b/tdwii_plus_examples/domain_model/current_requested_procedure_evidence_sequence_item.py new file mode 100644 index 0000000..9ed5796 --- /dev/null +++ b/tdwii_plus_examples/domain_model/current_requested_procedure_evidence_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class CurrentRequestedProcedureEvidenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/custodial_organization_sequence_item.py b/tdwii_plus_examples/domain_model/custodial_organization_sequence_item.py new file mode 100644 index 0000000..5e62e66 --- /dev/null +++ b/tdwii_plus_examples/domain_model/custodial_organization_sequence_item.py @@ -0,0 +1,93 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class CustodialOrganizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._ResponsibleGroupCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def ResponsibleGroupCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ResponsibleGroupCodeSequence" in self._dataset: + if len(self._ResponsibleGroupCodeSequence) == len(self._dataset.ResponsibleGroupCodeSequence): + return self._ResponsibleGroupCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ResponsibleGroupCodeSequence] + return None + + @ResponsibleGroupCodeSequence.setter + def ResponsibleGroupCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ResponsibleGroupCodeSequence = [] + if "ResponsibleGroupCodeSequence" in self._dataset: + del self._dataset.ResponsibleGroupCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ResponsibleGroupCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ResponsibleGroupCodeSequence = value + if "ResponsibleGroupCodeSequence" not in self._dataset: + self._dataset.ResponsibleGroupCodeSequence = pydicom.Sequence() + self._dataset.ResponsibleGroupCodeSequence.clear() + self._dataset.ResponsibleGroupCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ResponsibleGroupCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ResponsibleGroupCodeSequence.append(item) + if "ResponsibleGroupCodeSequence" not in self._dataset: + self._dataset.ResponsibleGroupCodeSequence = pydicom.Sequence() + self._dataset.ResponsibleGroupCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/cylinder_sequence_item.py b/tdwii_plus_examples/domain_model/cylinder_sequence_item.py new file mode 100644 index 0000000..20d2fcf --- /dev/null +++ b/tdwii_plus_examples/domain_model/cylinder_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class CylinderSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def CylinderPower(self) -> Optional[float]: + if "CylinderPower" in self._dataset: + return self._dataset.CylinderPower + return None + + @CylinderPower.setter + def CylinderPower(self, value: Optional[float]): + if value is None: + if "CylinderPower" in self._dataset: + del self._dataset.CylinderPower + else: + self._dataset.CylinderPower = value diff --git a/tdwii_plus_examples/domain_model/data_frame_assignment_sequence_item.py b/tdwii_plus_examples/domain_model/data_frame_assignment_sequence_item.py new file mode 100644 index 0000000..340145a --- /dev/null +++ b/tdwii_plus_examples/domain_model/data_frame_assignment_sequence_item.py @@ -0,0 +1,145 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .voilut_sequence_item import VOILUTSequenceItem + + +class DataFrameAssignmentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataType(self) -> Optional[str]: + if "DataType" in self._dataset: + return self._dataset.DataType + return None + + @DataType.setter + def DataType(self, value: Optional[str]): + if value is None: + if "DataType" in self._dataset: + del self._dataset.DataType + else: + self._dataset.DataType = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def DataPathAssignment(self) -> Optional[str]: + if "DataPathAssignment" in self._dataset: + return self._dataset.DataPathAssignment + return None + + @DataPathAssignment.setter + def DataPathAssignment(self, value: Optional[str]): + if value is None: + if "DataPathAssignment" in self._dataset: + del self._dataset.DataPathAssignment + else: + self._dataset.DataPathAssignment = value + + @property + def BitsMappedToColorLookupTable(self) -> Optional[int]: + if "BitsMappedToColorLookupTable" in self._dataset: + return self._dataset.BitsMappedToColorLookupTable + return None + + @BitsMappedToColorLookupTable.setter + def BitsMappedToColorLookupTable(self, value: Optional[int]): + if value is None: + if "BitsMappedToColorLookupTable" in self._dataset: + del self._dataset.BitsMappedToColorLookupTable + else: + self._dataset.BitsMappedToColorLookupTable = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/data_information_sequence_item.py b/tdwii_plus_examples/domain_model/data_information_sequence_item.py new file mode 100644 index 0000000..d51de01 --- /dev/null +++ b/tdwii_plus_examples/domain_model/data_information_sequence_item.py @@ -0,0 +1,131 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .time_slot_information_sequence_item import TimeSlotInformationSequenceItem + + +class DataInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TimeSlotInformationSequence: List[TimeSlotInformationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NominalInterval(self) -> Optional[int]: + if "NominalInterval" in self._dataset: + return self._dataset.NominalInterval + return None + + @NominalInterval.setter + def NominalInterval(self, value: Optional[int]): + if value is None: + if "NominalInterval" in self._dataset: + del self._dataset.NominalInterval + else: + self._dataset.NominalInterval = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def TimeSlotInformationSequence(self) -> Optional[List[TimeSlotInformationSequenceItem]]: + if "TimeSlotInformationSequence" in self._dataset: + if len(self._TimeSlotInformationSequence) == len(self._dataset.TimeSlotInformationSequence): + return self._TimeSlotInformationSequence + else: + return [TimeSlotInformationSequenceItem(x) for x in self._dataset.TimeSlotInformationSequence] + return None + + @TimeSlotInformationSequence.setter + def TimeSlotInformationSequence(self, value: Optional[List[TimeSlotInformationSequenceItem]]): + if value is None: + self._TimeSlotInformationSequence = [] + if "TimeSlotInformationSequence" in self._dataset: + del self._dataset.TimeSlotInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, TimeSlotInformationSequenceItem) for item in value): + raise ValueError("TimeSlotInformationSequence must be a list of TimeSlotInformationSequenceItem objects") + else: + self._TimeSlotInformationSequence = value + if "TimeSlotInformationSequence" not in self._dataset: + self._dataset.TimeSlotInformationSequence = pydicom.Sequence() + self._dataset.TimeSlotInformationSequence.clear() + self._dataset.TimeSlotInformationSequence.extend([item.to_dataset() for item in value]) + + def add_TimeSlotInformation(self, item: TimeSlotInformationSequenceItem): + if not isinstance(item, TimeSlotInformationSequenceItem): + raise ValueError("Item must be an instance of TimeSlotInformationSequenceItem") + self._TimeSlotInformationSequence.append(item) + if "TimeSlotInformationSequence" not in self._dataset: + self._dataset.TimeSlotInformationSequence = pydicom.Sequence() + self._dataset.TimeSlotInformationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/data_observation_sequence_item.py b/tdwii_plus_examples/domain_model/data_observation_sequence_item.py new file mode 100644 index 0000000..9a11930 --- /dev/null +++ b/tdwii_plus_examples/domain_model/data_observation_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class DataObservationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/decomposition_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/decomposition_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..7119526 --- /dev/null +++ b/tdwii_plus_examples/domain_model/decomposition_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DecompositionAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/decomposition_material_sequence_item.py b/tdwii_plus_examples/domain_model/decomposition_material_sequence_item.py new file mode 100644 index 0000000..efec8b1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/decomposition_material_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .material_attenuation_sequence_item import MaterialAttenuationSequenceItem + + +class DecompositionMaterialSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MaterialCodeSequence: List[CodeSequenceItem] = [] + self._MaterialAttenuationSequence: List[MaterialAttenuationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MaterialCodeSequence" in self._dataset: + if len(self._MaterialCodeSequence) == len(self._dataset.MaterialCodeSequence): + return self._MaterialCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MaterialCodeSequence] + return None + + @MaterialCodeSequence.setter + def MaterialCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MaterialCodeSequence = [] + if "MaterialCodeSequence" in self._dataset: + del self._dataset.MaterialCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MaterialCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MaterialCodeSequence = value + if "MaterialCodeSequence" not in self._dataset: + self._dataset.MaterialCodeSequence = pydicom.Sequence() + self._dataset.MaterialCodeSequence.clear() + self._dataset.MaterialCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MaterialCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MaterialCodeSequence.append(item) + if "MaterialCodeSequence" not in self._dataset: + self._dataset.MaterialCodeSequence = pydicom.Sequence() + self._dataset.MaterialCodeSequence.append(item.to_dataset()) + + @property + def MaterialAttenuationSequence(self) -> Optional[List[MaterialAttenuationSequenceItem]]: + if "MaterialAttenuationSequence" in self._dataset: + if len(self._MaterialAttenuationSequence) == len(self._dataset.MaterialAttenuationSequence): + return self._MaterialAttenuationSequence + else: + return [MaterialAttenuationSequenceItem(x) for x in self._dataset.MaterialAttenuationSequence] + return None + + @MaterialAttenuationSequence.setter + def MaterialAttenuationSequence(self, value: Optional[List[MaterialAttenuationSequenceItem]]): + if value is None: + self._MaterialAttenuationSequence = [] + if "MaterialAttenuationSequence" in self._dataset: + del self._dataset.MaterialAttenuationSequence + elif not isinstance(value, list) or not all(isinstance(item, MaterialAttenuationSequenceItem) for item in value): + raise ValueError("MaterialAttenuationSequence must be a list of MaterialAttenuationSequenceItem objects") + else: + self._MaterialAttenuationSequence = value + if "MaterialAttenuationSequence" not in self._dataset: + self._dataset.MaterialAttenuationSequence = pydicom.Sequence() + self._dataset.MaterialAttenuationSequence.clear() + self._dataset.MaterialAttenuationSequence.extend([item.to_dataset() for item in value]) + + def add_MaterialAttenuation(self, item: MaterialAttenuationSequenceItem): + if not isinstance(item, MaterialAttenuationSequenceItem): + raise ValueError("Item must be an instance of MaterialAttenuationSequenceItem") + self._MaterialAttenuationSequence.append(item) + if "MaterialAttenuationSequence" not in self._dataset: + self._dataset.MaterialAttenuationSequence = pydicom.Sequence() + self._dataset.MaterialAttenuationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/definition_source_sequence_item.py b/tdwii_plus_examples/domain_model/definition_source_sequence_item.py new file mode 100644 index 0000000..974e4d1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/definition_source_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DefinitionSourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value diff --git a/tdwii_plus_examples/domain_model/definition_source_sequence_item_13.py b/tdwii_plus_examples/domain_model/definition_source_sequence_item_13.py new file mode 100644 index 0000000..104a3be --- /dev/null +++ b/tdwii_plus_examples/domain_model/definition_source_sequence_item_13.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DefinitionSourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value + + @property + def ReferencedFiducialUID(self) -> Optional[str]: + if "ReferencedFiducialUID" in self._dataset: + return self._dataset.ReferencedFiducialUID + return None + + @ReferencedFiducialUID.setter + def ReferencedFiducialUID(self, value: Optional[str]): + if value is None: + if "ReferencedFiducialUID" in self._dataset: + del self._dataset.ReferencedFiducialUID + else: + self._dataset.ReferencedFiducialUID = value diff --git a/tdwii_plus_examples/domain_model/deformable_registration_grid_sequence_item.py b/tdwii_plus_examples/domain_model/deformable_registration_grid_sequence_item.py new file mode 100644 index 0000000..a211188 --- /dev/null +++ b/tdwii_plus_examples/domain_model/deformable_registration_grid_sequence_item.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class DeformableRegistrationGridSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def GridDimensions(self) -> Optional[List[int]]: + if "GridDimensions" in self._dataset: + return self._dataset.GridDimensions + return None + + @GridDimensions.setter + def GridDimensions(self, value: Optional[List[int]]): + if value is None: + if "GridDimensions" in self._dataset: + del self._dataset.GridDimensions + else: + self._dataset.GridDimensions = value + + @property + def GridResolution(self) -> Optional[List[float]]: + if "GridResolution" in self._dataset: + return self._dataset.GridResolution + return None + + @GridResolution.setter + def GridResolution(self, value: Optional[List[float]]): + if value is None: + if "GridResolution" in self._dataset: + del self._dataset.GridResolution + else: + self._dataset.GridResolution = value + + @property + def VectorGridData(self) -> Optional[bytes]: + if "VectorGridData" in self._dataset: + return self._dataset.VectorGridData + return None + + @VectorGridData.setter + def VectorGridData(self, value: Optional[bytes]): + if value is None: + if "VectorGridData" in self._dataset: + del self._dataset.VectorGridData + else: + self._dataset.VectorGridData = value diff --git a/tdwii_plus_examples/domain_model/deformable_registration_sequence_item.py b/tdwii_plus_examples/domain_model/deformable_registration_sequence_item.py new file mode 100644 index 0000000..285c708 --- /dev/null +++ b/tdwii_plus_examples/domain_model/deformable_registration_sequence_item.py @@ -0,0 +1,274 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .deformable_registration_grid_sequence_item import ( + DeformableRegistrationGridSequenceItem, +) +from .post_deformation_matrix_registration_sequence_item import ( + PostDeformationMatrixRegistrationSequenceItem, +) +from .pre_deformation_matrix_registration_sequence_item import ( + PreDeformationMatrixRegistrationSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .used_fiducials_sequence_item import UsedFiducialsSequenceItem + + +class DeformableRegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DeformableRegistrationGridSequence: List[DeformableRegistrationGridSequenceItem] = [] + self._PreDeformationMatrixRegistrationSequence: List[PreDeformationMatrixRegistrationSequenceItem] = [] + self._PostDeformationMatrixRegistrationSequence: List[PostDeformationMatrixRegistrationSequenceItem] = [] + self._RegistrationTypeCodeSequence: List[CodeSequenceItem] = [] + self._UsedFiducialsSequence: List[UsedFiducialsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def SourceFrameOfReferenceUID(self) -> Optional[str]: + if "SourceFrameOfReferenceUID" in self._dataset: + return self._dataset.SourceFrameOfReferenceUID + return None + + @SourceFrameOfReferenceUID.setter + def SourceFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SourceFrameOfReferenceUID" in self._dataset: + del self._dataset.SourceFrameOfReferenceUID + else: + self._dataset.SourceFrameOfReferenceUID = value + + @property + def DeformableRegistrationGridSequence(self) -> Optional[List[DeformableRegistrationGridSequenceItem]]: + if "DeformableRegistrationGridSequence" in self._dataset: + if len(self._DeformableRegistrationGridSequence) == len(self._dataset.DeformableRegistrationGridSequence): + return self._DeformableRegistrationGridSequence + else: + return [DeformableRegistrationGridSequenceItem(x) for x in self._dataset.DeformableRegistrationGridSequence] + return None + + @DeformableRegistrationGridSequence.setter + def DeformableRegistrationGridSequence(self, value: Optional[List[DeformableRegistrationGridSequenceItem]]): + if value is None: + self._DeformableRegistrationGridSequence = [] + if "DeformableRegistrationGridSequence" in self._dataset: + del self._dataset.DeformableRegistrationGridSequence + elif not isinstance(value, list) or not all( + isinstance(item, DeformableRegistrationGridSequenceItem) for item in value + ): + raise ValueError( + "DeformableRegistrationGridSequence must be a list of DeformableRegistrationGridSequenceItem objects" + ) + else: + self._DeformableRegistrationGridSequence = value + if "DeformableRegistrationGridSequence" not in self._dataset: + self._dataset.DeformableRegistrationGridSequence = pydicom.Sequence() + self._dataset.DeformableRegistrationGridSequence.clear() + self._dataset.DeformableRegistrationGridSequence.extend([item.to_dataset() for item in value]) + + def add_DeformableRegistrationGrid(self, item: DeformableRegistrationGridSequenceItem): + if not isinstance(item, DeformableRegistrationGridSequenceItem): + raise ValueError("Item must be an instance of DeformableRegistrationGridSequenceItem") + self._DeformableRegistrationGridSequence.append(item) + if "DeformableRegistrationGridSequence" not in self._dataset: + self._dataset.DeformableRegistrationGridSequence = pydicom.Sequence() + self._dataset.DeformableRegistrationGridSequence.append(item.to_dataset()) + + @property + def PreDeformationMatrixRegistrationSequence(self) -> Optional[List[PreDeformationMatrixRegistrationSequenceItem]]: + if "PreDeformationMatrixRegistrationSequence" in self._dataset: + if len(self._PreDeformationMatrixRegistrationSequence) == len( + self._dataset.PreDeformationMatrixRegistrationSequence + ): + return self._PreDeformationMatrixRegistrationSequence + else: + return [ + PreDeformationMatrixRegistrationSequenceItem(x) + for x in self._dataset.PreDeformationMatrixRegistrationSequence + ] + return None + + @PreDeformationMatrixRegistrationSequence.setter + def PreDeformationMatrixRegistrationSequence(self, value: Optional[List[PreDeformationMatrixRegistrationSequenceItem]]): + if value is None: + self._PreDeformationMatrixRegistrationSequence = [] + if "PreDeformationMatrixRegistrationSequence" in self._dataset: + del self._dataset.PreDeformationMatrixRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PreDeformationMatrixRegistrationSequenceItem) for item in value + ): + raise ValueError( + "PreDeformationMatrixRegistrationSequence must be a list of PreDeformationMatrixRegistrationSequenceItem" + " objects" + ) + else: + self._PreDeformationMatrixRegistrationSequence = value + if "PreDeformationMatrixRegistrationSequence" not in self._dataset: + self._dataset.PreDeformationMatrixRegistrationSequence = pydicom.Sequence() + self._dataset.PreDeformationMatrixRegistrationSequence.clear() + self._dataset.PreDeformationMatrixRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_PreDeformationMatrixRegistration(self, item: PreDeformationMatrixRegistrationSequenceItem): + if not isinstance(item, PreDeformationMatrixRegistrationSequenceItem): + raise ValueError("Item must be an instance of PreDeformationMatrixRegistrationSequenceItem") + self._PreDeformationMatrixRegistrationSequence.append(item) + if "PreDeformationMatrixRegistrationSequence" not in self._dataset: + self._dataset.PreDeformationMatrixRegistrationSequence = pydicom.Sequence() + self._dataset.PreDeformationMatrixRegistrationSequence.append(item.to_dataset()) + + @property + def PostDeformationMatrixRegistrationSequence(self) -> Optional[List[PostDeformationMatrixRegistrationSequenceItem]]: + if "PostDeformationMatrixRegistrationSequence" in self._dataset: + if len(self._PostDeformationMatrixRegistrationSequence) == len( + self._dataset.PostDeformationMatrixRegistrationSequence + ): + return self._PostDeformationMatrixRegistrationSequence + else: + return [ + PostDeformationMatrixRegistrationSequenceItem(x) + for x in self._dataset.PostDeformationMatrixRegistrationSequence + ] + return None + + @PostDeformationMatrixRegistrationSequence.setter + def PostDeformationMatrixRegistrationSequence(self, value: Optional[List[PostDeformationMatrixRegistrationSequenceItem]]): + if value is None: + self._PostDeformationMatrixRegistrationSequence = [] + if "PostDeformationMatrixRegistrationSequence" in self._dataset: + del self._dataset.PostDeformationMatrixRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PostDeformationMatrixRegistrationSequenceItem) for item in value + ): + raise ValueError( + "PostDeformationMatrixRegistrationSequence must be a list of PostDeformationMatrixRegistrationSequenceItem" + " objects" + ) + else: + self._PostDeformationMatrixRegistrationSequence = value + if "PostDeformationMatrixRegistrationSequence" not in self._dataset: + self._dataset.PostDeformationMatrixRegistrationSequence = pydicom.Sequence() + self._dataset.PostDeformationMatrixRegistrationSequence.clear() + self._dataset.PostDeformationMatrixRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_PostDeformationMatrixRegistration(self, item: PostDeformationMatrixRegistrationSequenceItem): + if not isinstance(item, PostDeformationMatrixRegistrationSequenceItem): + raise ValueError("Item must be an instance of PostDeformationMatrixRegistrationSequenceItem") + self._PostDeformationMatrixRegistrationSequence.append(item) + if "PostDeformationMatrixRegistrationSequence" not in self._dataset: + self._dataset.PostDeformationMatrixRegistrationSequence = pydicom.Sequence() + self._dataset.PostDeformationMatrixRegistrationSequence.append(item.to_dataset()) + + @property + def RegistrationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RegistrationTypeCodeSequence" in self._dataset: + if len(self._RegistrationTypeCodeSequence) == len(self._dataset.RegistrationTypeCodeSequence): + return self._RegistrationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RegistrationTypeCodeSequence] + return None + + @RegistrationTypeCodeSequence.setter + def RegistrationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RegistrationTypeCodeSequence = [] + if "RegistrationTypeCodeSequence" in self._dataset: + del self._dataset.RegistrationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RegistrationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RegistrationTypeCodeSequence = value + if "RegistrationTypeCodeSequence" not in self._dataset: + self._dataset.RegistrationTypeCodeSequence = pydicom.Sequence() + self._dataset.RegistrationTypeCodeSequence.clear() + self._dataset.RegistrationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RegistrationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RegistrationTypeCodeSequence.append(item) + if "RegistrationTypeCodeSequence" not in self._dataset: + self._dataset.RegistrationTypeCodeSequence = pydicom.Sequence() + self._dataset.RegistrationTypeCodeSequence.append(item.to_dataset()) + + @property + def UsedFiducialsSequence(self) -> Optional[List[UsedFiducialsSequenceItem]]: + if "UsedFiducialsSequence" in self._dataset: + if len(self._UsedFiducialsSequence) == len(self._dataset.UsedFiducialsSequence): + return self._UsedFiducialsSequence + else: + return [UsedFiducialsSequenceItem(x) for x in self._dataset.UsedFiducialsSequence] + return None + + @UsedFiducialsSequence.setter + def UsedFiducialsSequence(self, value: Optional[List[UsedFiducialsSequenceItem]]): + if value is None: + self._UsedFiducialsSequence = [] + if "UsedFiducialsSequence" in self._dataset: + del self._dataset.UsedFiducialsSequence + elif not isinstance(value, list) or not all(isinstance(item, UsedFiducialsSequenceItem) for item in value): + raise ValueError("UsedFiducialsSequence must be a list of UsedFiducialsSequenceItem objects") + else: + self._UsedFiducialsSequence = value + if "UsedFiducialsSequence" not in self._dataset: + self._dataset.UsedFiducialsSequence = pydicom.Sequence() + self._dataset.UsedFiducialsSequence.clear() + self._dataset.UsedFiducialsSequence.extend([item.to_dataset() for item in value]) + + def add_UsedFiducials(self, item: UsedFiducialsSequenceItem): + if not isinstance(item, UsedFiducialsSequenceItem): + raise ValueError("Item must be an instance of UsedFiducialsSequenceItem") + self._UsedFiducialsSequence.append(item) + if "UsedFiducialsSequence" not in self._dataset: + self._dataset.UsedFiducialsSequence = pydicom.Sequence() + self._dataset.UsedFiducialsSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceTransformationComment(self) -> Optional[str]: + if "FrameOfReferenceTransformationComment" in self._dataset: + return self._dataset.FrameOfReferenceTransformationComment + return None + + @FrameOfReferenceTransformationComment.setter + def FrameOfReferenceTransformationComment(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationComment" in self._dataset: + del self._dataset.FrameOfReferenceTransformationComment + else: + self._dataset.FrameOfReferenceTransformationComment = value diff --git a/tdwii_plus_examples/domain_model/deformable_spatial_registration.py b/tdwii_plus_examples/domain_model/deformable_spatial_registration.py new file mode 100644 index 0000000..bc963cf --- /dev/null +++ b/tdwii_plus_examples/domain_model/deformable_spatial_registration.py @@ -0,0 +1,4471 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .deformable_registration_sequence_item import DeformableRegistrationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class DeformableSpatialRegistration: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._DeformableRegistrationSequence: List[DeformableRegistrationSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DeformableRegistrationSequence(self) -> Optional[List[DeformableRegistrationSequenceItem]]: + if "DeformableRegistrationSequence" in self._dataset: + if len(self._DeformableRegistrationSequence) == len(self._dataset.DeformableRegistrationSequence): + return self._DeformableRegistrationSequence + else: + return [DeformableRegistrationSequenceItem(x) for x in self._dataset.DeformableRegistrationSequence] + return None + + @DeformableRegistrationSequence.setter + def DeformableRegistrationSequence(self, value: Optional[List[DeformableRegistrationSequenceItem]]): + if value is None: + self._DeformableRegistrationSequence = [] + if "DeformableRegistrationSequence" in self._dataset: + del self._dataset.DeformableRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, DeformableRegistrationSequenceItem) for item in value): + raise ValueError("DeformableRegistrationSequence must be a list of DeformableRegistrationSequenceItem objects") + else: + self._DeformableRegistrationSequence = value + if "DeformableRegistrationSequence" not in self._dataset: + self._dataset.DeformableRegistrationSequence = pydicom.Sequence() + self._dataset.DeformableRegistrationSequence.clear() + self._dataset.DeformableRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_DeformableRegistration(self, item: DeformableRegistrationSequenceItem): + if not isinstance(item, DeformableRegistrationSequenceItem): + raise ValueError("Item must be an instance of DeformableRegistrationSequenceItem") + self._DeformableRegistrationSequence.append(item) + if "DeformableRegistrationSequence" not in self._dataset: + self._dataset.DeformableRegistrationSequence = pydicom.Sequence() + self._dataset.DeformableRegistrationSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/deidentification_action_sequence_item.py b/tdwii_plus_examples/domain_model/deidentification_action_sequence_item.py new file mode 100644 index 0000000..c1a20dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/deidentification_action_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DeidentificationActionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IdentifyingPrivateElements(self) -> Optional[List[int]]: + if "IdentifyingPrivateElements" in self._dataset: + return self._dataset.IdentifyingPrivateElements + return None + + @IdentifyingPrivateElements.setter + def IdentifyingPrivateElements(self, value: Optional[List[int]]): + if value is None: + if "IdentifyingPrivateElements" in self._dataset: + del self._dataset.IdentifyingPrivateElements + else: + self._dataset.IdentifyingPrivateElements = value + + @property + def DeidentificationAction(self) -> Optional[str]: + if "DeidentificationAction" in self._dataset: + return self._dataset.DeidentificationAction + return None + + @DeidentificationAction.setter + def DeidentificationAction(self, value: Optional[str]): + if value is None: + if "DeidentificationAction" in self._dataset: + del self._dataset.DeidentificationAction + else: + self._dataset.DeidentificationAction = value diff --git a/tdwii_plus_examples/domain_model/delivered_depth_dose_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/delivered_depth_dose_parameters_sequence_item.py new file mode 100644 index 0000000..74daf8f --- /dev/null +++ b/tdwii_plus_examples/domain_model/delivered_depth_dose_parameters_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DeliveredDepthDoseParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DeliveredDistalDepthFraction(self) -> Optional[float]: + if "DeliveredDistalDepthFraction" in self._dataset: + return self._dataset.DeliveredDistalDepthFraction + return None + + @DeliveredDistalDepthFraction.setter + def DeliveredDistalDepthFraction(self, value: Optional[float]): + if value is None: + if "DeliveredDistalDepthFraction" in self._dataset: + del self._dataset.DeliveredDistalDepthFraction + else: + self._dataset.DeliveredDistalDepthFraction = value + + @property + def DeliveredDistalDepth(self) -> Optional[float]: + if "DeliveredDistalDepth" in self._dataset: + return self._dataset.DeliveredDistalDepth + return None + + @DeliveredDistalDepth.setter + def DeliveredDistalDepth(self, value: Optional[float]): + if value is None: + if "DeliveredDistalDepth" in self._dataset: + del self._dataset.DeliveredDistalDepth + else: + self._dataset.DeliveredDistalDepth = value + + @property + def DeliveredNominalRangeModulationFractions(self) -> Optional[List[float]]: + if "DeliveredNominalRangeModulationFractions" in self._dataset: + return self._dataset.DeliveredNominalRangeModulationFractions + return None + + @DeliveredNominalRangeModulationFractions.setter + def DeliveredNominalRangeModulationFractions(self, value: Optional[List[float]]): + if value is None: + if "DeliveredNominalRangeModulationFractions" in self._dataset: + del self._dataset.DeliveredNominalRangeModulationFractions + else: + self._dataset.DeliveredNominalRangeModulationFractions = value + + @property + def DeliveredNominalRangeModulatedRegionDepths(self) -> Optional[List[float]]: + if "DeliveredNominalRangeModulatedRegionDepths" in self._dataset: + return self._dataset.DeliveredNominalRangeModulatedRegionDepths + return None + + @DeliveredNominalRangeModulatedRegionDepths.setter + def DeliveredNominalRangeModulatedRegionDepths(self, value: Optional[List[float]]): + if value is None: + if "DeliveredNominalRangeModulatedRegionDepths" in self._dataset: + del self._dataset.DeliveredNominalRangeModulatedRegionDepths + else: + self._dataset.DeliveredNominalRangeModulatedRegionDepths = value + + @property + def DeliveredReferenceDoseDefinition(self) -> Optional[str]: + if "DeliveredReferenceDoseDefinition" in self._dataset: + return self._dataset.DeliveredReferenceDoseDefinition + return None + + @DeliveredReferenceDoseDefinition.setter + def DeliveredReferenceDoseDefinition(self, value: Optional[str]): + if value is None: + if "DeliveredReferenceDoseDefinition" in self._dataset: + del self._dataset.DeliveredReferenceDoseDefinition + else: + self._dataset.DeliveredReferenceDoseDefinition = value diff --git a/tdwii_plus_examples/domain_model/delivery_rate_unit_sequence_item.py b/tdwii_plus_examples/domain_model/delivery_rate_unit_sequence_item.py new file mode 100644 index 0000000..7eb3992 --- /dev/null +++ b/tdwii_plus_examples/domain_model/delivery_rate_unit_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DeliveryRateUnitSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/delivery_verification_image_sequence_item.py b/tdwii_plus_examples/domain_model/delivery_verification_image_sequence_item.py new file mode 100644 index 0000000..bc5d778 --- /dev/null +++ b/tdwii_plus_examples/domain_model/delivery_verification_image_sequence_item.py @@ -0,0 +1,175 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .related_reference_rt_image_sequence_item import ( + RelatedReferenceRTImageSequenceItem, +) + + +class DeliveryVerificationImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RelatedReferenceRTImageSequence: List[RelatedReferenceRTImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VerificationImageTiming(self) -> Optional[str]: + if "VerificationImageTiming" in self._dataset: + return self._dataset.VerificationImageTiming + return None + + @VerificationImageTiming.setter + def VerificationImageTiming(self, value: Optional[str]): + if value is None: + if "VerificationImageTiming" in self._dataset: + del self._dataset.VerificationImageTiming + else: + self._dataset.VerificationImageTiming = value + + @property + def DoubleExposureFlag(self) -> Optional[str]: + if "DoubleExposureFlag" in self._dataset: + return self._dataset.DoubleExposureFlag + return None + + @DoubleExposureFlag.setter + def DoubleExposureFlag(self, value: Optional[str]): + if value is None: + if "DoubleExposureFlag" in self._dataset: + del self._dataset.DoubleExposureFlag + else: + self._dataset.DoubleExposureFlag = value + + @property + def DoubleExposureOrdering(self) -> Optional[str]: + if "DoubleExposureOrdering" in self._dataset: + return self._dataset.DoubleExposureOrdering + return None + + @DoubleExposureOrdering.setter + def DoubleExposureOrdering(self, value: Optional[str]): + if value is None: + if "DoubleExposureOrdering" in self._dataset: + del self._dataset.DoubleExposureOrdering + else: + self._dataset.DoubleExposureOrdering = value + + @property + def RelatedReferenceRTImageSequence(self) -> Optional[List[RelatedReferenceRTImageSequenceItem]]: + if "RelatedReferenceRTImageSequence" in self._dataset: + if len(self._RelatedReferenceRTImageSequence) == len(self._dataset.RelatedReferenceRTImageSequence): + return self._RelatedReferenceRTImageSequence + else: + return [RelatedReferenceRTImageSequenceItem(x) for x in self._dataset.RelatedReferenceRTImageSequence] + return None + + @RelatedReferenceRTImageSequence.setter + def RelatedReferenceRTImageSequence(self, value: Optional[List[RelatedReferenceRTImageSequenceItem]]): + if value is None: + self._RelatedReferenceRTImageSequence = [] + if "RelatedReferenceRTImageSequence" in self._dataset: + del self._dataset.RelatedReferenceRTImageSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedReferenceRTImageSequenceItem) for item in value): + raise ValueError("RelatedReferenceRTImageSequence must be a list of RelatedReferenceRTImageSequenceItem objects") + else: + self._RelatedReferenceRTImageSequence = value + if "RelatedReferenceRTImageSequence" not in self._dataset: + self._dataset.RelatedReferenceRTImageSequence = pydicom.Sequence() + self._dataset.RelatedReferenceRTImageSequence.clear() + self._dataset.RelatedReferenceRTImageSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedReferenceRTImage(self, item: RelatedReferenceRTImageSequenceItem): + if not isinstance(item, RelatedReferenceRTImageSequenceItem): + raise ValueError("Item must be an instance of RelatedReferenceRTImageSequenceItem") + self._RelatedReferenceRTImageSequence.append(item) + if "RelatedReferenceRTImageSequence" not in self._dataset: + self._dataset.RelatedReferenceRTImageSequence = pydicom.Sequence() + self._dataset.RelatedReferenceRTImageSequence.append(item.to_dataset()) + + @property + def DoubleExposureMeterset(self) -> Optional[float]: + if "DoubleExposureMeterset" in self._dataset: + return self._dataset.DoubleExposureMeterset + return None + + @DoubleExposureMeterset.setter + def DoubleExposureMeterset(self, value: Optional[float]): + if value is None: + if "DoubleExposureMeterset" in self._dataset: + del self._dataset.DoubleExposureMeterset + else: + self._dataset.DoubleExposureMeterset = value + + @property + def DoubleExposureFieldDelta(self) -> Optional[List[float]]: + if "DoubleExposureFieldDelta" in self._dataset: + return self._dataset.DoubleExposureFieldDelta + return None + + @DoubleExposureFieldDelta.setter + def DoubleExposureFieldDelta(self, value: Optional[List[float]]): + if value is None: + if "DoubleExposureFieldDelta" in self._dataset: + del self._dataset.DoubleExposureFieldDelta + else: + self._dataset.DoubleExposureFieldDelta = value + + @property + def XRayImageReceptorTranslation(self) -> Optional[List[Decimal]]: + if "XRayImageReceptorTranslation" in self._dataset: + return self._dataset.XRayImageReceptorTranslation + return None + + @XRayImageReceptorTranslation.setter + def XRayImageReceptorTranslation(self, value: Optional[List[Decimal]]): + if value is None: + if "XRayImageReceptorTranslation" in self._dataset: + del self._dataset.XRayImageReceptorTranslation + else: + self._dataset.XRayImageReceptorTranslation = value + + @property + def MetersetExposure(self) -> Optional[Decimal]: + if "MetersetExposure" in self._dataset: + return self._dataset.MetersetExposure + return None + + @MetersetExposure.setter + def MetersetExposure(self, value: Optional[Decimal]): + if value is None: + if "MetersetExposure" in self._dataset: + del self._dataset.MetersetExposure + else: + self._dataset.MetersetExposure = value + + @property + def StartCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "StartCumulativeMetersetWeight" in self._dataset: + return self._dataset.StartCumulativeMetersetWeight + return None + + @StartCumulativeMetersetWeight.setter + def StartCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "StartCumulativeMetersetWeight" in self._dataset: + del self._dataset.StartCumulativeMetersetWeight + else: + self._dataset.StartCumulativeMetersetWeight = value + + @property + def EndCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "EndCumulativeMetersetWeight" in self._dataset: + return self._dataset.EndCumulativeMetersetWeight + return None + + @EndCumulativeMetersetWeight.setter + def EndCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "EndCumulativeMetersetWeight" in self._dataset: + del self._dataset.EndCumulativeMetersetWeight + else: + self._dataset.EndCumulativeMetersetWeight = value diff --git a/tdwii_plus_examples/domain_model/depth_dose_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/depth_dose_parameters_sequence_item.py new file mode 100644 index 0000000..23aa608 --- /dev/null +++ b/tdwii_plus_examples/domain_model/depth_dose_parameters_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DepthDoseParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DistalDepthFraction(self) -> Optional[float]: + if "DistalDepthFraction" in self._dataset: + return self._dataset.DistalDepthFraction + return None + + @DistalDepthFraction.setter + def DistalDepthFraction(self, value: Optional[float]): + if value is None: + if "DistalDepthFraction" in self._dataset: + del self._dataset.DistalDepthFraction + else: + self._dataset.DistalDepthFraction = value + + @property + def DistalDepth(self) -> Optional[float]: + if "DistalDepth" in self._dataset: + return self._dataset.DistalDepth + return None + + @DistalDepth.setter + def DistalDepth(self, value: Optional[float]): + if value is None: + if "DistalDepth" in self._dataset: + del self._dataset.DistalDepth + else: + self._dataset.DistalDepth = value + + @property + def NominalRangeModulationFractions(self) -> Optional[List[float]]: + if "NominalRangeModulationFractions" in self._dataset: + return self._dataset.NominalRangeModulationFractions + return None + + @NominalRangeModulationFractions.setter + def NominalRangeModulationFractions(self, value: Optional[List[float]]): + if value is None: + if "NominalRangeModulationFractions" in self._dataset: + del self._dataset.NominalRangeModulationFractions + else: + self._dataset.NominalRangeModulationFractions = value + + @property + def NominalRangeModulatedRegionDepths(self) -> Optional[List[float]]: + if "NominalRangeModulatedRegionDepths" in self._dataset: + return self._dataset.NominalRangeModulatedRegionDepths + return None + + @NominalRangeModulatedRegionDepths.setter + def NominalRangeModulatedRegionDepths(self, value: Optional[List[float]]): + if value is None: + if "NominalRangeModulatedRegionDepths" in self._dataset: + del self._dataset.NominalRangeModulatedRegionDepths + else: + self._dataset.NominalRangeModulatedRegionDepths = value + + @property + def ReferenceDoseDefinition(self) -> Optional[str]: + if "ReferenceDoseDefinition" in self._dataset: + return self._dataset.ReferenceDoseDefinition + return None + + @ReferenceDoseDefinition.setter + def ReferenceDoseDefinition(self, value: Optional[str]): + if value is None: + if "ReferenceDoseDefinition" in self._dataset: + del self._dataset.ReferenceDoseDefinition + else: + self._dataset.ReferenceDoseDefinition = value diff --git a/tdwii_plus_examples/domain_model/derivation_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/derivation_algorithm_sequence_item.py new file mode 100644 index 0000000..b5d98b9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/derivation_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DerivationAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/derivation_conceptual_volume_sequence_item.py b/tdwii_plus_examples/domain_model/derivation_conceptual_volume_sequence_item.py new file mode 100644 index 0000000..49d1d31 --- /dev/null +++ b/tdwii_plus_examples/domain_model/derivation_conceptual_volume_sequence_item.py @@ -0,0 +1,108 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .conceptual_volume_derivation_algorithm_sequence_item import ( + ConceptualVolumeDerivationAlgorithmSequenceItem, +) +from .source_conceptual_volume_sequence_item import SourceConceptualVolumeSequenceItem + + +class DerivationConceptualVolumeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptualVolumeDerivationAlgorithmSequence: List[ConceptualVolumeDerivationAlgorithmSequenceItem] = [] + self._SourceConceptualVolumeSequence: List[SourceConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def ConceptualVolumeDerivationAlgorithmSequence(self) -> Optional[List[ConceptualVolumeDerivationAlgorithmSequenceItem]]: + if "ConceptualVolumeDerivationAlgorithmSequence" in self._dataset: + if len(self._ConceptualVolumeDerivationAlgorithmSequence) == len( + self._dataset.ConceptualVolumeDerivationAlgorithmSequence + ): + return self._ConceptualVolumeDerivationAlgorithmSequence + else: + return [ + ConceptualVolumeDerivationAlgorithmSequenceItem(x) + for x in self._dataset.ConceptualVolumeDerivationAlgorithmSequence + ] + return None + + @ConceptualVolumeDerivationAlgorithmSequence.setter + def ConceptualVolumeDerivationAlgorithmSequence( + self, value: Optional[List[ConceptualVolumeDerivationAlgorithmSequenceItem]] + ): + if value is None: + self._ConceptualVolumeDerivationAlgorithmSequence = [] + if "ConceptualVolumeDerivationAlgorithmSequence" in self._dataset: + del self._dataset.ConceptualVolumeDerivationAlgorithmSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeDerivationAlgorithmSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeDerivationAlgorithmSequence must be a list of ConceptualVolumeDerivationAlgorithmSequenceItem" + " objects" + ) + else: + self._ConceptualVolumeDerivationAlgorithmSequence = value + if "ConceptualVolumeDerivationAlgorithmSequence" not in self._dataset: + self._dataset.ConceptualVolumeDerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeDerivationAlgorithmSequence.clear() + self._dataset.ConceptualVolumeDerivationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeDerivationAlgorithm(self, item: ConceptualVolumeDerivationAlgorithmSequenceItem): + if not isinstance(item, ConceptualVolumeDerivationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeDerivationAlgorithmSequenceItem") + self._ConceptualVolumeDerivationAlgorithmSequence.append(item) + if "ConceptualVolumeDerivationAlgorithmSequence" not in self._dataset: + self._dataset.ConceptualVolumeDerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeDerivationAlgorithmSequence.append(item.to_dataset()) + + @property + def SourceConceptualVolumeSequence(self) -> Optional[List[SourceConceptualVolumeSequenceItem]]: + if "SourceConceptualVolumeSequence" in self._dataset: + if len(self._SourceConceptualVolumeSequence) == len(self._dataset.SourceConceptualVolumeSequence): + return self._SourceConceptualVolumeSequence + else: + return [SourceConceptualVolumeSequenceItem(x) for x in self._dataset.SourceConceptualVolumeSequence] + return None + + @SourceConceptualVolumeSequence.setter + def SourceConceptualVolumeSequence(self, value: Optional[List[SourceConceptualVolumeSequenceItem]]): + if value is None: + self._SourceConceptualVolumeSequence = [] + if "SourceConceptualVolumeSequence" in self._dataset: + del self._dataset.SourceConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceConceptualVolumeSequenceItem) for item in value): + raise ValueError("SourceConceptualVolumeSequence must be a list of SourceConceptualVolumeSequenceItem objects") + else: + self._SourceConceptualVolumeSequence = value + if "SourceConceptualVolumeSequence" not in self._dataset: + self._dataset.SourceConceptualVolumeSequence = pydicom.Sequence() + self._dataset.SourceConceptualVolumeSequence.clear() + self._dataset.SourceConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceConceptualVolume(self, item: SourceConceptualVolumeSequenceItem): + if not isinstance(item, SourceConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of SourceConceptualVolumeSequenceItem") + self._SourceConceptualVolumeSequence.append(item) + if "SourceConceptualVolumeSequence" not in self._dataset: + self._dataset.SourceConceptualVolumeSequence = pydicom.Sequence() + self._dataset.SourceConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/derivation_image_sequence_item.py b/tdwii_plus_examples/domain_model/derivation_image_sequence_item.py new file mode 100644 index 0000000..ea7d774 --- /dev/null +++ b/tdwii_plus_examples/domain_model/derivation_image_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem + + +class DerivationImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/dermoscopic_photography_image.py b/tdwii_plus_examples/domain_model/dermoscopic_photography_image.py new file mode 100644 index 0000000..38872e6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dermoscopic_photography_image.py @@ -0,0 +1,6566 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class DermoscopicPhotographyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LightSourcePolarization(self) -> Optional[str]: + if "LightSourcePolarization" in self._dataset: + return self._dataset.LightSourcePolarization + return None + + @LightSourcePolarization.setter + def LightSourcePolarization(self, value: Optional[str]): + if value is None: + if "LightSourcePolarization" in self._dataset: + del self._dataset.LightSourcePolarization + else: + self._dataset.LightSourcePolarization = value + + @property + def EmitterColorTemperature(self) -> Optional[Decimal]: + if "EmitterColorTemperature" in self._dataset: + return self._dataset.EmitterColorTemperature + return None + + @EmitterColorTemperature.setter + def EmitterColorTemperature(self, value: Optional[Decimal]): + if value is None: + if "EmitterColorTemperature" in self._dataset: + del self._dataset.EmitterColorTemperature + else: + self._dataset.EmitterColorTemperature = value + + @property + def ContactMethod(self) -> Optional[str]: + if "ContactMethod" in self._dataset: + return self._dataset.ContactMethod + return None + + @ContactMethod.setter + def ContactMethod(self, value: Optional[str]): + if value is None: + if "ContactMethod" in self._dataset: + del self._dataset.ContactMethod + else: + self._dataset.ContactMethod = value + + @property + def ImmersionMedia(self) -> Optional[List[str]]: + if "ImmersionMedia" in self._dataset: + return self._dataset.ImmersionMedia + return None + + @ImmersionMedia.setter + def ImmersionMedia(self, value: Optional[List[str]]): + if value is None: + if "ImmersionMedia" in self._dataset: + del self._dataset.ImmersionMedia + else: + self._dataset.ImmersionMedia = value + + @property + def OpticalMagnificationFactor(self) -> Optional[Decimal]: + if "OpticalMagnificationFactor" in self._dataset: + return self._dataset.OpticalMagnificationFactor + return None + + @OpticalMagnificationFactor.setter + def OpticalMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "OpticalMagnificationFactor" in self._dataset: + del self._dataset.OpticalMagnificationFactor + else: + self._dataset.OpticalMagnificationFactor = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PartialView(self) -> Optional[str]: + if "PartialView" in self._dataset: + return self._dataset.PartialView + return None + + @PartialView.setter + def PartialView(self, value: Optional[str]): + if value is None: + if "PartialView" in self._dataset: + del self._dataset.PartialView + else: + self._dataset.PartialView = value + + @property + def PartialViewDescription(self) -> Optional[str]: + if "PartialViewDescription" in self._dataset: + return self._dataset.PartialViewDescription + return None + + @PartialViewDescription.setter + def PartialViewDescription(self, value: Optional[str]): + if value is None: + if "PartialViewDescription" in self._dataset: + del self._dataset.PartialViewDescription + else: + self._dataset.PartialViewDescription = value + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def WhitePoint(self) -> Optional[Decimal]: + if "WhitePoint" in self._dataset: + return self._dataset.WhitePoint + return None + + @WhitePoint.setter + def WhitePoint(self, value: Optional[Decimal]): + if value is None: + if "WhitePoint" in self._dataset: + del self._dataset.WhitePoint + else: + self._dataset.WhitePoint = value + + @property + def PrimaryChromaticities(self) -> Optional[List[Decimal]]: + if "PrimaryChromaticities" in self._dataset: + return self._dataset.PrimaryChromaticities + return None + + @PrimaryChromaticities.setter + def PrimaryChromaticities(self, value: Optional[List[Decimal]]): + if value is None: + if "PrimaryChromaticities" in self._dataset: + del self._dataset.PrimaryChromaticities + else: + self._dataset.PrimaryChromaticities = value + + @property + def BatteryLevel(self) -> Optional[str]: + if "BatteryLevel" in self._dataset: + return self._dataset.BatteryLevel + return None + + @BatteryLevel.setter + def BatteryLevel(self, value: Optional[str]): + if value is None: + if "BatteryLevel" in self._dataset: + del self._dataset.BatteryLevel + else: + self._dataset.BatteryLevel = value + + @property + def ExposureTimeInSeconds(self) -> Optional[Decimal]: + if "ExposureTimeInSeconds" in self._dataset: + return self._dataset.ExposureTimeInSeconds + return None + + @ExposureTimeInSeconds.setter + def ExposureTimeInSeconds(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInSeconds" in self._dataset: + del self._dataset.ExposureTimeInSeconds + else: + self._dataset.ExposureTimeInSeconds = value + + @property + def FNumber(self) -> Optional[Decimal]: + if "FNumber" in self._dataset: + return self._dataset.FNumber + return None + + @FNumber.setter + def FNumber(self, value: Optional[Decimal]): + if value is None: + if "FNumber" in self._dataset: + del self._dataset.FNumber + else: + self._dataset.FNumber = value + + @property + def OECFRows(self) -> Optional[int]: + if "OECFRows" in self._dataset: + return self._dataset.OECFRows + return None + + @OECFRows.setter + def OECFRows(self, value: Optional[int]): + if value is None: + if "OECFRows" in self._dataset: + del self._dataset.OECFRows + else: + self._dataset.OECFRows = value + + @property + def OECFColumns(self) -> Optional[int]: + if "OECFColumns" in self._dataset: + return self._dataset.OECFColumns + return None + + @OECFColumns.setter + def OECFColumns(self, value: Optional[int]): + if value is None: + if "OECFColumns" in self._dataset: + del self._dataset.OECFColumns + else: + self._dataset.OECFColumns = value + + @property + def OECFColumnNames(self) -> Optional[List[str]]: + if "OECFColumnNames" in self._dataset: + return self._dataset.OECFColumnNames + return None + + @OECFColumnNames.setter + def OECFColumnNames(self, value: Optional[List[str]]): + if value is None: + if "OECFColumnNames" in self._dataset: + del self._dataset.OECFColumnNames + else: + self._dataset.OECFColumnNames = value + + @property + def OECFValues(self) -> Optional[List[Decimal]]: + if "OECFValues" in self._dataset: + return self._dataset.OECFValues + return None + + @OECFValues.setter + def OECFValues(self, value: Optional[List[Decimal]]): + if value is None: + if "OECFValues" in self._dataset: + del self._dataset.OECFValues + else: + self._dataset.OECFValues = value + + @property + def SpatialFrequencyResponseRows(self) -> Optional[int]: + if "SpatialFrequencyResponseRows" in self._dataset: + return self._dataset.SpatialFrequencyResponseRows + return None + + @SpatialFrequencyResponseRows.setter + def SpatialFrequencyResponseRows(self, value: Optional[int]): + if value is None: + if "SpatialFrequencyResponseRows" in self._dataset: + del self._dataset.SpatialFrequencyResponseRows + else: + self._dataset.SpatialFrequencyResponseRows = value + + @property + def SpatialFrequencyResponseColumns(self) -> Optional[int]: + if "SpatialFrequencyResponseColumns" in self._dataset: + return self._dataset.SpatialFrequencyResponseColumns + return None + + @SpatialFrequencyResponseColumns.setter + def SpatialFrequencyResponseColumns(self, value: Optional[int]): + if value is None: + if "SpatialFrequencyResponseColumns" in self._dataset: + del self._dataset.SpatialFrequencyResponseColumns + else: + self._dataset.SpatialFrequencyResponseColumns = value + + @property + def SpatialFrequencyResponseColumnNames(self) -> Optional[List[str]]: + if "SpatialFrequencyResponseColumnNames" in self._dataset: + return self._dataset.SpatialFrequencyResponseColumnNames + return None + + @SpatialFrequencyResponseColumnNames.setter + def SpatialFrequencyResponseColumnNames(self, value: Optional[List[str]]): + if value is None: + if "SpatialFrequencyResponseColumnNames" in self._dataset: + del self._dataset.SpatialFrequencyResponseColumnNames + else: + self._dataset.SpatialFrequencyResponseColumnNames = value + + @property + def SpatialFrequencyResponseValues(self) -> Optional[List[Decimal]]: + if "SpatialFrequencyResponseValues" in self._dataset: + return self._dataset.SpatialFrequencyResponseValues + return None + + @SpatialFrequencyResponseValues.setter + def SpatialFrequencyResponseValues(self, value: Optional[List[Decimal]]): + if value is None: + if "SpatialFrequencyResponseValues" in self._dataset: + del self._dataset.SpatialFrequencyResponseValues + else: + self._dataset.SpatialFrequencyResponseValues = value + + @property + def ColorFilterArrayPatternRows(self) -> Optional[int]: + if "ColorFilterArrayPatternRows" in self._dataset: + return self._dataset.ColorFilterArrayPatternRows + return None + + @ColorFilterArrayPatternRows.setter + def ColorFilterArrayPatternRows(self, value: Optional[int]): + if value is None: + if "ColorFilterArrayPatternRows" in self._dataset: + del self._dataset.ColorFilterArrayPatternRows + else: + self._dataset.ColorFilterArrayPatternRows = value + + @property + def ColorFilterArrayPatternColumns(self) -> Optional[int]: + if "ColorFilterArrayPatternColumns" in self._dataset: + return self._dataset.ColorFilterArrayPatternColumns + return None + + @ColorFilterArrayPatternColumns.setter + def ColorFilterArrayPatternColumns(self, value: Optional[int]): + if value is None: + if "ColorFilterArrayPatternColumns" in self._dataset: + del self._dataset.ColorFilterArrayPatternColumns + else: + self._dataset.ColorFilterArrayPatternColumns = value + + @property + def ColorFilterArrayPatternValues(self) -> Optional[List[Decimal]]: + if "ColorFilterArrayPatternValues" in self._dataset: + return self._dataset.ColorFilterArrayPatternValues + return None + + @ColorFilterArrayPatternValues.setter + def ColorFilterArrayPatternValues(self, value: Optional[List[Decimal]]): + if value is None: + if "ColorFilterArrayPatternValues" in self._dataset: + del self._dataset.ColorFilterArrayPatternValues + else: + self._dataset.ColorFilterArrayPatternValues = value + + @property + def FlashFiringStatus(self) -> Optional[int]: + if "FlashFiringStatus" in self._dataset: + return self._dataset.FlashFiringStatus + return None + + @FlashFiringStatus.setter + def FlashFiringStatus(self, value: Optional[int]): + if value is None: + if "FlashFiringStatus" in self._dataset: + del self._dataset.FlashFiringStatus + else: + self._dataset.FlashFiringStatus = value + + @property + def FlashReturnStatus(self) -> Optional[int]: + if "FlashReturnStatus" in self._dataset: + return self._dataset.FlashReturnStatus + return None + + @FlashReturnStatus.setter + def FlashReturnStatus(self, value: Optional[int]): + if value is None: + if "FlashReturnStatus" in self._dataset: + del self._dataset.FlashReturnStatus + else: + self._dataset.FlashReturnStatus = value + + @property + def FlashMode(self) -> Optional[int]: + if "FlashMode" in self._dataset: + return self._dataset.FlashMode + return None + + @FlashMode.setter + def FlashMode(self, value: Optional[int]): + if value is None: + if "FlashMode" in self._dataset: + del self._dataset.FlashMode + else: + self._dataset.FlashMode = value + + @property + def FlashFunctionPresent(self) -> Optional[int]: + if "FlashFunctionPresent" in self._dataset: + return self._dataset.FlashFunctionPresent + return None + + @FlashFunctionPresent.setter + def FlashFunctionPresent(self, value: Optional[int]): + if value is None: + if "FlashFunctionPresent" in self._dataset: + del self._dataset.FlashFunctionPresent + else: + self._dataset.FlashFunctionPresent = value + + @property + def FlashRedEyeMode(self) -> Optional[int]: + if "FlashRedEyeMode" in self._dataset: + return self._dataset.FlashRedEyeMode + return None + + @FlashRedEyeMode.setter + def FlashRedEyeMode(self, value: Optional[int]): + if value is None: + if "FlashRedEyeMode" in self._dataset: + del self._dataset.FlashRedEyeMode + else: + self._dataset.FlashRedEyeMode = value + + @property + def ExposureProgram(self) -> Optional[int]: + if "ExposureProgram" in self._dataset: + return self._dataset.ExposureProgram + return None + + @ExposureProgram.setter + def ExposureProgram(self, value: Optional[int]): + if value is None: + if "ExposureProgram" in self._dataset: + del self._dataset.ExposureProgram + else: + self._dataset.ExposureProgram = value + + @property + def SpectralSensitivity(self) -> Optional[str]: + if "SpectralSensitivity" in self._dataset: + return self._dataset.SpectralSensitivity + return None + + @SpectralSensitivity.setter + def SpectralSensitivity(self, value: Optional[str]): + if value is None: + if "SpectralSensitivity" in self._dataset: + del self._dataset.SpectralSensitivity + else: + self._dataset.SpectralSensitivity = value + + @property + def PhotographicSensitivity(self) -> Optional[int]: + if "PhotographicSensitivity" in self._dataset: + return self._dataset.PhotographicSensitivity + return None + + @PhotographicSensitivity.setter + def PhotographicSensitivity(self, value: Optional[int]): + if value is None: + if "PhotographicSensitivity" in self._dataset: + del self._dataset.PhotographicSensitivity + else: + self._dataset.PhotographicSensitivity = value + + @property + def SelfTimerMode(self) -> Optional[int]: + if "SelfTimerMode" in self._dataset: + return self._dataset.SelfTimerMode + return None + + @SelfTimerMode.setter + def SelfTimerMode(self, value: Optional[int]): + if value is None: + if "SelfTimerMode" in self._dataset: + del self._dataset.SelfTimerMode + else: + self._dataset.SelfTimerMode = value + + @property + def SensitivityType(self) -> Optional[int]: + if "SensitivityType" in self._dataset: + return self._dataset.SensitivityType + return None + + @SensitivityType.setter + def SensitivityType(self, value: Optional[int]): + if value is None: + if "SensitivityType" in self._dataset: + del self._dataset.SensitivityType + else: + self._dataset.SensitivityType = value + + @property + def StandardOutputSensitivity(self) -> Optional[int]: + if "StandardOutputSensitivity" in self._dataset: + return self._dataset.StandardOutputSensitivity + return None + + @StandardOutputSensitivity.setter + def StandardOutputSensitivity(self, value: Optional[int]): + if value is None: + if "StandardOutputSensitivity" in self._dataset: + del self._dataset.StandardOutputSensitivity + else: + self._dataset.StandardOutputSensitivity = value + + @property + def RecommendedExposureIndex(self) -> Optional[int]: + if "RecommendedExposureIndex" in self._dataset: + return self._dataset.RecommendedExposureIndex + return None + + @RecommendedExposureIndex.setter + def RecommendedExposureIndex(self, value: Optional[int]): + if value is None: + if "RecommendedExposureIndex" in self._dataset: + del self._dataset.RecommendedExposureIndex + else: + self._dataset.RecommendedExposureIndex = value + + @property + def ISOSpeed(self) -> Optional[int]: + if "ISOSpeed" in self._dataset: + return self._dataset.ISOSpeed + return None + + @ISOSpeed.setter + def ISOSpeed(self, value: Optional[int]): + if value is None: + if "ISOSpeed" in self._dataset: + del self._dataset.ISOSpeed + else: + self._dataset.ISOSpeed = value + + @property + def ISOSpeedLatitudeyyy(self) -> Optional[int]: + if "ISOSpeedLatitudeyyy" in self._dataset: + return self._dataset.ISOSpeedLatitudeyyy + return None + + @ISOSpeedLatitudeyyy.setter + def ISOSpeedLatitudeyyy(self, value: Optional[int]): + if value is None: + if "ISOSpeedLatitudeyyy" in self._dataset: + del self._dataset.ISOSpeedLatitudeyyy + else: + self._dataset.ISOSpeedLatitudeyyy = value + + @property + def ISOSpeedLatitudezzz(self) -> Optional[int]: + if "ISOSpeedLatitudezzz" in self._dataset: + return self._dataset.ISOSpeedLatitudezzz + return None + + @ISOSpeedLatitudezzz.setter + def ISOSpeedLatitudezzz(self, value: Optional[int]): + if value is None: + if "ISOSpeedLatitudezzz" in self._dataset: + del self._dataset.ISOSpeedLatitudezzz + else: + self._dataset.ISOSpeedLatitudezzz = value + + @property + def EXIFVersion(self) -> Optional[str]: + if "EXIFVersion" in self._dataset: + return self._dataset.EXIFVersion + return None + + @EXIFVersion.setter + def EXIFVersion(self, value: Optional[str]): + if value is None: + if "EXIFVersion" in self._dataset: + del self._dataset.EXIFVersion + else: + self._dataset.EXIFVersion = value + + @property + def ShutterSpeedValue(self) -> Optional[Decimal]: + if "ShutterSpeedValue" in self._dataset: + return self._dataset.ShutterSpeedValue + return None + + @ShutterSpeedValue.setter + def ShutterSpeedValue(self, value: Optional[Decimal]): + if value is None: + if "ShutterSpeedValue" in self._dataset: + del self._dataset.ShutterSpeedValue + else: + self._dataset.ShutterSpeedValue = value + + @property + def ApertureValue(self) -> Optional[Decimal]: + if "ApertureValue" in self._dataset: + return self._dataset.ApertureValue + return None + + @ApertureValue.setter + def ApertureValue(self, value: Optional[Decimal]): + if value is None: + if "ApertureValue" in self._dataset: + del self._dataset.ApertureValue + else: + self._dataset.ApertureValue = value + + @property + def BrightnessValue(self) -> Optional[Decimal]: + if "BrightnessValue" in self._dataset: + return self._dataset.BrightnessValue + return None + + @BrightnessValue.setter + def BrightnessValue(self, value: Optional[Decimal]): + if value is None: + if "BrightnessValue" in self._dataset: + del self._dataset.BrightnessValue + else: + self._dataset.BrightnessValue = value + + @property + def ExposureBiasValue(self) -> Optional[Decimal]: + if "ExposureBiasValue" in self._dataset: + return self._dataset.ExposureBiasValue + return None + + @ExposureBiasValue.setter + def ExposureBiasValue(self, value: Optional[Decimal]): + if value is None: + if "ExposureBiasValue" in self._dataset: + del self._dataset.ExposureBiasValue + else: + self._dataset.ExposureBiasValue = value + + @property + def MaxApertureValue(self) -> Optional[Decimal]: + if "MaxApertureValue" in self._dataset: + return self._dataset.MaxApertureValue + return None + + @MaxApertureValue.setter + def MaxApertureValue(self, value: Optional[Decimal]): + if value is None: + if "MaxApertureValue" in self._dataset: + del self._dataset.MaxApertureValue + else: + self._dataset.MaxApertureValue = value + + @property + def SubjectDistance(self) -> Optional[Decimal]: + if "SubjectDistance" in self._dataset: + return self._dataset.SubjectDistance + return None + + @SubjectDistance.setter + def SubjectDistance(self, value: Optional[Decimal]): + if value is None: + if "SubjectDistance" in self._dataset: + del self._dataset.SubjectDistance + else: + self._dataset.SubjectDistance = value + + @property + def MeteringMode(self) -> Optional[int]: + if "MeteringMode" in self._dataset: + return self._dataset.MeteringMode + return None + + @MeteringMode.setter + def MeteringMode(self, value: Optional[int]): + if value is None: + if "MeteringMode" in self._dataset: + del self._dataset.MeteringMode + else: + self._dataset.MeteringMode = value + + @property + def LightSource(self) -> Optional[int]: + if "LightSource" in self._dataset: + return self._dataset.LightSource + return None + + @LightSource.setter + def LightSource(self, value: Optional[int]): + if value is None: + if "LightSource" in self._dataset: + del self._dataset.LightSource + else: + self._dataset.LightSource = value + + @property + def FocalLength(self) -> Optional[Decimal]: + if "FocalLength" in self._dataset: + return self._dataset.FocalLength + return None + + @FocalLength.setter + def FocalLength(self, value: Optional[Decimal]): + if value is None: + if "FocalLength" in self._dataset: + del self._dataset.FocalLength + else: + self._dataset.FocalLength = value + + @property + def SubjectArea(self) -> Optional[List[int]]: + if "SubjectArea" in self._dataset: + return self._dataset.SubjectArea + return None + + @SubjectArea.setter + def SubjectArea(self, value: Optional[List[int]]): + if value is None: + if "SubjectArea" in self._dataset: + del self._dataset.SubjectArea + else: + self._dataset.SubjectArea = value + + @property + def MakerNote(self) -> Optional[bytes]: + if "MakerNote" in self._dataset: + return self._dataset.MakerNote + return None + + @MakerNote.setter + def MakerNote(self, value: Optional[bytes]): + if value is None: + if "MakerNote" in self._dataset: + del self._dataset.MakerNote + else: + self._dataset.MakerNote = value + + @property + def Temperature(self) -> Optional[Decimal]: + if "Temperature" in self._dataset: + return self._dataset.Temperature + return None + + @Temperature.setter + def Temperature(self, value: Optional[Decimal]): + if value is None: + if "Temperature" in self._dataset: + del self._dataset.Temperature + else: + self._dataset.Temperature = value + + @property + def Humidity(self) -> Optional[Decimal]: + if "Humidity" in self._dataset: + return self._dataset.Humidity + return None + + @Humidity.setter + def Humidity(self, value: Optional[Decimal]): + if value is None: + if "Humidity" in self._dataset: + del self._dataset.Humidity + else: + self._dataset.Humidity = value + + @property + def Pressure(self) -> Optional[Decimal]: + if "Pressure" in self._dataset: + return self._dataset.Pressure + return None + + @Pressure.setter + def Pressure(self, value: Optional[Decimal]): + if value is None: + if "Pressure" in self._dataset: + del self._dataset.Pressure + else: + self._dataset.Pressure = value + + @property + def WaterDepth(self) -> Optional[Decimal]: + if "WaterDepth" in self._dataset: + return self._dataset.WaterDepth + return None + + @WaterDepth.setter + def WaterDepth(self, value: Optional[Decimal]): + if value is None: + if "WaterDepth" in self._dataset: + del self._dataset.WaterDepth + else: + self._dataset.WaterDepth = value + + @property + def Acceleration(self) -> Optional[Decimal]: + if "Acceleration" in self._dataset: + return self._dataset.Acceleration + return None + + @Acceleration.setter + def Acceleration(self, value: Optional[Decimal]): + if value is None: + if "Acceleration" in self._dataset: + del self._dataset.Acceleration + else: + self._dataset.Acceleration = value + + @property + def CameraElevationAngle(self) -> Optional[Decimal]: + if "CameraElevationAngle" in self._dataset: + return self._dataset.CameraElevationAngle + return None + + @CameraElevationAngle.setter + def CameraElevationAngle(self, value: Optional[Decimal]): + if value is None: + if "CameraElevationAngle" in self._dataset: + del self._dataset.CameraElevationAngle + else: + self._dataset.CameraElevationAngle = value + + @property + def FlashEnergy(self) -> Optional[List[Decimal]]: + if "FlashEnergy" in self._dataset: + return self._dataset.FlashEnergy + return None + + @FlashEnergy.setter + def FlashEnergy(self, value: Optional[List[Decimal]]): + if value is None: + if "FlashEnergy" in self._dataset: + del self._dataset.FlashEnergy + else: + self._dataset.FlashEnergy = value + + @property + def SubjectLocation(self) -> Optional[List[int]]: + if "SubjectLocation" in self._dataset: + return self._dataset.SubjectLocation + return None + + @SubjectLocation.setter + def SubjectLocation(self, value: Optional[List[int]]): + if value is None: + if "SubjectLocation" in self._dataset: + del self._dataset.SubjectLocation + else: + self._dataset.SubjectLocation = value + + @property + def PhotographicExposureIndex(self) -> Optional[Decimal]: + if "PhotographicExposureIndex" in self._dataset: + return self._dataset.PhotographicExposureIndex + return None + + @PhotographicExposureIndex.setter + def PhotographicExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "PhotographicExposureIndex" in self._dataset: + del self._dataset.PhotographicExposureIndex + else: + self._dataset.PhotographicExposureIndex = value + + @property + def SensingMethod(self) -> Optional[int]: + if "SensingMethod" in self._dataset: + return self._dataset.SensingMethod + return None + + @SensingMethod.setter + def SensingMethod(self, value: Optional[int]): + if value is None: + if "SensingMethod" in self._dataset: + del self._dataset.SensingMethod + else: + self._dataset.SensingMethod = value + + @property + def FileSource(self) -> Optional[int]: + if "FileSource" in self._dataset: + return self._dataset.FileSource + return None + + @FileSource.setter + def FileSource(self, value: Optional[int]): + if value is None: + if "FileSource" in self._dataset: + del self._dataset.FileSource + else: + self._dataset.FileSource = value + + @property + def SceneType(self) -> Optional[int]: + if "SceneType" in self._dataset: + return self._dataset.SceneType + return None + + @SceneType.setter + def SceneType(self, value: Optional[int]): + if value is None: + if "SceneType" in self._dataset: + del self._dataset.SceneType + else: + self._dataset.SceneType = value + + @property + def CustomRendered(self) -> Optional[int]: + if "CustomRendered" in self._dataset: + return self._dataset.CustomRendered + return None + + @CustomRendered.setter + def CustomRendered(self, value: Optional[int]): + if value is None: + if "CustomRendered" in self._dataset: + del self._dataset.CustomRendered + else: + self._dataset.CustomRendered = value + + @property + def ExposureMode(self) -> Optional[int]: + if "ExposureMode" in self._dataset: + return self._dataset.ExposureMode + return None + + @ExposureMode.setter + def ExposureMode(self, value: Optional[int]): + if value is None: + if "ExposureMode" in self._dataset: + del self._dataset.ExposureMode + else: + self._dataset.ExposureMode = value + + @property + def WhiteBalance(self) -> Optional[int]: + if "WhiteBalance" in self._dataset: + return self._dataset.WhiteBalance + return None + + @WhiteBalance.setter + def WhiteBalance(self, value: Optional[int]): + if value is None: + if "WhiteBalance" in self._dataset: + del self._dataset.WhiteBalance + else: + self._dataset.WhiteBalance = value + + @property + def DigitalZoomRatio(self) -> Optional[Decimal]: + if "DigitalZoomRatio" in self._dataset: + return self._dataset.DigitalZoomRatio + return None + + @DigitalZoomRatio.setter + def DigitalZoomRatio(self, value: Optional[Decimal]): + if value is None: + if "DigitalZoomRatio" in self._dataset: + del self._dataset.DigitalZoomRatio + else: + self._dataset.DigitalZoomRatio = value + + @property + def FocalLengthIn35mmFilm(self) -> Optional[int]: + if "FocalLengthIn35mmFilm" in self._dataset: + return self._dataset.FocalLengthIn35mmFilm + return None + + @FocalLengthIn35mmFilm.setter + def FocalLengthIn35mmFilm(self, value: Optional[int]): + if value is None: + if "FocalLengthIn35mmFilm" in self._dataset: + del self._dataset.FocalLengthIn35mmFilm + else: + self._dataset.FocalLengthIn35mmFilm = value + + @property + def SceneCaptureType(self) -> Optional[int]: + if "SceneCaptureType" in self._dataset: + return self._dataset.SceneCaptureType + return None + + @SceneCaptureType.setter + def SceneCaptureType(self, value: Optional[int]): + if value is None: + if "SceneCaptureType" in self._dataset: + del self._dataset.SceneCaptureType + else: + self._dataset.SceneCaptureType = value + + @property + def GainControl(self) -> Optional[int]: + if "GainControl" in self._dataset: + return self._dataset.GainControl + return None + + @GainControl.setter + def GainControl(self, value: Optional[int]): + if value is None: + if "GainControl" in self._dataset: + del self._dataset.GainControl + else: + self._dataset.GainControl = value + + @property + def Contrast(self) -> Optional[int]: + if "Contrast" in self._dataset: + return self._dataset.Contrast + return None + + @Contrast.setter + def Contrast(self, value: Optional[int]): + if value is None: + if "Contrast" in self._dataset: + del self._dataset.Contrast + else: + self._dataset.Contrast = value + + @property + def Saturation(self) -> Optional[int]: + if "Saturation" in self._dataset: + return self._dataset.Saturation + return None + + @Saturation.setter + def Saturation(self, value: Optional[int]): + if value is None: + if "Saturation" in self._dataset: + del self._dataset.Saturation + else: + self._dataset.Saturation = value + + @property + def Sharpness(self) -> Optional[int]: + if "Sharpness" in self._dataset: + return self._dataset.Sharpness + return None + + @Sharpness.setter + def Sharpness(self, value: Optional[int]): + if value is None: + if "Sharpness" in self._dataset: + del self._dataset.Sharpness + else: + self._dataset.Sharpness = value + + @property + def DeviceSettingDescription(self) -> Optional[bytes]: + if "DeviceSettingDescription" in self._dataset: + return self._dataset.DeviceSettingDescription + return None + + @DeviceSettingDescription.setter + def DeviceSettingDescription(self, value: Optional[bytes]): + if value is None: + if "DeviceSettingDescription" in self._dataset: + del self._dataset.DeviceSettingDescription + else: + self._dataset.DeviceSettingDescription = value + + @property + def SubjectDistanceRange(self) -> Optional[int]: + if "SubjectDistanceRange" in self._dataset: + return self._dataset.SubjectDistanceRange + return None + + @SubjectDistanceRange.setter + def SubjectDistanceRange(self, value: Optional[int]): + if value is None: + if "SubjectDistanceRange" in self._dataset: + del self._dataset.SubjectDistanceRange + else: + self._dataset.SubjectDistanceRange = value + + @property + def InteroperabilityIndex(self) -> Optional[str]: + if "InteroperabilityIndex" in self._dataset: + return self._dataset.InteroperabilityIndex + return None + + @InteroperabilityIndex.setter + def InteroperabilityIndex(self, value: Optional[str]): + if value is None: + if "InteroperabilityIndex" in self._dataset: + del self._dataset.InteroperabilityIndex + else: + self._dataset.InteroperabilityIndex = value + + @property + def InteroperabilityVersion(self) -> Optional[bytes]: + if "InteroperabilityVersion" in self._dataset: + return self._dataset.InteroperabilityVersion + return None + + @InteroperabilityVersion.setter + def InteroperabilityVersion(self, value: Optional[bytes]): + if value is None: + if "InteroperabilityVersion" in self._dataset: + del self._dataset.InteroperabilityVersion + else: + self._dataset.InteroperabilityVersion = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def CameraOwnerName(self) -> Optional[str]: + if "CameraOwnerName" in self._dataset: + return self._dataset.CameraOwnerName + return None + + @CameraOwnerName.setter + def CameraOwnerName(self, value: Optional[str]): + if value is None: + if "CameraOwnerName" in self._dataset: + del self._dataset.CameraOwnerName + else: + self._dataset.CameraOwnerName = value + + @property + def LensSpecification(self) -> Optional[List[Decimal]]: + if "LensSpecification" in self._dataset: + return self._dataset.LensSpecification + return None + + @LensSpecification.setter + def LensSpecification(self, value: Optional[List[Decimal]]): + if value is None: + if "LensSpecification" in self._dataset: + del self._dataset.LensSpecification + else: + self._dataset.LensSpecification = value + + @property + def LensMake(self) -> Optional[str]: + if "LensMake" in self._dataset: + return self._dataset.LensMake + return None + + @LensMake.setter + def LensMake(self, value: Optional[str]): + if value is None: + if "LensMake" in self._dataset: + del self._dataset.LensMake + else: + self._dataset.LensMake = value + + @property + def LensModel(self) -> Optional[str]: + if "LensModel" in self._dataset: + return self._dataset.LensModel + return None + + @LensModel.setter + def LensModel(self, value: Optional[str]): + if value is None: + if "LensModel" in self._dataset: + del self._dataset.LensModel + else: + self._dataset.LensModel = value + + @property + def LensSerialNumber(self) -> Optional[str]: + if "LensSerialNumber" in self._dataset: + return self._dataset.LensSerialNumber + return None + + @LensSerialNumber.setter + def LensSerialNumber(self, value: Optional[str]): + if value is None: + if "LensSerialNumber" in self._dataset: + del self._dataset.LensSerialNumber + else: + self._dataset.LensSerialNumber = value diff --git a/tdwii_plus_examples/domain_model/detector_information_sequence_item.py b/tdwii_plus_examples/domain_model/detector_information_sequence_item.py new file mode 100644 index 0000000..33f69c4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/detector_information_sequence_item.py @@ -0,0 +1,271 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DetectorInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ViewCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def GantryDetectorTilt(self) -> Optional[Decimal]: + if "GantryDetectorTilt" in self._dataset: + return self._dataset.GantryDetectorTilt + return None + + @GantryDetectorTilt.setter + def GantryDetectorTilt(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorTilt" in self._dataset: + del self._dataset.GantryDetectorTilt + else: + self._dataset.GantryDetectorTilt = value + + @property + def RadialPosition(self) -> Optional[List[Decimal]]: + if "RadialPosition" in self._dataset: + return self._dataset.RadialPosition + return None + + @RadialPosition.setter + def RadialPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "RadialPosition" in self._dataset: + del self._dataset.RadialPosition + else: + self._dataset.RadialPosition = value + + @property + def CenterOfRotationOffset(self) -> Optional[Decimal]: + if "CenterOfRotationOffset" in self._dataset: + return self._dataset.CenterOfRotationOffset + return None + + @CenterOfRotationOffset.setter + def CenterOfRotationOffset(self, value: Optional[Decimal]): + if value is None: + if "CenterOfRotationOffset" in self._dataset: + del self._dataset.CenterOfRotationOffset + else: + self._dataset.CenterOfRotationOffset = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def CollimatorGridName(self) -> Optional[str]: + if "CollimatorGridName" in self._dataset: + return self._dataset.CollimatorGridName + return None + + @CollimatorGridName.setter + def CollimatorGridName(self, value: Optional[str]): + if value is None: + if "CollimatorGridName" in self._dataset: + del self._dataset.CollimatorGridName + else: + self._dataset.CollimatorGridName = value + + @property + def CollimatorType(self) -> Optional[str]: + if "CollimatorType" in self._dataset: + return self._dataset.CollimatorType + return None + + @CollimatorType.setter + def CollimatorType(self, value: Optional[str]): + if value is None: + if "CollimatorType" in self._dataset: + del self._dataset.CollimatorType + else: + self._dataset.CollimatorType = value + + @property + def FocalDistance(self) -> Optional[List[int]]: + if "FocalDistance" in self._dataset: + return self._dataset.FocalDistance + return None + + @FocalDistance.setter + def FocalDistance(self, value: Optional[List[int]]): + if value is None: + if "FocalDistance" in self._dataset: + del self._dataset.FocalDistance + else: + self._dataset.FocalDistance = value + + @property + def XFocusCenter(self) -> Optional[List[Decimal]]: + if "XFocusCenter" in self._dataset: + return self._dataset.XFocusCenter + return None + + @XFocusCenter.setter + def XFocusCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "XFocusCenter" in self._dataset: + del self._dataset.XFocusCenter + else: + self._dataset.XFocusCenter = value + + @property + def YFocusCenter(self) -> Optional[List[Decimal]]: + if "YFocusCenter" in self._dataset: + return self._dataset.YFocusCenter + return None + + @YFocusCenter.setter + def YFocusCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "YFocusCenter" in self._dataset: + del self._dataset.YFocusCenter + else: + self._dataset.YFocusCenter = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def ZoomFactor(self) -> Optional[List[Decimal]]: + if "ZoomFactor" in self._dataset: + return self._dataset.ZoomFactor + return None + + @ZoomFactor.setter + def ZoomFactor(self, value: Optional[List[Decimal]]): + if value is None: + if "ZoomFactor" in self._dataset: + del self._dataset.ZoomFactor + else: + self._dataset.ZoomFactor = value + + @property + def ZoomCenter(self) -> Optional[List[Decimal]]: + if "ZoomCenter" in self._dataset: + return self._dataset.ZoomCenter + return None + + @ZoomCenter.setter + def ZoomCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "ZoomCenter" in self._dataset: + del self._dataset.ZoomCenter + else: + self._dataset.ZoomCenter = value + + @property + def StartAngle(self) -> Optional[Decimal]: + if "StartAngle" in self._dataset: + return self._dataset.StartAngle + return None + + @StartAngle.setter + def StartAngle(self, value: Optional[Decimal]): + if value is None: + if "StartAngle" in self._dataset: + del self._dataset.StartAngle + else: + self._dataset.StartAngle = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/detector_position_sequence_item.py b/tdwii_plus_examples/domain_model/detector_position_sequence_item.py new file mode 100644 index 0000000..8543645 --- /dev/null +++ b/tdwii_plus_examples/domain_model/detector_position_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class DetectorPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DetectorPrimaryAngle(self) -> Optional[Decimal]: + if "DetectorPrimaryAngle" in self._dataset: + return self._dataset.DetectorPrimaryAngle + return None + + @DetectorPrimaryAngle.setter + def DetectorPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorPrimaryAngle" in self._dataset: + del self._dataset.DetectorPrimaryAngle + else: + self._dataset.DetectorPrimaryAngle = value + + @property + def DetectorSecondaryAngle(self) -> Optional[Decimal]: + if "DetectorSecondaryAngle" in self._dataset: + return self._dataset.DetectorSecondaryAngle + return None + + @DetectorSecondaryAngle.setter + def DetectorSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorSecondaryAngle" in self._dataset: + del self._dataset.DetectorSecondaryAngle + else: + self._dataset.DetectorSecondaryAngle = value diff --git a/tdwii_plus_examples/domain_model/device_motion_control_sequence_item.py b/tdwii_plus_examples/domain_model/device_motion_control_sequence_item.py new file mode 100644 index 0000000..d8b4195 --- /dev/null +++ b/tdwii_plus_examples/domain_model/device_motion_control_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DeviceMotionControlSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeviceMotionParameterCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DeviceMotionExecutionMode(self) -> Optional[str]: + if "DeviceMotionExecutionMode" in self._dataset: + return self._dataset.DeviceMotionExecutionMode + return None + + @DeviceMotionExecutionMode.setter + def DeviceMotionExecutionMode(self, value: Optional[str]): + if value is None: + if "DeviceMotionExecutionMode" in self._dataset: + del self._dataset.DeviceMotionExecutionMode + else: + self._dataset.DeviceMotionExecutionMode = value + + @property + def DeviceMotionObservationMode(self) -> Optional[str]: + if "DeviceMotionObservationMode" in self._dataset: + return self._dataset.DeviceMotionObservationMode + return None + + @DeviceMotionObservationMode.setter + def DeviceMotionObservationMode(self, value: Optional[str]): + if value is None: + if "DeviceMotionObservationMode" in self._dataset: + del self._dataset.DeviceMotionObservationMode + else: + self._dataset.DeviceMotionObservationMode = value + + @property + def DeviceMotionParameterCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceMotionParameterCodeSequence" in self._dataset: + if len(self._DeviceMotionParameterCodeSequence) == len(self._dataset.DeviceMotionParameterCodeSequence): + return self._DeviceMotionParameterCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceMotionParameterCodeSequence] + return None + + @DeviceMotionParameterCodeSequence.setter + def DeviceMotionParameterCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceMotionParameterCodeSequence = [] + if "DeviceMotionParameterCodeSequence" in self._dataset: + del self._dataset.DeviceMotionParameterCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceMotionParameterCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceMotionParameterCodeSequence = value + if "DeviceMotionParameterCodeSequence" not in self._dataset: + self._dataset.DeviceMotionParameterCodeSequence = pydicom.Sequence() + self._dataset.DeviceMotionParameterCodeSequence.clear() + self._dataset.DeviceMotionParameterCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceMotionParameterCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceMotionParameterCodeSequence.append(item) + if "DeviceMotionParameterCodeSequence" not in self._dataset: + self._dataset.DeviceMotionParameterCodeSequence = pydicom.Sequence() + self._dataset.DeviceMotionParameterCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/device_position_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/device_position_parameter_sequence_item.py new file mode 100644 index 0000000..8bfbcfd --- /dev/null +++ b/tdwii_plus_examples/domain_model/device_position_parameter_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class DevicePositionParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/device_sequence_item.py b/tdwii_plus_examples/domain_model/device_sequence_item.py new file mode 100644 index 0000000..9747629 --- /dev/null +++ b/tdwii_plus_examples/domain_model/device_sequence_item.py @@ -0,0 +1,411 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceID(self) -> Optional[str]: + if "DeviceID" in self._dataset: + return self._dataset.DeviceID + return None + + @DeviceID.setter + def DeviceID(self, value: Optional[str]): + if value is None: + if "DeviceID" in self._dataset: + del self._dataset.DeviceID + else: + self._dataset.DeviceID = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DeviceLength(self) -> Optional[Decimal]: + if "DeviceLength" in self._dataset: + return self._dataset.DeviceLength + return None + + @DeviceLength.setter + def DeviceLength(self, value: Optional[Decimal]): + if value is None: + if "DeviceLength" in self._dataset: + del self._dataset.DeviceLength + else: + self._dataset.DeviceLength = value + + @property + def DeviceDiameter(self) -> Optional[Decimal]: + if "DeviceDiameter" in self._dataset: + return self._dataset.DeviceDiameter + return None + + @DeviceDiameter.setter + def DeviceDiameter(self, value: Optional[Decimal]): + if value is None: + if "DeviceDiameter" in self._dataset: + del self._dataset.DeviceDiameter + else: + self._dataset.DeviceDiameter = value + + @property + def DeviceDiameterUnits(self) -> Optional[str]: + if "DeviceDiameterUnits" in self._dataset: + return self._dataset.DeviceDiameterUnits + return None + + @DeviceDiameterUnits.setter + def DeviceDiameterUnits(self, value: Optional[str]): + if value is None: + if "DeviceDiameterUnits" in self._dataset: + del self._dataset.DeviceDiameterUnits + else: + self._dataset.DeviceDiameterUnits = value + + @property + def DeviceVolume(self) -> Optional[Decimal]: + if "DeviceVolume" in self._dataset: + return self._dataset.DeviceVolume + return None + + @DeviceVolume.setter + def DeviceVolume(self, value: Optional[Decimal]): + if value is None: + if "DeviceVolume" in self._dataset: + del self._dataset.DeviceVolume + else: + self._dataset.DeviceVolume = value + + @property + def InterMarkerDistance(self) -> Optional[Decimal]: + if "InterMarkerDistance" in self._dataset: + return self._dataset.InterMarkerDistance + return None + + @InterMarkerDistance.setter + def InterMarkerDistance(self, value: Optional[Decimal]): + if value is None: + if "InterMarkerDistance" in self._dataset: + del self._dataset.InterMarkerDistance + else: + self._dataset.InterMarkerDistance = value + + @property + def DeviceDescription(self) -> Optional[str]: + if "DeviceDescription" in self._dataset: + return self._dataset.DeviceDescription + return None + + @DeviceDescription.setter + def DeviceDescription(self, value: Optional[str]): + if value is None: + if "DeviceDescription" in self._dataset: + del self._dataset.DeviceDescription + else: + self._dataset.DeviceDescription = value diff --git a/tdwii_plus_examples/domain_model/device_specific_acquisition_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/device_specific_acquisition_parameter_sequence_item.py new file mode 100644 index 0000000..8059f1d --- /dev/null +++ b/tdwii_plus_examples/domain_model/device_specific_acquisition_parameter_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class DeviceSpecificAcquisitionParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/dicom_media_retrieval_sequence_item.py b/tdwii_plus_examples/domain_model/dicom_media_retrieval_sequence_item.py new file mode 100644 index 0000000..0a1b6e1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dicom_media_retrieval_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DICOMMediaRetrievalSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StorageMediaFileSetID(self) -> Optional[str]: + if "StorageMediaFileSetID" in self._dataset: + return self._dataset.StorageMediaFileSetID + return None + + @StorageMediaFileSetID.setter + def StorageMediaFileSetID(self, value: Optional[str]): + if value is None: + if "StorageMediaFileSetID" in self._dataset: + del self._dataset.StorageMediaFileSetID + else: + self._dataset.StorageMediaFileSetID = value + + @property + def StorageMediaFileSetUID(self) -> Optional[str]: + if "StorageMediaFileSetUID" in self._dataset: + return self._dataset.StorageMediaFileSetUID + return None + + @StorageMediaFileSetUID.setter + def StorageMediaFileSetUID(self, value: Optional[str]): + if value is None: + if "StorageMediaFileSetUID" in self._dataset: + del self._dataset.StorageMediaFileSetUID + else: + self._dataset.StorageMediaFileSetUID = value diff --git a/tdwii_plus_examples/domain_model/dicom_retrieval_sequence_item.py b/tdwii_plus_examples/domain_model/dicom_retrieval_sequence_item.py new file mode 100644 index 0000000..96aca70 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dicom_retrieval_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DICOMRetrievalSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RetrieveAETitle(self) -> Optional[List[str]]: + if "RetrieveAETitle" in self._dataset: + return self._dataset.RetrieveAETitle + return None + + @RetrieveAETitle.setter + def RetrieveAETitle(self, value: Optional[List[str]]): + if value is None: + if "RetrieveAETitle" in self._dataset: + del self._dataset.RetrieveAETitle + else: + self._dataset.RetrieveAETitle = value diff --git a/tdwii_plus_examples/domain_model/dicom_storage_sequence_item.py b/tdwii_plus_examples/domain_model/dicom_storage_sequence_item.py new file mode 100644 index 0000000..7305075 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dicom_storage_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DICOMStorageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DestinationAE(self) -> Optional[str]: + if "DestinationAE" in self._dataset: + return self._dataset.DestinationAE + return None + + @DestinationAE.setter + def DestinationAE(self, value: Optional[str]): + if value is None: + if "DestinationAE" in self._dataset: + del self._dataset.DestinationAE + else: + self._dataset.DestinationAE = value diff --git a/tdwii_plus_examples/domain_model/diffusion_b_matrix_sequence_item.py b/tdwii_plus_examples/domain_model/diffusion_b_matrix_sequence_item.py new file mode 100644 index 0000000..d0f9393 --- /dev/null +++ b/tdwii_plus_examples/domain_model/diffusion_b_matrix_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DiffusionBMatrixSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DiffusionBValueXX(self) -> Optional[float]: + if "DiffusionBValueXX" in self._dataset: + return self._dataset.DiffusionBValueXX + return None + + @DiffusionBValueXX.setter + def DiffusionBValueXX(self, value: Optional[float]): + if value is None: + if "DiffusionBValueXX" in self._dataset: + del self._dataset.DiffusionBValueXX + else: + self._dataset.DiffusionBValueXX = value + + @property + def DiffusionBValueXY(self) -> Optional[float]: + if "DiffusionBValueXY" in self._dataset: + return self._dataset.DiffusionBValueXY + return None + + @DiffusionBValueXY.setter + def DiffusionBValueXY(self, value: Optional[float]): + if value is None: + if "DiffusionBValueXY" in self._dataset: + del self._dataset.DiffusionBValueXY + else: + self._dataset.DiffusionBValueXY = value + + @property + def DiffusionBValueXZ(self) -> Optional[float]: + if "DiffusionBValueXZ" in self._dataset: + return self._dataset.DiffusionBValueXZ + return None + + @DiffusionBValueXZ.setter + def DiffusionBValueXZ(self, value: Optional[float]): + if value is None: + if "DiffusionBValueXZ" in self._dataset: + del self._dataset.DiffusionBValueXZ + else: + self._dataset.DiffusionBValueXZ = value + + @property + def DiffusionBValueYY(self) -> Optional[float]: + if "DiffusionBValueYY" in self._dataset: + return self._dataset.DiffusionBValueYY + return None + + @DiffusionBValueYY.setter + def DiffusionBValueYY(self, value: Optional[float]): + if value is None: + if "DiffusionBValueYY" in self._dataset: + del self._dataset.DiffusionBValueYY + else: + self._dataset.DiffusionBValueYY = value + + @property + def DiffusionBValueYZ(self) -> Optional[float]: + if "DiffusionBValueYZ" in self._dataset: + return self._dataset.DiffusionBValueYZ + return None + + @DiffusionBValueYZ.setter + def DiffusionBValueYZ(self, value: Optional[float]): + if value is None: + if "DiffusionBValueYZ" in self._dataset: + del self._dataset.DiffusionBValueYZ + else: + self._dataset.DiffusionBValueYZ = value + + @property + def DiffusionBValueZZ(self) -> Optional[float]: + if "DiffusionBValueZZ" in self._dataset: + return self._dataset.DiffusionBValueZZ + return None + + @DiffusionBValueZZ.setter + def DiffusionBValueZZ(self, value: Optional[float]): + if value is None: + if "DiffusionBValueZZ" in self._dataset: + del self._dataset.DiffusionBValueZZ + else: + self._dataset.DiffusionBValueZZ = value diff --git a/tdwii_plus_examples/domain_model/diffusion_gradient_direction_sequence_item.py b/tdwii_plus_examples/domain_model/diffusion_gradient_direction_sequence_item.py new file mode 100644 index 0000000..49f81cc --- /dev/null +++ b/tdwii_plus_examples/domain_model/diffusion_gradient_direction_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DiffusionGradientDirectionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DiffusionGradientOrientation(self) -> Optional[List[float]]: + if "DiffusionGradientOrientation" in self._dataset: + return self._dataset.DiffusionGradientOrientation + return None + + @DiffusionGradientOrientation.setter + def DiffusionGradientOrientation(self, value: Optional[List[float]]): + if value is None: + if "DiffusionGradientOrientation" in self._dataset: + del self._dataset.DiffusionGradientOrientation + else: + self._dataset.DiffusionGradientOrientation = value diff --git a/tdwii_plus_examples/domain_model/digital_filter_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/digital_filter_characteristics_sequence_item.py new file mode 100644 index 0000000..907ad55 --- /dev/null +++ b/tdwii_plus_examples/domain_model/digital_filter_characteristics_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DigitalFilterCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DigitalFilterTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DigitalFilterOrder(self) -> Optional[int]: + if "DigitalFilterOrder" in self._dataset: + return self._dataset.DigitalFilterOrder + return None + + @DigitalFilterOrder.setter + def DigitalFilterOrder(self, value: Optional[int]): + if value is None: + if "DigitalFilterOrder" in self._dataset: + del self._dataset.DigitalFilterOrder + else: + self._dataset.DigitalFilterOrder = value + + @property + def DigitalFilterTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DigitalFilterTypeCodeSequence" in self._dataset: + if len(self._DigitalFilterTypeCodeSequence) == len(self._dataset.DigitalFilterTypeCodeSequence): + return self._DigitalFilterTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DigitalFilterTypeCodeSequence] + return None + + @DigitalFilterTypeCodeSequence.setter + def DigitalFilterTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DigitalFilterTypeCodeSequence = [] + if "DigitalFilterTypeCodeSequence" in self._dataset: + del self._dataset.DigitalFilterTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DigitalFilterTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DigitalFilterTypeCodeSequence = value + if "DigitalFilterTypeCodeSequence" not in self._dataset: + self._dataset.DigitalFilterTypeCodeSequence = pydicom.Sequence() + self._dataset.DigitalFilterTypeCodeSequence.clear() + self._dataset.DigitalFilterTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalFilterTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DigitalFilterTypeCodeSequence.append(item) + if "DigitalFilterTypeCodeSequence" not in self._dataset: + self._dataset.DigitalFilterTypeCodeSequence = pydicom.Sequence() + self._dataset.DigitalFilterTypeCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/digital_intra_oral_x_ray_image.py b/tdwii_plus_examples/domain_model/digital_intra_oral_x_ray_image.py new file mode 100644 index 0000000..910efa0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/digital_intra_oral_x_ray_image.py @@ -0,0 +1,8520 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .histogram_sequence_item import HistogramSequenceItem +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class DigitalIntraOralXRayImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._HistogramSequence: List[HistogramSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ProjectionEponymousNameCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PlateID(self) -> Optional[str]: + if "PlateID" in self._dataset: + return self._dataset.PlateID + return None + + @PlateID.setter + def PlateID(self, value: Optional[str]): + if value is None: + if "PlateID" in self._dataset: + del self._dataset.PlateID + else: + self._dataset.PlateID = value + + @property + def CassetteID(self) -> Optional[str]: + if "CassetteID" in self._dataset: + return self._dataset.CassetteID + return None + + @CassetteID.setter + def CassetteID(self, value: Optional[str]): + if value is None: + if "CassetteID" in self._dataset: + del self._dataset.CassetteID + else: + self._dataset.CassetteID = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorActiveTime(self) -> Optional[Decimal]: + if "DetectorActiveTime" in self._dataset: + return self._dataset.DetectorActiveTime + return None + + @DetectorActiveTime.setter + def DetectorActiveTime(self, value: Optional[Decimal]): + if value is None: + if "DetectorActiveTime" in self._dataset: + del self._dataset.DetectorActiveTime + else: + self._dataset.DetectorActiveTime = value + + @property + def DetectorActivationOffsetFromExposure(self) -> Optional[Decimal]: + if "DetectorActivationOffsetFromExposure" in self._dataset: + return self._dataset.DetectorActivationOffsetFromExposure + return None + + @DetectorActivationOffsetFromExposure.setter + def DetectorActivationOffsetFromExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorActivationOffsetFromExposure" in self._dataset: + del self._dataset.DetectorActivationOffsetFromExposure + else: + self._dataset.DetectorActivationOffsetFromExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def PresentationIntentType(self) -> Optional[str]: + if "PresentationIntentType" in self._dataset: + return self._dataset.PresentationIntentType + return None + + @PresentationIntentType.setter + def PresentationIntentType(self, value: Optional[str]): + if value is None: + if "PresentationIntentType" in self._dataset: + del self._dataset.PresentationIntentType + else: + self._dataset.PresentationIntentType = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def RelativeXRayExposure(self) -> Optional[int]: + if "RelativeXRayExposure" in self._dataset: + return self._dataset.RelativeXRayExposure + return None + + @RelativeXRayExposure.setter + def RelativeXRayExposure(self, value: Optional[int]): + if value is None: + if "RelativeXRayExposure" in self._dataset: + del self._dataset.RelativeXRayExposure + else: + self._dataset.RelativeXRayExposure = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def EntranceDose(self) -> Optional[int]: + if "EntranceDose" in self._dataset: + return self._dataset.EntranceDose + return None + + @EntranceDose.setter + def EntranceDose(self, value: Optional[int]): + if value is None: + if "EntranceDose" in self._dataset: + del self._dataset.EntranceDose + else: + self._dataset.EntranceDose = value + + @property + def ExposedArea(self) -> Optional[List[int]]: + if "ExposedArea" in self._dataset: + return self._dataset.ExposedArea + return None + + @ExposedArea.setter + def ExposedArea(self, value: Optional[List[int]]): + if value is None: + if "ExposedArea" in self._dataset: + del self._dataset.ExposedArea + else: + self._dataset.ExposedArea = value + + @property + def DistanceSourceToEntrance(self) -> Optional[Decimal]: + if "DistanceSourceToEntrance" in self._dataset: + return self._dataset.DistanceSourceToEntrance + return None + + @DistanceSourceToEntrance.setter + def DistanceSourceToEntrance(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToEntrance" in self._dataset: + del self._dataset.DistanceSourceToEntrance + else: + self._dataset.DistanceSourceToEntrance = value + + @property + def CommentsOnRadiationDose(self) -> Optional[str]: + if "CommentsOnRadiationDose" in self._dataset: + return self._dataset.CommentsOnRadiationDose + return None + + @CommentsOnRadiationDose.setter + def CommentsOnRadiationDose(self, value: Optional[str]): + if value is None: + if "CommentsOnRadiationDose" in self._dataset: + del self._dataset.CommentsOnRadiationDose + else: + self._dataset.CommentsOnRadiationDose = value + + @property + def XRayOutput(self) -> Optional[Decimal]: + if "XRayOutput" in self._dataset: + return self._dataset.XRayOutput + return None + + @XRayOutput.setter + def XRayOutput(self, value: Optional[Decimal]): + if value is None: + if "XRayOutput" in self._dataset: + del self._dataset.XRayOutput + else: + self._dataset.XRayOutput = value + + @property + def HalfValueLayer(self) -> Optional[Decimal]: + if "HalfValueLayer" in self._dataset: + return self._dataset.HalfValueLayer + return None + + @HalfValueLayer.setter + def HalfValueLayer(self, value: Optional[Decimal]): + if value is None: + if "HalfValueLayer" in self._dataset: + del self._dataset.HalfValueLayer + else: + self._dataset.HalfValueLayer = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def OrganExposed(self) -> Optional[str]: + if "OrganExposed" in self._dataset: + return self._dataset.OrganExposed + return None + + @OrganExposed.setter + def OrganExposed(self, value: Optional[str]): + if value is None: + if "OrganExposed" in self._dataset: + del self._dataset.OrganExposed + else: + self._dataset.OrganExposed = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def TomoLayerHeight(self) -> Optional[Decimal]: + if "TomoLayerHeight" in self._dataset: + return self._dataset.TomoLayerHeight + return None + + @TomoLayerHeight.setter + def TomoLayerHeight(self, value: Optional[Decimal]): + if value is None: + if "TomoLayerHeight" in self._dataset: + del self._dataset.TomoLayerHeight + else: + self._dataset.TomoLayerHeight = value + + @property + def TomoAngle(self) -> Optional[Decimal]: + if "TomoAngle" in self._dataset: + return self._dataset.TomoAngle + return None + + @TomoAngle.setter + def TomoAngle(self, value: Optional[Decimal]): + if value is None: + if "TomoAngle" in self._dataset: + del self._dataset.TomoAngle + else: + self._dataset.TomoAngle = value + + @property + def TomoTime(self) -> Optional[Decimal]: + if "TomoTime" in self._dataset: + return self._dataset.TomoTime + return None + + @TomoTime.setter + def TomoTime(self, value: Optional[Decimal]): + if value is None: + if "TomoTime" in self._dataset: + del self._dataset.TomoTime + else: + self._dataset.TomoTime = value + + @property + def TomoType(self) -> Optional[str]: + if "TomoType" in self._dataset: + return self._dataset.TomoType + return None + + @TomoType.setter + def TomoType(self, value: Optional[str]): + if value is None: + if "TomoType" in self._dataset: + del self._dataset.TomoType + else: + self._dataset.TomoType = value + + @property + def TomoClass(self) -> Optional[str]: + if "TomoClass" in self._dataset: + return self._dataset.TomoClass + return None + + @TomoClass.setter + def TomoClass(self, value: Optional[str]): + if value is None: + if "TomoClass" in self._dataset: + del self._dataset.TomoClass + else: + self._dataset.TomoClass = value + + @property + def NumberOfTomosynthesisSourceImages(self) -> Optional[int]: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + return self._dataset.NumberOfTomosynthesisSourceImages + return None + + @NumberOfTomosynthesisSourceImages.setter + def NumberOfTomosynthesisSourceImages(self, value: Optional[int]): + if value is None: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + del self._dataset.NumberOfTomosynthesisSourceImages + else: + self._dataset.NumberOfTomosynthesisSourceImages = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def HistogramSequence(self) -> Optional[List[HistogramSequenceItem]]: + if "HistogramSequence" in self._dataset: + if len(self._HistogramSequence) == len(self._dataset.HistogramSequence): + return self._HistogramSequence + else: + return [HistogramSequenceItem(x) for x in self._dataset.HistogramSequence] + return None + + @HistogramSequence.setter + def HistogramSequence(self, value: Optional[List[HistogramSequenceItem]]): + if value is None: + self._HistogramSequence = [] + if "HistogramSequence" in self._dataset: + del self._dataset.HistogramSequence + elif not isinstance(value, list) or not all(isinstance(item, HistogramSequenceItem) for item in value): + raise ValueError("HistogramSequence must be a list of HistogramSequenceItem objects") + else: + self._HistogramSequence = value + if "HistogramSequence" not in self._dataset: + self._dataset.HistogramSequence = pydicom.Sequence() + self._dataset.HistogramSequence.clear() + self._dataset.HistogramSequence.extend([item.to_dataset() for item in value]) + + def add_Histogram(self, item: HistogramSequenceItem): + if not isinstance(item, HistogramSequenceItem): + raise ValueError("Item must be an instance of HistogramSequenceItem") + self._HistogramSequence.append(item) + if "HistogramSequence" not in self._dataset: + self._dataset.HistogramSequence = pydicom.Sequence() + self._dataset.HistogramSequence.append(item.to_dataset()) + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def GeneratorID(self) -> Optional[str]: + if "GeneratorID" in self._dataset: + return self._dataset.GeneratorID + return None + + @GeneratorID.setter + def GeneratorID(self, value: Optional[str]): + if value is None: + if "GeneratorID" in self._dataset: + del self._dataset.GeneratorID + else: + self._dataset.GeneratorID = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def ExposureControlMode(self) -> Optional[str]: + if "ExposureControlMode" in self._dataset: + return self._dataset.ExposureControlMode + return None + + @ExposureControlMode.setter + def ExposureControlMode(self, value: Optional[str]): + if value is None: + if "ExposureControlMode" in self._dataset: + del self._dataset.ExposureControlMode + else: + self._dataset.ExposureControlMode = value + + @property + def ExposureControlModeDescription(self) -> Optional[str]: + if "ExposureControlModeDescription" in self._dataset: + return self._dataset.ExposureControlModeDescription + return None + + @ExposureControlModeDescription.setter + def ExposureControlModeDescription(self, value: Optional[str]): + if value is None: + if "ExposureControlModeDescription" in self._dataset: + del self._dataset.ExposureControlModeDescription + else: + self._dataset.ExposureControlModeDescription = value + + @property + def ExposureStatus(self) -> Optional[str]: + if "ExposureStatus" in self._dataset: + return self._dataset.ExposureStatus + return None + + @ExposureStatus.setter + def ExposureStatus(self, value: Optional[str]): + if value is None: + if "ExposureStatus" in self._dataset: + del self._dataset.ExposureStatus + else: + self._dataset.ExposureStatus = value + + @property + def PhototimerSetting(self) -> Optional[Decimal]: + if "PhototimerSetting" in self._dataset: + return self._dataset.PhototimerSetting + return None + + @PhototimerSetting.setter + def PhototimerSetting(self, value: Optional[Decimal]): + if value is None: + if "PhototimerSetting" in self._dataset: + del self._dataset.PhototimerSetting + else: + self._dataset.PhototimerSetting = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def EstimatedRadiographicMagnificationFactor(self) -> Optional[Decimal]: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + return self._dataset.EstimatedRadiographicMagnificationFactor + return None + + @EstimatedRadiographicMagnificationFactor.setter + def EstimatedRadiographicMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + del self._dataset.EstimatedRadiographicMagnificationFactor + else: + self._dataset.EstimatedRadiographicMagnificationFactor = value + + @property + def TableAngle(self) -> Optional[Decimal]: + if "TableAngle" in self._dataset: + return self._dataset.TableAngle + return None + + @TableAngle.setter + def TableAngle(self, value: Optional[Decimal]): + if value is None: + if "TableAngle" in self._dataset: + del self._dataset.TableAngle + else: + self._dataset.TableAngle = value + + @property + def TableType(self) -> Optional[str]: + if "TableType" in self._dataset: + return self._dataset.TableType + return None + + @TableType.setter + def TableType(self, value: Optional[str]): + if value is None: + if "TableType" in self._dataset: + del self._dataset.TableType + else: + self._dataset.TableType = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def CompressionForce(self) -> Optional[Decimal]: + if "CompressionForce" in self._dataset: + return self._dataset.CompressionForce + return None + + @CompressionForce.setter + def CompressionForce(self, value: Optional[Decimal]): + if value is None: + if "CompressionForce" in self._dataset: + del self._dataset.CompressionForce + else: + self._dataset.CompressionForce = value + + @property + def CompressionPressure(self) -> Optional[Decimal]: + if "CompressionPressure" in self._dataset: + return self._dataset.CompressionPressure + return None + + @CompressionPressure.setter + def CompressionPressure(self, value: Optional[Decimal]): + if value is None: + if "CompressionPressure" in self._dataset: + del self._dataset.CompressionPressure + else: + self._dataset.CompressionPressure = value + + @property + def PaddleDescription(self) -> Optional[str]: + if "PaddleDescription" in self._dataset: + return self._dataset.PaddleDescription + return None + + @PaddleDescription.setter + def PaddleDescription(self, value: Optional[str]): + if value is None: + if "PaddleDescription" in self._dataset: + del self._dataset.PaddleDescription + else: + self._dataset.PaddleDescription = value + + @property + def CompressionContactArea(self) -> Optional[Decimal]: + if "CompressionContactArea" in self._dataset: + return self._dataset.CompressionContactArea + return None + + @CompressionContactArea.setter + def CompressionContactArea(self, value: Optional[Decimal]): + if value is None: + if "CompressionContactArea" in self._dataset: + del self._dataset.CompressionContactArea + else: + self._dataset.CompressionContactArea = value + + @property + def ColumnAngulation(self) -> Optional[Decimal]: + if "ColumnAngulation" in self._dataset: + return self._dataset.ColumnAngulation + return None + + @ColumnAngulation.setter + def ColumnAngulation(self, value: Optional[Decimal]): + if value is None: + if "ColumnAngulation" in self._dataset: + del self._dataset.ColumnAngulation + else: + self._dataset.ColumnAngulation = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def DetectorPrimaryAngle(self) -> Optional[Decimal]: + if "DetectorPrimaryAngle" in self._dataset: + return self._dataset.DetectorPrimaryAngle + return None + + @DetectorPrimaryAngle.setter + def DetectorPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorPrimaryAngle" in self._dataset: + del self._dataset.DetectorPrimaryAngle + else: + self._dataset.DetectorPrimaryAngle = value + + @property + def DetectorSecondaryAngle(self) -> Optional[Decimal]: + if "DetectorSecondaryAngle" in self._dataset: + return self._dataset.DetectorSecondaryAngle + return None + + @DetectorSecondaryAngle.setter + def DetectorSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorSecondaryAngle" in self._dataset: + del self._dataset.DetectorSecondaryAngle + else: + self._dataset.DetectorSecondaryAngle = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def ViewPosition(self) -> Optional[str]: + if "ViewPosition" in self._dataset: + return self._dataset.ViewPosition + return None + + @ViewPosition.setter + def ViewPosition(self, value: Optional[str]): + if value is None: + if "ViewPosition" in self._dataset: + del self._dataset.ViewPosition + else: + self._dataset.ViewPosition = value + + @property + def ProjectionEponymousNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProjectionEponymousNameCodeSequence" in self._dataset: + if len(self._ProjectionEponymousNameCodeSequence) == len(self._dataset.ProjectionEponymousNameCodeSequence): + return self._ProjectionEponymousNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProjectionEponymousNameCodeSequence] + return None + + @ProjectionEponymousNameCodeSequence.setter + def ProjectionEponymousNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProjectionEponymousNameCodeSequence = [] + if "ProjectionEponymousNameCodeSequence" in self._dataset: + del self._dataset.ProjectionEponymousNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProjectionEponymousNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProjectionEponymousNameCodeSequence = value + if "ProjectionEponymousNameCodeSequence" not in self._dataset: + self._dataset.ProjectionEponymousNameCodeSequence = pydicom.Sequence() + self._dataset.ProjectionEponymousNameCodeSequence.clear() + self._dataset.ProjectionEponymousNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProjectionEponymousNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProjectionEponymousNameCodeSequence.append(item) + if "ProjectionEponymousNameCodeSequence" not in self._dataset: + self._dataset.ProjectionEponymousNameCodeSequence = pydicom.Sequence() + self._dataset.ProjectionEponymousNameCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def PixelIntensityRelationshipSign(self) -> Optional[int]: + if "PixelIntensityRelationshipSign" in self._dataset: + return self._dataset.PixelIntensityRelationshipSign + return None + + @PixelIntensityRelationshipSign.setter + def PixelIntensityRelationshipSign(self, value: Optional[int]): + if value is None: + if "PixelIntensityRelationshipSign" in self._dataset: + del self._dataset.PixelIntensityRelationshipSign + else: + self._dataset.PixelIntensityRelationshipSign = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/digital_mammography_x_ray_image.py b/tdwii_plus_examples/domain_model/digital_mammography_x_ray_image.py new file mode 100644 index 0000000..cb73e87 --- /dev/null +++ b/tdwii_plus_examples/domain_model/digital_mammography_x_ray_image.py @@ -0,0 +1,8775 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .biopsy_target_sequence_item import BiopsyTargetSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .histogram_sequence_item import HistogramSequenceItem +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class DigitalMammographyXRayImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._BiopsyTargetSequence: List[BiopsyTargetSequenceItem] = [] + self._PartialViewCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._HistogramSequence: List[HistogramSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ProjectionEponymousNameCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PlateID(self) -> Optional[str]: + if "PlateID" in self._dataset: + return self._dataset.PlateID + return None + + @PlateID.setter + def PlateID(self, value: Optional[str]): + if value is None: + if "PlateID" in self._dataset: + del self._dataset.PlateID + else: + self._dataset.PlateID = value + + @property + def CassetteID(self) -> Optional[str]: + if "CassetteID" in self._dataset: + return self._dataset.CassetteID + return None + + @CassetteID.setter + def CassetteID(self, value: Optional[str]): + if value is None: + if "CassetteID" in self._dataset: + del self._dataset.CassetteID + else: + self._dataset.CassetteID = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorActiveTime(self) -> Optional[Decimal]: + if "DetectorActiveTime" in self._dataset: + return self._dataset.DetectorActiveTime + return None + + @DetectorActiveTime.setter + def DetectorActiveTime(self, value: Optional[Decimal]): + if value is None: + if "DetectorActiveTime" in self._dataset: + del self._dataset.DetectorActiveTime + else: + self._dataset.DetectorActiveTime = value + + @property + def DetectorActivationOffsetFromExposure(self) -> Optional[Decimal]: + if "DetectorActivationOffsetFromExposure" in self._dataset: + return self._dataset.DetectorActivationOffsetFromExposure + return None + + @DetectorActivationOffsetFromExposure.setter + def DetectorActivationOffsetFromExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorActivationOffsetFromExposure" in self._dataset: + del self._dataset.DetectorActivationOffsetFromExposure + else: + self._dataset.DetectorActivationOffsetFromExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def PresentationIntentType(self) -> Optional[str]: + if "PresentationIntentType" in self._dataset: + return self._dataset.PresentationIntentType + return None + + @PresentationIntentType.setter + def PresentationIntentType(self, value: Optional[str]): + if value is None: + if "PresentationIntentType" in self._dataset: + del self._dataset.PresentationIntentType + else: + self._dataset.PresentationIntentType = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def RelativeXRayExposure(self) -> Optional[int]: + if "RelativeXRayExposure" in self._dataset: + return self._dataset.RelativeXRayExposure + return None + + @RelativeXRayExposure.setter + def RelativeXRayExposure(self, value: Optional[int]): + if value is None: + if "RelativeXRayExposure" in self._dataset: + del self._dataset.RelativeXRayExposure + else: + self._dataset.RelativeXRayExposure = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def EntranceDose(self) -> Optional[int]: + if "EntranceDose" in self._dataset: + return self._dataset.EntranceDose + return None + + @EntranceDose.setter + def EntranceDose(self, value: Optional[int]): + if value is None: + if "EntranceDose" in self._dataset: + del self._dataset.EntranceDose + else: + self._dataset.EntranceDose = value + + @property + def ExposedArea(self) -> Optional[List[int]]: + if "ExposedArea" in self._dataset: + return self._dataset.ExposedArea + return None + + @ExposedArea.setter + def ExposedArea(self, value: Optional[List[int]]): + if value is None: + if "ExposedArea" in self._dataset: + del self._dataset.ExposedArea + else: + self._dataset.ExposedArea = value + + @property + def DistanceSourceToEntrance(self) -> Optional[Decimal]: + if "DistanceSourceToEntrance" in self._dataset: + return self._dataset.DistanceSourceToEntrance + return None + + @DistanceSourceToEntrance.setter + def DistanceSourceToEntrance(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToEntrance" in self._dataset: + del self._dataset.DistanceSourceToEntrance + else: + self._dataset.DistanceSourceToEntrance = value + + @property + def CommentsOnRadiationDose(self) -> Optional[str]: + if "CommentsOnRadiationDose" in self._dataset: + return self._dataset.CommentsOnRadiationDose + return None + + @CommentsOnRadiationDose.setter + def CommentsOnRadiationDose(self, value: Optional[str]): + if value is None: + if "CommentsOnRadiationDose" in self._dataset: + del self._dataset.CommentsOnRadiationDose + else: + self._dataset.CommentsOnRadiationDose = value + + @property + def XRayOutput(self) -> Optional[Decimal]: + if "XRayOutput" in self._dataset: + return self._dataset.XRayOutput + return None + + @XRayOutput.setter + def XRayOutput(self, value: Optional[Decimal]): + if value is None: + if "XRayOutput" in self._dataset: + del self._dataset.XRayOutput + else: + self._dataset.XRayOutput = value + + @property + def HalfValueLayer(self) -> Optional[Decimal]: + if "HalfValueLayer" in self._dataset: + return self._dataset.HalfValueLayer + return None + + @HalfValueLayer.setter + def HalfValueLayer(self, value: Optional[Decimal]): + if value is None: + if "HalfValueLayer" in self._dataset: + del self._dataset.HalfValueLayer + else: + self._dataset.HalfValueLayer = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def OrganExposed(self) -> Optional[str]: + if "OrganExposed" in self._dataset: + return self._dataset.OrganExposed + return None + + @OrganExposed.setter + def OrganExposed(self, value: Optional[str]): + if value is None: + if "OrganExposed" in self._dataset: + del self._dataset.OrganExposed + else: + self._dataset.OrganExposed = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def TomoLayerHeight(self) -> Optional[Decimal]: + if "TomoLayerHeight" in self._dataset: + return self._dataset.TomoLayerHeight + return None + + @TomoLayerHeight.setter + def TomoLayerHeight(self, value: Optional[Decimal]): + if value is None: + if "TomoLayerHeight" in self._dataset: + del self._dataset.TomoLayerHeight + else: + self._dataset.TomoLayerHeight = value + + @property + def TomoAngle(self) -> Optional[Decimal]: + if "TomoAngle" in self._dataset: + return self._dataset.TomoAngle + return None + + @TomoAngle.setter + def TomoAngle(self, value: Optional[Decimal]): + if value is None: + if "TomoAngle" in self._dataset: + del self._dataset.TomoAngle + else: + self._dataset.TomoAngle = value + + @property + def TomoTime(self) -> Optional[Decimal]: + if "TomoTime" in self._dataset: + return self._dataset.TomoTime + return None + + @TomoTime.setter + def TomoTime(self, value: Optional[Decimal]): + if value is None: + if "TomoTime" in self._dataset: + del self._dataset.TomoTime + else: + self._dataset.TomoTime = value + + @property + def TomoType(self) -> Optional[str]: + if "TomoType" in self._dataset: + return self._dataset.TomoType + return None + + @TomoType.setter + def TomoType(self, value: Optional[str]): + if value is None: + if "TomoType" in self._dataset: + del self._dataset.TomoType + else: + self._dataset.TomoType = value + + @property + def TomoClass(self) -> Optional[str]: + if "TomoClass" in self._dataset: + return self._dataset.TomoClass + return None + + @TomoClass.setter + def TomoClass(self, value: Optional[str]): + if value is None: + if "TomoClass" in self._dataset: + del self._dataset.TomoClass + else: + self._dataset.TomoClass = value + + @property + def NumberOfTomosynthesisSourceImages(self) -> Optional[int]: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + return self._dataset.NumberOfTomosynthesisSourceImages + return None + + @NumberOfTomosynthesisSourceImages.setter + def NumberOfTomosynthesisSourceImages(self, value: Optional[int]): + if value is None: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + del self._dataset.NumberOfTomosynthesisSourceImages + else: + self._dataset.NumberOfTomosynthesisSourceImages = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def BiopsyTargetSequence(self) -> Optional[List[BiopsyTargetSequenceItem]]: + if "BiopsyTargetSequence" in self._dataset: + if len(self._BiopsyTargetSequence) == len(self._dataset.BiopsyTargetSequence): + return self._BiopsyTargetSequence + else: + return [BiopsyTargetSequenceItem(x) for x in self._dataset.BiopsyTargetSequence] + return None + + @BiopsyTargetSequence.setter + def BiopsyTargetSequence(self, value: Optional[List[BiopsyTargetSequenceItem]]): + if value is None: + self._BiopsyTargetSequence = [] + if "BiopsyTargetSequence" in self._dataset: + del self._dataset.BiopsyTargetSequence + elif not isinstance(value, list) or not all(isinstance(item, BiopsyTargetSequenceItem) for item in value): + raise ValueError("BiopsyTargetSequence must be a list of BiopsyTargetSequenceItem objects") + else: + self._BiopsyTargetSequence = value + if "BiopsyTargetSequence" not in self._dataset: + self._dataset.BiopsyTargetSequence = pydicom.Sequence() + self._dataset.BiopsyTargetSequence.clear() + self._dataset.BiopsyTargetSequence.extend([item.to_dataset() for item in value]) + + def add_BiopsyTarget(self, item: BiopsyTargetSequenceItem): + if not isinstance(item, BiopsyTargetSequenceItem): + raise ValueError("Item must be an instance of BiopsyTargetSequenceItem") + self._BiopsyTargetSequence.append(item) + if "BiopsyTargetSequence" not in self._dataset: + self._dataset.BiopsyTargetSequence = pydicom.Sequence() + self._dataset.BiopsyTargetSequence.append(item.to_dataset()) + + @property + def PositionerPrimaryAngleDirection(self) -> Optional[str]: + if "PositionerPrimaryAngleDirection" in self._dataset: + return self._dataset.PositionerPrimaryAngleDirection + return None + + @PositionerPrimaryAngleDirection.setter + def PositionerPrimaryAngleDirection(self, value: Optional[str]): + if value is None: + if "PositionerPrimaryAngleDirection" in self._dataset: + del self._dataset.PositionerPrimaryAngleDirection + else: + self._dataset.PositionerPrimaryAngleDirection = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def BreastImplantPresent(self) -> Optional[str]: + if "BreastImplantPresent" in self._dataset: + return self._dataset.BreastImplantPresent + return None + + @BreastImplantPresent.setter + def BreastImplantPresent(self, value: Optional[str]): + if value is None: + if "BreastImplantPresent" in self._dataset: + del self._dataset.BreastImplantPresent + else: + self._dataset.BreastImplantPresent = value + + @property + def PartialView(self) -> Optional[str]: + if "PartialView" in self._dataset: + return self._dataset.PartialView + return None + + @PartialView.setter + def PartialView(self, value: Optional[str]): + if value is None: + if "PartialView" in self._dataset: + del self._dataset.PartialView + else: + self._dataset.PartialView = value + + @property + def PartialViewDescription(self) -> Optional[str]: + if "PartialViewDescription" in self._dataset: + return self._dataset.PartialViewDescription + return None + + @PartialViewDescription.setter + def PartialViewDescription(self, value: Optional[str]): + if value is None: + if "PartialViewDescription" in self._dataset: + del self._dataset.PartialViewDescription + else: + self._dataset.PartialViewDescription = value + + @property + def PartialViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PartialViewCodeSequence" in self._dataset: + if len(self._PartialViewCodeSequence) == len(self._dataset.PartialViewCodeSequence): + return self._PartialViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PartialViewCodeSequence] + return None + + @PartialViewCodeSequence.setter + def PartialViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PartialViewCodeSequence = [] + if "PartialViewCodeSequence" in self._dataset: + del self._dataset.PartialViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PartialViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PartialViewCodeSequence = value + if "PartialViewCodeSequence" not in self._dataset: + self._dataset.PartialViewCodeSequence = pydicom.Sequence() + self._dataset.PartialViewCodeSequence.clear() + self._dataset.PartialViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PartialViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PartialViewCodeSequence.append(item) + if "PartialViewCodeSequence" not in self._dataset: + self._dataset.PartialViewCodeSequence = pydicom.Sequence() + self._dataset.PartialViewCodeSequence.append(item.to_dataset()) + + @property + def OrganExposed(self) -> Optional[str]: + if "OrganExposed" in self._dataset: + return self._dataset.OrganExposed + return None + + @OrganExposed.setter + def OrganExposed(self, value: Optional[str]): + if value is None: + if "OrganExposed" in self._dataset: + del self._dataset.OrganExposed + else: + self._dataset.OrganExposed = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def HistogramSequence(self) -> Optional[List[HistogramSequenceItem]]: + if "HistogramSequence" in self._dataset: + if len(self._HistogramSequence) == len(self._dataset.HistogramSequence): + return self._HistogramSequence + else: + return [HistogramSequenceItem(x) for x in self._dataset.HistogramSequence] + return None + + @HistogramSequence.setter + def HistogramSequence(self, value: Optional[List[HistogramSequenceItem]]): + if value is None: + self._HistogramSequence = [] + if "HistogramSequence" in self._dataset: + del self._dataset.HistogramSequence + elif not isinstance(value, list) or not all(isinstance(item, HistogramSequenceItem) for item in value): + raise ValueError("HistogramSequence must be a list of HistogramSequenceItem objects") + else: + self._HistogramSequence = value + if "HistogramSequence" not in self._dataset: + self._dataset.HistogramSequence = pydicom.Sequence() + self._dataset.HistogramSequence.clear() + self._dataset.HistogramSequence.extend([item.to_dataset() for item in value]) + + def add_Histogram(self, item: HistogramSequenceItem): + if not isinstance(item, HistogramSequenceItem): + raise ValueError("Item must be an instance of HistogramSequenceItem") + self._HistogramSequence.append(item) + if "HistogramSequence" not in self._dataset: + self._dataset.HistogramSequence = pydicom.Sequence() + self._dataset.HistogramSequence.append(item.to_dataset()) + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def GeneratorID(self) -> Optional[str]: + if "GeneratorID" in self._dataset: + return self._dataset.GeneratorID + return None + + @GeneratorID.setter + def GeneratorID(self, value: Optional[str]): + if value is None: + if "GeneratorID" in self._dataset: + del self._dataset.GeneratorID + else: + self._dataset.GeneratorID = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def ExposureControlMode(self) -> Optional[str]: + if "ExposureControlMode" in self._dataset: + return self._dataset.ExposureControlMode + return None + + @ExposureControlMode.setter + def ExposureControlMode(self, value: Optional[str]): + if value is None: + if "ExposureControlMode" in self._dataset: + del self._dataset.ExposureControlMode + else: + self._dataset.ExposureControlMode = value + + @property + def ExposureControlModeDescription(self) -> Optional[str]: + if "ExposureControlModeDescription" in self._dataset: + return self._dataset.ExposureControlModeDescription + return None + + @ExposureControlModeDescription.setter + def ExposureControlModeDescription(self, value: Optional[str]): + if value is None: + if "ExposureControlModeDescription" in self._dataset: + del self._dataset.ExposureControlModeDescription + else: + self._dataset.ExposureControlModeDescription = value + + @property + def ExposureStatus(self) -> Optional[str]: + if "ExposureStatus" in self._dataset: + return self._dataset.ExposureStatus + return None + + @ExposureStatus.setter + def ExposureStatus(self, value: Optional[str]): + if value is None: + if "ExposureStatus" in self._dataset: + del self._dataset.ExposureStatus + else: + self._dataset.ExposureStatus = value + + @property + def PhototimerSetting(self) -> Optional[Decimal]: + if "PhototimerSetting" in self._dataset: + return self._dataset.PhototimerSetting + return None + + @PhototimerSetting.setter + def PhototimerSetting(self, value: Optional[Decimal]): + if value is None: + if "PhototimerSetting" in self._dataset: + del self._dataset.PhototimerSetting + else: + self._dataset.PhototimerSetting = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def EstimatedRadiographicMagnificationFactor(self) -> Optional[Decimal]: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + return self._dataset.EstimatedRadiographicMagnificationFactor + return None + + @EstimatedRadiographicMagnificationFactor.setter + def EstimatedRadiographicMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + del self._dataset.EstimatedRadiographicMagnificationFactor + else: + self._dataset.EstimatedRadiographicMagnificationFactor = value + + @property + def TableAngle(self) -> Optional[Decimal]: + if "TableAngle" in self._dataset: + return self._dataset.TableAngle + return None + + @TableAngle.setter + def TableAngle(self, value: Optional[Decimal]): + if value is None: + if "TableAngle" in self._dataset: + del self._dataset.TableAngle + else: + self._dataset.TableAngle = value + + @property + def TableType(self) -> Optional[str]: + if "TableType" in self._dataset: + return self._dataset.TableType + return None + + @TableType.setter + def TableType(self, value: Optional[str]): + if value is None: + if "TableType" in self._dataset: + del self._dataset.TableType + else: + self._dataset.TableType = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def CompressionForce(self) -> Optional[Decimal]: + if "CompressionForce" in self._dataset: + return self._dataset.CompressionForce + return None + + @CompressionForce.setter + def CompressionForce(self, value: Optional[Decimal]): + if value is None: + if "CompressionForce" in self._dataset: + del self._dataset.CompressionForce + else: + self._dataset.CompressionForce = value + + @property + def CompressionPressure(self) -> Optional[Decimal]: + if "CompressionPressure" in self._dataset: + return self._dataset.CompressionPressure + return None + + @CompressionPressure.setter + def CompressionPressure(self, value: Optional[Decimal]): + if value is None: + if "CompressionPressure" in self._dataset: + del self._dataset.CompressionPressure + else: + self._dataset.CompressionPressure = value + + @property + def PaddleDescription(self) -> Optional[str]: + if "PaddleDescription" in self._dataset: + return self._dataset.PaddleDescription + return None + + @PaddleDescription.setter + def PaddleDescription(self, value: Optional[str]): + if value is None: + if "PaddleDescription" in self._dataset: + del self._dataset.PaddleDescription + else: + self._dataset.PaddleDescription = value + + @property + def CompressionContactArea(self) -> Optional[Decimal]: + if "CompressionContactArea" in self._dataset: + return self._dataset.CompressionContactArea + return None + + @CompressionContactArea.setter + def CompressionContactArea(self, value: Optional[Decimal]): + if value is None: + if "CompressionContactArea" in self._dataset: + del self._dataset.CompressionContactArea + else: + self._dataset.CompressionContactArea = value + + @property + def ColumnAngulation(self) -> Optional[Decimal]: + if "ColumnAngulation" in self._dataset: + return self._dataset.ColumnAngulation + return None + + @ColumnAngulation.setter + def ColumnAngulation(self, value: Optional[Decimal]): + if value is None: + if "ColumnAngulation" in self._dataset: + del self._dataset.ColumnAngulation + else: + self._dataset.ColumnAngulation = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def DetectorPrimaryAngle(self) -> Optional[Decimal]: + if "DetectorPrimaryAngle" in self._dataset: + return self._dataset.DetectorPrimaryAngle + return None + + @DetectorPrimaryAngle.setter + def DetectorPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorPrimaryAngle" in self._dataset: + del self._dataset.DetectorPrimaryAngle + else: + self._dataset.DetectorPrimaryAngle = value + + @property + def DetectorSecondaryAngle(self) -> Optional[Decimal]: + if "DetectorSecondaryAngle" in self._dataset: + return self._dataset.DetectorSecondaryAngle + return None + + @DetectorSecondaryAngle.setter + def DetectorSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorSecondaryAngle" in self._dataset: + del self._dataset.DetectorSecondaryAngle + else: + self._dataset.DetectorSecondaryAngle = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def ViewPosition(self) -> Optional[str]: + if "ViewPosition" in self._dataset: + return self._dataset.ViewPosition + return None + + @ViewPosition.setter + def ViewPosition(self, value: Optional[str]): + if value is None: + if "ViewPosition" in self._dataset: + del self._dataset.ViewPosition + else: + self._dataset.ViewPosition = value + + @property + def ProjectionEponymousNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProjectionEponymousNameCodeSequence" in self._dataset: + if len(self._ProjectionEponymousNameCodeSequence) == len(self._dataset.ProjectionEponymousNameCodeSequence): + return self._ProjectionEponymousNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProjectionEponymousNameCodeSequence] + return None + + @ProjectionEponymousNameCodeSequence.setter + def ProjectionEponymousNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProjectionEponymousNameCodeSequence = [] + if "ProjectionEponymousNameCodeSequence" in self._dataset: + del self._dataset.ProjectionEponymousNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProjectionEponymousNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProjectionEponymousNameCodeSequence = value + if "ProjectionEponymousNameCodeSequence" not in self._dataset: + self._dataset.ProjectionEponymousNameCodeSequence = pydicom.Sequence() + self._dataset.ProjectionEponymousNameCodeSequence.clear() + self._dataset.ProjectionEponymousNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProjectionEponymousNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProjectionEponymousNameCodeSequence.append(item) + if "ProjectionEponymousNameCodeSequence" not in self._dataset: + self._dataset.ProjectionEponymousNameCodeSequence = pydicom.Sequence() + self._dataset.ProjectionEponymousNameCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def PixelIntensityRelationshipSign(self) -> Optional[int]: + if "PixelIntensityRelationshipSign" in self._dataset: + return self._dataset.PixelIntensityRelationshipSign + return None + + @PixelIntensityRelationshipSign.setter + def PixelIntensityRelationshipSign(self, value: Optional[int]): + if value is None: + if "PixelIntensityRelationshipSign" in self._dataset: + del self._dataset.PixelIntensityRelationshipSign + else: + self._dataset.PixelIntensityRelationshipSign = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/digital_signatures_sequence_item.py b/tdwii_plus_examples/domain_model/digital_signatures_sequence_item.py new file mode 100644 index 0000000..dc85fed --- /dev/null +++ b/tdwii_plus_examples/domain_model/digital_signatures_sequence_item.py @@ -0,0 +1,158 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class DigitalSignaturesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DigitalSignaturePurposeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MACIDNumber(self) -> Optional[int]: + if "MACIDNumber" in self._dataset: + return self._dataset.MACIDNumber + return None + + @MACIDNumber.setter + def MACIDNumber(self, value: Optional[int]): + if value is None: + if "MACIDNumber" in self._dataset: + del self._dataset.MACIDNumber + else: + self._dataset.MACIDNumber = value + + @property + def DigitalSignatureUID(self) -> Optional[str]: + if "DigitalSignatureUID" in self._dataset: + return self._dataset.DigitalSignatureUID + return None + + @DigitalSignatureUID.setter + def DigitalSignatureUID(self, value: Optional[str]): + if value is None: + if "DigitalSignatureUID" in self._dataset: + del self._dataset.DigitalSignatureUID + else: + self._dataset.DigitalSignatureUID = value + + @property + def DigitalSignatureDateTime(self) -> Optional[str]: + if "DigitalSignatureDateTime" in self._dataset: + return self._dataset.DigitalSignatureDateTime + return None + + @DigitalSignatureDateTime.setter + def DigitalSignatureDateTime(self, value: Optional[str]): + if value is None: + if "DigitalSignatureDateTime" in self._dataset: + del self._dataset.DigitalSignatureDateTime + else: + self._dataset.DigitalSignatureDateTime = value + + @property + def CertificateType(self) -> Optional[str]: + if "CertificateType" in self._dataset: + return self._dataset.CertificateType + return None + + @CertificateType.setter + def CertificateType(self, value: Optional[str]): + if value is None: + if "CertificateType" in self._dataset: + del self._dataset.CertificateType + else: + self._dataset.CertificateType = value + + @property + def CertificateOfSigner(self) -> Optional[bytes]: + if "CertificateOfSigner" in self._dataset: + return self._dataset.CertificateOfSigner + return None + + @CertificateOfSigner.setter + def CertificateOfSigner(self, value: Optional[bytes]): + if value is None: + if "CertificateOfSigner" in self._dataset: + del self._dataset.CertificateOfSigner + else: + self._dataset.CertificateOfSigner = value + + @property + def Signature(self) -> Optional[bytes]: + if "Signature" in self._dataset: + return self._dataset.Signature + return None + + @Signature.setter + def Signature(self, value: Optional[bytes]): + if value is None: + if "Signature" in self._dataset: + del self._dataset.Signature + else: + self._dataset.Signature = value + + @property + def CertifiedTimestampType(self) -> Optional[str]: + if "CertifiedTimestampType" in self._dataset: + return self._dataset.CertifiedTimestampType + return None + + @CertifiedTimestampType.setter + def CertifiedTimestampType(self, value: Optional[str]): + if value is None: + if "CertifiedTimestampType" in self._dataset: + del self._dataset.CertifiedTimestampType + else: + self._dataset.CertifiedTimestampType = value + + @property + def CertifiedTimestamp(self) -> Optional[bytes]: + if "CertifiedTimestamp" in self._dataset: + return self._dataset.CertifiedTimestamp + return None + + @CertifiedTimestamp.setter + def CertifiedTimestamp(self, value: Optional[bytes]): + if value is None: + if "CertifiedTimestamp" in self._dataset: + del self._dataset.CertifiedTimestamp + else: + self._dataset.CertifiedTimestamp = value + + @property + def DigitalSignaturePurposeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DigitalSignaturePurposeCodeSequence" in self._dataset: + if len(self._DigitalSignaturePurposeCodeSequence) == len(self._dataset.DigitalSignaturePurposeCodeSequence): + return self._DigitalSignaturePurposeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DigitalSignaturePurposeCodeSequence] + return None + + @DigitalSignaturePurposeCodeSequence.setter + def DigitalSignaturePurposeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DigitalSignaturePurposeCodeSequence = [] + if "DigitalSignaturePurposeCodeSequence" in self._dataset: + del self._dataset.DigitalSignaturePurposeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DigitalSignaturePurposeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DigitalSignaturePurposeCodeSequence = value + if "DigitalSignaturePurposeCodeSequence" not in self._dataset: + self._dataset.DigitalSignaturePurposeCodeSequence = pydicom.Sequence() + self._dataset.DigitalSignaturePurposeCodeSequence.clear() + self._dataset.DigitalSignaturePurposeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignaturePurposeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DigitalSignaturePurposeCodeSequence.append(item) + if "DigitalSignaturePurposeCodeSequence" not in self._dataset: + self._dataset.DigitalSignaturePurposeCodeSequence = pydicom.Sequence() + self._dataset.DigitalSignaturePurposeCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/digital_x_ray_image.py b/tdwii_plus_examples/domain_model/digital_x_ray_image.py new file mode 100644 index 0000000..2f059eb --- /dev/null +++ b/tdwii_plus_examples/domain_model/digital_x_ray_image.py @@ -0,0 +1,8430 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .histogram_sequence_item import HistogramSequenceItem +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class DigitalXRayImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._HistogramSequence: List[HistogramSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ProjectionEponymousNameCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PlateID(self) -> Optional[str]: + if "PlateID" in self._dataset: + return self._dataset.PlateID + return None + + @PlateID.setter + def PlateID(self, value: Optional[str]): + if value is None: + if "PlateID" in self._dataset: + del self._dataset.PlateID + else: + self._dataset.PlateID = value + + @property + def CassetteID(self) -> Optional[str]: + if "CassetteID" in self._dataset: + return self._dataset.CassetteID + return None + + @CassetteID.setter + def CassetteID(self, value: Optional[str]): + if value is None: + if "CassetteID" in self._dataset: + del self._dataset.CassetteID + else: + self._dataset.CassetteID = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorActiveTime(self) -> Optional[Decimal]: + if "DetectorActiveTime" in self._dataset: + return self._dataset.DetectorActiveTime + return None + + @DetectorActiveTime.setter + def DetectorActiveTime(self, value: Optional[Decimal]): + if value is None: + if "DetectorActiveTime" in self._dataset: + del self._dataset.DetectorActiveTime + else: + self._dataset.DetectorActiveTime = value + + @property + def DetectorActivationOffsetFromExposure(self) -> Optional[Decimal]: + if "DetectorActivationOffsetFromExposure" in self._dataset: + return self._dataset.DetectorActivationOffsetFromExposure + return None + + @DetectorActivationOffsetFromExposure.setter + def DetectorActivationOffsetFromExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorActivationOffsetFromExposure" in self._dataset: + del self._dataset.DetectorActivationOffsetFromExposure + else: + self._dataset.DetectorActivationOffsetFromExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def PresentationIntentType(self) -> Optional[str]: + if "PresentationIntentType" in self._dataset: + return self._dataset.PresentationIntentType + return None + + @PresentationIntentType.setter + def PresentationIntentType(self, value: Optional[str]): + if value is None: + if "PresentationIntentType" in self._dataset: + del self._dataset.PresentationIntentType + else: + self._dataset.PresentationIntentType = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def RelativeXRayExposure(self) -> Optional[int]: + if "RelativeXRayExposure" in self._dataset: + return self._dataset.RelativeXRayExposure + return None + + @RelativeXRayExposure.setter + def RelativeXRayExposure(self, value: Optional[int]): + if value is None: + if "RelativeXRayExposure" in self._dataset: + del self._dataset.RelativeXRayExposure + else: + self._dataset.RelativeXRayExposure = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def EntranceDose(self) -> Optional[int]: + if "EntranceDose" in self._dataset: + return self._dataset.EntranceDose + return None + + @EntranceDose.setter + def EntranceDose(self, value: Optional[int]): + if value is None: + if "EntranceDose" in self._dataset: + del self._dataset.EntranceDose + else: + self._dataset.EntranceDose = value + + @property + def ExposedArea(self) -> Optional[List[int]]: + if "ExposedArea" in self._dataset: + return self._dataset.ExposedArea + return None + + @ExposedArea.setter + def ExposedArea(self, value: Optional[List[int]]): + if value is None: + if "ExposedArea" in self._dataset: + del self._dataset.ExposedArea + else: + self._dataset.ExposedArea = value + + @property + def DistanceSourceToEntrance(self) -> Optional[Decimal]: + if "DistanceSourceToEntrance" in self._dataset: + return self._dataset.DistanceSourceToEntrance + return None + + @DistanceSourceToEntrance.setter + def DistanceSourceToEntrance(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToEntrance" in self._dataset: + del self._dataset.DistanceSourceToEntrance + else: + self._dataset.DistanceSourceToEntrance = value + + @property + def CommentsOnRadiationDose(self) -> Optional[str]: + if "CommentsOnRadiationDose" in self._dataset: + return self._dataset.CommentsOnRadiationDose + return None + + @CommentsOnRadiationDose.setter + def CommentsOnRadiationDose(self, value: Optional[str]): + if value is None: + if "CommentsOnRadiationDose" in self._dataset: + del self._dataset.CommentsOnRadiationDose + else: + self._dataset.CommentsOnRadiationDose = value + + @property + def XRayOutput(self) -> Optional[Decimal]: + if "XRayOutput" in self._dataset: + return self._dataset.XRayOutput + return None + + @XRayOutput.setter + def XRayOutput(self, value: Optional[Decimal]): + if value is None: + if "XRayOutput" in self._dataset: + del self._dataset.XRayOutput + else: + self._dataset.XRayOutput = value + + @property + def HalfValueLayer(self) -> Optional[Decimal]: + if "HalfValueLayer" in self._dataset: + return self._dataset.HalfValueLayer + return None + + @HalfValueLayer.setter + def HalfValueLayer(self, value: Optional[Decimal]): + if value is None: + if "HalfValueLayer" in self._dataset: + del self._dataset.HalfValueLayer + else: + self._dataset.HalfValueLayer = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def OrganExposed(self) -> Optional[str]: + if "OrganExposed" in self._dataset: + return self._dataset.OrganExposed + return None + + @OrganExposed.setter + def OrganExposed(self, value: Optional[str]): + if value is None: + if "OrganExposed" in self._dataset: + del self._dataset.OrganExposed + else: + self._dataset.OrganExposed = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def TomoLayerHeight(self) -> Optional[Decimal]: + if "TomoLayerHeight" in self._dataset: + return self._dataset.TomoLayerHeight + return None + + @TomoLayerHeight.setter + def TomoLayerHeight(self, value: Optional[Decimal]): + if value is None: + if "TomoLayerHeight" in self._dataset: + del self._dataset.TomoLayerHeight + else: + self._dataset.TomoLayerHeight = value + + @property + def TomoAngle(self) -> Optional[Decimal]: + if "TomoAngle" in self._dataset: + return self._dataset.TomoAngle + return None + + @TomoAngle.setter + def TomoAngle(self, value: Optional[Decimal]): + if value is None: + if "TomoAngle" in self._dataset: + del self._dataset.TomoAngle + else: + self._dataset.TomoAngle = value + + @property + def TomoTime(self) -> Optional[Decimal]: + if "TomoTime" in self._dataset: + return self._dataset.TomoTime + return None + + @TomoTime.setter + def TomoTime(self, value: Optional[Decimal]): + if value is None: + if "TomoTime" in self._dataset: + del self._dataset.TomoTime + else: + self._dataset.TomoTime = value + + @property + def TomoType(self) -> Optional[str]: + if "TomoType" in self._dataset: + return self._dataset.TomoType + return None + + @TomoType.setter + def TomoType(self, value: Optional[str]): + if value is None: + if "TomoType" in self._dataset: + del self._dataset.TomoType + else: + self._dataset.TomoType = value + + @property + def TomoClass(self) -> Optional[str]: + if "TomoClass" in self._dataset: + return self._dataset.TomoClass + return None + + @TomoClass.setter + def TomoClass(self, value: Optional[str]): + if value is None: + if "TomoClass" in self._dataset: + del self._dataset.TomoClass + else: + self._dataset.TomoClass = value + + @property + def NumberOfTomosynthesisSourceImages(self) -> Optional[int]: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + return self._dataset.NumberOfTomosynthesisSourceImages + return None + + @NumberOfTomosynthesisSourceImages.setter + def NumberOfTomosynthesisSourceImages(self, value: Optional[int]): + if value is None: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + del self._dataset.NumberOfTomosynthesisSourceImages + else: + self._dataset.NumberOfTomosynthesisSourceImages = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def HistogramSequence(self) -> Optional[List[HistogramSequenceItem]]: + if "HistogramSequence" in self._dataset: + if len(self._HistogramSequence) == len(self._dataset.HistogramSequence): + return self._HistogramSequence + else: + return [HistogramSequenceItem(x) for x in self._dataset.HistogramSequence] + return None + + @HistogramSequence.setter + def HistogramSequence(self, value: Optional[List[HistogramSequenceItem]]): + if value is None: + self._HistogramSequence = [] + if "HistogramSequence" in self._dataset: + del self._dataset.HistogramSequence + elif not isinstance(value, list) or not all(isinstance(item, HistogramSequenceItem) for item in value): + raise ValueError("HistogramSequence must be a list of HistogramSequenceItem objects") + else: + self._HistogramSequence = value + if "HistogramSequence" not in self._dataset: + self._dataset.HistogramSequence = pydicom.Sequence() + self._dataset.HistogramSequence.clear() + self._dataset.HistogramSequence.extend([item.to_dataset() for item in value]) + + def add_Histogram(self, item: HistogramSequenceItem): + if not isinstance(item, HistogramSequenceItem): + raise ValueError("Item must be an instance of HistogramSequenceItem") + self._HistogramSequence.append(item) + if "HistogramSequence" not in self._dataset: + self._dataset.HistogramSequence = pydicom.Sequence() + self._dataset.HistogramSequence.append(item.to_dataset()) + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def GeneratorID(self) -> Optional[str]: + if "GeneratorID" in self._dataset: + return self._dataset.GeneratorID + return None + + @GeneratorID.setter + def GeneratorID(self, value: Optional[str]): + if value is None: + if "GeneratorID" in self._dataset: + del self._dataset.GeneratorID + else: + self._dataset.GeneratorID = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def ExposureControlMode(self) -> Optional[str]: + if "ExposureControlMode" in self._dataset: + return self._dataset.ExposureControlMode + return None + + @ExposureControlMode.setter + def ExposureControlMode(self, value: Optional[str]): + if value is None: + if "ExposureControlMode" in self._dataset: + del self._dataset.ExposureControlMode + else: + self._dataset.ExposureControlMode = value + + @property + def ExposureControlModeDescription(self) -> Optional[str]: + if "ExposureControlModeDescription" in self._dataset: + return self._dataset.ExposureControlModeDescription + return None + + @ExposureControlModeDescription.setter + def ExposureControlModeDescription(self, value: Optional[str]): + if value is None: + if "ExposureControlModeDescription" in self._dataset: + del self._dataset.ExposureControlModeDescription + else: + self._dataset.ExposureControlModeDescription = value + + @property + def ExposureStatus(self) -> Optional[str]: + if "ExposureStatus" in self._dataset: + return self._dataset.ExposureStatus + return None + + @ExposureStatus.setter + def ExposureStatus(self, value: Optional[str]): + if value is None: + if "ExposureStatus" in self._dataset: + del self._dataset.ExposureStatus + else: + self._dataset.ExposureStatus = value + + @property + def PhototimerSetting(self) -> Optional[Decimal]: + if "PhototimerSetting" in self._dataset: + return self._dataset.PhototimerSetting + return None + + @PhototimerSetting.setter + def PhototimerSetting(self, value: Optional[Decimal]): + if value is None: + if "PhototimerSetting" in self._dataset: + del self._dataset.PhototimerSetting + else: + self._dataset.PhototimerSetting = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def EstimatedRadiographicMagnificationFactor(self) -> Optional[Decimal]: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + return self._dataset.EstimatedRadiographicMagnificationFactor + return None + + @EstimatedRadiographicMagnificationFactor.setter + def EstimatedRadiographicMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + del self._dataset.EstimatedRadiographicMagnificationFactor + else: + self._dataset.EstimatedRadiographicMagnificationFactor = value + + @property + def TableAngle(self) -> Optional[Decimal]: + if "TableAngle" in self._dataset: + return self._dataset.TableAngle + return None + + @TableAngle.setter + def TableAngle(self, value: Optional[Decimal]): + if value is None: + if "TableAngle" in self._dataset: + del self._dataset.TableAngle + else: + self._dataset.TableAngle = value + + @property + def TableType(self) -> Optional[str]: + if "TableType" in self._dataset: + return self._dataset.TableType + return None + + @TableType.setter + def TableType(self, value: Optional[str]): + if value is None: + if "TableType" in self._dataset: + del self._dataset.TableType + else: + self._dataset.TableType = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def CompressionForce(self) -> Optional[Decimal]: + if "CompressionForce" in self._dataset: + return self._dataset.CompressionForce + return None + + @CompressionForce.setter + def CompressionForce(self, value: Optional[Decimal]): + if value is None: + if "CompressionForce" in self._dataset: + del self._dataset.CompressionForce + else: + self._dataset.CompressionForce = value + + @property + def CompressionPressure(self) -> Optional[Decimal]: + if "CompressionPressure" in self._dataset: + return self._dataset.CompressionPressure + return None + + @CompressionPressure.setter + def CompressionPressure(self, value: Optional[Decimal]): + if value is None: + if "CompressionPressure" in self._dataset: + del self._dataset.CompressionPressure + else: + self._dataset.CompressionPressure = value + + @property + def PaddleDescription(self) -> Optional[str]: + if "PaddleDescription" in self._dataset: + return self._dataset.PaddleDescription + return None + + @PaddleDescription.setter + def PaddleDescription(self, value: Optional[str]): + if value is None: + if "PaddleDescription" in self._dataset: + del self._dataset.PaddleDescription + else: + self._dataset.PaddleDescription = value + + @property + def CompressionContactArea(self) -> Optional[Decimal]: + if "CompressionContactArea" in self._dataset: + return self._dataset.CompressionContactArea + return None + + @CompressionContactArea.setter + def CompressionContactArea(self, value: Optional[Decimal]): + if value is None: + if "CompressionContactArea" in self._dataset: + del self._dataset.CompressionContactArea + else: + self._dataset.CompressionContactArea = value + + @property + def ColumnAngulation(self) -> Optional[Decimal]: + if "ColumnAngulation" in self._dataset: + return self._dataset.ColumnAngulation + return None + + @ColumnAngulation.setter + def ColumnAngulation(self, value: Optional[Decimal]): + if value is None: + if "ColumnAngulation" in self._dataset: + del self._dataset.ColumnAngulation + else: + self._dataset.ColumnAngulation = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def DetectorPrimaryAngle(self) -> Optional[Decimal]: + if "DetectorPrimaryAngle" in self._dataset: + return self._dataset.DetectorPrimaryAngle + return None + + @DetectorPrimaryAngle.setter + def DetectorPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorPrimaryAngle" in self._dataset: + del self._dataset.DetectorPrimaryAngle + else: + self._dataset.DetectorPrimaryAngle = value + + @property + def DetectorSecondaryAngle(self) -> Optional[Decimal]: + if "DetectorSecondaryAngle" in self._dataset: + return self._dataset.DetectorSecondaryAngle + return None + + @DetectorSecondaryAngle.setter + def DetectorSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorSecondaryAngle" in self._dataset: + del self._dataset.DetectorSecondaryAngle + else: + self._dataset.DetectorSecondaryAngle = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def ViewPosition(self) -> Optional[str]: + if "ViewPosition" in self._dataset: + return self._dataset.ViewPosition + return None + + @ViewPosition.setter + def ViewPosition(self, value: Optional[str]): + if value is None: + if "ViewPosition" in self._dataset: + del self._dataset.ViewPosition + else: + self._dataset.ViewPosition = value + + @property + def ProjectionEponymousNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProjectionEponymousNameCodeSequence" in self._dataset: + if len(self._ProjectionEponymousNameCodeSequence) == len(self._dataset.ProjectionEponymousNameCodeSequence): + return self._ProjectionEponymousNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProjectionEponymousNameCodeSequence] + return None + + @ProjectionEponymousNameCodeSequence.setter + def ProjectionEponymousNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProjectionEponymousNameCodeSequence = [] + if "ProjectionEponymousNameCodeSequence" in self._dataset: + del self._dataset.ProjectionEponymousNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProjectionEponymousNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProjectionEponymousNameCodeSequence = value + if "ProjectionEponymousNameCodeSequence" not in self._dataset: + self._dataset.ProjectionEponymousNameCodeSequence = pydicom.Sequence() + self._dataset.ProjectionEponymousNameCodeSequence.clear() + self._dataset.ProjectionEponymousNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProjectionEponymousNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProjectionEponymousNameCodeSequence.append(item) + if "ProjectionEponymousNameCodeSequence" not in self._dataset: + self._dataset.ProjectionEponymousNameCodeSequence = pydicom.Sequence() + self._dataset.ProjectionEponymousNameCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def PixelIntensityRelationshipSign(self) -> Optional[int]: + if "PixelIntensityRelationshipSign" in self._dataset: + return self._dataset.PixelIntensityRelationshipSign + return None + + @PixelIntensityRelationshipSign.setter + def PixelIntensityRelationshipSign(self, value: Optional[int]): + if value is None: + if "PixelIntensityRelationshipSign" in self._dataset: + del self._dataset.PixelIntensityRelationshipSign + else: + self._dataset.PixelIntensityRelationshipSign = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/dimension_index_sequence_item.py b/tdwii_plus_examples/domain_model/dimension_index_sequence_item.py new file mode 100644 index 0000000..4873bce --- /dev/null +++ b/tdwii_plus_examples/domain_model/dimension_index_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DimensionIndexSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DimensionOrganizationUID(self) -> Optional[str]: + if "DimensionOrganizationUID" in self._dataset: + return self._dataset.DimensionOrganizationUID + return None + + @DimensionOrganizationUID.setter + def DimensionOrganizationUID(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationUID" in self._dataset: + del self._dataset.DimensionOrganizationUID + else: + self._dataset.DimensionOrganizationUID = value + + @property + def DimensionIndexPointer(self) -> Optional[int]: + if "DimensionIndexPointer" in self._dataset: + return self._dataset.DimensionIndexPointer + return None + + @DimensionIndexPointer.setter + def DimensionIndexPointer(self, value: Optional[int]): + if value is None: + if "DimensionIndexPointer" in self._dataset: + del self._dataset.DimensionIndexPointer + else: + self._dataset.DimensionIndexPointer = value + + @property + def FunctionalGroupPointer(self) -> Optional[int]: + if "FunctionalGroupPointer" in self._dataset: + return self._dataset.FunctionalGroupPointer + return None + + @FunctionalGroupPointer.setter + def FunctionalGroupPointer(self, value: Optional[int]): + if value is None: + if "FunctionalGroupPointer" in self._dataset: + del self._dataset.FunctionalGroupPointer + else: + self._dataset.FunctionalGroupPointer = value + + @property + def DimensionIndexPrivateCreator(self) -> Optional[str]: + if "DimensionIndexPrivateCreator" in self._dataset: + return self._dataset.DimensionIndexPrivateCreator + return None + + @DimensionIndexPrivateCreator.setter + def DimensionIndexPrivateCreator(self, value: Optional[str]): + if value is None: + if "DimensionIndexPrivateCreator" in self._dataset: + del self._dataset.DimensionIndexPrivateCreator + else: + self._dataset.DimensionIndexPrivateCreator = value + + @property + def FunctionalGroupPrivateCreator(self) -> Optional[str]: + if "FunctionalGroupPrivateCreator" in self._dataset: + return self._dataset.FunctionalGroupPrivateCreator + return None + + @FunctionalGroupPrivateCreator.setter + def FunctionalGroupPrivateCreator(self, value: Optional[str]): + if value is None: + if "FunctionalGroupPrivateCreator" in self._dataset: + del self._dataset.FunctionalGroupPrivateCreator + else: + self._dataset.FunctionalGroupPrivateCreator = value + + @property + def DimensionDescriptionLabel(self) -> Optional[str]: + if "DimensionDescriptionLabel" in self._dataset: + return self._dataset.DimensionDescriptionLabel + return None + + @DimensionDescriptionLabel.setter + def DimensionDescriptionLabel(self, value: Optional[str]): + if value is None: + if "DimensionDescriptionLabel" in self._dataset: + del self._dataset.DimensionDescriptionLabel + else: + self._dataset.DimensionDescriptionLabel = value diff --git a/tdwii_plus_examples/domain_model/dimension_organization_sequence_item.py b/tdwii_plus_examples/domain_model/dimension_organization_sequence_item.py new file mode 100644 index 0000000..6023297 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dimension_organization_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DimensionOrganizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DimensionOrganizationUID(self) -> Optional[str]: + if "DimensionOrganizationUID" in self._dataset: + return self._dataset.DimensionOrganizationUID + return None + + @DimensionOrganizationUID.setter + def DimensionOrganizationUID(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationUID" in self._dataset: + del self._dataset.DimensionOrganizationUID + else: + self._dataset.DimensionOrganizationUID = value diff --git a/tdwii_plus_examples/domain_model/direct_segment_reference_sequence_item.py b/tdwii_plus_examples/domain_model/direct_segment_reference_sequence_item.py new file mode 100644 index 0000000..337d98b --- /dev/null +++ b/tdwii_plus_examples/domain_model/direct_segment_reference_sequence_item.py @@ -0,0 +1,241 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_conceptual_volume_sequence_item import ( + DerivationConceptualVolumeSequenceItem, +) +from .equivalent_conceptual_volumes_sequence_item import ( + EquivalentConceptualVolumesSequenceItem, +) +from .originating_sop_instance_reference_sequence_item import ( + OriginatingSOPInstanceReferenceSequenceItem, +) +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class DirectSegmentReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._OriginatingSOPInstanceReferenceSequence: List[OriginatingSOPInstanceReferenceSequenceItem] = [] + self._EquivalentConceptualVolumesSequence: List[EquivalentConceptualVolumesSequenceItem] = [] + self._DerivationConceptualVolumeSequence: List[DerivationConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value + + @property + def ReferencedSurfaceNumber(self) -> Optional[int]: + if "ReferencedSurfaceNumber" in self._dataset: + return self._dataset.ReferencedSurfaceNumber + return None + + @ReferencedSurfaceNumber.setter + def ReferencedSurfaceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSurfaceNumber" in self._dataset: + del self._dataset.ReferencedSurfaceNumber + else: + self._dataset.ReferencedSurfaceNumber = value + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def ConceptualVolumeUID(self) -> Optional[str]: + if "ConceptualVolumeUID" in self._dataset: + return self._dataset.ConceptualVolumeUID + return None + + @ConceptualVolumeUID.setter + def ConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeUID" in self._dataset: + del self._dataset.ConceptualVolumeUID + else: + self._dataset.ConceptualVolumeUID = value + + @property + def OriginatingSOPInstanceReferenceSequence(self) -> Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]: + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + if len(self._OriginatingSOPInstanceReferenceSequence) == len( + self._dataset.OriginatingSOPInstanceReferenceSequence + ): + return self._OriginatingSOPInstanceReferenceSequence + else: + return [ + OriginatingSOPInstanceReferenceSequenceItem(x) + for x in self._dataset.OriginatingSOPInstanceReferenceSequence + ] + return None + + @OriginatingSOPInstanceReferenceSequence.setter + def OriginatingSOPInstanceReferenceSequence(self, value: Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]): + if value is None: + self._OriginatingSOPInstanceReferenceSequence = [] + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + del self._dataset.OriginatingSOPInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, OriginatingSOPInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "OriginatingSOPInstanceReferenceSequence must be a list of OriginatingSOPInstanceReferenceSequenceItem objects" + ) + else: + self._OriginatingSOPInstanceReferenceSequence = value + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.clear() + self._dataset.OriginatingSOPInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_OriginatingSOPInstanceReference(self, item: OriginatingSOPInstanceReferenceSequenceItem): + if not isinstance(item, OriginatingSOPInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of OriginatingSOPInstanceReferenceSequenceItem") + self._OriginatingSOPInstanceReferenceSequence.append(item) + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.append(item.to_dataset()) + + @property + def EquivalentConceptualVolumesSequence(self) -> Optional[List[EquivalentConceptualVolumesSequenceItem]]: + if "EquivalentConceptualVolumesSequence" in self._dataset: + if len(self._EquivalentConceptualVolumesSequence) == len(self._dataset.EquivalentConceptualVolumesSequence): + return self._EquivalentConceptualVolumesSequence + else: + return [EquivalentConceptualVolumesSequenceItem(x) for x in self._dataset.EquivalentConceptualVolumesSequence] + return None + + @EquivalentConceptualVolumesSequence.setter + def EquivalentConceptualVolumesSequence(self, value: Optional[List[EquivalentConceptualVolumesSequenceItem]]): + if value is None: + self._EquivalentConceptualVolumesSequence = [] + if "EquivalentConceptualVolumesSequence" in self._dataset: + del self._dataset.EquivalentConceptualVolumesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquivalentConceptualVolumesSequenceItem) for item in value + ): + raise ValueError( + "EquivalentConceptualVolumesSequence must be a list of EquivalentConceptualVolumesSequenceItem objects" + ) + else: + self._EquivalentConceptualVolumesSequence = value + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.clear() + self._dataset.EquivalentConceptualVolumesSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentConceptualVolumes(self, item: EquivalentConceptualVolumesSequenceItem): + if not isinstance(item, EquivalentConceptualVolumesSequenceItem): + raise ValueError("Item must be an instance of EquivalentConceptualVolumesSequenceItem") + self._EquivalentConceptualVolumesSequence.append(item) + if "EquivalentConceptualVolumesSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumesSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumesSequence.append(item.to_dataset()) + + @property + def DerivationConceptualVolumeSequence(self) -> Optional[List[DerivationConceptualVolumeSequenceItem]]: + if "DerivationConceptualVolumeSequence" in self._dataset: + if len(self._DerivationConceptualVolumeSequence) == len(self._dataset.DerivationConceptualVolumeSequence): + return self._DerivationConceptualVolumeSequence + else: + return [DerivationConceptualVolumeSequenceItem(x) for x in self._dataset.DerivationConceptualVolumeSequence] + return None + + @DerivationConceptualVolumeSequence.setter + def DerivationConceptualVolumeSequence(self, value: Optional[List[DerivationConceptualVolumeSequenceItem]]): + if value is None: + self._DerivationConceptualVolumeSequence = [] + if "DerivationConceptualVolumeSequence" in self._dataset: + del self._dataset.DerivationConceptualVolumeSequence + elif not isinstance(value, list) or not all( + isinstance(item, DerivationConceptualVolumeSequenceItem) for item in value + ): + raise ValueError( + "DerivationConceptualVolumeSequence must be a list of DerivationConceptualVolumeSequenceItem objects" + ) + else: + self._DerivationConceptualVolumeSequence = value + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.clear() + self._dataset.DerivationConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationConceptualVolume(self, item: DerivationConceptualVolumeSequenceItem): + if not isinstance(item, DerivationConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of DerivationConceptualVolumeSequenceItem") + self._DerivationConceptualVolumeSequence.append(item) + if "DerivationConceptualVolumeSequence" not in self._dataset: + self._dataset.DerivationConceptualVolumeSequence = pydicom.Sequence() + self._dataset.DerivationConceptualVolumeSequence.append(item.to_dataset()) + + @property + def ReferencedFiducialsUID(self) -> Optional[str]: + if "ReferencedFiducialsUID" in self._dataset: + return self._dataset.ReferencedFiducialsUID + return None + + @ReferencedFiducialsUID.setter + def ReferencedFiducialsUID(self, value: Optional[str]): + if value is None: + if "ReferencedFiducialsUID" in self._dataset: + del self._dataset.ReferencedFiducialsUID + else: + self._dataset.ReferencedFiducialsUID = value diff --git a/tdwii_plus_examples/domain_model/displayed_area_selection_sequence_item.py b/tdwii_plus_examples/domain_model/displayed_area_selection_sequence_item.py new file mode 100644 index 0000000..2b2f338 --- /dev/null +++ b/tdwii_plus_examples/domain_model/displayed_area_selection_sequence_item.py @@ -0,0 +1,145 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class DisplayedAreaSelectionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def DisplayedAreaTopLeftHandCorner(self) -> Optional[List[int]]: + if "DisplayedAreaTopLeftHandCorner" in self._dataset: + return self._dataset.DisplayedAreaTopLeftHandCorner + return None + + @DisplayedAreaTopLeftHandCorner.setter + def DisplayedAreaTopLeftHandCorner(self, value: Optional[List[int]]): + if value is None: + if "DisplayedAreaTopLeftHandCorner" in self._dataset: + del self._dataset.DisplayedAreaTopLeftHandCorner + else: + self._dataset.DisplayedAreaTopLeftHandCorner = value + + @property + def DisplayedAreaBottomRightHandCorner(self) -> Optional[List[int]]: + if "DisplayedAreaBottomRightHandCorner" in self._dataset: + return self._dataset.DisplayedAreaBottomRightHandCorner + return None + + @DisplayedAreaBottomRightHandCorner.setter + def DisplayedAreaBottomRightHandCorner(self, value: Optional[List[int]]): + if value is None: + if "DisplayedAreaBottomRightHandCorner" in self._dataset: + del self._dataset.DisplayedAreaBottomRightHandCorner + else: + self._dataset.DisplayedAreaBottomRightHandCorner = value + + @property + def PresentationSizeMode(self) -> Optional[str]: + if "PresentationSizeMode" in self._dataset: + return self._dataset.PresentationSizeMode + return None + + @PresentationSizeMode.setter + def PresentationSizeMode(self, value: Optional[str]): + if value is None: + if "PresentationSizeMode" in self._dataset: + del self._dataset.PresentationSizeMode + else: + self._dataset.PresentationSizeMode = value + + @property + def PresentationPixelSpacing(self) -> Optional[List[Decimal]]: + if "PresentationPixelSpacing" in self._dataset: + return self._dataset.PresentationPixelSpacing + return None + + @PresentationPixelSpacing.setter + def PresentationPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PresentationPixelSpacing" in self._dataset: + del self._dataset.PresentationPixelSpacing + else: + self._dataset.PresentationPixelSpacing = value + + @property + def PresentationPixelAspectRatio(self) -> Optional[List[int]]: + if "PresentationPixelAspectRatio" in self._dataset: + return self._dataset.PresentationPixelAspectRatio + return None + + @PresentationPixelAspectRatio.setter + def PresentationPixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PresentationPixelAspectRatio" in self._dataset: + del self._dataset.PresentationPixelAspectRatio + else: + self._dataset.PresentationPixelAspectRatio = value + + @property + def PresentationPixelMagnificationRatio(self) -> Optional[float]: + if "PresentationPixelMagnificationRatio" in self._dataset: + return self._dataset.PresentationPixelMagnificationRatio + return None + + @PresentationPixelMagnificationRatio.setter + def PresentationPixelMagnificationRatio(self, value: Optional[float]): + if value is None: + if "PresentationPixelMagnificationRatio" in self._dataset: + del self._dataset.PresentationPixelMagnificationRatio + else: + self._dataset.PresentationPixelMagnificationRatio = value diff --git a/tdwii_plus_examples/domain_model/dose_calibration_conditions_sequence_item.py b/tdwii_plus_examples/domain_model/dose_calibration_conditions_sequence_item.py new file mode 100644 index 0000000..f3df68c --- /dev/null +++ b/tdwii_plus_examples/domain_model/dose_calibration_conditions_sequence_item.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class DoseCalibrationConditionsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CalibrationDateTime(self) -> Optional[str]: + if "CalibrationDateTime" in self._dataset: + return self._dataset.CalibrationDateTime + return None + + @CalibrationDateTime.setter + def CalibrationDateTime(self, value: Optional[str]): + if value is None: + if "CalibrationDateTime" in self._dataset: + del self._dataset.CalibrationDateTime + else: + self._dataset.CalibrationDateTime = value + + @property + def SourceToSurfaceDistance(self) -> Optional[Decimal]: + if "SourceToSurfaceDistance" in self._dataset: + return self._dataset.SourceToSurfaceDistance + return None + + @SourceToSurfaceDistance.setter + def SourceToSurfaceDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToSurfaceDistance" in self._dataset: + del self._dataset.SourceToSurfaceDistance + else: + self._dataset.SourceToSurfaceDistance = value + + @property + def AbsorbedDoseToMetersetRatio(self) -> Optional[float]: + if "AbsorbedDoseToMetersetRatio" in self._dataset: + return self._dataset.AbsorbedDoseToMetersetRatio + return None + + @AbsorbedDoseToMetersetRatio.setter + def AbsorbedDoseToMetersetRatio(self, value: Optional[float]): + if value is None: + if "AbsorbedDoseToMetersetRatio" in self._dataset: + del self._dataset.AbsorbedDoseToMetersetRatio + else: + self._dataset.AbsorbedDoseToMetersetRatio = value + + @property + def DelineatedRadiationFieldSize(self) -> Optional[List[float]]: + if "DelineatedRadiationFieldSize" in self._dataset: + return self._dataset.DelineatedRadiationFieldSize + return None + + @DelineatedRadiationFieldSize.setter + def DelineatedRadiationFieldSize(self, value: Optional[List[float]]): + if value is None: + if "DelineatedRadiationFieldSize" in self._dataset: + del self._dataset.DelineatedRadiationFieldSize + else: + self._dataset.DelineatedRadiationFieldSize = value + + @property + def CalibrationReferencePointDepth(self) -> Optional[float]: + if "CalibrationReferencePointDepth" in self._dataset: + return self._dataset.CalibrationReferencePointDepth + return None + + @CalibrationReferencePointDepth.setter + def CalibrationReferencePointDepth(self, value: Optional[float]): + if value is None: + if "CalibrationReferencePointDepth" in self._dataset: + del self._dataset.CalibrationReferencePointDepth + else: + self._dataset.CalibrationReferencePointDepth = value diff --git a/tdwii_plus_examples/domain_model/dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/dose_reference_sequence_item.py new file mode 100644 index 0000000..b37570a --- /dev/null +++ b/tdwii_plus_examples/domain_model/dose_reference_sequence_item.py @@ -0,0 +1,306 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class DoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def DoseReferenceNumber(self) -> Optional[int]: + if "DoseReferenceNumber" in self._dataset: + return self._dataset.DoseReferenceNumber + return None + + @DoseReferenceNumber.setter + def DoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "DoseReferenceNumber" in self._dataset: + del self._dataset.DoseReferenceNumber + else: + self._dataset.DoseReferenceNumber = value + + @property + def DoseReferenceUID(self) -> Optional[str]: + if "DoseReferenceUID" in self._dataset: + return self._dataset.DoseReferenceUID + return None + + @DoseReferenceUID.setter + def DoseReferenceUID(self, value: Optional[str]): + if value is None: + if "DoseReferenceUID" in self._dataset: + del self._dataset.DoseReferenceUID + else: + self._dataset.DoseReferenceUID = value + + @property + def DoseReferenceStructureType(self) -> Optional[str]: + if "DoseReferenceStructureType" in self._dataset: + return self._dataset.DoseReferenceStructureType + return None + + @DoseReferenceStructureType.setter + def DoseReferenceStructureType(self, value: Optional[str]): + if value is None: + if "DoseReferenceStructureType" in self._dataset: + del self._dataset.DoseReferenceStructureType + else: + self._dataset.DoseReferenceStructureType = value + + @property + def DoseReferenceDescription(self) -> Optional[str]: + if "DoseReferenceDescription" in self._dataset: + return self._dataset.DoseReferenceDescription + return None + + @DoseReferenceDescription.setter + def DoseReferenceDescription(self, value: Optional[str]): + if value is None: + if "DoseReferenceDescription" in self._dataset: + del self._dataset.DoseReferenceDescription + else: + self._dataset.DoseReferenceDescription = value + + @property + def DoseReferencePointCoordinates(self) -> Optional[List[Decimal]]: + if "DoseReferencePointCoordinates" in self._dataset: + return self._dataset.DoseReferencePointCoordinates + return None + + @DoseReferencePointCoordinates.setter + def DoseReferencePointCoordinates(self, value: Optional[List[Decimal]]): + if value is None: + if "DoseReferencePointCoordinates" in self._dataset: + del self._dataset.DoseReferencePointCoordinates + else: + self._dataset.DoseReferencePointCoordinates = value + + @property + def NominalPriorDose(self) -> Optional[Decimal]: + if "NominalPriorDose" in self._dataset: + return self._dataset.NominalPriorDose + return None + + @NominalPriorDose.setter + def NominalPriorDose(self, value: Optional[Decimal]): + if value is None: + if "NominalPriorDose" in self._dataset: + del self._dataset.NominalPriorDose + else: + self._dataset.NominalPriorDose = value + + @property + def DoseReferenceType(self) -> Optional[str]: + if "DoseReferenceType" in self._dataset: + return self._dataset.DoseReferenceType + return None + + @DoseReferenceType.setter + def DoseReferenceType(self, value: Optional[str]): + if value is None: + if "DoseReferenceType" in self._dataset: + del self._dataset.DoseReferenceType + else: + self._dataset.DoseReferenceType = value + + @property + def ConstraintWeight(self) -> Optional[Decimal]: + if "ConstraintWeight" in self._dataset: + return self._dataset.ConstraintWeight + return None + + @ConstraintWeight.setter + def ConstraintWeight(self, value: Optional[Decimal]): + if value is None: + if "ConstraintWeight" in self._dataset: + del self._dataset.ConstraintWeight + else: + self._dataset.ConstraintWeight = value + + @property + def DeliveryWarningDose(self) -> Optional[Decimal]: + if "DeliveryWarningDose" in self._dataset: + return self._dataset.DeliveryWarningDose + return None + + @DeliveryWarningDose.setter + def DeliveryWarningDose(self, value: Optional[Decimal]): + if value is None: + if "DeliveryWarningDose" in self._dataset: + del self._dataset.DeliveryWarningDose + else: + self._dataset.DeliveryWarningDose = value + + @property + def DeliveryMaximumDose(self) -> Optional[Decimal]: + if "DeliveryMaximumDose" in self._dataset: + return self._dataset.DeliveryMaximumDose + return None + + @DeliveryMaximumDose.setter + def DeliveryMaximumDose(self, value: Optional[Decimal]): + if value is None: + if "DeliveryMaximumDose" in self._dataset: + del self._dataset.DeliveryMaximumDose + else: + self._dataset.DeliveryMaximumDose = value + + @property + def TargetMinimumDose(self) -> Optional[Decimal]: + if "TargetMinimumDose" in self._dataset: + return self._dataset.TargetMinimumDose + return None + + @TargetMinimumDose.setter + def TargetMinimumDose(self, value: Optional[Decimal]): + if value is None: + if "TargetMinimumDose" in self._dataset: + del self._dataset.TargetMinimumDose + else: + self._dataset.TargetMinimumDose = value + + @property + def TargetPrescriptionDose(self) -> Optional[Decimal]: + if "TargetPrescriptionDose" in self._dataset: + return self._dataset.TargetPrescriptionDose + return None + + @TargetPrescriptionDose.setter + def TargetPrescriptionDose(self, value: Optional[Decimal]): + if value is None: + if "TargetPrescriptionDose" in self._dataset: + del self._dataset.TargetPrescriptionDose + else: + self._dataset.TargetPrescriptionDose = value + + @property + def TargetMaximumDose(self) -> Optional[Decimal]: + if "TargetMaximumDose" in self._dataset: + return self._dataset.TargetMaximumDose + return None + + @TargetMaximumDose.setter + def TargetMaximumDose(self, value: Optional[Decimal]): + if value is None: + if "TargetMaximumDose" in self._dataset: + del self._dataset.TargetMaximumDose + else: + self._dataset.TargetMaximumDose = value + + @property + def TargetUnderdoseVolumeFraction(self) -> Optional[Decimal]: + if "TargetUnderdoseVolumeFraction" in self._dataset: + return self._dataset.TargetUnderdoseVolumeFraction + return None + + @TargetUnderdoseVolumeFraction.setter + def TargetUnderdoseVolumeFraction(self, value: Optional[Decimal]): + if value is None: + if "TargetUnderdoseVolumeFraction" in self._dataset: + del self._dataset.TargetUnderdoseVolumeFraction + else: + self._dataset.TargetUnderdoseVolumeFraction = value + + @property + def OrganAtRiskFullVolumeDose(self) -> Optional[Decimal]: + if "OrganAtRiskFullVolumeDose" in self._dataset: + return self._dataset.OrganAtRiskFullVolumeDose + return None + + @OrganAtRiskFullVolumeDose.setter + def OrganAtRiskFullVolumeDose(self, value: Optional[Decimal]): + if value is None: + if "OrganAtRiskFullVolumeDose" in self._dataset: + del self._dataset.OrganAtRiskFullVolumeDose + else: + self._dataset.OrganAtRiskFullVolumeDose = value + + @property + def OrganAtRiskLimitDose(self) -> Optional[Decimal]: + if "OrganAtRiskLimitDose" in self._dataset: + return self._dataset.OrganAtRiskLimitDose + return None + + @OrganAtRiskLimitDose.setter + def OrganAtRiskLimitDose(self, value: Optional[Decimal]): + if value is None: + if "OrganAtRiskLimitDose" in self._dataset: + del self._dataset.OrganAtRiskLimitDose + else: + self._dataset.OrganAtRiskLimitDose = value + + @property + def OrganAtRiskMaximumDose(self) -> Optional[Decimal]: + if "OrganAtRiskMaximumDose" in self._dataset: + return self._dataset.OrganAtRiskMaximumDose + return None + + @OrganAtRiskMaximumDose.setter + def OrganAtRiskMaximumDose(self, value: Optional[Decimal]): + if value is None: + if "OrganAtRiskMaximumDose" in self._dataset: + del self._dataset.OrganAtRiskMaximumDose + else: + self._dataset.OrganAtRiskMaximumDose = value + + @property + def OrganAtRiskOverdoseVolumeFraction(self) -> Optional[Decimal]: + if "OrganAtRiskOverdoseVolumeFraction" in self._dataset: + return self._dataset.OrganAtRiskOverdoseVolumeFraction + return None + + @OrganAtRiskOverdoseVolumeFraction.setter + def OrganAtRiskOverdoseVolumeFraction(self, value: Optional[Decimal]): + if value is None: + if "OrganAtRiskOverdoseVolumeFraction" in self._dataset: + del self._dataset.OrganAtRiskOverdoseVolumeFraction + else: + self._dataset.OrganAtRiskOverdoseVolumeFraction = value + + @property + def DoseValuePurpose(self) -> Optional[List[str]]: + if "DoseValuePurpose" in self._dataset: + return self._dataset.DoseValuePurpose + return None + + @DoseValuePurpose.setter + def DoseValuePurpose(self, value: Optional[List[str]]): + if value is None: + if "DoseValuePurpose" in self._dataset: + del self._dataset.DoseValuePurpose + else: + self._dataset.DoseValuePurpose = value + + @property + def DoseValueInterpretation(self) -> Optional[str]: + if "DoseValueInterpretation" in self._dataset: + return self._dataset.DoseValueInterpretation + return None + + @DoseValueInterpretation.setter + def DoseValueInterpretation(self, value: Optional[str]): + if value is None: + if "DoseValueInterpretation" in self._dataset: + del self._dataset.DoseValueInterpretation + else: + self._dataset.DoseValueInterpretation = value diff --git a/tdwii_plus_examples/domain_model/dose_values_sequence_item.py b/tdwii_plus_examples/domain_model/dose_values_sequence_item.py new file mode 100644 index 0000000..e2b97c8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dose_values_sequence_item.py @@ -0,0 +1,124 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .meterset_to_dose_mapping_sequence_item import MetersetToDoseMappingSequenceItem + + +class DoseValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MetersetToDoseMappingSequence: List[MetersetToDoseMappingSequenceItem] = [] + self._EffectiveDoseCalculationMethodCategoryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DoseValuePurpose(self) -> Optional[List[str]]: + if "DoseValuePurpose" in self._dataset: + return self._dataset.DoseValuePurpose + return None + + @DoseValuePurpose.setter + def DoseValuePurpose(self, value: Optional[List[str]]): + if value is None: + if "DoseValuePurpose" in self._dataset: + del self._dataset.DoseValuePurpose + else: + self._dataset.DoseValuePurpose = value + + @property + def MetersetToDoseMappingSequence(self) -> Optional[List[MetersetToDoseMappingSequenceItem]]: + if "MetersetToDoseMappingSequence" in self._dataset: + if len(self._MetersetToDoseMappingSequence) == len(self._dataset.MetersetToDoseMappingSequence): + return self._MetersetToDoseMappingSequence + else: + return [MetersetToDoseMappingSequenceItem(x) for x in self._dataset.MetersetToDoseMappingSequence] + return None + + @MetersetToDoseMappingSequence.setter + def MetersetToDoseMappingSequence(self, value: Optional[List[MetersetToDoseMappingSequenceItem]]): + if value is None: + self._MetersetToDoseMappingSequence = [] + if "MetersetToDoseMappingSequence" in self._dataset: + del self._dataset.MetersetToDoseMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, MetersetToDoseMappingSequenceItem) for item in value): + raise ValueError("MetersetToDoseMappingSequence must be a list of MetersetToDoseMappingSequenceItem objects") + else: + self._MetersetToDoseMappingSequence = value + if "MetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MetersetToDoseMappingSequence.clear() + self._dataset.MetersetToDoseMappingSequence.extend([item.to_dataset() for item in value]) + + def add_MetersetToDoseMapping(self, item: MetersetToDoseMappingSequenceItem): + if not isinstance(item, MetersetToDoseMappingSequenceItem): + raise ValueError("Item must be an instance of MetersetToDoseMappingSequenceItem") + self._MetersetToDoseMappingSequence.append(item) + if "MetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MetersetToDoseMappingSequence.append(item.to_dataset()) + + @property + def RadiobiologicalDoseEffectFlag(self) -> Optional[str]: + if "RadiobiologicalDoseEffectFlag" in self._dataset: + return self._dataset.RadiobiologicalDoseEffectFlag + return None + + @RadiobiologicalDoseEffectFlag.setter + def RadiobiologicalDoseEffectFlag(self, value: Optional[str]): + if value is None: + if "RadiobiologicalDoseEffectFlag" in self._dataset: + del self._dataset.RadiobiologicalDoseEffectFlag + else: + self._dataset.RadiobiologicalDoseEffectFlag = value + + @property + def EffectiveDoseCalculationMethodCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EffectiveDoseCalculationMethodCategoryCodeSequence" in self._dataset: + if len(self._EffectiveDoseCalculationMethodCategoryCodeSequence) == len( + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence + ): + return self._EffectiveDoseCalculationMethodCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence] + return None + + @EffectiveDoseCalculationMethodCategoryCodeSequence.setter + def EffectiveDoseCalculationMethodCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EffectiveDoseCalculationMethodCategoryCodeSequence = [] + if "EffectiveDoseCalculationMethodCategoryCodeSequence" in self._dataset: + del self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EffectiveDoseCalculationMethodCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EffectiveDoseCalculationMethodCategoryCodeSequence = value + if "EffectiveDoseCalculationMethodCategoryCodeSequence" not in self._dataset: + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence = pydicom.Sequence() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.clear() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EffectiveDoseCalculationMethodCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EffectiveDoseCalculationMethodCategoryCodeSequence.append(item) + if "EffectiveDoseCalculationMethodCategoryCodeSequence" not in self._dataset: + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence = pydicom.Sequence() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.append(item.to_dataset()) + + @property + def EffectiveDoseCalculationMethodDescription(self) -> Optional[str]: + if "EffectiveDoseCalculationMethodDescription" in self._dataset: + return self._dataset.EffectiveDoseCalculationMethodDescription + return None + + @EffectiveDoseCalculationMethodDescription.setter + def EffectiveDoseCalculationMethodDescription(self, value: Optional[str]): + if value is None: + if "EffectiveDoseCalculationMethodDescription" in self._dataset: + del self._dataset.EffectiveDoseCalculationMethodDescription + else: + self._dataset.EffectiveDoseCalculationMethodDescription = value diff --git a/tdwii_plus_examples/domain_model/dosimetric_objective_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/dosimetric_objective_parameter_sequence_item.py new file mode 100644 index 0000000..9e46095 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dosimetric_objective_parameter_sequence_item.py @@ -0,0 +1,367 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .radiobiological_dose_effect_sequence_item import ( + RadiobiologicalDoseEffectSequenceItem, +) +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class DosimetricObjectiveParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._RadiobiologicalDoseEffectSequence: List[RadiobiologicalDoseEffectSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value + + @property + def RadiobiologicalDoseEffectSequence(self) -> Optional[List[RadiobiologicalDoseEffectSequenceItem]]: + if "RadiobiologicalDoseEffectSequence" in self._dataset: + if len(self._RadiobiologicalDoseEffectSequence) == len(self._dataset.RadiobiologicalDoseEffectSequence): + return self._RadiobiologicalDoseEffectSequence + else: + return [RadiobiologicalDoseEffectSequenceItem(x) for x in self._dataset.RadiobiologicalDoseEffectSequence] + return None + + @RadiobiologicalDoseEffectSequence.setter + def RadiobiologicalDoseEffectSequence(self, value: Optional[List[RadiobiologicalDoseEffectSequenceItem]]): + if value is None: + self._RadiobiologicalDoseEffectSequence = [] + if "RadiobiologicalDoseEffectSequence" in self._dataset: + del self._dataset.RadiobiologicalDoseEffectSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiobiologicalDoseEffectSequenceItem) for item in value): + raise ValueError( + "RadiobiologicalDoseEffectSequence must be a list of RadiobiologicalDoseEffectSequenceItem objects" + ) + else: + self._RadiobiologicalDoseEffectSequence = value + if "RadiobiologicalDoseEffectSequence" not in self._dataset: + self._dataset.RadiobiologicalDoseEffectSequence = pydicom.Sequence() + self._dataset.RadiobiologicalDoseEffectSequence.clear() + self._dataset.RadiobiologicalDoseEffectSequence.extend([item.to_dataset() for item in value]) + + def add_RadiobiologicalDoseEffect(self, item: RadiobiologicalDoseEffectSequenceItem): + if not isinstance(item, RadiobiologicalDoseEffectSequenceItem): + raise ValueError("Item must be an instance of RadiobiologicalDoseEffectSequenceItem") + self._RadiobiologicalDoseEffectSequence.append(item) + if "RadiobiologicalDoseEffectSequence" not in self._dataset: + self._dataset.RadiobiologicalDoseEffectSequence = pydicom.Sequence() + self._dataset.RadiobiologicalDoseEffectSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/dosimetric_objective_sequence_item.py b/tdwii_plus_examples/domain_model/dosimetric_objective_sequence_item.py new file mode 100644 index 0000000..91d5b6f --- /dev/null +++ b/tdwii_plus_examples/domain_model/dosimetric_objective_sequence_item.py @@ -0,0 +1,203 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .dosimetric_objective_parameter_sequence_item import ( + DosimetricObjectiveParameterSequenceItem, +) +from .originating_sop_instance_reference_sequence_item import ( + OriginatingSOPInstanceReferenceSequenceItem, +) + + +class DosimetricObjectiveSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OriginatingSOPInstanceReferenceSequence: List[OriginatingSOPInstanceReferenceSequenceItem] = [] + self._DosimetricObjectiveTypeCodeSequence: List[CodeSequenceItem] = [] + self._DosimetricObjectiveParameterSequence: List[DosimetricObjectiveParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OriginatingSOPInstanceReferenceSequence(self) -> Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]: + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + if len(self._OriginatingSOPInstanceReferenceSequence) == len( + self._dataset.OriginatingSOPInstanceReferenceSequence + ): + return self._OriginatingSOPInstanceReferenceSequence + else: + return [ + OriginatingSOPInstanceReferenceSequenceItem(x) + for x in self._dataset.OriginatingSOPInstanceReferenceSequence + ] + return None + + @OriginatingSOPInstanceReferenceSequence.setter + def OriginatingSOPInstanceReferenceSequence(self, value: Optional[List[OriginatingSOPInstanceReferenceSequenceItem]]): + if value is None: + self._OriginatingSOPInstanceReferenceSequence = [] + if "OriginatingSOPInstanceReferenceSequence" in self._dataset: + del self._dataset.OriginatingSOPInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, OriginatingSOPInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "OriginatingSOPInstanceReferenceSequence must be a list of OriginatingSOPInstanceReferenceSequenceItem objects" + ) + else: + self._OriginatingSOPInstanceReferenceSequence = value + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.clear() + self._dataset.OriginatingSOPInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_OriginatingSOPInstanceReference(self, item: OriginatingSOPInstanceReferenceSequenceItem): + if not isinstance(item, OriginatingSOPInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of OriginatingSOPInstanceReferenceSequenceItem") + self._OriginatingSOPInstanceReferenceSequence.append(item) + if "OriginatingSOPInstanceReferenceSequence" not in self._dataset: + self._dataset.OriginatingSOPInstanceReferenceSequence = pydicom.Sequence() + self._dataset.OriginatingSOPInstanceReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedConceptualVolumeUID(self) -> Optional[str]: + if "ReferencedConceptualVolumeUID" in self._dataset: + return self._dataset.ReferencedConceptualVolumeUID + return None + + @ReferencedConceptualVolumeUID.setter + def ReferencedConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ReferencedConceptualVolumeUID" in self._dataset: + del self._dataset.ReferencedConceptualVolumeUID + else: + self._dataset.ReferencedConceptualVolumeUID = value + + @property + def DosimetricObjectiveEvaluationScope(self) -> Optional[str]: + if "DosimetricObjectiveEvaluationScope" in self._dataset: + return self._dataset.DosimetricObjectiveEvaluationScope + return None + + @DosimetricObjectiveEvaluationScope.setter + def DosimetricObjectiveEvaluationScope(self, value: Optional[str]): + if value is None: + if "DosimetricObjectiveEvaluationScope" in self._dataset: + del self._dataset.DosimetricObjectiveEvaluationScope + else: + self._dataset.DosimetricObjectiveEvaluationScope = value + + @property + def DosimetricObjectiveTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DosimetricObjectiveTypeCodeSequence" in self._dataset: + if len(self._DosimetricObjectiveTypeCodeSequence) == len(self._dataset.DosimetricObjectiveTypeCodeSequence): + return self._DosimetricObjectiveTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DosimetricObjectiveTypeCodeSequence] + return None + + @DosimetricObjectiveTypeCodeSequence.setter + def DosimetricObjectiveTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DosimetricObjectiveTypeCodeSequence = [] + if "DosimetricObjectiveTypeCodeSequence" in self._dataset: + del self._dataset.DosimetricObjectiveTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DosimetricObjectiveTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DosimetricObjectiveTypeCodeSequence = value + if "DosimetricObjectiveTypeCodeSequence" not in self._dataset: + self._dataset.DosimetricObjectiveTypeCodeSequence = pydicom.Sequence() + self._dataset.DosimetricObjectiveTypeCodeSequence.clear() + self._dataset.DosimetricObjectiveTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DosimetricObjectiveTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DosimetricObjectiveTypeCodeSequence.append(item) + if "DosimetricObjectiveTypeCodeSequence" not in self._dataset: + self._dataset.DosimetricObjectiveTypeCodeSequence = pydicom.Sequence() + self._dataset.DosimetricObjectiveTypeCodeSequence.append(item.to_dataset()) + + @property + def DosimetricObjectiveUID(self) -> Optional[str]: + if "DosimetricObjectiveUID" in self._dataset: + return self._dataset.DosimetricObjectiveUID + return None + + @DosimetricObjectiveUID.setter + def DosimetricObjectiveUID(self, value: Optional[str]): + if value is None: + if "DosimetricObjectiveUID" in self._dataset: + del self._dataset.DosimetricObjectiveUID + else: + self._dataset.DosimetricObjectiveUID = value + + @property + def DosimetricObjectiveParameterSequence(self) -> Optional[List[DosimetricObjectiveParameterSequenceItem]]: + if "DosimetricObjectiveParameterSequence" in self._dataset: + if len(self._DosimetricObjectiveParameterSequence) == len(self._dataset.DosimetricObjectiveParameterSequence): + return self._DosimetricObjectiveParameterSequence + else: + return [ + DosimetricObjectiveParameterSequenceItem(x) for x in self._dataset.DosimetricObjectiveParameterSequence + ] + return None + + @DosimetricObjectiveParameterSequence.setter + def DosimetricObjectiveParameterSequence(self, value: Optional[List[DosimetricObjectiveParameterSequenceItem]]): + if value is None: + self._DosimetricObjectiveParameterSequence = [] + if "DosimetricObjectiveParameterSequence" in self._dataset: + del self._dataset.DosimetricObjectiveParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, DosimetricObjectiveParameterSequenceItem) for item in value + ): + raise ValueError( + "DosimetricObjectiveParameterSequence must be a list of DosimetricObjectiveParameterSequenceItem objects" + ) + else: + self._DosimetricObjectiveParameterSequence = value + if "DosimetricObjectiveParameterSequence" not in self._dataset: + self._dataset.DosimetricObjectiveParameterSequence = pydicom.Sequence() + self._dataset.DosimetricObjectiveParameterSequence.clear() + self._dataset.DosimetricObjectiveParameterSequence.extend([item.to_dataset() for item in value]) + + def add_DosimetricObjectiveParameter(self, item: DosimetricObjectiveParameterSequenceItem): + if not isinstance(item, DosimetricObjectiveParameterSequenceItem): + raise ValueError("Item must be an instance of DosimetricObjectiveParameterSequenceItem") + self._DosimetricObjectiveParameterSequence.append(item) + if "DosimetricObjectiveParameterSequence" not in self._dataset: + self._dataset.DosimetricObjectiveParameterSequence = pydicom.Sequence() + self._dataset.DosimetricObjectiveParameterSequence.append(item.to_dataset()) + + @property + def AbsoluteDosimetricObjectiveFlag(self) -> Optional[str]: + if "AbsoluteDosimetricObjectiveFlag" in self._dataset: + return self._dataset.AbsoluteDosimetricObjectiveFlag + return None + + @AbsoluteDosimetricObjectiveFlag.setter + def AbsoluteDosimetricObjectiveFlag(self, value: Optional[str]): + if value is None: + if "AbsoluteDosimetricObjectiveFlag" in self._dataset: + del self._dataset.AbsoluteDosimetricObjectiveFlag + else: + self._dataset.AbsoluteDosimetricObjectiveFlag = value + + @property + def DosimetricObjectivePurpose(self) -> Optional[str]: + if "DosimetricObjectivePurpose" in self._dataset: + return self._dataset.DosimetricObjectivePurpose + return None + + @DosimetricObjectivePurpose.setter + def DosimetricObjectivePurpose(self, value: Optional[str]): + if value is None: + if "DosimetricObjectivePurpose" in self._dataset: + del self._dataset.DosimetricObjectivePurpose + else: + self._dataset.DosimetricObjectivePurpose = value diff --git a/tdwii_plus_examples/domain_model/dvh_referenced_roi_sequence_item.py b/tdwii_plus_examples/domain_model/dvh_referenced_roi_sequence_item.py new file mode 100644 index 0000000..cd8a4c0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/dvh_referenced_roi_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class DVHReferencedROISequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DVHROIContributionType(self) -> Optional[str]: + if "DVHROIContributionType" in self._dataset: + return self._dataset.DVHROIContributionType + return None + + @DVHROIContributionType.setter + def DVHROIContributionType(self, value: Optional[str]): + if value is None: + if "DVHROIContributionType" in self._dataset: + del self._dataset.DVHROIContributionType + else: + self._dataset.DVHROIContributionType = value + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value diff --git a/tdwii_plus_examples/domain_model/dvh_sequence_item.py b/tdwii_plus_examples/domain_model/dvh_sequence_item.py new file mode 100644 index 0000000..e0dd74e --- /dev/null +++ b/tdwii_plus_examples/domain_model/dvh_sequence_item.py @@ -0,0 +1,187 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .dvh_referenced_roi_sequence_item import DVHReferencedROISequenceItem + + +class DVHSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DVHReferencedROISequence: List[DVHReferencedROISequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DVHType(self) -> Optional[str]: + if "DVHType" in self._dataset: + return self._dataset.DVHType + return None + + @DVHType.setter + def DVHType(self, value: Optional[str]): + if value is None: + if "DVHType" in self._dataset: + del self._dataset.DVHType + else: + self._dataset.DVHType = value + + @property + def DoseUnits(self) -> Optional[str]: + if "DoseUnits" in self._dataset: + return self._dataset.DoseUnits + return None + + @DoseUnits.setter + def DoseUnits(self, value: Optional[str]): + if value is None: + if "DoseUnits" in self._dataset: + del self._dataset.DoseUnits + else: + self._dataset.DoseUnits = value + + @property + def DoseType(self) -> Optional[str]: + if "DoseType" in self._dataset: + return self._dataset.DoseType + return None + + @DoseType.setter + def DoseType(self, value: Optional[str]): + if value is None: + if "DoseType" in self._dataset: + del self._dataset.DoseType + else: + self._dataset.DoseType = value + + @property + def DVHDoseScaling(self) -> Optional[Decimal]: + if "DVHDoseScaling" in self._dataset: + return self._dataset.DVHDoseScaling + return None + + @DVHDoseScaling.setter + def DVHDoseScaling(self, value: Optional[Decimal]): + if value is None: + if "DVHDoseScaling" in self._dataset: + del self._dataset.DVHDoseScaling + else: + self._dataset.DVHDoseScaling = value + + @property + def DVHVolumeUnits(self) -> Optional[str]: + if "DVHVolumeUnits" in self._dataset: + return self._dataset.DVHVolumeUnits + return None + + @DVHVolumeUnits.setter + def DVHVolumeUnits(self, value: Optional[str]): + if value is None: + if "DVHVolumeUnits" in self._dataset: + del self._dataset.DVHVolumeUnits + else: + self._dataset.DVHVolumeUnits = value + + @property + def DVHNumberOfBins(self) -> Optional[int]: + if "DVHNumberOfBins" in self._dataset: + return self._dataset.DVHNumberOfBins + return None + + @DVHNumberOfBins.setter + def DVHNumberOfBins(self, value: Optional[int]): + if value is None: + if "DVHNumberOfBins" in self._dataset: + del self._dataset.DVHNumberOfBins + else: + self._dataset.DVHNumberOfBins = value + + @property + def DVHData(self) -> Optional[List[Decimal]]: + if "DVHData" in self._dataset: + return self._dataset.DVHData + return None + + @DVHData.setter + def DVHData(self, value: Optional[List[Decimal]]): + if value is None: + if "DVHData" in self._dataset: + del self._dataset.DVHData + else: + self._dataset.DVHData = value + + @property + def DVHReferencedROISequence(self) -> Optional[List[DVHReferencedROISequenceItem]]: + if "DVHReferencedROISequence" in self._dataset: + if len(self._DVHReferencedROISequence) == len(self._dataset.DVHReferencedROISequence): + return self._DVHReferencedROISequence + else: + return [DVHReferencedROISequenceItem(x) for x in self._dataset.DVHReferencedROISequence] + return None + + @DVHReferencedROISequence.setter + def DVHReferencedROISequence(self, value: Optional[List[DVHReferencedROISequenceItem]]): + if value is None: + self._DVHReferencedROISequence = [] + if "DVHReferencedROISequence" in self._dataset: + del self._dataset.DVHReferencedROISequence + elif not isinstance(value, list) or not all(isinstance(item, DVHReferencedROISequenceItem) for item in value): + raise ValueError("DVHReferencedROISequence must be a list of DVHReferencedROISequenceItem objects") + else: + self._DVHReferencedROISequence = value + if "DVHReferencedROISequence" not in self._dataset: + self._dataset.DVHReferencedROISequence = pydicom.Sequence() + self._dataset.DVHReferencedROISequence.clear() + self._dataset.DVHReferencedROISequence.extend([item.to_dataset() for item in value]) + + def add_DVHReferencedROI(self, item: DVHReferencedROISequenceItem): + if not isinstance(item, DVHReferencedROISequenceItem): + raise ValueError("Item must be an instance of DVHReferencedROISequenceItem") + self._DVHReferencedROISequence.append(item) + if "DVHReferencedROISequence" not in self._dataset: + self._dataset.DVHReferencedROISequence = pydicom.Sequence() + self._dataset.DVHReferencedROISequence.append(item.to_dataset()) + + @property + def DVHMinimumDose(self) -> Optional[Decimal]: + if "DVHMinimumDose" in self._dataset: + return self._dataset.DVHMinimumDose + return None + + @DVHMinimumDose.setter + def DVHMinimumDose(self, value: Optional[Decimal]): + if value is None: + if "DVHMinimumDose" in self._dataset: + del self._dataset.DVHMinimumDose + else: + self._dataset.DVHMinimumDose = value + + @property + def DVHMaximumDose(self) -> Optional[Decimal]: + if "DVHMaximumDose" in self._dataset: + return self._dataset.DVHMaximumDose + return None + + @DVHMaximumDose.setter + def DVHMaximumDose(self, value: Optional[Decimal]): + if value is None: + if "DVHMaximumDose" in self._dataset: + del self._dataset.DVHMaximumDose + else: + self._dataset.DVHMaximumDose = value + + @property + def DVHMeanDose(self) -> Optional[Decimal]: + if "DVHMeanDose" in self._dataset: + return self._dataset.DVHMeanDose + return None + + @DVHMeanDose.setter + def DVHMeanDose(self, value: Optional[Decimal]): + if value is None: + if "DVHMeanDose" in self._dataset: + del self._dataset.DVHMeanDose + else: + self._dataset.DVHMeanDose = value diff --git a/tdwii_plus_examples/domain_model/echo_planar_pulse_sequence_item.py b/tdwii_plus_examples/domain_model/echo_planar_pulse_sequence_item.py new file mode 100644 index 0000000..0dc6f04 --- /dev/null +++ b/tdwii_plus_examples/domain_model/echo_planar_pulse_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class EchoPlanarPulseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/echo_pulse_sequence_item.py b/tdwii_plus_examples/domain_model/echo_pulse_sequence_item.py new file mode 100644 index 0000000..257ebea --- /dev/null +++ b/tdwii_plus_examples/domain_model/echo_pulse_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class EchoPulseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/electromyogram.py b/tdwii_plus_examples/domain_model/electromyogram.py new file mode 100644 index 0000000..7c44c54 --- /dev/null +++ b/tdwii_plus_examples/domain_model/electromyogram.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class Electromyogram: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/electrooculogram.py b/tdwii_plus_examples/domain_model/electrooculogram.py new file mode 100644 index 0000000..03d6abc --- /dev/null +++ b/tdwii_plus_examples/domain_model/electrooculogram.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class Electrooculogram: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/encapsulated_cda.py b/tdwii_plus_examples/domain_model/encapsulated_cda.py new file mode 100644 index 0000000..02a45b7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/encapsulated_cda.py @@ -0,0 +1,4292 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class EncapsulatedCda: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def DocumentTitle(self) -> Optional[str]: + if "DocumentTitle" in self._dataset: + return self._dataset.DocumentTitle + return None + + @DocumentTitle.setter + def DocumentTitle(self, value: Optional[str]): + if value is None: + if "DocumentTitle" in self._dataset: + del self._dataset.DocumentTitle + else: + self._dataset.DocumentTitle = value + + @property + def EncapsulatedDocument(self) -> Optional[bytes]: + if "EncapsulatedDocument" in self._dataset: + return self._dataset.EncapsulatedDocument + return None + + @EncapsulatedDocument.setter + def EncapsulatedDocument(self, value: Optional[bytes]): + if value is None: + if "EncapsulatedDocument" in self._dataset: + del self._dataset.EncapsulatedDocument + else: + self._dataset.EncapsulatedDocument = value + + @property + def MIMETypeOfEncapsulatedDocument(self) -> Optional[str]: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + return self._dataset.MIMETypeOfEncapsulatedDocument + return None + + @MIMETypeOfEncapsulatedDocument.setter + def MIMETypeOfEncapsulatedDocument(self, value: Optional[str]): + if value is None: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + del self._dataset.MIMETypeOfEncapsulatedDocument + else: + self._dataset.MIMETypeOfEncapsulatedDocument = value + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ListOfMIMETypes(self) -> Optional[List[str]]: + if "ListOfMIMETypes" in self._dataset: + return self._dataset.ListOfMIMETypes + return None + + @ListOfMIMETypes.setter + def ListOfMIMETypes(self, value: Optional[List[str]]): + if value is None: + if "ListOfMIMETypes" in self._dataset: + del self._dataset.ListOfMIMETypes + else: + self._dataset.ListOfMIMETypes = value + + @property + def EncapsulatedDocumentLength(self) -> Optional[int]: + if "EncapsulatedDocumentLength" in self._dataset: + return self._dataset.EncapsulatedDocumentLength + return None + + @EncapsulatedDocumentLength.setter + def EncapsulatedDocumentLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedDocumentLength" in self._dataset: + del self._dataset.EncapsulatedDocumentLength + else: + self._dataset.EncapsulatedDocumentLength = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/encapsulated_mtl.py b/tdwii_plus_examples/domain_model/encapsulated_mtl.py new file mode 100644 index 0000000..b123a92 --- /dev/null +++ b/tdwii_plus_examples/domain_model/encapsulated_mtl.py @@ -0,0 +1,4568 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_algorithm_sequence_item import DerivationAlgorithmSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EncapsulatedMtl: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._DerivationAlgorithmSequence: List[DerivationAlgorithmSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ModelUsageCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def DocumentTitle(self) -> Optional[str]: + if "DocumentTitle" in self._dataset: + return self._dataset.DocumentTitle + return None + + @DocumentTitle.setter + def DocumentTitle(self, value: Optional[str]): + if value is None: + if "DocumentTitle" in self._dataset: + del self._dataset.DocumentTitle + else: + self._dataset.DocumentTitle = value + + @property + def EncapsulatedDocument(self) -> Optional[bytes]: + if "EncapsulatedDocument" in self._dataset: + return self._dataset.EncapsulatedDocument + return None + + @EncapsulatedDocument.setter + def EncapsulatedDocument(self, value: Optional[bytes]): + if value is None: + if "EncapsulatedDocument" in self._dataset: + del self._dataset.EncapsulatedDocument + else: + self._dataset.EncapsulatedDocument = value + + @property + def MIMETypeOfEncapsulatedDocument(self) -> Optional[str]: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + return self._dataset.MIMETypeOfEncapsulatedDocument + return None + + @MIMETypeOfEncapsulatedDocument.setter + def MIMETypeOfEncapsulatedDocument(self, value: Optional[str]): + if value is None: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + del self._dataset.MIMETypeOfEncapsulatedDocument + else: + self._dataset.MIMETypeOfEncapsulatedDocument = value + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ListOfMIMETypes(self) -> Optional[List[str]]: + if "ListOfMIMETypes" in self._dataset: + return self._dataset.ListOfMIMETypes + return None + + @ListOfMIMETypes.setter + def ListOfMIMETypes(self, value: Optional[List[str]]): + if value is None: + if "ListOfMIMETypes" in self._dataset: + del self._dataset.ListOfMIMETypes + else: + self._dataset.ListOfMIMETypes = value + + @property + def EncapsulatedDocumentLength(self) -> Optional[int]: + if "EncapsulatedDocumentLength" in self._dataset: + return self._dataset.EncapsulatedDocumentLength + return None + + @EncapsulatedDocumentLength.setter + def EncapsulatedDocumentLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedDocumentLength" in self._dataset: + del self._dataset.EncapsulatedDocumentLength + else: + self._dataset.EncapsulatedDocumentLength = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def DerivationAlgorithmSequence(self) -> Optional[List[DerivationAlgorithmSequenceItem]]: + if "DerivationAlgorithmSequence" in self._dataset: + if len(self._DerivationAlgorithmSequence) == len(self._dataset.DerivationAlgorithmSequence): + return self._DerivationAlgorithmSequence + else: + return [DerivationAlgorithmSequenceItem(x) for x in self._dataset.DerivationAlgorithmSequence] + return None + + @DerivationAlgorithmSequence.setter + def DerivationAlgorithmSequence(self, value: Optional[List[DerivationAlgorithmSequenceItem]]): + if value is None: + self._DerivationAlgorithmSequence = [] + if "DerivationAlgorithmSequence" in self._dataset: + del self._dataset.DerivationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationAlgorithmSequenceItem) for item in value): + raise ValueError("DerivationAlgorithmSequence must be a list of DerivationAlgorithmSequenceItem objects") + else: + self._DerivationAlgorithmSequence = value + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.clear() + self._dataset.DerivationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationAlgorithm(self, item: DerivationAlgorithmSequenceItem): + if not isinstance(item, DerivationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of DerivationAlgorithmSequenceItem") + self._DerivationAlgorithmSequence.append(item) + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def RecommendedPresentationOpacity(self) -> Optional[float]: + if "RecommendedPresentationOpacity" in self._dataset: + return self._dataset.RecommendedPresentationOpacity + return None + + @RecommendedPresentationOpacity.setter + def RecommendedPresentationOpacity(self, value: Optional[float]): + if value is None: + if "RecommendedPresentationOpacity" in self._dataset: + del self._dataset.RecommendedPresentationOpacity + else: + self._dataset.RecommendedPresentationOpacity = value + + @property + def ModelModification(self) -> Optional[str]: + if "ModelModification" in self._dataset: + return self._dataset.ModelModification + return None + + @ModelModification.setter + def ModelModification(self, value: Optional[str]): + if value is None: + if "ModelModification" in self._dataset: + del self._dataset.ModelModification + else: + self._dataset.ModelModification = value + + @property + def ModelMirroring(self) -> Optional[str]: + if "ModelMirroring" in self._dataset: + return self._dataset.ModelMirroring + return None + + @ModelMirroring.setter + def ModelMirroring(self, value: Optional[str]): + if value is None: + if "ModelMirroring" in self._dataset: + del self._dataset.ModelMirroring + else: + self._dataset.ModelMirroring = value + + @property + def ModelUsageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ModelUsageCodeSequence" in self._dataset: + if len(self._ModelUsageCodeSequence) == len(self._dataset.ModelUsageCodeSequence): + return self._ModelUsageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ModelUsageCodeSequence] + return None + + @ModelUsageCodeSequence.setter + def ModelUsageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ModelUsageCodeSequence = [] + if "ModelUsageCodeSequence" in self._dataset: + del self._dataset.ModelUsageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ModelUsageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ModelUsageCodeSequence = value + if "ModelUsageCodeSequence" not in self._dataset: + self._dataset.ModelUsageCodeSequence = pydicom.Sequence() + self._dataset.ModelUsageCodeSequence.clear() + self._dataset.ModelUsageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ModelUsageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ModelUsageCodeSequence.append(item) + if "ModelUsageCodeSequence" not in self._dataset: + self._dataset.ModelUsageCodeSequence = pydicom.Sequence() + self._dataset.ModelUsageCodeSequence.append(item.to_dataset()) + + @property + def ModelGroupUID(self) -> Optional[str]: + if "ModelGroupUID" in self._dataset: + return self._dataset.ModelGroupUID + return None + + @ModelGroupUID.setter + def ModelGroupUID(self, value: Optional[str]): + if value is None: + if "ModelGroupUID" in self._dataset: + del self._dataset.ModelGroupUID + else: + self._dataset.ModelGroupUID = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/encapsulated_obj.py b/tdwii_plus_examples/domain_model/encapsulated_obj.py new file mode 100644 index 0000000..020ba59 --- /dev/null +++ b/tdwii_plus_examples/domain_model/encapsulated_obj.py @@ -0,0 +1,4596 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_algorithm_sequence_item import DerivationAlgorithmSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EncapsulatedObj: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._DerivationAlgorithmSequence: List[DerivationAlgorithmSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ModelUsageCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def DocumentTitle(self) -> Optional[str]: + if "DocumentTitle" in self._dataset: + return self._dataset.DocumentTitle + return None + + @DocumentTitle.setter + def DocumentTitle(self, value: Optional[str]): + if value is None: + if "DocumentTitle" in self._dataset: + del self._dataset.DocumentTitle + else: + self._dataset.DocumentTitle = value + + @property + def EncapsulatedDocument(self) -> Optional[bytes]: + if "EncapsulatedDocument" in self._dataset: + return self._dataset.EncapsulatedDocument + return None + + @EncapsulatedDocument.setter + def EncapsulatedDocument(self, value: Optional[bytes]): + if value is None: + if "EncapsulatedDocument" in self._dataset: + del self._dataset.EncapsulatedDocument + else: + self._dataset.EncapsulatedDocument = value + + @property + def MIMETypeOfEncapsulatedDocument(self) -> Optional[str]: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + return self._dataset.MIMETypeOfEncapsulatedDocument + return None + + @MIMETypeOfEncapsulatedDocument.setter + def MIMETypeOfEncapsulatedDocument(self, value: Optional[str]): + if value is None: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + del self._dataset.MIMETypeOfEncapsulatedDocument + else: + self._dataset.MIMETypeOfEncapsulatedDocument = value + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ListOfMIMETypes(self) -> Optional[List[str]]: + if "ListOfMIMETypes" in self._dataset: + return self._dataset.ListOfMIMETypes + return None + + @ListOfMIMETypes.setter + def ListOfMIMETypes(self, value: Optional[List[str]]): + if value is None: + if "ListOfMIMETypes" in self._dataset: + del self._dataset.ListOfMIMETypes + else: + self._dataset.ListOfMIMETypes = value + + @property + def EncapsulatedDocumentLength(self) -> Optional[int]: + if "EncapsulatedDocumentLength" in self._dataset: + return self._dataset.EncapsulatedDocumentLength + return None + + @EncapsulatedDocumentLength.setter + def EncapsulatedDocumentLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedDocumentLength" in self._dataset: + del self._dataset.EncapsulatedDocumentLength + else: + self._dataset.EncapsulatedDocumentLength = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def DerivationAlgorithmSequence(self) -> Optional[List[DerivationAlgorithmSequenceItem]]: + if "DerivationAlgorithmSequence" in self._dataset: + if len(self._DerivationAlgorithmSequence) == len(self._dataset.DerivationAlgorithmSequence): + return self._DerivationAlgorithmSequence + else: + return [DerivationAlgorithmSequenceItem(x) for x in self._dataset.DerivationAlgorithmSequence] + return None + + @DerivationAlgorithmSequence.setter + def DerivationAlgorithmSequence(self, value: Optional[List[DerivationAlgorithmSequenceItem]]): + if value is None: + self._DerivationAlgorithmSequence = [] + if "DerivationAlgorithmSequence" in self._dataset: + del self._dataset.DerivationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationAlgorithmSequenceItem) for item in value): + raise ValueError("DerivationAlgorithmSequence must be a list of DerivationAlgorithmSequenceItem objects") + else: + self._DerivationAlgorithmSequence = value + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.clear() + self._dataset.DerivationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationAlgorithm(self, item: DerivationAlgorithmSequenceItem): + if not isinstance(item, DerivationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of DerivationAlgorithmSequenceItem") + self._DerivationAlgorithmSequence.append(item) + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def RecommendedPresentationOpacity(self) -> Optional[float]: + if "RecommendedPresentationOpacity" in self._dataset: + return self._dataset.RecommendedPresentationOpacity + return None + + @RecommendedPresentationOpacity.setter + def RecommendedPresentationOpacity(self, value: Optional[float]): + if value is None: + if "RecommendedPresentationOpacity" in self._dataset: + del self._dataset.RecommendedPresentationOpacity + else: + self._dataset.RecommendedPresentationOpacity = value + + @property + def ModelModification(self) -> Optional[str]: + if "ModelModification" in self._dataset: + return self._dataset.ModelModification + return None + + @ModelModification.setter + def ModelModification(self, value: Optional[str]): + if value is None: + if "ModelModification" in self._dataset: + del self._dataset.ModelModification + else: + self._dataset.ModelModification = value + + @property + def ModelMirroring(self) -> Optional[str]: + if "ModelMirroring" in self._dataset: + return self._dataset.ModelMirroring + return None + + @ModelMirroring.setter + def ModelMirroring(self, value: Optional[str]): + if value is None: + if "ModelMirroring" in self._dataset: + del self._dataset.ModelMirroring + else: + self._dataset.ModelMirroring = value + + @property + def ModelUsageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ModelUsageCodeSequence" in self._dataset: + if len(self._ModelUsageCodeSequence) == len(self._dataset.ModelUsageCodeSequence): + return self._ModelUsageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ModelUsageCodeSequence] + return None + + @ModelUsageCodeSequence.setter + def ModelUsageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ModelUsageCodeSequence = [] + if "ModelUsageCodeSequence" in self._dataset: + del self._dataset.ModelUsageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ModelUsageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ModelUsageCodeSequence = value + if "ModelUsageCodeSequence" not in self._dataset: + self._dataset.ModelUsageCodeSequence = pydicom.Sequence() + self._dataset.ModelUsageCodeSequence.clear() + self._dataset.ModelUsageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ModelUsageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ModelUsageCodeSequence.append(item) + if "ModelUsageCodeSequence" not in self._dataset: + self._dataset.ModelUsageCodeSequence = pydicom.Sequence() + self._dataset.ModelUsageCodeSequence.append(item.to_dataset()) + + @property + def ModelGroupUID(self) -> Optional[str]: + if "ModelGroupUID" in self._dataset: + return self._dataset.ModelGroupUID + return None + + @ModelGroupUID.setter + def ModelGroupUID(self, value: Optional[str]): + if value is None: + if "ModelGroupUID" in self._dataset: + del self._dataset.ModelGroupUID + else: + self._dataset.ModelGroupUID = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/encapsulated_pdf.py b/tdwii_plus_examples/domain_model/encapsulated_pdf.py new file mode 100644 index 0000000..ea485d1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/encapsulated_pdf.py @@ -0,0 +1,4292 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class EncapsulatedPdf: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def DocumentTitle(self) -> Optional[str]: + if "DocumentTitle" in self._dataset: + return self._dataset.DocumentTitle + return None + + @DocumentTitle.setter + def DocumentTitle(self, value: Optional[str]): + if value is None: + if "DocumentTitle" in self._dataset: + del self._dataset.DocumentTitle + else: + self._dataset.DocumentTitle = value + + @property + def EncapsulatedDocument(self) -> Optional[bytes]: + if "EncapsulatedDocument" in self._dataset: + return self._dataset.EncapsulatedDocument + return None + + @EncapsulatedDocument.setter + def EncapsulatedDocument(self, value: Optional[bytes]): + if value is None: + if "EncapsulatedDocument" in self._dataset: + del self._dataset.EncapsulatedDocument + else: + self._dataset.EncapsulatedDocument = value + + @property + def MIMETypeOfEncapsulatedDocument(self) -> Optional[str]: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + return self._dataset.MIMETypeOfEncapsulatedDocument + return None + + @MIMETypeOfEncapsulatedDocument.setter + def MIMETypeOfEncapsulatedDocument(self, value: Optional[str]): + if value is None: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + del self._dataset.MIMETypeOfEncapsulatedDocument + else: + self._dataset.MIMETypeOfEncapsulatedDocument = value + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ListOfMIMETypes(self) -> Optional[List[str]]: + if "ListOfMIMETypes" in self._dataset: + return self._dataset.ListOfMIMETypes + return None + + @ListOfMIMETypes.setter + def ListOfMIMETypes(self, value: Optional[List[str]]): + if value is None: + if "ListOfMIMETypes" in self._dataset: + del self._dataset.ListOfMIMETypes + else: + self._dataset.ListOfMIMETypes = value + + @property + def EncapsulatedDocumentLength(self) -> Optional[int]: + if "EncapsulatedDocumentLength" in self._dataset: + return self._dataset.EncapsulatedDocumentLength + return None + + @EncapsulatedDocumentLength.setter + def EncapsulatedDocumentLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedDocumentLength" in self._dataset: + del self._dataset.EncapsulatedDocumentLength + else: + self._dataset.EncapsulatedDocumentLength = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/encapsulated_stl.py b/tdwii_plus_examples/domain_model/encapsulated_stl.py new file mode 100644 index 0000000..0e87ff9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/encapsulated_stl.py @@ -0,0 +1,4596 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_algorithm_sequence_item import DerivationAlgorithmSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EncapsulatedStl: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._DerivationAlgorithmSequence: List[DerivationAlgorithmSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ModelUsageCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def DocumentTitle(self) -> Optional[str]: + if "DocumentTitle" in self._dataset: + return self._dataset.DocumentTitle + return None + + @DocumentTitle.setter + def DocumentTitle(self, value: Optional[str]): + if value is None: + if "DocumentTitle" in self._dataset: + del self._dataset.DocumentTitle + else: + self._dataset.DocumentTitle = value + + @property + def EncapsulatedDocument(self) -> Optional[bytes]: + if "EncapsulatedDocument" in self._dataset: + return self._dataset.EncapsulatedDocument + return None + + @EncapsulatedDocument.setter + def EncapsulatedDocument(self, value: Optional[bytes]): + if value is None: + if "EncapsulatedDocument" in self._dataset: + del self._dataset.EncapsulatedDocument + else: + self._dataset.EncapsulatedDocument = value + + @property + def MIMETypeOfEncapsulatedDocument(self) -> Optional[str]: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + return self._dataset.MIMETypeOfEncapsulatedDocument + return None + + @MIMETypeOfEncapsulatedDocument.setter + def MIMETypeOfEncapsulatedDocument(self, value: Optional[str]): + if value is None: + if "MIMETypeOfEncapsulatedDocument" in self._dataset: + del self._dataset.MIMETypeOfEncapsulatedDocument + else: + self._dataset.MIMETypeOfEncapsulatedDocument = value + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ListOfMIMETypes(self) -> Optional[List[str]]: + if "ListOfMIMETypes" in self._dataset: + return self._dataset.ListOfMIMETypes + return None + + @ListOfMIMETypes.setter + def ListOfMIMETypes(self, value: Optional[List[str]]): + if value is None: + if "ListOfMIMETypes" in self._dataset: + del self._dataset.ListOfMIMETypes + else: + self._dataset.ListOfMIMETypes = value + + @property + def EncapsulatedDocumentLength(self) -> Optional[int]: + if "EncapsulatedDocumentLength" in self._dataset: + return self._dataset.EncapsulatedDocumentLength + return None + + @EncapsulatedDocumentLength.setter + def EncapsulatedDocumentLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedDocumentLength" in self._dataset: + del self._dataset.EncapsulatedDocumentLength + else: + self._dataset.EncapsulatedDocumentLength = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def DerivationAlgorithmSequence(self) -> Optional[List[DerivationAlgorithmSequenceItem]]: + if "DerivationAlgorithmSequence" in self._dataset: + if len(self._DerivationAlgorithmSequence) == len(self._dataset.DerivationAlgorithmSequence): + return self._DerivationAlgorithmSequence + else: + return [DerivationAlgorithmSequenceItem(x) for x in self._dataset.DerivationAlgorithmSequence] + return None + + @DerivationAlgorithmSequence.setter + def DerivationAlgorithmSequence(self, value: Optional[List[DerivationAlgorithmSequenceItem]]): + if value is None: + self._DerivationAlgorithmSequence = [] + if "DerivationAlgorithmSequence" in self._dataset: + del self._dataset.DerivationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationAlgorithmSequenceItem) for item in value): + raise ValueError("DerivationAlgorithmSequence must be a list of DerivationAlgorithmSequenceItem objects") + else: + self._DerivationAlgorithmSequence = value + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.clear() + self._dataset.DerivationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationAlgorithm(self, item: DerivationAlgorithmSequenceItem): + if not isinstance(item, DerivationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of DerivationAlgorithmSequenceItem") + self._DerivationAlgorithmSequence.append(item) + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def RecommendedPresentationOpacity(self) -> Optional[float]: + if "RecommendedPresentationOpacity" in self._dataset: + return self._dataset.RecommendedPresentationOpacity + return None + + @RecommendedPresentationOpacity.setter + def RecommendedPresentationOpacity(self, value: Optional[float]): + if value is None: + if "RecommendedPresentationOpacity" in self._dataset: + del self._dataset.RecommendedPresentationOpacity + else: + self._dataset.RecommendedPresentationOpacity = value + + @property + def ModelModification(self) -> Optional[str]: + if "ModelModification" in self._dataset: + return self._dataset.ModelModification + return None + + @ModelModification.setter + def ModelModification(self, value: Optional[str]): + if value is None: + if "ModelModification" in self._dataset: + del self._dataset.ModelModification + else: + self._dataset.ModelModification = value + + @property + def ModelMirroring(self) -> Optional[str]: + if "ModelMirroring" in self._dataset: + return self._dataset.ModelMirroring + return None + + @ModelMirroring.setter + def ModelMirroring(self, value: Optional[str]): + if value is None: + if "ModelMirroring" in self._dataset: + del self._dataset.ModelMirroring + else: + self._dataset.ModelMirroring = value + + @property + def ModelUsageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ModelUsageCodeSequence" in self._dataset: + if len(self._ModelUsageCodeSequence) == len(self._dataset.ModelUsageCodeSequence): + return self._ModelUsageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ModelUsageCodeSequence] + return None + + @ModelUsageCodeSequence.setter + def ModelUsageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ModelUsageCodeSequence = [] + if "ModelUsageCodeSequence" in self._dataset: + del self._dataset.ModelUsageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ModelUsageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ModelUsageCodeSequence = value + if "ModelUsageCodeSequence" not in self._dataset: + self._dataset.ModelUsageCodeSequence = pydicom.Sequence() + self._dataset.ModelUsageCodeSequence.clear() + self._dataset.ModelUsageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ModelUsageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ModelUsageCodeSequence.append(item) + if "ModelUsageCodeSequence" not in self._dataset: + self._dataset.ModelUsageCodeSequence = pydicom.Sequence() + self._dataset.ModelUsageCodeSequence.append(item.to_dataset()) + + @property + def ModelGroupUID(self) -> Optional[str]: + if "ModelGroupUID" in self._dataset: + return self._dataset.ModelGroupUID + return None + + @ModelGroupUID.setter + def ModelGroupUID(self, value: Optional[str]): + if value is None: + if "ModelGroupUID" in self._dataset: + del self._dataset.ModelGroupUID + else: + self._dataset.ModelGroupUID = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/encrypted_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/encrypted_attributes_sequence_item.py new file mode 100644 index 0000000..252a167 --- /dev/null +++ b/tdwii_plus_examples/domain_model/encrypted_attributes_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class EncryptedAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EncryptedContentTransferSyntaxUID(self) -> Optional[str]: + if "EncryptedContentTransferSyntaxUID" in self._dataset: + return self._dataset.EncryptedContentTransferSyntaxUID + return None + + @EncryptedContentTransferSyntaxUID.setter + def EncryptedContentTransferSyntaxUID(self, value: Optional[str]): + if value is None: + if "EncryptedContentTransferSyntaxUID" in self._dataset: + del self._dataset.EncryptedContentTransferSyntaxUID + else: + self._dataset.EncryptedContentTransferSyntaxUID = value + + @property + def EncryptedContent(self) -> Optional[bytes]: + if "EncryptedContent" in self._dataset: + return self._dataset.EncryptedContent + return None + + @EncryptedContent.setter + def EncryptedContent(self, value: Optional[bytes]): + if value is None: + if "EncryptedContent" in self._dataset: + del self._dataset.EncryptedContent + else: + self._dataset.EncryptedContent = value diff --git a/tdwii_plus_examples/domain_model/energy_window_information_sequence_item.py b/tdwii_plus_examples/domain_model/energy_window_information_sequence_item.py new file mode 100644 index 0000000..ab507c1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/energy_window_information_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .energy_window_range_sequence_item import EnergyWindowRangeSequenceItem + + +class EnergyWindowInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EnergyWindowRangeSequence: List[EnergyWindowRangeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EnergyWindowRangeSequence(self) -> Optional[List[EnergyWindowRangeSequenceItem]]: + if "EnergyWindowRangeSequence" in self._dataset: + if len(self._EnergyWindowRangeSequence) == len(self._dataset.EnergyWindowRangeSequence): + return self._EnergyWindowRangeSequence + else: + return [EnergyWindowRangeSequenceItem(x) for x in self._dataset.EnergyWindowRangeSequence] + return None + + @EnergyWindowRangeSequence.setter + def EnergyWindowRangeSequence(self, value: Optional[List[EnergyWindowRangeSequenceItem]]): + if value is None: + self._EnergyWindowRangeSequence = [] + if "EnergyWindowRangeSequence" in self._dataset: + del self._dataset.EnergyWindowRangeSequence + elif not isinstance(value, list) or not all(isinstance(item, EnergyWindowRangeSequenceItem) for item in value): + raise ValueError("EnergyWindowRangeSequence must be a list of EnergyWindowRangeSequenceItem objects") + else: + self._EnergyWindowRangeSequence = value + if "EnergyWindowRangeSequence" not in self._dataset: + self._dataset.EnergyWindowRangeSequence = pydicom.Sequence() + self._dataset.EnergyWindowRangeSequence.clear() + self._dataset.EnergyWindowRangeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyWindowRange(self, item: EnergyWindowRangeSequenceItem): + if not isinstance(item, EnergyWindowRangeSequenceItem): + raise ValueError("Item must be an instance of EnergyWindowRangeSequenceItem") + self._EnergyWindowRangeSequence.append(item) + if "EnergyWindowRangeSequence" not in self._dataset: + self._dataset.EnergyWindowRangeSequence = pydicom.Sequence() + self._dataset.EnergyWindowRangeSequence.append(item.to_dataset()) + + @property + def EnergyWindowName(self) -> Optional[str]: + if "EnergyWindowName" in self._dataset: + return self._dataset.EnergyWindowName + return None + + @EnergyWindowName.setter + def EnergyWindowName(self, value: Optional[str]): + if value is None: + if "EnergyWindowName" in self._dataset: + del self._dataset.EnergyWindowName + else: + self._dataset.EnergyWindowName = value diff --git a/tdwii_plus_examples/domain_model/energy_window_range_sequence_item.py b/tdwii_plus_examples/domain_model/energy_window_range_sequence_item.py new file mode 100644 index 0000000..fc1eebb --- /dev/null +++ b/tdwii_plus_examples/domain_model/energy_window_range_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class EnergyWindowRangeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EnergyWindowLowerLimit(self) -> Optional[Decimal]: + if "EnergyWindowLowerLimit" in self._dataset: + return self._dataset.EnergyWindowLowerLimit + return None + + @EnergyWindowLowerLimit.setter + def EnergyWindowLowerLimit(self, value: Optional[Decimal]): + if value is None: + if "EnergyWindowLowerLimit" in self._dataset: + del self._dataset.EnergyWindowLowerLimit + else: + self._dataset.EnergyWindowLowerLimit = value + + @property + def EnergyWindowUpperLimit(self) -> Optional[Decimal]: + if "EnergyWindowUpperLimit" in self._dataset: + return self._dataset.EnergyWindowUpperLimit + return None + + @EnergyWindowUpperLimit.setter + def EnergyWindowUpperLimit(self, value: Optional[Decimal]): + if value is None: + if "EnergyWindowUpperLimit" in self._dataset: + del self._dataset.EnergyWindowUpperLimit + else: + self._dataset.EnergyWindowUpperLimit = value diff --git a/tdwii_plus_examples/domain_model/enhanced_continuous_rt_image.py b/tdwii_plus_examples/domain_model/enhanced_continuous_rt_image.py new file mode 100644 index 0000000..d72321f --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_continuous_rt_image.py @@ -0,0 +1,5952 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_device_sequence_item import AcquisitionDeviceSequenceItem +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .general_accessory_definition_sequence_item import ( + GeneralAccessoryDefinitionSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .selected_frame_functional_groups_sequence_item import ( + SelectedFrameFunctionalGroupsSequenceItem, +) +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class EnhancedContinuousRtImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._AcquisitionDeviceSequence: List[AcquisitionDeviceSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._GeneralAccessoryDefinitionSequence: List[GeneralAccessoryDefinitionSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SelectedFrameFunctionalGroupsSequence: List[SelectedFrameFunctionalGroupsSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def BeamModifierCoordinatesPresenceFlag(self) -> Optional[str]: + if "BeamModifierCoordinatesPresenceFlag" in self._dataset: + return self._dataset.BeamModifierCoordinatesPresenceFlag + return None + + @BeamModifierCoordinatesPresenceFlag.setter + def BeamModifierCoordinatesPresenceFlag(self, value: Optional[str]): + if value is None: + if "BeamModifierCoordinatesPresenceFlag" in self._dataset: + del self._dataset.BeamModifierCoordinatesPresenceFlag + else: + self._dataset.BeamModifierCoordinatesPresenceFlag = value + + @property + def NumberOfAcquisitionDevices(self) -> Optional[int]: + if "NumberOfAcquisitionDevices" in self._dataset: + return self._dataset.NumberOfAcquisitionDevices + return None + + @NumberOfAcquisitionDevices.setter + def NumberOfAcquisitionDevices(self, value: Optional[int]): + if value is None: + if "NumberOfAcquisitionDevices" in self._dataset: + del self._dataset.NumberOfAcquisitionDevices + else: + self._dataset.NumberOfAcquisitionDevices = value + + @property + def AcquisitionDeviceSequence(self) -> Optional[List[AcquisitionDeviceSequenceItem]]: + if "AcquisitionDeviceSequence" in self._dataset: + if len(self._AcquisitionDeviceSequence) == len(self._dataset.AcquisitionDeviceSequence): + return self._AcquisitionDeviceSequence + else: + return [AcquisitionDeviceSequenceItem(x) for x in self._dataset.AcquisitionDeviceSequence] + return None + + @AcquisitionDeviceSequence.setter + def AcquisitionDeviceSequence(self, value: Optional[List[AcquisitionDeviceSequenceItem]]): + if value is None: + self._AcquisitionDeviceSequence = [] + if "AcquisitionDeviceSequence" in self._dataset: + del self._dataset.AcquisitionDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionDeviceSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceSequence must be a list of AcquisitionDeviceSequenceItem objects") + else: + self._AcquisitionDeviceSequence = value + if "AcquisitionDeviceSequence" not in self._dataset: + self._dataset.AcquisitionDeviceSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceSequence.clear() + self._dataset.AcquisitionDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDevice(self, item: AcquisitionDeviceSequenceItem): + if not isinstance(item, AcquisitionDeviceSequenceItem): + raise ValueError("Item must be an instance of AcquisitionDeviceSequenceItem") + self._AcquisitionDeviceSequence.append(item) + if "AcquisitionDeviceSequence" not in self._dataset: + self._dataset.AcquisitionDeviceSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def GeneralAccessoryDefinitionSequence(self) -> Optional[List[GeneralAccessoryDefinitionSequenceItem]]: + if "GeneralAccessoryDefinitionSequence" in self._dataset: + if len(self._GeneralAccessoryDefinitionSequence) == len(self._dataset.GeneralAccessoryDefinitionSequence): + return self._GeneralAccessoryDefinitionSequence + else: + return [GeneralAccessoryDefinitionSequenceItem(x) for x in self._dataset.GeneralAccessoryDefinitionSequence] + return None + + @GeneralAccessoryDefinitionSequence.setter + def GeneralAccessoryDefinitionSequence(self, value: Optional[List[GeneralAccessoryDefinitionSequenceItem]]): + if value is None: + self._GeneralAccessoryDefinitionSequence = [] + if "GeneralAccessoryDefinitionSequence" in self._dataset: + del self._dataset.GeneralAccessoryDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, GeneralAccessoryDefinitionSequenceItem) for item in value + ): + raise ValueError( + "GeneralAccessoryDefinitionSequence must be a list of GeneralAccessoryDefinitionSequenceItem objects" + ) + else: + self._GeneralAccessoryDefinitionSequence = value + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.clear() + self._dataset.GeneralAccessoryDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessoryDefinition(self, item: GeneralAccessoryDefinitionSequenceItem): + if not isinstance(item, GeneralAccessoryDefinitionSequenceItem): + raise ValueError("Item must be an instance of GeneralAccessoryDefinitionSequenceItem") + self._GeneralAccessoryDefinitionSequence.append(item) + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfGeneralAccessories(self) -> Optional[int]: + if "NumberOfGeneralAccessories" in self._dataset: + return self._dataset.NumberOfGeneralAccessories + return None + + @NumberOfGeneralAccessories.setter + def NumberOfGeneralAccessories(self, value: Optional[int]): + if value is None: + if "NumberOfGeneralAccessories" in self._dataset: + del self._dataset.NumberOfGeneralAccessories + else: + self._dataset.NumberOfGeneralAccessories = value + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SelectedFrameFunctionalGroupsSequence(self) -> Optional[List[SelectedFrameFunctionalGroupsSequenceItem]]: + if "SelectedFrameFunctionalGroupsSequence" in self._dataset: + if len(self._SelectedFrameFunctionalGroupsSequence) == len(self._dataset.SelectedFrameFunctionalGroupsSequence): + return self._SelectedFrameFunctionalGroupsSequence + else: + return [ + SelectedFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.SelectedFrameFunctionalGroupsSequence + ] + return None + + @SelectedFrameFunctionalGroupsSequence.setter + def SelectedFrameFunctionalGroupsSequence(self, value: Optional[List[SelectedFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._SelectedFrameFunctionalGroupsSequence = [] + if "SelectedFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.SelectedFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all( + isinstance(item, SelectedFrameFunctionalGroupsSequenceItem) for item in value + ): + raise ValueError( + "SelectedFrameFunctionalGroupsSequence must be a list of SelectedFrameFunctionalGroupsSequenceItem objects" + ) + else: + self._SelectedFrameFunctionalGroupsSequence = value + if "SelectedFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.SelectedFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SelectedFrameFunctionalGroupsSequence.clear() + self._dataset.SelectedFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SelectedFrameFunctionalGroups(self, item: SelectedFrameFunctionalGroupsSequenceItem): + if not isinstance(item, SelectedFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SelectedFrameFunctionalGroupsSequenceItem") + self._SelectedFrameFunctionalGroupsSequence.append(item) + if "SelectedFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.SelectedFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SelectedFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def StartCumulativeMeterset(self) -> Optional[float]: + if "StartCumulativeMeterset" in self._dataset: + return self._dataset.StartCumulativeMeterset + return None + + @StartCumulativeMeterset.setter + def StartCumulativeMeterset(self, value: Optional[float]): + if value is None: + if "StartCumulativeMeterset" in self._dataset: + del self._dataset.StartCumulativeMeterset + else: + self._dataset.StartCumulativeMeterset = value + + @property + def StopCumulativeMeterset(self) -> Optional[float]: + if "StopCumulativeMeterset" in self._dataset: + return self._dataset.StopCumulativeMeterset + return None + + @StopCumulativeMeterset.setter + def StopCumulativeMeterset(self, value: Optional[float]): + if value is None: + if "StopCumulativeMeterset" in self._dataset: + del self._dataset.StopCumulativeMeterset + else: + self._dataset.StopCumulativeMeterset = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_ct_image.py b/tdwii_plus_examples/domain_model/enhanced_ct_image.py new file mode 100644 index 0000000..de99ab6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_ct_image.py @@ -0,0 +1,6292 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .multienergy_ct_path_sequence_item import MultienergyCTPathSequenceItem +from .multienergy_ctx_ray_detector_sequence_item import ( + MultienergyCTXRayDetectorSequenceItem, +) +from .multienergy_ctx_ray_source_sequence_item import ( + MultienergyCTXRaySourceSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EnhancedCtImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._MultienergyCTXRaySourceSequence: List[MultienergyCTXRaySourceSequenceItem] = [] + self._MultienergyCTXRayDetectorSequence: List[MultienergyCTXRayDetectorSequenceItem] = [] + self._MultienergyCTPathSequence: List[MultienergyCTPathSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def MultienergyCTAcquisition(self) -> Optional[str]: + if "MultienergyCTAcquisition" in self._dataset: + return self._dataset.MultienergyCTAcquisition + return None + + @MultienergyCTAcquisition.setter + def MultienergyCTAcquisition(self, value: Optional[str]): + if value is None: + if "MultienergyCTAcquisition" in self._dataset: + del self._dataset.MultienergyCTAcquisition + else: + self._dataset.MultienergyCTAcquisition = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def MultienergyCTXRaySourceSequence(self) -> Optional[List[MultienergyCTXRaySourceSequenceItem]]: + if "MultienergyCTXRaySourceSequence" in self._dataset: + if len(self._MultienergyCTXRaySourceSequence) == len(self._dataset.MultienergyCTXRaySourceSequence): + return self._MultienergyCTXRaySourceSequence + else: + return [MultienergyCTXRaySourceSequenceItem(x) for x in self._dataset.MultienergyCTXRaySourceSequence] + return None + + @MultienergyCTXRaySourceSequence.setter + def MultienergyCTXRaySourceSequence(self, value: Optional[List[MultienergyCTXRaySourceSequenceItem]]): + if value is None: + self._MultienergyCTXRaySourceSequence = [] + if "MultienergyCTXRaySourceSequence" in self._dataset: + del self._dataset.MultienergyCTXRaySourceSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTXRaySourceSequenceItem) for item in value): + raise ValueError("MultienergyCTXRaySourceSequence must be a list of MultienergyCTXRaySourceSequenceItem objects") + else: + self._MultienergyCTXRaySourceSequence = value + if "MultienergyCTXRaySourceSequence" not in self._dataset: + self._dataset.MultienergyCTXRaySourceSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRaySourceSequence.clear() + self._dataset.MultienergyCTXRaySourceSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTXRaySource(self, item: MultienergyCTXRaySourceSequenceItem): + if not isinstance(item, MultienergyCTXRaySourceSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTXRaySourceSequenceItem") + self._MultienergyCTXRaySourceSequence.append(item) + if "MultienergyCTXRaySourceSequence" not in self._dataset: + self._dataset.MultienergyCTXRaySourceSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRaySourceSequence.append(item.to_dataset()) + + @property + def MultienergyCTXRayDetectorSequence(self) -> Optional[List[MultienergyCTXRayDetectorSequenceItem]]: + if "MultienergyCTXRayDetectorSequence" in self._dataset: + if len(self._MultienergyCTXRayDetectorSequence) == len(self._dataset.MultienergyCTXRayDetectorSequence): + return self._MultienergyCTXRayDetectorSequence + else: + return [MultienergyCTXRayDetectorSequenceItem(x) for x in self._dataset.MultienergyCTXRayDetectorSequence] + return None + + @MultienergyCTXRayDetectorSequence.setter + def MultienergyCTXRayDetectorSequence(self, value: Optional[List[MultienergyCTXRayDetectorSequenceItem]]): + if value is None: + self._MultienergyCTXRayDetectorSequence = [] + if "MultienergyCTXRayDetectorSequence" in self._dataset: + del self._dataset.MultienergyCTXRayDetectorSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTXRayDetectorSequenceItem) for item in value): + raise ValueError( + "MultienergyCTXRayDetectorSequence must be a list of MultienergyCTXRayDetectorSequenceItem objects" + ) + else: + self._MultienergyCTXRayDetectorSequence = value + if "MultienergyCTXRayDetectorSequence" not in self._dataset: + self._dataset.MultienergyCTXRayDetectorSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRayDetectorSequence.clear() + self._dataset.MultienergyCTXRayDetectorSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTXRayDetector(self, item: MultienergyCTXRayDetectorSequenceItem): + if not isinstance(item, MultienergyCTXRayDetectorSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTXRayDetectorSequenceItem") + self._MultienergyCTXRayDetectorSequence.append(item) + if "MultienergyCTXRayDetectorSequence" not in self._dataset: + self._dataset.MultienergyCTXRayDetectorSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRayDetectorSequence.append(item.to_dataset()) + + @property + def MultienergyCTPathSequence(self) -> Optional[List[MultienergyCTPathSequenceItem]]: + if "MultienergyCTPathSequence" in self._dataset: + if len(self._MultienergyCTPathSequence) == len(self._dataset.MultienergyCTPathSequence): + return self._MultienergyCTPathSequence + else: + return [MultienergyCTPathSequenceItem(x) for x in self._dataset.MultienergyCTPathSequence] + return None + + @MultienergyCTPathSequence.setter + def MultienergyCTPathSequence(self, value: Optional[List[MultienergyCTPathSequenceItem]]): + if value is None: + self._MultienergyCTPathSequence = [] + if "MultienergyCTPathSequence" in self._dataset: + del self._dataset.MultienergyCTPathSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTPathSequenceItem) for item in value): + raise ValueError("MultienergyCTPathSequence must be a list of MultienergyCTPathSequenceItem objects") + else: + self._MultienergyCTPathSequence = value + if "MultienergyCTPathSequence" not in self._dataset: + self._dataset.MultienergyCTPathSequence = pydicom.Sequence() + self._dataset.MultienergyCTPathSequence.clear() + self._dataset.MultienergyCTPathSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTPath(self, item: MultienergyCTPathSequenceItem): + if not isinstance(item, MultienergyCTPathSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTPathSequenceItem") + self._MultienergyCTPathSequence.append(item) + if "MultienergyCTPathSequence" not in self._dataset: + self._dataset.MultienergyCTPathSequence = pydicom.Sequence() + self._dataset.MultienergyCTPathSequence.append(item.to_dataset()) + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_mr_color_image.py b/tdwii_plus_examples/domain_model/enhanced_mr_color_image.py new file mode 100644 index 0000000..a00dd29 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_mr_color_image.py @@ -0,0 +1,6550 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .echo_planar_pulse_sequence_item import EchoPlanarPulseSequenceItem +from .echo_pulse_sequence_item import EchoPulseSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .steady_state_pulse_sequence_item import SteadyStatePulseSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .velocity_encoding_acquisition_sequence_item import ( + VelocityEncodingAcquisitionSequenceItem, +) + + +class EnhancedMrColorImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._EchoPulseSequence: List[EchoPulseSequenceItem] = [] + self._SteadyStatePulseSequence: List[SteadyStatePulseSequenceItem] = [] + self._EchoPlanarPulseSequence: List[EchoPlanarPulseSequenceItem] = [] + self._VelocityEncodingAcquisitionSequence: List[VelocityEncodingAcquisitionSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def BulkMotionCompensationTechnique(self) -> Optional[str]: + if "BulkMotionCompensationTechnique" in self._dataset: + return self._dataset.BulkMotionCompensationTechnique + return None + + @BulkMotionCompensationTechnique.setter + def BulkMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "BulkMotionCompensationTechnique" in self._dataset: + del self._dataset.BulkMotionCompensationTechnique + else: + self._dataset.BulkMotionCompensationTechnique = value + + @property + def BulkMotionSignalSource(self) -> Optional[str]: + if "BulkMotionSignalSource" in self._dataset: + return self._dataset.BulkMotionSignalSource + return None + + @BulkMotionSignalSource.setter + def BulkMotionSignalSource(self, value: Optional[str]): + if value is None: + if "BulkMotionSignalSource" in self._dataset: + del self._dataset.BulkMotionSignalSource + else: + self._dataset.BulkMotionSignalSource = value + + @property + def MRAcquisitionType(self) -> Optional[str]: + if "MRAcquisitionType" in self._dataset: + return self._dataset.MRAcquisitionType + return None + + @MRAcquisitionType.setter + def MRAcquisitionType(self, value: Optional[str]): + if value is None: + if "MRAcquisitionType" in self._dataset: + del self._dataset.MRAcquisitionType + else: + self._dataset.MRAcquisitionType = value + + @property + def PulseSequenceName(self) -> Optional[str]: + if "PulseSequenceName" in self._dataset: + return self._dataset.PulseSequenceName + return None + + @PulseSequenceName.setter + def PulseSequenceName(self, value: Optional[str]): + if value is None: + if "PulseSequenceName" in self._dataset: + del self._dataset.PulseSequenceName + else: + self._dataset.PulseSequenceName = value + + @property + def EchoPulseSequence(self) -> Optional[List[EchoPulseSequenceItem]]: + if "EchoPulseSequence" in self._dataset: + if len(self._EchoPulseSequence) == len(self._dataset.EchoPulseSequence): + return self._EchoPulseSequence + else: + return [EchoPulseSequenceItem(x) for x in self._dataset.EchoPulseSequence] + return None + + @EchoPulseSequence.setter + def EchoPulseSequence(self, value: Optional[List[EchoPulseSequenceItem]]): + if value is None: + self._EchoPulseSequence = [] + if "EchoPulseSequence" in self._dataset: + del self._dataset.EchoPulseSequence + elif not isinstance(value, list) or not all(isinstance(item, EchoPulseSequenceItem) for item in value): + raise ValueError("EchoPulseSequence must be a list of EchoPulseSequenceItem objects") + else: + self._EchoPulseSequence = value + if "EchoPulseSequence" not in self._dataset: + self._dataset.EchoPulseSequence = pydicom.Sequence() + self._dataset.EchoPulseSequence.clear() + self._dataset.EchoPulseSequence.extend([item.to_dataset() for item in value]) + + def add_EchoPulse(self, item: EchoPulseSequenceItem): + if not isinstance(item, EchoPulseSequenceItem): + raise ValueError("Item must be an instance of EchoPulseSequenceItem") + self._EchoPulseSequence.append(item) + if "EchoPulseSequence" not in self._dataset: + self._dataset.EchoPulseSequence = pydicom.Sequence() + self._dataset.EchoPulseSequence.append(item.to_dataset()) + + @property + def MultipleSpinEcho(self) -> Optional[str]: + if "MultipleSpinEcho" in self._dataset: + return self._dataset.MultipleSpinEcho + return None + + @MultipleSpinEcho.setter + def MultipleSpinEcho(self, value: Optional[str]): + if value is None: + if "MultipleSpinEcho" in self._dataset: + del self._dataset.MultipleSpinEcho + else: + self._dataset.MultipleSpinEcho = value + + @property + def MultiPlanarExcitation(self) -> Optional[str]: + if "MultiPlanarExcitation" in self._dataset: + return self._dataset.MultiPlanarExcitation + return None + + @MultiPlanarExcitation.setter + def MultiPlanarExcitation(self, value: Optional[str]): + if value is None: + if "MultiPlanarExcitation" in self._dataset: + del self._dataset.MultiPlanarExcitation + else: + self._dataset.MultiPlanarExcitation = value + + @property + def PhaseContrast(self) -> Optional[str]: + if "PhaseContrast" in self._dataset: + return self._dataset.PhaseContrast + return None + + @PhaseContrast.setter + def PhaseContrast(self, value: Optional[str]): + if value is None: + if "PhaseContrast" in self._dataset: + del self._dataset.PhaseContrast + else: + self._dataset.PhaseContrast = value + + @property + def TimeOfFlightContrast(self) -> Optional[str]: + if "TimeOfFlightContrast" in self._dataset: + return self._dataset.TimeOfFlightContrast + return None + + @TimeOfFlightContrast.setter + def TimeOfFlightContrast(self, value: Optional[str]): + if value is None: + if "TimeOfFlightContrast" in self._dataset: + del self._dataset.TimeOfFlightContrast + else: + self._dataset.TimeOfFlightContrast = value + + @property + def SteadyStatePulseSequence(self) -> Optional[List[SteadyStatePulseSequenceItem]]: + if "SteadyStatePulseSequence" in self._dataset: + if len(self._SteadyStatePulseSequence) == len(self._dataset.SteadyStatePulseSequence): + return self._SteadyStatePulseSequence + else: + return [SteadyStatePulseSequenceItem(x) for x in self._dataset.SteadyStatePulseSequence] + return None + + @SteadyStatePulseSequence.setter + def SteadyStatePulseSequence(self, value: Optional[List[SteadyStatePulseSequenceItem]]): + if value is None: + self._SteadyStatePulseSequence = [] + if "SteadyStatePulseSequence" in self._dataset: + del self._dataset.SteadyStatePulseSequence + elif not isinstance(value, list) or not all(isinstance(item, SteadyStatePulseSequenceItem) for item in value): + raise ValueError("SteadyStatePulseSequence must be a list of SteadyStatePulseSequenceItem objects") + else: + self._SteadyStatePulseSequence = value + if "SteadyStatePulseSequence" not in self._dataset: + self._dataset.SteadyStatePulseSequence = pydicom.Sequence() + self._dataset.SteadyStatePulseSequence.clear() + self._dataset.SteadyStatePulseSequence.extend([item.to_dataset() for item in value]) + + def add_SteadyStatePulse(self, item: SteadyStatePulseSequenceItem): + if not isinstance(item, SteadyStatePulseSequenceItem): + raise ValueError("Item must be an instance of SteadyStatePulseSequenceItem") + self._SteadyStatePulseSequence.append(item) + if "SteadyStatePulseSequence" not in self._dataset: + self._dataset.SteadyStatePulseSequence = pydicom.Sequence() + self._dataset.SteadyStatePulseSequence.append(item.to_dataset()) + + @property + def EchoPlanarPulseSequence(self) -> Optional[List[EchoPlanarPulseSequenceItem]]: + if "EchoPlanarPulseSequence" in self._dataset: + if len(self._EchoPlanarPulseSequence) == len(self._dataset.EchoPlanarPulseSequence): + return self._EchoPlanarPulseSequence + else: + return [EchoPlanarPulseSequenceItem(x) for x in self._dataset.EchoPlanarPulseSequence] + return None + + @EchoPlanarPulseSequence.setter + def EchoPlanarPulseSequence(self, value: Optional[List[EchoPlanarPulseSequenceItem]]): + if value is None: + self._EchoPlanarPulseSequence = [] + if "EchoPlanarPulseSequence" in self._dataset: + del self._dataset.EchoPlanarPulseSequence + elif not isinstance(value, list) or not all(isinstance(item, EchoPlanarPulseSequenceItem) for item in value): + raise ValueError("EchoPlanarPulseSequence must be a list of EchoPlanarPulseSequenceItem objects") + else: + self._EchoPlanarPulseSequence = value + if "EchoPlanarPulseSequence" not in self._dataset: + self._dataset.EchoPlanarPulseSequence = pydicom.Sequence() + self._dataset.EchoPlanarPulseSequence.clear() + self._dataset.EchoPlanarPulseSequence.extend([item.to_dataset() for item in value]) + + def add_EchoPlanarPulse(self, item: EchoPlanarPulseSequenceItem): + if not isinstance(item, EchoPlanarPulseSequenceItem): + raise ValueError("Item must be an instance of EchoPlanarPulseSequenceItem") + self._EchoPlanarPulseSequence.append(item) + if "EchoPlanarPulseSequence" not in self._dataset: + self._dataset.EchoPlanarPulseSequence = pydicom.Sequence() + self._dataset.EchoPlanarPulseSequence.append(item.to_dataset()) + + @property + def SaturationRecovery(self) -> Optional[str]: + if "SaturationRecovery" in self._dataset: + return self._dataset.SaturationRecovery + return None + + @SaturationRecovery.setter + def SaturationRecovery(self, value: Optional[str]): + if value is None: + if "SaturationRecovery" in self._dataset: + del self._dataset.SaturationRecovery + else: + self._dataset.SaturationRecovery = value + + @property + def SpectrallySelectedSuppression(self) -> Optional[str]: + if "SpectrallySelectedSuppression" in self._dataset: + return self._dataset.SpectrallySelectedSuppression + return None + + @SpectrallySelectedSuppression.setter + def SpectrallySelectedSuppression(self, value: Optional[str]): + if value is None: + if "SpectrallySelectedSuppression" in self._dataset: + del self._dataset.SpectrallySelectedSuppression + else: + self._dataset.SpectrallySelectedSuppression = value + + @property + def OversamplingPhase(self) -> Optional[str]: + if "OversamplingPhase" in self._dataset: + return self._dataset.OversamplingPhase + return None + + @OversamplingPhase.setter + def OversamplingPhase(self, value: Optional[str]): + if value is None: + if "OversamplingPhase" in self._dataset: + del self._dataset.OversamplingPhase + else: + self._dataset.OversamplingPhase = value + + @property + def GeometryOfKSpaceTraversal(self) -> Optional[str]: + if "GeometryOfKSpaceTraversal" in self._dataset: + return self._dataset.GeometryOfKSpaceTraversal + return None + + @GeometryOfKSpaceTraversal.setter + def GeometryOfKSpaceTraversal(self, value: Optional[str]): + if value is None: + if "GeometryOfKSpaceTraversal" in self._dataset: + del self._dataset.GeometryOfKSpaceTraversal + else: + self._dataset.GeometryOfKSpaceTraversal = value + + @property + def SegmentedKSpaceTraversal(self) -> Optional[str]: + if "SegmentedKSpaceTraversal" in self._dataset: + return self._dataset.SegmentedKSpaceTraversal + return None + + @SegmentedKSpaceTraversal.setter + def SegmentedKSpaceTraversal(self, value: Optional[str]): + if value is None: + if "SegmentedKSpaceTraversal" in self._dataset: + del self._dataset.SegmentedKSpaceTraversal + else: + self._dataset.SegmentedKSpaceTraversal = value + + @property + def RectilinearPhaseEncodeReordering(self) -> Optional[str]: + if "RectilinearPhaseEncodeReordering" in self._dataset: + return self._dataset.RectilinearPhaseEncodeReordering + return None + + @RectilinearPhaseEncodeReordering.setter + def RectilinearPhaseEncodeReordering(self, value: Optional[str]): + if value is None: + if "RectilinearPhaseEncodeReordering" in self._dataset: + del self._dataset.RectilinearPhaseEncodeReordering + else: + self._dataset.RectilinearPhaseEncodeReordering = value + + @property + def VelocityEncodingAcquisitionSequence(self) -> Optional[List[VelocityEncodingAcquisitionSequenceItem]]: + if "VelocityEncodingAcquisitionSequence" in self._dataset: + if len(self._VelocityEncodingAcquisitionSequence) == len(self._dataset.VelocityEncodingAcquisitionSequence): + return self._VelocityEncodingAcquisitionSequence + else: + return [VelocityEncodingAcquisitionSequenceItem(x) for x in self._dataset.VelocityEncodingAcquisitionSequence] + return None + + @VelocityEncodingAcquisitionSequence.setter + def VelocityEncodingAcquisitionSequence(self, value: Optional[List[VelocityEncodingAcquisitionSequenceItem]]): + if value is None: + self._VelocityEncodingAcquisitionSequence = [] + if "VelocityEncodingAcquisitionSequence" in self._dataset: + del self._dataset.VelocityEncodingAcquisitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, VelocityEncodingAcquisitionSequenceItem) for item in value + ): + raise ValueError( + "VelocityEncodingAcquisitionSequence must be a list of VelocityEncodingAcquisitionSequenceItem objects" + ) + else: + self._VelocityEncodingAcquisitionSequence = value + if "VelocityEncodingAcquisitionSequence" not in self._dataset: + self._dataset.VelocityEncodingAcquisitionSequence = pydicom.Sequence() + self._dataset.VelocityEncodingAcquisitionSequence.clear() + self._dataset.VelocityEncodingAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_VelocityEncodingAcquisition(self, item: VelocityEncodingAcquisitionSequenceItem): + if not isinstance(item, VelocityEncodingAcquisitionSequenceItem): + raise ValueError("Item must be an instance of VelocityEncodingAcquisitionSequenceItem") + self._VelocityEncodingAcquisitionSequence.append(item) + if "VelocityEncodingAcquisitionSequence" not in self._dataset: + self._dataset.VelocityEncodingAcquisitionSequence = pydicom.Sequence() + self._dataset.VelocityEncodingAcquisitionSequence.append(item.to_dataset()) + + @property + def NumberOfKSpaceTrajectories(self) -> Optional[int]: + if "NumberOfKSpaceTrajectories" in self._dataset: + return self._dataset.NumberOfKSpaceTrajectories + return None + + @NumberOfKSpaceTrajectories.setter + def NumberOfKSpaceTrajectories(self, value: Optional[int]): + if value is None: + if "NumberOfKSpaceTrajectories" in self._dataset: + del self._dataset.NumberOfKSpaceTrajectories + else: + self._dataset.NumberOfKSpaceTrajectories = value + + @property + def CoverageOfKSpace(self) -> Optional[str]: + if "CoverageOfKSpace" in self._dataset: + return self._dataset.CoverageOfKSpace + return None + + @CoverageOfKSpace.setter + def CoverageOfKSpace(self, value: Optional[str]): + if value is None: + if "CoverageOfKSpace" in self._dataset: + del self._dataset.CoverageOfKSpace + else: + self._dataset.CoverageOfKSpace = value + + @property + def ArterialSpinLabelingContrast(self) -> Optional[str]: + if "ArterialSpinLabelingContrast" in self._dataset: + return self._dataset.ArterialSpinLabelingContrast + return None + + @ArterialSpinLabelingContrast.setter + def ArterialSpinLabelingContrast(self, value: Optional[str]): + if value is None: + if "ArterialSpinLabelingContrast" in self._dataset: + del self._dataset.ArterialSpinLabelingContrast + else: + self._dataset.ArterialSpinLabelingContrast = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ComplexImageComponent(self) -> Optional[str]: + if "ComplexImageComponent" in self._dataset: + return self._dataset.ComplexImageComponent + return None + + @ComplexImageComponent.setter + def ComplexImageComponent(self, value: Optional[str]): + if value is None: + if "ComplexImageComponent" in self._dataset: + del self._dataset.ComplexImageComponent + else: + self._dataset.ComplexImageComponent = value + + @property + def AcquisitionContrast(self) -> Optional[str]: + if "AcquisitionContrast" in self._dataset: + return self._dataset.AcquisitionContrast + return None + + @AcquisitionContrast.setter + def AcquisitionContrast(self, value: Optional[str]): + if value is None: + if "AcquisitionContrast" in self._dataset: + del self._dataset.AcquisitionContrast + else: + self._dataset.AcquisitionContrast = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def MagneticFieldStrength(self) -> Optional[Decimal]: + if "MagneticFieldStrength" in self._dataset: + return self._dataset.MagneticFieldStrength + return None + + @MagneticFieldStrength.setter + def MagneticFieldStrength(self, value: Optional[Decimal]): + if value is None: + if "MagneticFieldStrength" in self._dataset: + del self._dataset.MagneticFieldStrength + else: + self._dataset.MagneticFieldStrength = value + + @property + def B1rms(self) -> Optional[float]: + if "B1rms" in self._dataset: + return self._dataset.B1rms + return None + + @B1rms.setter + def B1rms(self, value: Optional[float]): + if value is None: + if "B1rms" in self._dataset: + del self._dataset.B1rms + else: + self._dataset.B1rms = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def KSpaceFiltering(self) -> Optional[str]: + if "KSpaceFiltering" in self._dataset: + return self._dataset.KSpaceFiltering + return None + + @KSpaceFiltering.setter + def KSpaceFiltering(self, value: Optional[str]): + if value is None: + if "KSpaceFiltering" in self._dataset: + del self._dataset.KSpaceFiltering + else: + self._dataset.KSpaceFiltering = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def ResonantNucleus(self) -> Optional[List[str]]: + if "ResonantNucleus" in self._dataset: + return self._dataset.ResonantNucleus + return None + + @ResonantNucleus.setter + def ResonantNucleus(self, value: Optional[List[str]]): + if value is None: + if "ResonantNucleus" in self._dataset: + del self._dataset.ResonantNucleus + else: + self._dataset.ResonantNucleus = value + + @property + def ApplicableSafetyStandardAgency(self) -> Optional[str]: + if "ApplicableSafetyStandardAgency" in self._dataset: + return self._dataset.ApplicableSafetyStandardAgency + return None + + @ApplicableSafetyStandardAgency.setter + def ApplicableSafetyStandardAgency(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardAgency" in self._dataset: + del self._dataset.ApplicableSafetyStandardAgency + else: + self._dataset.ApplicableSafetyStandardAgency = value + + @property + def ApplicableSafetyStandardDescription(self) -> Optional[str]: + if "ApplicableSafetyStandardDescription" in self._dataset: + return self._dataset.ApplicableSafetyStandardDescription + return None + + @ApplicableSafetyStandardDescription.setter + def ApplicableSafetyStandardDescription(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardDescription" in self._dataset: + del self._dataset.ApplicableSafetyStandardDescription + else: + self._dataset.ApplicableSafetyStandardDescription = value + + @property + def FunctionalSettlingPhaseFramesPresent(self) -> Optional[str]: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + return self._dataset.FunctionalSettlingPhaseFramesPresent + return None + + @FunctionalSettlingPhaseFramesPresent.setter + def FunctionalSettlingPhaseFramesPresent(self, value: Optional[str]): + if value is None: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + del self._dataset.FunctionalSettlingPhaseFramesPresent + else: + self._dataset.FunctionalSettlingPhaseFramesPresent = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_mr_image.py b/tdwii_plus_examples/domain_model/enhanced_mr_image.py new file mode 100644 index 0000000..c6160de --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_mr_image.py @@ -0,0 +1,6634 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .echo_planar_pulse_sequence_item import EchoPlanarPulseSequenceItem +from .echo_pulse_sequence_item import EchoPulseSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .steady_state_pulse_sequence_item import SteadyStatePulseSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .velocity_encoding_acquisition_sequence_item import ( + VelocityEncodingAcquisitionSequenceItem, +) + + +class EnhancedMrImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._EchoPulseSequence: List[EchoPulseSequenceItem] = [] + self._SteadyStatePulseSequence: List[SteadyStatePulseSequenceItem] = [] + self._EchoPlanarPulseSequence: List[EchoPlanarPulseSequenceItem] = [] + self._VelocityEncodingAcquisitionSequence: List[VelocityEncodingAcquisitionSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def BulkMotionCompensationTechnique(self) -> Optional[str]: + if "BulkMotionCompensationTechnique" in self._dataset: + return self._dataset.BulkMotionCompensationTechnique + return None + + @BulkMotionCompensationTechnique.setter + def BulkMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "BulkMotionCompensationTechnique" in self._dataset: + del self._dataset.BulkMotionCompensationTechnique + else: + self._dataset.BulkMotionCompensationTechnique = value + + @property + def BulkMotionSignalSource(self) -> Optional[str]: + if "BulkMotionSignalSource" in self._dataset: + return self._dataset.BulkMotionSignalSource + return None + + @BulkMotionSignalSource.setter + def BulkMotionSignalSource(self, value: Optional[str]): + if value is None: + if "BulkMotionSignalSource" in self._dataset: + del self._dataset.BulkMotionSignalSource + else: + self._dataset.BulkMotionSignalSource = value + + @property + def MRAcquisitionType(self) -> Optional[str]: + if "MRAcquisitionType" in self._dataset: + return self._dataset.MRAcquisitionType + return None + + @MRAcquisitionType.setter + def MRAcquisitionType(self, value: Optional[str]): + if value is None: + if "MRAcquisitionType" in self._dataset: + del self._dataset.MRAcquisitionType + else: + self._dataset.MRAcquisitionType = value + + @property + def PulseSequenceName(self) -> Optional[str]: + if "PulseSequenceName" in self._dataset: + return self._dataset.PulseSequenceName + return None + + @PulseSequenceName.setter + def PulseSequenceName(self, value: Optional[str]): + if value is None: + if "PulseSequenceName" in self._dataset: + del self._dataset.PulseSequenceName + else: + self._dataset.PulseSequenceName = value + + @property + def EchoPulseSequence(self) -> Optional[List[EchoPulseSequenceItem]]: + if "EchoPulseSequence" in self._dataset: + if len(self._EchoPulseSequence) == len(self._dataset.EchoPulseSequence): + return self._EchoPulseSequence + else: + return [EchoPulseSequenceItem(x) for x in self._dataset.EchoPulseSequence] + return None + + @EchoPulseSequence.setter + def EchoPulseSequence(self, value: Optional[List[EchoPulseSequenceItem]]): + if value is None: + self._EchoPulseSequence = [] + if "EchoPulseSequence" in self._dataset: + del self._dataset.EchoPulseSequence + elif not isinstance(value, list) or not all(isinstance(item, EchoPulseSequenceItem) for item in value): + raise ValueError("EchoPulseSequence must be a list of EchoPulseSequenceItem objects") + else: + self._EchoPulseSequence = value + if "EchoPulseSequence" not in self._dataset: + self._dataset.EchoPulseSequence = pydicom.Sequence() + self._dataset.EchoPulseSequence.clear() + self._dataset.EchoPulseSequence.extend([item.to_dataset() for item in value]) + + def add_EchoPulse(self, item: EchoPulseSequenceItem): + if not isinstance(item, EchoPulseSequenceItem): + raise ValueError("Item must be an instance of EchoPulseSequenceItem") + self._EchoPulseSequence.append(item) + if "EchoPulseSequence" not in self._dataset: + self._dataset.EchoPulseSequence = pydicom.Sequence() + self._dataset.EchoPulseSequence.append(item.to_dataset()) + + @property + def MultipleSpinEcho(self) -> Optional[str]: + if "MultipleSpinEcho" in self._dataset: + return self._dataset.MultipleSpinEcho + return None + + @MultipleSpinEcho.setter + def MultipleSpinEcho(self, value: Optional[str]): + if value is None: + if "MultipleSpinEcho" in self._dataset: + del self._dataset.MultipleSpinEcho + else: + self._dataset.MultipleSpinEcho = value + + @property + def MultiPlanarExcitation(self) -> Optional[str]: + if "MultiPlanarExcitation" in self._dataset: + return self._dataset.MultiPlanarExcitation + return None + + @MultiPlanarExcitation.setter + def MultiPlanarExcitation(self, value: Optional[str]): + if value is None: + if "MultiPlanarExcitation" in self._dataset: + del self._dataset.MultiPlanarExcitation + else: + self._dataset.MultiPlanarExcitation = value + + @property + def PhaseContrast(self) -> Optional[str]: + if "PhaseContrast" in self._dataset: + return self._dataset.PhaseContrast + return None + + @PhaseContrast.setter + def PhaseContrast(self, value: Optional[str]): + if value is None: + if "PhaseContrast" in self._dataset: + del self._dataset.PhaseContrast + else: + self._dataset.PhaseContrast = value + + @property + def TimeOfFlightContrast(self) -> Optional[str]: + if "TimeOfFlightContrast" in self._dataset: + return self._dataset.TimeOfFlightContrast + return None + + @TimeOfFlightContrast.setter + def TimeOfFlightContrast(self, value: Optional[str]): + if value is None: + if "TimeOfFlightContrast" in self._dataset: + del self._dataset.TimeOfFlightContrast + else: + self._dataset.TimeOfFlightContrast = value + + @property + def SteadyStatePulseSequence(self) -> Optional[List[SteadyStatePulseSequenceItem]]: + if "SteadyStatePulseSequence" in self._dataset: + if len(self._SteadyStatePulseSequence) == len(self._dataset.SteadyStatePulseSequence): + return self._SteadyStatePulseSequence + else: + return [SteadyStatePulseSequenceItem(x) for x in self._dataset.SteadyStatePulseSequence] + return None + + @SteadyStatePulseSequence.setter + def SteadyStatePulseSequence(self, value: Optional[List[SteadyStatePulseSequenceItem]]): + if value is None: + self._SteadyStatePulseSequence = [] + if "SteadyStatePulseSequence" in self._dataset: + del self._dataset.SteadyStatePulseSequence + elif not isinstance(value, list) or not all(isinstance(item, SteadyStatePulseSequenceItem) for item in value): + raise ValueError("SteadyStatePulseSequence must be a list of SteadyStatePulseSequenceItem objects") + else: + self._SteadyStatePulseSequence = value + if "SteadyStatePulseSequence" not in self._dataset: + self._dataset.SteadyStatePulseSequence = pydicom.Sequence() + self._dataset.SteadyStatePulseSequence.clear() + self._dataset.SteadyStatePulseSequence.extend([item.to_dataset() for item in value]) + + def add_SteadyStatePulse(self, item: SteadyStatePulseSequenceItem): + if not isinstance(item, SteadyStatePulseSequenceItem): + raise ValueError("Item must be an instance of SteadyStatePulseSequenceItem") + self._SteadyStatePulseSequence.append(item) + if "SteadyStatePulseSequence" not in self._dataset: + self._dataset.SteadyStatePulseSequence = pydicom.Sequence() + self._dataset.SteadyStatePulseSequence.append(item.to_dataset()) + + @property + def EchoPlanarPulseSequence(self) -> Optional[List[EchoPlanarPulseSequenceItem]]: + if "EchoPlanarPulseSequence" in self._dataset: + if len(self._EchoPlanarPulseSequence) == len(self._dataset.EchoPlanarPulseSequence): + return self._EchoPlanarPulseSequence + else: + return [EchoPlanarPulseSequenceItem(x) for x in self._dataset.EchoPlanarPulseSequence] + return None + + @EchoPlanarPulseSequence.setter + def EchoPlanarPulseSequence(self, value: Optional[List[EchoPlanarPulseSequenceItem]]): + if value is None: + self._EchoPlanarPulseSequence = [] + if "EchoPlanarPulseSequence" in self._dataset: + del self._dataset.EchoPlanarPulseSequence + elif not isinstance(value, list) or not all(isinstance(item, EchoPlanarPulseSequenceItem) for item in value): + raise ValueError("EchoPlanarPulseSequence must be a list of EchoPlanarPulseSequenceItem objects") + else: + self._EchoPlanarPulseSequence = value + if "EchoPlanarPulseSequence" not in self._dataset: + self._dataset.EchoPlanarPulseSequence = pydicom.Sequence() + self._dataset.EchoPlanarPulseSequence.clear() + self._dataset.EchoPlanarPulseSequence.extend([item.to_dataset() for item in value]) + + def add_EchoPlanarPulse(self, item: EchoPlanarPulseSequenceItem): + if not isinstance(item, EchoPlanarPulseSequenceItem): + raise ValueError("Item must be an instance of EchoPlanarPulseSequenceItem") + self._EchoPlanarPulseSequence.append(item) + if "EchoPlanarPulseSequence" not in self._dataset: + self._dataset.EchoPlanarPulseSequence = pydicom.Sequence() + self._dataset.EchoPlanarPulseSequence.append(item.to_dataset()) + + @property + def SaturationRecovery(self) -> Optional[str]: + if "SaturationRecovery" in self._dataset: + return self._dataset.SaturationRecovery + return None + + @SaturationRecovery.setter + def SaturationRecovery(self, value: Optional[str]): + if value is None: + if "SaturationRecovery" in self._dataset: + del self._dataset.SaturationRecovery + else: + self._dataset.SaturationRecovery = value + + @property + def SpectrallySelectedSuppression(self) -> Optional[str]: + if "SpectrallySelectedSuppression" in self._dataset: + return self._dataset.SpectrallySelectedSuppression + return None + + @SpectrallySelectedSuppression.setter + def SpectrallySelectedSuppression(self, value: Optional[str]): + if value is None: + if "SpectrallySelectedSuppression" in self._dataset: + del self._dataset.SpectrallySelectedSuppression + else: + self._dataset.SpectrallySelectedSuppression = value + + @property + def OversamplingPhase(self) -> Optional[str]: + if "OversamplingPhase" in self._dataset: + return self._dataset.OversamplingPhase + return None + + @OversamplingPhase.setter + def OversamplingPhase(self, value: Optional[str]): + if value is None: + if "OversamplingPhase" in self._dataset: + del self._dataset.OversamplingPhase + else: + self._dataset.OversamplingPhase = value + + @property + def GeometryOfKSpaceTraversal(self) -> Optional[str]: + if "GeometryOfKSpaceTraversal" in self._dataset: + return self._dataset.GeometryOfKSpaceTraversal + return None + + @GeometryOfKSpaceTraversal.setter + def GeometryOfKSpaceTraversal(self, value: Optional[str]): + if value is None: + if "GeometryOfKSpaceTraversal" in self._dataset: + del self._dataset.GeometryOfKSpaceTraversal + else: + self._dataset.GeometryOfKSpaceTraversal = value + + @property + def SegmentedKSpaceTraversal(self) -> Optional[str]: + if "SegmentedKSpaceTraversal" in self._dataset: + return self._dataset.SegmentedKSpaceTraversal + return None + + @SegmentedKSpaceTraversal.setter + def SegmentedKSpaceTraversal(self, value: Optional[str]): + if value is None: + if "SegmentedKSpaceTraversal" in self._dataset: + del self._dataset.SegmentedKSpaceTraversal + else: + self._dataset.SegmentedKSpaceTraversal = value + + @property + def RectilinearPhaseEncodeReordering(self) -> Optional[str]: + if "RectilinearPhaseEncodeReordering" in self._dataset: + return self._dataset.RectilinearPhaseEncodeReordering + return None + + @RectilinearPhaseEncodeReordering.setter + def RectilinearPhaseEncodeReordering(self, value: Optional[str]): + if value is None: + if "RectilinearPhaseEncodeReordering" in self._dataset: + del self._dataset.RectilinearPhaseEncodeReordering + else: + self._dataset.RectilinearPhaseEncodeReordering = value + + @property + def VelocityEncodingAcquisitionSequence(self) -> Optional[List[VelocityEncodingAcquisitionSequenceItem]]: + if "VelocityEncodingAcquisitionSequence" in self._dataset: + if len(self._VelocityEncodingAcquisitionSequence) == len(self._dataset.VelocityEncodingAcquisitionSequence): + return self._VelocityEncodingAcquisitionSequence + else: + return [VelocityEncodingAcquisitionSequenceItem(x) for x in self._dataset.VelocityEncodingAcquisitionSequence] + return None + + @VelocityEncodingAcquisitionSequence.setter + def VelocityEncodingAcquisitionSequence(self, value: Optional[List[VelocityEncodingAcquisitionSequenceItem]]): + if value is None: + self._VelocityEncodingAcquisitionSequence = [] + if "VelocityEncodingAcquisitionSequence" in self._dataset: + del self._dataset.VelocityEncodingAcquisitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, VelocityEncodingAcquisitionSequenceItem) for item in value + ): + raise ValueError( + "VelocityEncodingAcquisitionSequence must be a list of VelocityEncodingAcquisitionSequenceItem objects" + ) + else: + self._VelocityEncodingAcquisitionSequence = value + if "VelocityEncodingAcquisitionSequence" not in self._dataset: + self._dataset.VelocityEncodingAcquisitionSequence = pydicom.Sequence() + self._dataset.VelocityEncodingAcquisitionSequence.clear() + self._dataset.VelocityEncodingAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_VelocityEncodingAcquisition(self, item: VelocityEncodingAcquisitionSequenceItem): + if not isinstance(item, VelocityEncodingAcquisitionSequenceItem): + raise ValueError("Item must be an instance of VelocityEncodingAcquisitionSequenceItem") + self._VelocityEncodingAcquisitionSequence.append(item) + if "VelocityEncodingAcquisitionSequence" not in self._dataset: + self._dataset.VelocityEncodingAcquisitionSequence = pydicom.Sequence() + self._dataset.VelocityEncodingAcquisitionSequence.append(item.to_dataset()) + + @property + def NumberOfKSpaceTrajectories(self) -> Optional[int]: + if "NumberOfKSpaceTrajectories" in self._dataset: + return self._dataset.NumberOfKSpaceTrajectories + return None + + @NumberOfKSpaceTrajectories.setter + def NumberOfKSpaceTrajectories(self, value: Optional[int]): + if value is None: + if "NumberOfKSpaceTrajectories" in self._dataset: + del self._dataset.NumberOfKSpaceTrajectories + else: + self._dataset.NumberOfKSpaceTrajectories = value + + @property + def CoverageOfKSpace(self) -> Optional[str]: + if "CoverageOfKSpace" in self._dataset: + return self._dataset.CoverageOfKSpace + return None + + @CoverageOfKSpace.setter + def CoverageOfKSpace(self, value: Optional[str]): + if value is None: + if "CoverageOfKSpace" in self._dataset: + del self._dataset.CoverageOfKSpace + else: + self._dataset.CoverageOfKSpace = value + + @property + def ArterialSpinLabelingContrast(self) -> Optional[str]: + if "ArterialSpinLabelingContrast" in self._dataset: + return self._dataset.ArterialSpinLabelingContrast + return None + + @ArterialSpinLabelingContrast.setter + def ArterialSpinLabelingContrast(self, value: Optional[str]): + if value is None: + if "ArterialSpinLabelingContrast" in self._dataset: + del self._dataset.ArterialSpinLabelingContrast + else: + self._dataset.ArterialSpinLabelingContrast = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ComplexImageComponent(self) -> Optional[str]: + if "ComplexImageComponent" in self._dataset: + return self._dataset.ComplexImageComponent + return None + + @ComplexImageComponent.setter + def ComplexImageComponent(self, value: Optional[str]): + if value is None: + if "ComplexImageComponent" in self._dataset: + del self._dataset.ComplexImageComponent + else: + self._dataset.ComplexImageComponent = value + + @property + def AcquisitionContrast(self) -> Optional[str]: + if "AcquisitionContrast" in self._dataset: + return self._dataset.AcquisitionContrast + return None + + @AcquisitionContrast.setter + def AcquisitionContrast(self, value: Optional[str]): + if value is None: + if "AcquisitionContrast" in self._dataset: + del self._dataset.AcquisitionContrast + else: + self._dataset.AcquisitionContrast = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def MagneticFieldStrength(self) -> Optional[Decimal]: + if "MagneticFieldStrength" in self._dataset: + return self._dataset.MagneticFieldStrength + return None + + @MagneticFieldStrength.setter + def MagneticFieldStrength(self, value: Optional[Decimal]): + if value is None: + if "MagneticFieldStrength" in self._dataset: + del self._dataset.MagneticFieldStrength + else: + self._dataset.MagneticFieldStrength = value + + @property + def B1rms(self) -> Optional[float]: + if "B1rms" in self._dataset: + return self._dataset.B1rms + return None + + @B1rms.setter + def B1rms(self, value: Optional[float]): + if value is None: + if "B1rms" in self._dataset: + del self._dataset.B1rms + else: + self._dataset.B1rms = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def KSpaceFiltering(self) -> Optional[str]: + if "KSpaceFiltering" in self._dataset: + return self._dataset.KSpaceFiltering + return None + + @KSpaceFiltering.setter + def KSpaceFiltering(self, value: Optional[str]): + if value is None: + if "KSpaceFiltering" in self._dataset: + del self._dataset.KSpaceFiltering + else: + self._dataset.KSpaceFiltering = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def ResonantNucleus(self) -> Optional[List[str]]: + if "ResonantNucleus" in self._dataset: + return self._dataset.ResonantNucleus + return None + + @ResonantNucleus.setter + def ResonantNucleus(self, value: Optional[List[str]]): + if value is None: + if "ResonantNucleus" in self._dataset: + del self._dataset.ResonantNucleus + else: + self._dataset.ResonantNucleus = value + + @property + def ApplicableSafetyStandardAgency(self) -> Optional[str]: + if "ApplicableSafetyStandardAgency" in self._dataset: + return self._dataset.ApplicableSafetyStandardAgency + return None + + @ApplicableSafetyStandardAgency.setter + def ApplicableSafetyStandardAgency(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardAgency" in self._dataset: + del self._dataset.ApplicableSafetyStandardAgency + else: + self._dataset.ApplicableSafetyStandardAgency = value + + @property + def ApplicableSafetyStandardDescription(self) -> Optional[str]: + if "ApplicableSafetyStandardDescription" in self._dataset: + return self._dataset.ApplicableSafetyStandardDescription + return None + + @ApplicableSafetyStandardDescription.setter + def ApplicableSafetyStandardDescription(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardDescription" in self._dataset: + del self._dataset.ApplicableSafetyStandardDescription + else: + self._dataset.ApplicableSafetyStandardDescription = value + + @property + def FunctionalSettlingPhaseFramesPresent(self) -> Optional[str]: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + return self._dataset.FunctionalSettlingPhaseFramesPresent + return None + + @FunctionalSettlingPhaseFramesPresent.setter + def FunctionalSettlingPhaseFramesPresent(self, value: Optional[str]): + if value is None: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + del self._dataset.FunctionalSettlingPhaseFramesPresent + else: + self._dataset.FunctionalSettlingPhaseFramesPresent = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_palette_color_lookup_table_sequence_item.py b/tdwii_plus_examples/domain_model/enhanced_palette_color_lookup_table_sequence_item.py new file mode 100644 index 0000000..d232f62 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_palette_color_lookup_table_sequence_item.py @@ -0,0 +1,165 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class EnhancedPaletteColorLookupTableSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def AlphaPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "AlphaPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.AlphaPaletteColorLookupTableDescriptor + return None + + @AlphaPaletteColorLookupTableDescriptor.setter + def AlphaPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "AlphaPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.AlphaPaletteColorLookupTableDescriptor + else: + self._dataset.AlphaPaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def AlphaPaletteColorLookupTableData(self) -> Optional[bytes]: + if "AlphaPaletteColorLookupTableData" in self._dataset: + return self._dataset.AlphaPaletteColorLookupTableData + return None + + @AlphaPaletteColorLookupTableData.setter + def AlphaPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "AlphaPaletteColorLookupTableData" in self._dataset: + del self._dataset.AlphaPaletteColorLookupTableData + else: + self._dataset.AlphaPaletteColorLookupTableData = value + + @property + def DataPathID(self) -> Optional[str]: + if "DataPathID" in self._dataset: + return self._dataset.DataPathID + return None + + @DataPathID.setter + def DataPathID(self, value: Optional[str]): + if value is None: + if "DataPathID" in self._dataset: + del self._dataset.DataPathID + else: + self._dataset.DataPathID = value + + @property + def RGBLUTTransferFunction(self) -> Optional[str]: + if "RGBLUTTransferFunction" in self._dataset: + return self._dataset.RGBLUTTransferFunction + return None + + @RGBLUTTransferFunction.setter + def RGBLUTTransferFunction(self, value: Optional[str]): + if value is None: + if "RGBLUTTransferFunction" in self._dataset: + del self._dataset.RGBLUTTransferFunction + else: + self._dataset.RGBLUTTransferFunction = value + + @property + def AlphaLUTTransferFunction(self) -> Optional[str]: + if "AlphaLUTTransferFunction" in self._dataset: + return self._dataset.AlphaLUTTransferFunction + return None + + @AlphaLUTTransferFunction.setter + def AlphaLUTTransferFunction(self, value: Optional[str]): + if value is None: + if "AlphaLUTTransferFunction" in self._dataset: + del self._dataset.AlphaLUTTransferFunction + else: + self._dataset.AlphaLUTTransferFunction = value diff --git a/tdwii_plus_examples/domain_model/enhanced_pet_image.py b/tdwii_plus_examples/domain_model/enhanced_pet_image.py new file mode 100644 index 0000000..d7f6830 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_pet_image.py @@ -0,0 +1,6586 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .energy_window_range_sequence_item import EnergyWindowRangeSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiopharmaceutical_information_sequence_item import ( + RadiopharmaceuticalInformationSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EnhancedPetImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._RadiopharmaceuticalInformationSequence: List[RadiopharmaceuticalInformationSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._EnergyWindowRangeSequence: List[EnergyWindowRangeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def DecayCorrectionDateTime(self) -> Optional[str]: + if "DecayCorrectionDateTime" in self._dataset: + return self._dataset.DecayCorrectionDateTime + return None + + @DecayCorrectionDateTime.setter + def DecayCorrectionDateTime(self, value: Optional[str]): + if value is None: + if "DecayCorrectionDateTime" in self._dataset: + del self._dataset.DecayCorrectionDateTime + else: + self._dataset.DecayCorrectionDateTime = value + + @property + def AttenuationCorrectionSource(self) -> Optional[str]: + if "AttenuationCorrectionSource" in self._dataset: + return self._dataset.AttenuationCorrectionSource + return None + + @AttenuationCorrectionSource.setter + def AttenuationCorrectionSource(self, value: Optional[str]): + if value is None: + if "AttenuationCorrectionSource" in self._dataset: + del self._dataset.AttenuationCorrectionSource + else: + self._dataset.AttenuationCorrectionSource = value + + @property + def DecayCorrected(self) -> Optional[str]: + if "DecayCorrected" in self._dataset: + return self._dataset.DecayCorrected + return None + + @DecayCorrected.setter + def DecayCorrected(self, value: Optional[str]): + if value is None: + if "DecayCorrected" in self._dataset: + del self._dataset.DecayCorrected + else: + self._dataset.DecayCorrected = value + + @property + def AttenuationCorrected(self) -> Optional[str]: + if "AttenuationCorrected" in self._dataset: + return self._dataset.AttenuationCorrected + return None + + @AttenuationCorrected.setter + def AttenuationCorrected(self, value: Optional[str]): + if value is None: + if "AttenuationCorrected" in self._dataset: + del self._dataset.AttenuationCorrected + else: + self._dataset.AttenuationCorrected = value + + @property + def ScatterCorrected(self) -> Optional[str]: + if "ScatterCorrected" in self._dataset: + return self._dataset.ScatterCorrected + return None + + @ScatterCorrected.setter + def ScatterCorrected(self, value: Optional[str]): + if value is None: + if "ScatterCorrected" in self._dataset: + del self._dataset.ScatterCorrected + else: + self._dataset.ScatterCorrected = value + + @property + def DeadTimeCorrected(self) -> Optional[str]: + if "DeadTimeCorrected" in self._dataset: + return self._dataset.DeadTimeCorrected + return None + + @DeadTimeCorrected.setter + def DeadTimeCorrected(self, value: Optional[str]): + if value is None: + if "DeadTimeCorrected" in self._dataset: + del self._dataset.DeadTimeCorrected + else: + self._dataset.DeadTimeCorrected = value + + @property + def GantryMotionCorrected(self) -> Optional[str]: + if "GantryMotionCorrected" in self._dataset: + return self._dataset.GantryMotionCorrected + return None + + @GantryMotionCorrected.setter + def GantryMotionCorrected(self, value: Optional[str]): + if value is None: + if "GantryMotionCorrected" in self._dataset: + del self._dataset.GantryMotionCorrected + else: + self._dataset.GantryMotionCorrected = value + + @property + def PatientMotionCorrected(self) -> Optional[str]: + if "PatientMotionCorrected" in self._dataset: + return self._dataset.PatientMotionCorrected + return None + + @PatientMotionCorrected.setter + def PatientMotionCorrected(self, value: Optional[str]): + if value is None: + if "PatientMotionCorrected" in self._dataset: + del self._dataset.PatientMotionCorrected + else: + self._dataset.PatientMotionCorrected = value + + @property + def CountLossNormalizationCorrected(self) -> Optional[str]: + if "CountLossNormalizationCorrected" in self._dataset: + return self._dataset.CountLossNormalizationCorrected + return None + + @CountLossNormalizationCorrected.setter + def CountLossNormalizationCorrected(self, value: Optional[str]): + if value is None: + if "CountLossNormalizationCorrected" in self._dataset: + del self._dataset.CountLossNormalizationCorrected + else: + self._dataset.CountLossNormalizationCorrected = value + + @property + def RandomsCorrected(self) -> Optional[str]: + if "RandomsCorrected" in self._dataset: + return self._dataset.RandomsCorrected + return None + + @RandomsCorrected.setter + def RandomsCorrected(self, value: Optional[str]): + if value is None: + if "RandomsCorrected" in self._dataset: + del self._dataset.RandomsCorrected + else: + self._dataset.RandomsCorrected = value + + @property + def NonUniformRadialSamplingCorrected(self) -> Optional[str]: + if "NonUniformRadialSamplingCorrected" in self._dataset: + return self._dataset.NonUniformRadialSamplingCorrected + return None + + @NonUniformRadialSamplingCorrected.setter + def NonUniformRadialSamplingCorrected(self, value: Optional[str]): + if value is None: + if "NonUniformRadialSamplingCorrected" in self._dataset: + del self._dataset.NonUniformRadialSamplingCorrected + else: + self._dataset.NonUniformRadialSamplingCorrected = value + + @property + def SensitivityCalibrated(self) -> Optional[str]: + if "SensitivityCalibrated" in self._dataset: + return self._dataset.SensitivityCalibrated + return None + + @SensitivityCalibrated.setter + def SensitivityCalibrated(self, value: Optional[str]): + if value is None: + if "SensitivityCalibrated" in self._dataset: + del self._dataset.SensitivityCalibrated + else: + self._dataset.SensitivityCalibrated = value + + @property + def DetectorNormalizationCorrection(self) -> Optional[str]: + if "DetectorNormalizationCorrection" in self._dataset: + return self._dataset.DetectorNormalizationCorrection + return None + + @DetectorNormalizationCorrection.setter + def DetectorNormalizationCorrection(self, value: Optional[str]): + if value is None: + if "DetectorNormalizationCorrection" in self._dataset: + del self._dataset.DetectorNormalizationCorrection + else: + self._dataset.DetectorNormalizationCorrection = value + + @property + def AttenuationCorrectionTemporalRelationship(self) -> Optional[str]: + if "AttenuationCorrectionTemporalRelationship" in self._dataset: + return self._dataset.AttenuationCorrectionTemporalRelationship + return None + + @AttenuationCorrectionTemporalRelationship.setter + def AttenuationCorrectionTemporalRelationship(self, value: Optional[str]): + if value is None: + if "AttenuationCorrectionTemporalRelationship" in self._dataset: + del self._dataset.AttenuationCorrectionTemporalRelationship + else: + self._dataset.AttenuationCorrectionTemporalRelationship = value + + @property + def CountsSource(self) -> Optional[str]: + if "CountsSource" in self._dataset: + return self._dataset.CountsSource + return None + + @CountsSource.setter + def CountsSource(self, value: Optional[str]): + if value is None: + if "CountsSource" in self._dataset: + del self._dataset.CountsSource + else: + self._dataset.CountsSource = value + + @property + def RandomsCorrectionMethod(self) -> Optional[str]: + if "RandomsCorrectionMethod" in self._dataset: + return self._dataset.RandomsCorrectionMethod + return None + + @RandomsCorrectionMethod.setter + def RandomsCorrectionMethod(self, value: Optional[str]): + if value is None: + if "RandomsCorrectionMethod" in self._dataset: + del self._dataset.RandomsCorrectionMethod + else: + self._dataset.RandomsCorrectionMethod = value + + @property + def ScatterCorrectionMethod(self) -> Optional[str]: + if "ScatterCorrectionMethod" in self._dataset: + return self._dataset.ScatterCorrectionMethod + return None + + @ScatterCorrectionMethod.setter + def ScatterCorrectionMethod(self, value: Optional[str]): + if value is None: + if "ScatterCorrectionMethod" in self._dataset: + del self._dataset.ScatterCorrectionMethod + else: + self._dataset.ScatterCorrectionMethod = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalInformationSequence(self) -> Optional[List[RadiopharmaceuticalInformationSequenceItem]]: + if "RadiopharmaceuticalInformationSequence" in self._dataset: + if len(self._RadiopharmaceuticalInformationSequence) == len(self._dataset.RadiopharmaceuticalInformationSequence): + return self._RadiopharmaceuticalInformationSequence + else: + return [ + RadiopharmaceuticalInformationSequenceItem(x) for x in self._dataset.RadiopharmaceuticalInformationSequence + ] + return None + + @RadiopharmaceuticalInformationSequence.setter + def RadiopharmaceuticalInformationSequence(self, value: Optional[List[RadiopharmaceuticalInformationSequenceItem]]): + if value is None: + self._RadiopharmaceuticalInformationSequence = [] + if "RadiopharmaceuticalInformationSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalInformationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiopharmaceuticalInformationSequenceItem) for item in value + ): + raise ValueError( + "RadiopharmaceuticalInformationSequence must be a list of RadiopharmaceuticalInformationSequenceItem objects" + ) + else: + self._RadiopharmaceuticalInformationSequence = value + if "RadiopharmaceuticalInformationSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalInformationSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalInformationSequence.clear() + self._dataset.RadiopharmaceuticalInformationSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalInformation(self, item: RadiopharmaceuticalInformationSequenceItem): + if not isinstance(item, RadiopharmaceuticalInformationSequenceItem): + raise ValueError("Item must be an instance of RadiopharmaceuticalInformationSequenceItem") + self._RadiopharmaceuticalInformationSequence.append(item) + if "RadiopharmaceuticalInformationSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalInformationSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalInformationSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AcquisitionTerminationCondition(self) -> Optional[str]: + if "AcquisitionTerminationCondition" in self._dataset: + return self._dataset.AcquisitionTerminationCondition + return None + + @AcquisitionTerminationCondition.setter + def AcquisitionTerminationCondition(self, value: Optional[str]): + if value is None: + if "AcquisitionTerminationCondition" in self._dataset: + del self._dataset.AcquisitionTerminationCondition + else: + self._dataset.AcquisitionTerminationCondition = value + + @property + def AcquisitionStartCondition(self) -> Optional[str]: + if "AcquisitionStartCondition" in self._dataset: + return self._dataset.AcquisitionStartCondition + return None + + @AcquisitionStartCondition.setter + def AcquisitionStartCondition(self, value: Optional[str]): + if value is None: + if "AcquisitionStartCondition" in self._dataset: + del self._dataset.AcquisitionStartCondition + else: + self._dataset.AcquisitionStartCondition = value + + @property + def TableMotion(self) -> Optional[str]: + if "TableMotion" in self._dataset: + return self._dataset.TableMotion + return None + + @TableMotion.setter + def TableMotion(self, value: Optional[str]): + if value is None: + if "TableMotion" in self._dataset: + del self._dataset.TableMotion + else: + self._dataset.TableMotion = value + + @property + def CollimatorType(self) -> Optional[str]: + if "CollimatorType" in self._dataset: + return self._dataset.CollimatorType + return None + + @CollimatorType.setter + def CollimatorType(self, value: Optional[str]): + if value is None: + if "CollimatorType" in self._dataset: + del self._dataset.CollimatorType + else: + self._dataset.CollimatorType = value + + @property + def StartDensityThreshold(self) -> Optional[float]: + if "StartDensityThreshold" in self._dataset: + return self._dataset.StartDensityThreshold + return None + + @StartDensityThreshold.setter + def StartDensityThreshold(self, value: Optional[float]): + if value is None: + if "StartDensityThreshold" in self._dataset: + del self._dataset.StartDensityThreshold + else: + self._dataset.StartDensityThreshold = value + + @property + def StartRelativeDensityDifferenceThreshold(self) -> Optional[float]: + if "StartRelativeDensityDifferenceThreshold" in self._dataset: + return self._dataset.StartRelativeDensityDifferenceThreshold + return None + + @StartRelativeDensityDifferenceThreshold.setter + def StartRelativeDensityDifferenceThreshold(self, value: Optional[float]): + if value is None: + if "StartRelativeDensityDifferenceThreshold" in self._dataset: + del self._dataset.StartRelativeDensityDifferenceThreshold + else: + self._dataset.StartRelativeDensityDifferenceThreshold = value + + @property + def StartCardiacTriggerCountThreshold(self) -> Optional[float]: + if "StartCardiacTriggerCountThreshold" in self._dataset: + return self._dataset.StartCardiacTriggerCountThreshold + return None + + @StartCardiacTriggerCountThreshold.setter + def StartCardiacTriggerCountThreshold(self, value: Optional[float]): + if value is None: + if "StartCardiacTriggerCountThreshold" in self._dataset: + del self._dataset.StartCardiacTriggerCountThreshold + else: + self._dataset.StartCardiacTriggerCountThreshold = value + + @property + def StartRespiratoryTriggerCountThreshold(self) -> Optional[float]: + if "StartRespiratoryTriggerCountThreshold" in self._dataset: + return self._dataset.StartRespiratoryTriggerCountThreshold + return None + + @StartRespiratoryTriggerCountThreshold.setter + def StartRespiratoryTriggerCountThreshold(self, value: Optional[float]): + if value is None: + if "StartRespiratoryTriggerCountThreshold" in self._dataset: + del self._dataset.StartRespiratoryTriggerCountThreshold + else: + self._dataset.StartRespiratoryTriggerCountThreshold = value + + @property + def TerminationCountsThreshold(self) -> Optional[float]: + if "TerminationCountsThreshold" in self._dataset: + return self._dataset.TerminationCountsThreshold + return None + + @TerminationCountsThreshold.setter + def TerminationCountsThreshold(self, value: Optional[float]): + if value is None: + if "TerminationCountsThreshold" in self._dataset: + del self._dataset.TerminationCountsThreshold + else: + self._dataset.TerminationCountsThreshold = value + + @property + def TerminationDensityThreshold(self) -> Optional[float]: + if "TerminationDensityThreshold" in self._dataset: + return self._dataset.TerminationDensityThreshold + return None + + @TerminationDensityThreshold.setter + def TerminationDensityThreshold(self, value: Optional[float]): + if value is None: + if "TerminationDensityThreshold" in self._dataset: + del self._dataset.TerminationDensityThreshold + else: + self._dataset.TerminationDensityThreshold = value + + @property + def TerminationRelativeDensityThreshold(self) -> Optional[float]: + if "TerminationRelativeDensityThreshold" in self._dataset: + return self._dataset.TerminationRelativeDensityThreshold + return None + + @TerminationRelativeDensityThreshold.setter + def TerminationRelativeDensityThreshold(self, value: Optional[float]): + if value is None: + if "TerminationRelativeDensityThreshold" in self._dataset: + del self._dataset.TerminationRelativeDensityThreshold + else: + self._dataset.TerminationRelativeDensityThreshold = value + + @property + def TerminationTimeThreshold(self) -> Optional[float]: + if "TerminationTimeThreshold" in self._dataset: + return self._dataset.TerminationTimeThreshold + return None + + @TerminationTimeThreshold.setter + def TerminationTimeThreshold(self, value: Optional[float]): + if value is None: + if "TerminationTimeThreshold" in self._dataset: + del self._dataset.TerminationTimeThreshold + else: + self._dataset.TerminationTimeThreshold = value + + @property + def TerminationCardiacTriggerCountThreshold(self) -> Optional[float]: + if "TerminationCardiacTriggerCountThreshold" in self._dataset: + return self._dataset.TerminationCardiacTriggerCountThreshold + return None + + @TerminationCardiacTriggerCountThreshold.setter + def TerminationCardiacTriggerCountThreshold(self, value: Optional[float]): + if value is None: + if "TerminationCardiacTriggerCountThreshold" in self._dataset: + del self._dataset.TerminationCardiacTriggerCountThreshold + else: + self._dataset.TerminationCardiacTriggerCountThreshold = value + + @property + def TerminationRespiratoryTriggerCountThreshold(self) -> Optional[float]: + if "TerminationRespiratoryTriggerCountThreshold" in self._dataset: + return self._dataset.TerminationRespiratoryTriggerCountThreshold + return None + + @TerminationRespiratoryTriggerCountThreshold.setter + def TerminationRespiratoryTriggerCountThreshold(self, value: Optional[float]): + if value is None: + if "TerminationRespiratoryTriggerCountThreshold" in self._dataset: + del self._dataset.TerminationRespiratoryTriggerCountThreshold + else: + self._dataset.TerminationRespiratoryTriggerCountThreshold = value + + @property + def DetectorGeometry(self) -> Optional[str]: + if "DetectorGeometry" in self._dataset: + return self._dataset.DetectorGeometry + return None + + @DetectorGeometry.setter + def DetectorGeometry(self, value: Optional[str]): + if value is None: + if "DetectorGeometry" in self._dataset: + del self._dataset.DetectorGeometry + else: + self._dataset.DetectorGeometry = value + + @property + def TransverseDetectorSeparation(self) -> Optional[float]: + if "TransverseDetectorSeparation" in self._dataset: + return self._dataset.TransverseDetectorSeparation + return None + + @TransverseDetectorSeparation.setter + def TransverseDetectorSeparation(self, value: Optional[float]): + if value is None: + if "TransverseDetectorSeparation" in self._dataset: + del self._dataset.TransverseDetectorSeparation + else: + self._dataset.TransverseDetectorSeparation = value + + @property + def AxialDetectorDimension(self) -> Optional[float]: + if "AxialDetectorDimension" in self._dataset: + return self._dataset.AxialDetectorDimension + return None + + @AxialDetectorDimension.setter + def AxialDetectorDimension(self, value: Optional[float]): + if value is None: + if "AxialDetectorDimension" in self._dataset: + del self._dataset.AxialDetectorDimension + else: + self._dataset.AxialDetectorDimension = value + + @property + def TimeOfFlightInformationUsed(self) -> Optional[str]: + if "TimeOfFlightInformationUsed" in self._dataset: + return self._dataset.TimeOfFlightInformationUsed + return None + + @TimeOfFlightInformationUsed.setter + def TimeOfFlightInformationUsed(self, value: Optional[str]): + if value is None: + if "TimeOfFlightInformationUsed" in self._dataset: + del self._dataset.TimeOfFlightInformationUsed + else: + self._dataset.TimeOfFlightInformationUsed = value + + @property + def EnergyWindowRangeSequence(self) -> Optional[List[EnergyWindowRangeSequenceItem]]: + if "EnergyWindowRangeSequence" in self._dataset: + if len(self._EnergyWindowRangeSequence) == len(self._dataset.EnergyWindowRangeSequence): + return self._EnergyWindowRangeSequence + else: + return [EnergyWindowRangeSequenceItem(x) for x in self._dataset.EnergyWindowRangeSequence] + return None + + @EnergyWindowRangeSequence.setter + def EnergyWindowRangeSequence(self, value: Optional[List[EnergyWindowRangeSequenceItem]]): + if value is None: + self._EnergyWindowRangeSequence = [] + if "EnergyWindowRangeSequence" in self._dataset: + del self._dataset.EnergyWindowRangeSequence + elif not isinstance(value, list) or not all(isinstance(item, EnergyWindowRangeSequenceItem) for item in value): + raise ValueError("EnergyWindowRangeSequence must be a list of EnergyWindowRangeSequenceItem objects") + else: + self._EnergyWindowRangeSequence = value + if "EnergyWindowRangeSequence" not in self._dataset: + self._dataset.EnergyWindowRangeSequence = pydicom.Sequence() + self._dataset.EnergyWindowRangeSequence.clear() + self._dataset.EnergyWindowRangeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyWindowRange(self, item: EnergyWindowRangeSequenceItem): + if not isinstance(item, EnergyWindowRangeSequenceItem): + raise ValueError("Item must be an instance of EnergyWindowRangeSequenceItem") + self._EnergyWindowRangeSequence.append(item) + if "EnergyWindowRangeSequence" not in self._dataset: + self._dataset.EnergyWindowRangeSequence = pydicom.Sequence() + self._dataset.EnergyWindowRangeSequence.append(item.to_dataset()) + + @property + def TypeOfDetectorMotion(self) -> Optional[str]: + if "TypeOfDetectorMotion" in self._dataset: + return self._dataset.TypeOfDetectorMotion + return None + + @TypeOfDetectorMotion.setter + def TypeOfDetectorMotion(self, value: Optional[str]): + if value is None: + if "TypeOfDetectorMotion" in self._dataset: + del self._dataset.TypeOfDetectorMotion + else: + self._dataset.TypeOfDetectorMotion = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def ScanProgressionDirection(self) -> Optional[str]: + if "ScanProgressionDirection" in self._dataset: + return self._dataset.ScanProgressionDirection + return None + + @ScanProgressionDirection.setter + def ScanProgressionDirection(self, value: Optional[str]): + if value is None: + if "ScanProgressionDirection" in self._dataset: + del self._dataset.ScanProgressionDirection + else: + self._dataset.ScanProgressionDirection = value + + @property + def CoincidenceWindowWidth(self) -> Optional[Decimal]: + if "CoincidenceWindowWidth" in self._dataset: + return self._dataset.CoincidenceWindowWidth + return None + + @CoincidenceWindowWidth.setter + def CoincidenceWindowWidth(self, value: Optional[Decimal]): + if value is None: + if "CoincidenceWindowWidth" in self._dataset: + del self._dataset.CoincidenceWindowWidth + else: + self._dataset.CoincidenceWindowWidth = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_device_sequence_item.py b/tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_device_sequence_item.py new file mode 100644 index 0000000..2eca979 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_device_sequence_item.py @@ -0,0 +1,470 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .fixed_rt_beam_delimiter_device_sequence_item import ( + FixedRTBeamDelimiterDeviceSequenceItem, +) +from .parallel_rt_beam_delimiter_device_sequence_item import ( + ParallelRTBeamDelimiterDeviceSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EnhancedRTBeamLimitingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._FixedRTBeamDelimiterDeviceSequence: List[FixedRTBeamDelimiterDeviceSequenceItem] = [] + self._ParallelRTBeamDelimiterDeviceSequence: List[ParallelRTBeamDelimiterDeviceSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def RTBeamLimitingDeviceProximalDistance(self) -> Optional[float]: + if "RTBeamLimitingDeviceProximalDistance" in self._dataset: + return self._dataset.RTBeamLimitingDeviceProximalDistance + return None + + @RTBeamLimitingDeviceProximalDistance.setter + def RTBeamLimitingDeviceProximalDistance(self, value: Optional[float]): + if value is None: + if "RTBeamLimitingDeviceProximalDistance" in self._dataset: + del self._dataset.RTBeamLimitingDeviceProximalDistance + else: + self._dataset.RTBeamLimitingDeviceProximalDistance = value + + @property + def RTBeamLimitingDeviceDistalDistance(self) -> Optional[float]: + if "RTBeamLimitingDeviceDistalDistance" in self._dataset: + return self._dataset.RTBeamLimitingDeviceDistalDistance + return None + + @RTBeamLimitingDeviceDistalDistance.setter + def RTBeamLimitingDeviceDistalDistance(self, value: Optional[float]): + if value is None: + if "RTBeamLimitingDeviceDistalDistance" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDistalDistance + else: + self._dataset.RTBeamLimitingDeviceDistalDistance = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def FixedRTBeamDelimiterDeviceSequence(self) -> Optional[List[FixedRTBeamDelimiterDeviceSequenceItem]]: + if "FixedRTBeamDelimiterDeviceSequence" in self._dataset: + if len(self._FixedRTBeamDelimiterDeviceSequence) == len(self._dataset.FixedRTBeamDelimiterDeviceSequence): + return self._FixedRTBeamDelimiterDeviceSequence + else: + return [FixedRTBeamDelimiterDeviceSequenceItem(x) for x in self._dataset.FixedRTBeamDelimiterDeviceSequence] + return None + + @FixedRTBeamDelimiterDeviceSequence.setter + def FixedRTBeamDelimiterDeviceSequence(self, value: Optional[List[FixedRTBeamDelimiterDeviceSequenceItem]]): + if value is None: + self._FixedRTBeamDelimiterDeviceSequence = [] + if "FixedRTBeamDelimiterDeviceSequence" in self._dataset: + del self._dataset.FixedRTBeamDelimiterDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, FixedRTBeamDelimiterDeviceSequenceItem) for item in value + ): + raise ValueError( + "FixedRTBeamDelimiterDeviceSequence must be a list of FixedRTBeamDelimiterDeviceSequenceItem objects" + ) + else: + self._FixedRTBeamDelimiterDeviceSequence = value + if "FixedRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.FixedRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.FixedRTBeamDelimiterDeviceSequence.clear() + self._dataset.FixedRTBeamDelimiterDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_FixedRTBeamDelimiterDevice(self, item: FixedRTBeamDelimiterDeviceSequenceItem): + if not isinstance(item, FixedRTBeamDelimiterDeviceSequenceItem): + raise ValueError("Item must be an instance of FixedRTBeamDelimiterDeviceSequenceItem") + self._FixedRTBeamDelimiterDeviceSequence.append(item) + if "FixedRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.FixedRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.FixedRTBeamDelimiterDeviceSequence.append(item.to_dataset()) + + @property + def ParallelRTBeamDelimiterDeviceSequence(self) -> Optional[List[ParallelRTBeamDelimiterDeviceSequenceItem]]: + if "ParallelRTBeamDelimiterDeviceSequence" in self._dataset: + if len(self._ParallelRTBeamDelimiterDeviceSequence) == len(self._dataset.ParallelRTBeamDelimiterDeviceSequence): + return self._ParallelRTBeamDelimiterDeviceSequence + else: + return [ + ParallelRTBeamDelimiterDeviceSequenceItem(x) for x in self._dataset.ParallelRTBeamDelimiterDeviceSequence + ] + return None + + @ParallelRTBeamDelimiterDeviceSequence.setter + def ParallelRTBeamDelimiterDeviceSequence(self, value: Optional[List[ParallelRTBeamDelimiterDeviceSequenceItem]]): + if value is None: + self._ParallelRTBeamDelimiterDeviceSequence = [] + if "ParallelRTBeamDelimiterDeviceSequence" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ParallelRTBeamDelimiterDeviceSequenceItem) for item in value + ): + raise ValueError( + "ParallelRTBeamDelimiterDeviceSequence must be a list of ParallelRTBeamDelimiterDeviceSequenceItem objects" + ) + else: + self._ParallelRTBeamDelimiterDeviceSequence = value + if "ParallelRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.ParallelRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.ParallelRTBeamDelimiterDeviceSequence.clear() + self._dataset.ParallelRTBeamDelimiterDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_ParallelRTBeamDelimiterDevice(self, item: ParallelRTBeamDelimiterDeviceSequenceItem): + if not isinstance(item, ParallelRTBeamDelimiterDeviceSequenceItem): + raise ValueError("Item must be an instance of ParallelRTBeamDelimiterDeviceSequenceItem") + self._ParallelRTBeamDelimiterDeviceSequence.append(item) + if "ParallelRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.ParallelRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.ParallelRTBeamDelimiterDeviceSequence.append(item.to_dataset()) + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_opening_sequence_item.py b/tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_opening_sequence_item.py new file mode 100644 index 0000000..dbfead2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_rt_beam_limiting_opening_sequence_item.py @@ -0,0 +1,90 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_beam_delimiter_geometry_sequence_item import ( + RTBeamDelimiterGeometrySequenceItem, +) + + +class EnhancedRTBeamLimitingOpeningSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTBeamDelimiterGeometrySequence: List[RTBeamDelimiterGeometrySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDeviceIndex(self) -> Optional[int]: + if "ReferencedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDeviceIndex + return None + + @ReferencedDeviceIndex.setter + def ReferencedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDeviceIndex + else: + self._dataset.ReferencedDeviceIndex = value + + @property + def ParallelRTBeamDelimiterPositions(self) -> Optional[List[float]]: + if "ParallelRTBeamDelimiterPositions" in self._dataset: + return self._dataset.ParallelRTBeamDelimiterPositions + return None + + @ParallelRTBeamDelimiterPositions.setter + def ParallelRTBeamDelimiterPositions(self, value: Optional[List[float]]): + if value is None: + if "ParallelRTBeamDelimiterPositions" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterPositions + else: + self._dataset.ParallelRTBeamDelimiterPositions = value + + @property + def RTBeamLimitingDeviceOffset(self) -> Optional[List[float]]: + if "RTBeamLimitingDeviceOffset" in self._dataset: + return self._dataset.RTBeamLimitingDeviceOffset + return None + + @RTBeamLimitingDeviceOffset.setter + def RTBeamLimitingDeviceOffset(self, value: Optional[List[float]]): + if value is None: + if "RTBeamLimitingDeviceOffset" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOffset + else: + self._dataset.RTBeamLimitingDeviceOffset = value + + @property + def RTBeamDelimiterGeometrySequence(self) -> Optional[List[RTBeamDelimiterGeometrySequenceItem]]: + if "RTBeamDelimiterGeometrySequence" in self._dataset: + if len(self._RTBeamDelimiterGeometrySequence) == len(self._dataset.RTBeamDelimiterGeometrySequence): + return self._RTBeamDelimiterGeometrySequence + else: + return [RTBeamDelimiterGeometrySequenceItem(x) for x in self._dataset.RTBeamDelimiterGeometrySequence] + return None + + @RTBeamDelimiterGeometrySequence.setter + def RTBeamDelimiterGeometrySequence(self, value: Optional[List[RTBeamDelimiterGeometrySequenceItem]]): + if value is None: + self._RTBeamDelimiterGeometrySequence = [] + if "RTBeamDelimiterGeometrySequence" in self._dataset: + del self._dataset.RTBeamDelimiterGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, RTBeamDelimiterGeometrySequenceItem) for item in value): + raise ValueError("RTBeamDelimiterGeometrySequence must be a list of RTBeamDelimiterGeometrySequenceItem objects") + else: + self._RTBeamDelimiterGeometrySequence = value + if "RTBeamDelimiterGeometrySequence" not in self._dataset: + self._dataset.RTBeamDelimiterGeometrySequence = pydicom.Sequence() + self._dataset.RTBeamDelimiterGeometrySequence.clear() + self._dataset.RTBeamDelimiterGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamDelimiterGeometry(self, item: RTBeamDelimiterGeometrySequenceItem): + if not isinstance(item, RTBeamDelimiterGeometrySequenceItem): + raise ValueError("Item must be an instance of RTBeamDelimiterGeometrySequenceItem") + self._RTBeamDelimiterGeometrySequence.append(item) + if "RTBeamDelimiterGeometrySequence" not in self._dataset: + self._dataset.RTBeamDelimiterGeometrySequence = pydicom.Sequence() + self._dataset.RTBeamDelimiterGeometrySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_rt_image.py b/tdwii_plus_examples/domain_model/enhanced_rt_image.py new file mode 100644 index 0000000..f53e998 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_rt_image.py @@ -0,0 +1,6076 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_device_sequence_item import AcquisitionDeviceSequenceItem +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .general_accessory_definition_sequence_item import ( + GeneralAccessoryDefinitionSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class EnhancedRtImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._AcquisitionDeviceSequence: List[AcquisitionDeviceSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._GeneralAccessoryDefinitionSequence: List[GeneralAccessoryDefinitionSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def BeamModifierCoordinatesPresenceFlag(self) -> Optional[str]: + if "BeamModifierCoordinatesPresenceFlag" in self._dataset: + return self._dataset.BeamModifierCoordinatesPresenceFlag + return None + + @BeamModifierCoordinatesPresenceFlag.setter + def BeamModifierCoordinatesPresenceFlag(self, value: Optional[str]): + if value is None: + if "BeamModifierCoordinatesPresenceFlag" in self._dataset: + del self._dataset.BeamModifierCoordinatesPresenceFlag + else: + self._dataset.BeamModifierCoordinatesPresenceFlag = value + + @property + def NumberOfAcquisitionDevices(self) -> Optional[int]: + if "NumberOfAcquisitionDevices" in self._dataset: + return self._dataset.NumberOfAcquisitionDevices + return None + + @NumberOfAcquisitionDevices.setter + def NumberOfAcquisitionDevices(self, value: Optional[int]): + if value is None: + if "NumberOfAcquisitionDevices" in self._dataset: + del self._dataset.NumberOfAcquisitionDevices + else: + self._dataset.NumberOfAcquisitionDevices = value + + @property + def AcquisitionDeviceSequence(self) -> Optional[List[AcquisitionDeviceSequenceItem]]: + if "AcquisitionDeviceSequence" in self._dataset: + if len(self._AcquisitionDeviceSequence) == len(self._dataset.AcquisitionDeviceSequence): + return self._AcquisitionDeviceSequence + else: + return [AcquisitionDeviceSequenceItem(x) for x in self._dataset.AcquisitionDeviceSequence] + return None + + @AcquisitionDeviceSequence.setter + def AcquisitionDeviceSequence(self, value: Optional[List[AcquisitionDeviceSequenceItem]]): + if value is None: + self._AcquisitionDeviceSequence = [] + if "AcquisitionDeviceSequence" in self._dataset: + del self._dataset.AcquisitionDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionDeviceSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceSequence must be a list of AcquisitionDeviceSequenceItem objects") + else: + self._AcquisitionDeviceSequence = value + if "AcquisitionDeviceSequence" not in self._dataset: + self._dataset.AcquisitionDeviceSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceSequence.clear() + self._dataset.AcquisitionDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDevice(self, item: AcquisitionDeviceSequenceItem): + if not isinstance(item, AcquisitionDeviceSequenceItem): + raise ValueError("Item must be an instance of AcquisitionDeviceSequenceItem") + self._AcquisitionDeviceSequence.append(item) + if "AcquisitionDeviceSequence" not in self._dataset: + self._dataset.AcquisitionDeviceSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def GeneralAccessoryDefinitionSequence(self) -> Optional[List[GeneralAccessoryDefinitionSequenceItem]]: + if "GeneralAccessoryDefinitionSequence" in self._dataset: + if len(self._GeneralAccessoryDefinitionSequence) == len(self._dataset.GeneralAccessoryDefinitionSequence): + return self._GeneralAccessoryDefinitionSequence + else: + return [GeneralAccessoryDefinitionSequenceItem(x) for x in self._dataset.GeneralAccessoryDefinitionSequence] + return None + + @GeneralAccessoryDefinitionSequence.setter + def GeneralAccessoryDefinitionSequence(self, value: Optional[List[GeneralAccessoryDefinitionSequenceItem]]): + if value is None: + self._GeneralAccessoryDefinitionSequence = [] + if "GeneralAccessoryDefinitionSequence" in self._dataset: + del self._dataset.GeneralAccessoryDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, GeneralAccessoryDefinitionSequenceItem) for item in value + ): + raise ValueError( + "GeneralAccessoryDefinitionSequence must be a list of GeneralAccessoryDefinitionSequenceItem objects" + ) + else: + self._GeneralAccessoryDefinitionSequence = value + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.clear() + self._dataset.GeneralAccessoryDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessoryDefinition(self, item: GeneralAccessoryDefinitionSequenceItem): + if not isinstance(item, GeneralAccessoryDefinitionSequenceItem): + raise ValueError("Item must be an instance of GeneralAccessoryDefinitionSequenceItem") + self._GeneralAccessoryDefinitionSequence.append(item) + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfGeneralAccessories(self) -> Optional[int]: + if "NumberOfGeneralAccessories" in self._dataset: + return self._dataset.NumberOfGeneralAccessories + return None + + @NumberOfGeneralAccessories.setter + def NumberOfGeneralAccessories(self, value: Optional[int]): + if value is None: + if "NumberOfGeneralAccessories" in self._dataset: + del self._dataset.NumberOfGeneralAccessories + else: + self._dataset.NumberOfGeneralAccessories = value + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def StartCumulativeMeterset(self) -> Optional[float]: + if "StartCumulativeMeterset" in self._dataset: + return self._dataset.StartCumulativeMeterset + return None + + @StartCumulativeMeterset.setter + def StartCumulativeMeterset(self, value: Optional[float]): + if value is None: + if "StartCumulativeMeterset" in self._dataset: + del self._dataset.StartCumulativeMeterset + else: + self._dataset.StartCumulativeMeterset = value + + @property + def StopCumulativeMeterset(self) -> Optional[float]: + if "StopCumulativeMeterset" in self._dataset: + return self._dataset.StopCumulativeMeterset + return None + + @StopCumulativeMeterset.setter + def StopCumulativeMeterset(self, value: Optional[float]): + if value is None: + if "StopCumulativeMeterset" in self._dataset: + del self._dataset.StopCumulativeMeterset + else: + self._dataset.StopCumulativeMeterset = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_sr.py b/tdwii_plus_examples/domain_model/enhanced_sr.py new file mode 100644 index 0000000..f067256 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_sr.py @@ -0,0 +1,4617 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class EnhancedSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/enhanced_us_volume.py b/tdwii_plus_examples/domain_model/enhanced_us_volume.py new file mode 100644 index 0000000..63bbd07 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_us_volume.py @@ -0,0 +1,7389 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .blending_lut1_sequence_item import BlendingLUT1SequenceItem +from .blending_lut2_sequence_item import BlendingLUT2SequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .data_frame_assignment_sequence_item import DataFrameAssignmentSequenceItem +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .enhanced_palette_color_lookup_table_sequence_item import ( + EnhancedPaletteColorLookupTableSequenceItem, +) +from .event_timer_sequence_item import EventTimerSequenceItem +from .excluded_intervals_sequence_item import ExcludedIntervalsSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .transducer_identification_sequence_item import ( + TransducerIdentificationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EnhancedUsVolume: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ExcludedIntervalsSequence: List[ExcludedIntervalsSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._DataFrameAssignmentSequence: List[DataFrameAssignmentSequenceItem] = [] + self._BlendingLUT1Sequence: List[BlendingLUT1SequenceItem] = [] + self._EnhancedPaletteColorLookupTableSequence: List[EnhancedPaletteColorLookupTableSequenceItem] = [] + self._BlendingLUT2Sequence: List[BlendingLUT2SequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._EventTimerSequence: List[EventTimerSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._TransducerIdentificationSequence: List[TransducerIdentificationSequenceItem] = [] + self._TransducerScanPatternCodeSequence: List[CodeSequenceItem] = [] + self._TransducerGeometryCodeSequence: List[CodeSequenceItem] = [] + self._TransducerBeamSteeringCodeSequence: List[CodeSequenceItem] = [] + self._TransducerApplicationCodeSequence: List[CodeSequenceItem] = [] + self._StageCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ExcludedIntervalsSequence(self) -> Optional[List[ExcludedIntervalsSequenceItem]]: + if "ExcludedIntervalsSequence" in self._dataset: + if len(self._ExcludedIntervalsSequence) == len(self._dataset.ExcludedIntervalsSequence): + return self._ExcludedIntervalsSequence + else: + return [ExcludedIntervalsSequenceItem(x) for x in self._dataset.ExcludedIntervalsSequence] + return None + + @ExcludedIntervalsSequence.setter + def ExcludedIntervalsSequence(self, value: Optional[List[ExcludedIntervalsSequenceItem]]): + if value is None: + self._ExcludedIntervalsSequence = [] + if "ExcludedIntervalsSequence" in self._dataset: + del self._dataset.ExcludedIntervalsSequence + elif not isinstance(value, list) or not all(isinstance(item, ExcludedIntervalsSequenceItem) for item in value): + raise ValueError("ExcludedIntervalsSequence must be a list of ExcludedIntervalsSequenceItem objects") + else: + self._ExcludedIntervalsSequence = value + if "ExcludedIntervalsSequence" not in self._dataset: + self._dataset.ExcludedIntervalsSequence = pydicom.Sequence() + self._dataset.ExcludedIntervalsSequence.clear() + self._dataset.ExcludedIntervalsSequence.extend([item.to_dataset() for item in value]) + + def add_ExcludedIntervals(self, item: ExcludedIntervalsSequenceItem): + if not isinstance(item, ExcludedIntervalsSequenceItem): + raise ValueError("Item must be an instance of ExcludedIntervalsSequenceItem") + self._ExcludedIntervalsSequence.append(item) + if "ExcludedIntervalsSequence" not in self._dataset: + self._dataset.ExcludedIntervalsSequence = pydicom.Sequence() + self._dataset.ExcludedIntervalsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def PerformedProtocolType(self) -> Optional[str]: + if "PerformedProtocolType" in self._dataset: + return self._dataset.PerformedProtocolType + return None + + @PerformedProtocolType.setter + def PerformedProtocolType(self, value: Optional[str]): + if value is None: + if "PerformedProtocolType" in self._dataset: + del self._dataset.PerformedProtocolType + else: + self._dataset.PerformedProtocolType = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def DataFrameAssignmentSequence(self) -> Optional[List[DataFrameAssignmentSequenceItem]]: + if "DataFrameAssignmentSequence" in self._dataset: + if len(self._DataFrameAssignmentSequence) == len(self._dataset.DataFrameAssignmentSequence): + return self._DataFrameAssignmentSequence + else: + return [DataFrameAssignmentSequenceItem(x) for x in self._dataset.DataFrameAssignmentSequence] + return None + + @DataFrameAssignmentSequence.setter + def DataFrameAssignmentSequence(self, value: Optional[List[DataFrameAssignmentSequenceItem]]): + if value is None: + self._DataFrameAssignmentSequence = [] + if "DataFrameAssignmentSequence" in self._dataset: + del self._dataset.DataFrameAssignmentSequence + elif not isinstance(value, list) or not all(isinstance(item, DataFrameAssignmentSequenceItem) for item in value): + raise ValueError("DataFrameAssignmentSequence must be a list of DataFrameAssignmentSequenceItem objects") + else: + self._DataFrameAssignmentSequence = value + if "DataFrameAssignmentSequence" not in self._dataset: + self._dataset.DataFrameAssignmentSequence = pydicom.Sequence() + self._dataset.DataFrameAssignmentSequence.clear() + self._dataset.DataFrameAssignmentSequence.extend([item.to_dataset() for item in value]) + + def add_DataFrameAssignment(self, item: DataFrameAssignmentSequenceItem): + if not isinstance(item, DataFrameAssignmentSequenceItem): + raise ValueError("Item must be an instance of DataFrameAssignmentSequenceItem") + self._DataFrameAssignmentSequence.append(item) + if "DataFrameAssignmentSequence" not in self._dataset: + self._dataset.DataFrameAssignmentSequence = pydicom.Sequence() + self._dataset.DataFrameAssignmentSequence.append(item.to_dataset()) + + @property + def BlendingLUT1Sequence(self) -> Optional[List[BlendingLUT1SequenceItem]]: + if "BlendingLUT1Sequence" in self._dataset: + if len(self._BlendingLUT1Sequence) == len(self._dataset.BlendingLUT1Sequence): + return self._BlendingLUT1Sequence + else: + return [BlendingLUT1SequenceItem(x) for x in self._dataset.BlendingLUT1Sequence] + return None + + @BlendingLUT1Sequence.setter + def BlendingLUT1Sequence(self, value: Optional[List[BlendingLUT1SequenceItem]]): + if value is None: + self._BlendingLUT1Sequence = [] + if "BlendingLUT1Sequence" in self._dataset: + del self._dataset.BlendingLUT1Sequence + elif not isinstance(value, list) or not all(isinstance(item, BlendingLUT1SequenceItem) for item in value): + raise ValueError("BlendingLUT1Sequence must be a list of BlendingLUT1SequenceItem objects") + else: + self._BlendingLUT1Sequence = value + if "BlendingLUT1Sequence" not in self._dataset: + self._dataset.BlendingLUT1Sequence = pydicom.Sequence() + self._dataset.BlendingLUT1Sequence.clear() + self._dataset.BlendingLUT1Sequence.extend([item.to_dataset() for item in value]) + + def add_BlendingLUT1(self, item: BlendingLUT1SequenceItem): + if not isinstance(item, BlendingLUT1SequenceItem): + raise ValueError("Item must be an instance of BlendingLUT1SequenceItem") + self._BlendingLUT1Sequence.append(item) + if "BlendingLUT1Sequence" not in self._dataset: + self._dataset.BlendingLUT1Sequence = pydicom.Sequence() + self._dataset.BlendingLUT1Sequence.append(item.to_dataset()) + + @property + def EnhancedPaletteColorLookupTableSequence(self) -> Optional[List[EnhancedPaletteColorLookupTableSequenceItem]]: + if "EnhancedPaletteColorLookupTableSequence" in self._dataset: + if len(self._EnhancedPaletteColorLookupTableSequence) == len( + self._dataset.EnhancedPaletteColorLookupTableSequence + ): + return self._EnhancedPaletteColorLookupTableSequence + else: + return [ + EnhancedPaletteColorLookupTableSequenceItem(x) + for x in self._dataset.EnhancedPaletteColorLookupTableSequence + ] + return None + + @EnhancedPaletteColorLookupTableSequence.setter + def EnhancedPaletteColorLookupTableSequence(self, value: Optional[List[EnhancedPaletteColorLookupTableSequenceItem]]): + if value is None: + self._EnhancedPaletteColorLookupTableSequence = [] + if "EnhancedPaletteColorLookupTableSequence" in self._dataset: + del self._dataset.EnhancedPaletteColorLookupTableSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedPaletteColorLookupTableSequenceItem) for item in value + ): + raise ValueError( + "EnhancedPaletteColorLookupTableSequence must be a list of EnhancedPaletteColorLookupTableSequenceItem objects" + ) + else: + self._EnhancedPaletteColorLookupTableSequence = value + if "EnhancedPaletteColorLookupTableSequence" not in self._dataset: + self._dataset.EnhancedPaletteColorLookupTableSequence = pydicom.Sequence() + self._dataset.EnhancedPaletteColorLookupTableSequence.clear() + self._dataset.EnhancedPaletteColorLookupTableSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedPaletteColorLookupTable(self, item: EnhancedPaletteColorLookupTableSequenceItem): + if not isinstance(item, EnhancedPaletteColorLookupTableSequenceItem): + raise ValueError("Item must be an instance of EnhancedPaletteColorLookupTableSequenceItem") + self._EnhancedPaletteColorLookupTableSequence.append(item) + if "EnhancedPaletteColorLookupTableSequence" not in self._dataset: + self._dataset.EnhancedPaletteColorLookupTableSequence = pydicom.Sequence() + self._dataset.EnhancedPaletteColorLookupTableSequence.append(item.to_dataset()) + + @property + def BlendingLUT2Sequence(self) -> Optional[List[BlendingLUT2SequenceItem]]: + if "BlendingLUT2Sequence" in self._dataset: + if len(self._BlendingLUT2Sequence) == len(self._dataset.BlendingLUT2Sequence): + return self._BlendingLUT2Sequence + else: + return [BlendingLUT2SequenceItem(x) for x in self._dataset.BlendingLUT2Sequence] + return None + + @BlendingLUT2Sequence.setter + def BlendingLUT2Sequence(self, value: Optional[List[BlendingLUT2SequenceItem]]): + if value is None: + self._BlendingLUT2Sequence = [] + if "BlendingLUT2Sequence" in self._dataset: + del self._dataset.BlendingLUT2Sequence + elif not isinstance(value, list) or not all(isinstance(item, BlendingLUT2SequenceItem) for item in value): + raise ValueError("BlendingLUT2Sequence must be a list of BlendingLUT2SequenceItem objects") + else: + self._BlendingLUT2Sequence = value + if "BlendingLUT2Sequence" not in self._dataset: + self._dataset.BlendingLUT2Sequence = pydicom.Sequence() + self._dataset.BlendingLUT2Sequence.clear() + self._dataset.BlendingLUT2Sequence.extend([item.to_dataset() for item in value]) + + def add_BlendingLUT2(self, item: BlendingLUT2SequenceItem): + if not isinstance(item, BlendingLUT2SequenceItem): + raise ValueError("Item must be an instance of BlendingLUT2SequenceItem") + self._BlendingLUT2Sequence.append(item) + if "BlendingLUT2Sequence" not in self._dataset: + self._dataset.BlendingLUT2Sequence = pydicom.Sequence() + self._dataset.BlendingLUT2Sequence.append(item.to_dataset()) + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def UltrasoundAcquisitionGeometry(self) -> Optional[str]: + if "UltrasoundAcquisitionGeometry" in self._dataset: + return self._dataset.UltrasoundAcquisitionGeometry + return None + + @UltrasoundAcquisitionGeometry.setter + def UltrasoundAcquisitionGeometry(self, value: Optional[str]): + if value is None: + if "UltrasoundAcquisitionGeometry" in self._dataset: + del self._dataset.UltrasoundAcquisitionGeometry + else: + self._dataset.UltrasoundAcquisitionGeometry = value + + @property + def ApexPosition(self) -> Optional[List[float]]: + if "ApexPosition" in self._dataset: + return self._dataset.ApexPosition + return None + + @ApexPosition.setter + def ApexPosition(self, value: Optional[List[float]]): + if value is None: + if "ApexPosition" in self._dataset: + del self._dataset.ApexPosition + else: + self._dataset.ApexPosition = value + + @property + def VolumeToTransducerMappingMatrix(self) -> Optional[List[float]]: + if "VolumeToTransducerMappingMatrix" in self._dataset: + return self._dataset.VolumeToTransducerMappingMatrix + return None + + @VolumeToTransducerMappingMatrix.setter + def VolumeToTransducerMappingMatrix(self, value: Optional[List[float]]): + if value is None: + if "VolumeToTransducerMappingMatrix" in self._dataset: + del self._dataset.VolumeToTransducerMappingMatrix + else: + self._dataset.VolumeToTransducerMappingMatrix = value + + @property + def VolumeToTableMappingMatrix(self) -> Optional[List[float]]: + if "VolumeToTableMappingMatrix" in self._dataset: + return self._dataset.VolumeToTableMappingMatrix + return None + + @VolumeToTableMappingMatrix.setter + def VolumeToTableMappingMatrix(self, value: Optional[List[float]]): + if value is None: + if "VolumeToTableMappingMatrix" in self._dataset: + del self._dataset.VolumeToTableMappingMatrix + else: + self._dataset.VolumeToTableMappingMatrix = value + + @property + def VolumeToTransducerRelationship(self) -> Optional[str]: + if "VolumeToTransducerRelationship" in self._dataset: + return self._dataset.VolumeToTransducerRelationship + return None + + @VolumeToTransducerRelationship.setter + def VolumeToTransducerRelationship(self, value: Optional[str]): + if value is None: + if "VolumeToTransducerRelationship" in self._dataset: + del self._dataset.VolumeToTransducerRelationship + else: + self._dataset.VolumeToTransducerRelationship = value + + @property + def PatientFrameOfReferenceSource(self) -> Optional[str]: + if "PatientFrameOfReferenceSource" in self._dataset: + return self._dataset.PatientFrameOfReferenceSource + return None + + @PatientFrameOfReferenceSource.setter + def PatientFrameOfReferenceSource(self, value: Optional[str]): + if value is None: + if "PatientFrameOfReferenceSource" in self._dataset: + del self._dataset.PatientFrameOfReferenceSource + else: + self._dataset.PatientFrameOfReferenceSource = value + + @property + def VolumeFrameOfReferenceUID(self) -> Optional[str]: + if "VolumeFrameOfReferenceUID" in self._dataset: + return self._dataset.VolumeFrameOfReferenceUID + return None + + @VolumeFrameOfReferenceUID.setter + def VolumeFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "VolumeFrameOfReferenceUID" in self._dataset: + del self._dataset.VolumeFrameOfReferenceUID + else: + self._dataset.VolumeFrameOfReferenceUID = value + + @property + def TableFrameOfReferenceUID(self) -> Optional[str]: + if "TableFrameOfReferenceUID" in self._dataset: + return self._dataset.TableFrameOfReferenceUID + return None + + @TableFrameOfReferenceUID.setter + def TableFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "TableFrameOfReferenceUID" in self._dataset: + del self._dataset.TableFrameOfReferenceUID + else: + self._dataset.TableFrameOfReferenceUID = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def StageNumber(self) -> Optional[int]: + if "StageNumber" in self._dataset: + return self._dataset.StageNumber + return None + + @StageNumber.setter + def StageNumber(self, value: Optional[int]): + if value is None: + if "StageNumber" in self._dataset: + del self._dataset.StageNumber + else: + self._dataset.StageNumber = value + + @property + def NumberOfStages(self) -> Optional[int]: + if "NumberOfStages" in self._dataset: + return self._dataset.NumberOfStages + return None + + @NumberOfStages.setter + def NumberOfStages(self, value: Optional[int]): + if value is None: + if "NumberOfStages" in self._dataset: + del self._dataset.NumberOfStages + else: + self._dataset.NumberOfStages = value + + @property + def EventTimerSequence(self) -> Optional[List[EventTimerSequenceItem]]: + if "EventTimerSequence" in self._dataset: + if len(self._EventTimerSequence) == len(self._dataset.EventTimerSequence): + return self._EventTimerSequence + else: + return [EventTimerSequenceItem(x) for x in self._dataset.EventTimerSequence] + return None + + @EventTimerSequence.setter + def EventTimerSequence(self, value: Optional[List[EventTimerSequenceItem]]): + if value is None: + self._EventTimerSequence = [] + if "EventTimerSequence" in self._dataset: + del self._dataset.EventTimerSequence + elif not isinstance(value, list) or not all(isinstance(item, EventTimerSequenceItem) for item in value): + raise ValueError("EventTimerSequence must be a list of EventTimerSequenceItem objects") + else: + self._EventTimerSequence = value + if "EventTimerSequence" not in self._dataset: + self._dataset.EventTimerSequence = pydicom.Sequence() + self._dataset.EventTimerSequence.clear() + self._dataset.EventTimerSequence.extend([item.to_dataset() for item in value]) + + def add_EventTimer(self, item: EventTimerSequenceItem): + if not isinstance(item, EventTimerSequenceItem): + raise ValueError("Item must be an instance of EventTimerSequenceItem") + self._EventTimerSequence.append(item) + if "EventTimerSequence" not in self._dataset: + self._dataset.EventTimerSequence = pydicom.Sequence() + self._dataset.EventTimerSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def TransducerData(self) -> Optional[List[str]]: + if "TransducerData" in self._dataset: + return self._dataset.TransducerData + return None + + @TransducerData.setter + def TransducerData(self, value: Optional[List[str]]): + if value is None: + if "TransducerData" in self._dataset: + del self._dataset.TransducerData + else: + self._dataset.TransducerData = value + + @property + def TransducerIdentificationSequence(self) -> Optional[List[TransducerIdentificationSequenceItem]]: + if "TransducerIdentificationSequence" in self._dataset: + if len(self._TransducerIdentificationSequence) == len(self._dataset.TransducerIdentificationSequence): + return self._TransducerIdentificationSequence + else: + return [TransducerIdentificationSequenceItem(x) for x in self._dataset.TransducerIdentificationSequence] + return None + + @TransducerIdentificationSequence.setter + def TransducerIdentificationSequence(self, value: Optional[List[TransducerIdentificationSequenceItem]]): + if value is None: + self._TransducerIdentificationSequence = [] + if "TransducerIdentificationSequence" in self._dataset: + del self._dataset.TransducerIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, TransducerIdentificationSequenceItem) for item in value): + raise ValueError("TransducerIdentificationSequence must be a list of TransducerIdentificationSequenceItem objects") + else: + self._TransducerIdentificationSequence = value + if "TransducerIdentificationSequence" not in self._dataset: + self._dataset.TransducerIdentificationSequence = pydicom.Sequence() + self._dataset.TransducerIdentificationSequence.clear() + self._dataset.TransducerIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerIdentification(self, item: TransducerIdentificationSequenceItem): + if not isinstance(item, TransducerIdentificationSequenceItem): + raise ValueError("Item must be an instance of TransducerIdentificationSequenceItem") + self._TransducerIdentificationSequence.append(item) + if "TransducerIdentificationSequence" not in self._dataset: + self._dataset.TransducerIdentificationSequence = pydicom.Sequence() + self._dataset.TransducerIdentificationSequence.append(item.to_dataset()) + + @property + def ProcessingFunction(self) -> Optional[str]: + if "ProcessingFunction" in self._dataset: + return self._dataset.ProcessingFunction + return None + + @ProcessingFunction.setter + def ProcessingFunction(self, value: Optional[str]): + if value is None: + if "ProcessingFunction" in self._dataset: + del self._dataset.ProcessingFunction + else: + self._dataset.ProcessingFunction = value + + @property + def MechanicalIndex(self) -> Optional[Decimal]: + if "MechanicalIndex" in self._dataset: + return self._dataset.MechanicalIndex + return None + + @MechanicalIndex.setter + def MechanicalIndex(self, value: Optional[Decimal]): + if value is None: + if "MechanicalIndex" in self._dataset: + del self._dataset.MechanicalIndex + else: + self._dataset.MechanicalIndex = value + + @property + def BoneThermalIndex(self) -> Optional[Decimal]: + if "BoneThermalIndex" in self._dataset: + return self._dataset.BoneThermalIndex + return None + + @BoneThermalIndex.setter + def BoneThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "BoneThermalIndex" in self._dataset: + del self._dataset.BoneThermalIndex + else: + self._dataset.BoneThermalIndex = value + + @property + def CranialThermalIndex(self) -> Optional[Decimal]: + if "CranialThermalIndex" in self._dataset: + return self._dataset.CranialThermalIndex + return None + + @CranialThermalIndex.setter + def CranialThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "CranialThermalIndex" in self._dataset: + del self._dataset.CranialThermalIndex + else: + self._dataset.CranialThermalIndex = value + + @property + def SoftTissueThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueThermalIndex" in self._dataset: + return self._dataset.SoftTissueThermalIndex + return None + + @SoftTissueThermalIndex.setter + def SoftTissueThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueThermalIndex" in self._dataset: + del self._dataset.SoftTissueThermalIndex + else: + self._dataset.SoftTissueThermalIndex = value + + @property + def DepthOfScanField(self) -> Optional[int]: + if "DepthOfScanField" in self._dataset: + return self._dataset.DepthOfScanField + return None + + @DepthOfScanField.setter + def DepthOfScanField(self, value: Optional[int]): + if value is None: + if "DepthOfScanField" in self._dataset: + del self._dataset.DepthOfScanField + else: + self._dataset.DepthOfScanField = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def DepthsOfFocus(self) -> Optional[List[float]]: + if "DepthsOfFocus" in self._dataset: + return self._dataset.DepthsOfFocus + return None + + @DepthsOfFocus.setter + def DepthsOfFocus(self, value: Optional[List[float]]): + if value is None: + if "DepthsOfFocus" in self._dataset: + del self._dataset.DepthsOfFocus + else: + self._dataset.DepthsOfFocus = value + + @property + def TransducerScanPatternCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TransducerScanPatternCodeSequence" in self._dataset: + if len(self._TransducerScanPatternCodeSequence) == len(self._dataset.TransducerScanPatternCodeSequence): + return self._TransducerScanPatternCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TransducerScanPatternCodeSequence] + return None + + @TransducerScanPatternCodeSequence.setter + def TransducerScanPatternCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TransducerScanPatternCodeSequence = [] + if "TransducerScanPatternCodeSequence" in self._dataset: + del self._dataset.TransducerScanPatternCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TransducerScanPatternCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TransducerScanPatternCodeSequence = value + if "TransducerScanPatternCodeSequence" not in self._dataset: + self._dataset.TransducerScanPatternCodeSequence = pydicom.Sequence() + self._dataset.TransducerScanPatternCodeSequence.clear() + self._dataset.TransducerScanPatternCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerScanPatternCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TransducerScanPatternCodeSequence.append(item) + if "TransducerScanPatternCodeSequence" not in self._dataset: + self._dataset.TransducerScanPatternCodeSequence = pydicom.Sequence() + self._dataset.TransducerScanPatternCodeSequence.append(item.to_dataset()) + + @property + def PositionMeasuringDeviceUsed(self) -> Optional[str]: + if "PositionMeasuringDeviceUsed" in self._dataset: + return self._dataset.PositionMeasuringDeviceUsed + return None + + @PositionMeasuringDeviceUsed.setter + def PositionMeasuringDeviceUsed(self, value: Optional[str]): + if value is None: + if "PositionMeasuringDeviceUsed" in self._dataset: + del self._dataset.PositionMeasuringDeviceUsed + else: + self._dataset.PositionMeasuringDeviceUsed = value + + @property + def TransducerGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TransducerGeometryCodeSequence" in self._dataset: + if len(self._TransducerGeometryCodeSequence) == len(self._dataset.TransducerGeometryCodeSequence): + return self._TransducerGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TransducerGeometryCodeSequence] + return None + + @TransducerGeometryCodeSequence.setter + def TransducerGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TransducerGeometryCodeSequence = [] + if "TransducerGeometryCodeSequence" in self._dataset: + del self._dataset.TransducerGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TransducerGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TransducerGeometryCodeSequence = value + if "TransducerGeometryCodeSequence" not in self._dataset: + self._dataset.TransducerGeometryCodeSequence = pydicom.Sequence() + self._dataset.TransducerGeometryCodeSequence.clear() + self._dataset.TransducerGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TransducerGeometryCodeSequence.append(item) + if "TransducerGeometryCodeSequence" not in self._dataset: + self._dataset.TransducerGeometryCodeSequence = pydicom.Sequence() + self._dataset.TransducerGeometryCodeSequence.append(item.to_dataset()) + + @property + def TransducerBeamSteeringCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TransducerBeamSteeringCodeSequence" in self._dataset: + if len(self._TransducerBeamSteeringCodeSequence) == len(self._dataset.TransducerBeamSteeringCodeSequence): + return self._TransducerBeamSteeringCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TransducerBeamSteeringCodeSequence] + return None + + @TransducerBeamSteeringCodeSequence.setter + def TransducerBeamSteeringCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TransducerBeamSteeringCodeSequence = [] + if "TransducerBeamSteeringCodeSequence" in self._dataset: + del self._dataset.TransducerBeamSteeringCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TransducerBeamSteeringCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TransducerBeamSteeringCodeSequence = value + if "TransducerBeamSteeringCodeSequence" not in self._dataset: + self._dataset.TransducerBeamSteeringCodeSequence = pydicom.Sequence() + self._dataset.TransducerBeamSteeringCodeSequence.clear() + self._dataset.TransducerBeamSteeringCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerBeamSteeringCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TransducerBeamSteeringCodeSequence.append(item) + if "TransducerBeamSteeringCodeSequence" not in self._dataset: + self._dataset.TransducerBeamSteeringCodeSequence = pydicom.Sequence() + self._dataset.TransducerBeamSteeringCodeSequence.append(item.to_dataset()) + + @property + def TransducerApplicationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TransducerApplicationCodeSequence" in self._dataset: + if len(self._TransducerApplicationCodeSequence) == len(self._dataset.TransducerApplicationCodeSequence): + return self._TransducerApplicationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TransducerApplicationCodeSequence] + return None + + @TransducerApplicationCodeSequence.setter + def TransducerApplicationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TransducerApplicationCodeSequence = [] + if "TransducerApplicationCodeSequence" in self._dataset: + del self._dataset.TransducerApplicationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TransducerApplicationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TransducerApplicationCodeSequence = value + if "TransducerApplicationCodeSequence" not in self._dataset: + self._dataset.TransducerApplicationCodeSequence = pydicom.Sequence() + self._dataset.TransducerApplicationCodeSequence.clear() + self._dataset.TransducerApplicationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerApplicationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TransducerApplicationCodeSequence.append(item) + if "TransducerApplicationCodeSequence" not in self._dataset: + self._dataset.TransducerApplicationCodeSequence = pydicom.Sequence() + self._dataset.TransducerApplicationCodeSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def StageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StageCodeSequence" in self._dataset: + if len(self._StageCodeSequence) == len(self._dataset.StageCodeSequence): + return self._StageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StageCodeSequence] + return None + + @StageCodeSequence.setter + def StageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StageCodeSequence = [] + if "StageCodeSequence" in self._dataset: + del self._dataset.StageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StageCodeSequence = value + if "StageCodeSequence" not in self._dataset: + self._dataset.StageCodeSequence = pydicom.Sequence() + self._dataset.StageCodeSequence.clear() + self._dataset.StageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StageCodeSequence.append(item) + if "StageCodeSequence" not in self._dataset: + self._dataset.StageCodeSequence = pydicom.Sequence() + self._dataset.StageCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def IVUSAcquisition(self) -> Optional[str]: + if "IVUSAcquisition" in self._dataset: + return self._dataset.IVUSAcquisition + return None + + @IVUSAcquisition.setter + def IVUSAcquisition(self, value: Optional[str]): + if value is None: + if "IVUSAcquisition" in self._dataset: + del self._dataset.IVUSAcquisition + else: + self._dataset.IVUSAcquisition = value + + @property + def IVUSPullbackRate(self) -> Optional[Decimal]: + if "IVUSPullbackRate" in self._dataset: + return self._dataset.IVUSPullbackRate + return None + + @IVUSPullbackRate.setter + def IVUSPullbackRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSPullbackRate" in self._dataset: + del self._dataset.IVUSPullbackRate + else: + self._dataset.IVUSPullbackRate = value + + @property + def IVUSGatedRate(self) -> Optional[Decimal]: + if "IVUSGatedRate" in self._dataset: + return self._dataset.IVUSGatedRate + return None + + @IVUSGatedRate.setter + def IVUSGatedRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSGatedRate" in self._dataset: + del self._dataset.IVUSGatedRate + else: + self._dataset.IVUSGatedRate = value + + @property + def IVUSPullbackStartFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStartFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStartFrameNumber + return None + + @IVUSPullbackStartFrameNumber.setter + def IVUSPullbackStartFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStartFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStartFrameNumber + else: + self._dataset.IVUSPullbackStartFrameNumber = value + + @property + def IVUSPullbackStopFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStopFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStopFrameNumber + return None + + @IVUSPullbackStopFrameNumber.setter + def IVUSPullbackStopFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStopFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStopFrameNumber + else: + self._dataset.IVUSPullbackStopFrameNumber = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/enhanced_x_ray_radiation_dose_sr.py b/tdwii_plus_examples/domain_model/enhanced_x_ray_radiation_dose_sr.py new file mode 100644 index 0000000..55372a4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_x_ray_radiation_dose_sr.py @@ -0,0 +1,4673 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class EnhancedXRayRadiationDoseSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/enhanced_xa_image.py b/tdwii_plus_examples/domain_model/enhanced_xa_image.py new file mode 100644 index 0000000..b04270b --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_xa_image.py @@ -0,0 +1,7047 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_display_sequence_item import FrameDisplaySequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_other_plane_sequence_item import ReferencedOtherPlaneSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EnhancedXaImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedOtherPlaneSequence: List[ReferencedOtherPlaneSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._FrameDisplaySequence: List[FrameDisplaySequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedOtherPlaneSequence(self) -> Optional[List[ReferencedOtherPlaneSequenceItem]]: + if "ReferencedOtherPlaneSequence" in self._dataset: + if len(self._ReferencedOtherPlaneSequence) == len(self._dataset.ReferencedOtherPlaneSequence): + return self._ReferencedOtherPlaneSequence + else: + return [ReferencedOtherPlaneSequenceItem(x) for x in self._dataset.ReferencedOtherPlaneSequence] + return None + + @ReferencedOtherPlaneSequence.setter + def ReferencedOtherPlaneSequence(self, value: Optional[List[ReferencedOtherPlaneSequenceItem]]): + if value is None: + self._ReferencedOtherPlaneSequence = [] + if "ReferencedOtherPlaneSequence" in self._dataset: + del self._dataset.ReferencedOtherPlaneSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedOtherPlaneSequenceItem) for item in value): + raise ValueError("ReferencedOtherPlaneSequence must be a list of ReferencedOtherPlaneSequenceItem objects") + else: + self._ReferencedOtherPlaneSequence = value + if "ReferencedOtherPlaneSequence" not in self._dataset: + self._dataset.ReferencedOtherPlaneSequence = pydicom.Sequence() + self._dataset.ReferencedOtherPlaneSequence.clear() + self._dataset.ReferencedOtherPlaneSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedOtherPlane(self, item: ReferencedOtherPlaneSequenceItem): + if not isinstance(item, ReferencedOtherPlaneSequenceItem): + raise ValueError("Item must be an instance of ReferencedOtherPlaneSequenceItem") + self._ReferencedOtherPlaneSequence.append(item) + if "ReferencedOtherPlaneSequence" not in self._dataset: + self._dataset.ReferencedOtherPlaneSequence = pydicom.Sequence() + self._dataset.ReferencedOtherPlaneSequence.append(item.to_dataset()) + + @property + def ExaminedBodyThickness(self) -> Optional[float]: + if "ExaminedBodyThickness" in self._dataset: + return self._dataset.ExaminedBodyThickness + return None + + @ExaminedBodyThickness.setter + def ExaminedBodyThickness(self, value: Optional[float]): + if value is None: + if "ExaminedBodyThickness" in self._dataset: + del self._dataset.ExaminedBodyThickness + else: + self._dataset.ExaminedBodyThickness = value + + @property + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def PlanesInAcquisition(self) -> Optional[str]: + if "PlanesInAcquisition" in self._dataset: + return self._dataset.PlanesInAcquisition + return None + + @PlanesInAcquisition.setter + def PlanesInAcquisition(self, value: Optional[str]): + if value is None: + if "PlanesInAcquisition" in self._dataset: + del self._dataset.PlanesInAcquisition + else: + self._dataset.PlanesInAcquisition = value + + @property + def AcquisitionProtocolName(self) -> Optional[str]: + if "AcquisitionProtocolName" in self._dataset: + return self._dataset.AcquisitionProtocolName + return None + + @AcquisitionProtocolName.setter + def AcquisitionProtocolName(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolName" in self._dataset: + del self._dataset.AcquisitionProtocolName + else: + self._dataset.AcquisitionProtocolName = value + + @property + def AcquisitionProtocolDescription(self) -> Optional[str]: + if "AcquisitionProtocolDescription" in self._dataset: + return self._dataset.AcquisitionProtocolDescription + return None + + @AcquisitionProtocolDescription.setter + def AcquisitionProtocolDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolDescription" in self._dataset: + del self._dataset.AcquisitionProtocolDescription + else: + self._dataset.AcquisitionProtocolDescription = value + + @property + def PlaneIdentification(self) -> Optional[str]: + if "PlaneIdentification" in self._dataset: + return self._dataset.PlaneIdentification + return None + + @PlaneIdentification.setter + def PlaneIdentification(self, value: Optional[str]): + if value is None: + if "PlaneIdentification" in self._dataset: + del self._dataset.PlaneIdentification + else: + self._dataset.PlaneIdentification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def RadiationSetting(self) -> Optional[str]: + if "RadiationSetting" in self._dataset: + return self._dataset.RadiationSetting + return None + + @RadiationSetting.setter + def RadiationSetting(self, value: Optional[str]): + if value is None: + if "RadiationSetting" in self._dataset: + del self._dataset.RadiationSetting + else: + self._dataset.RadiationSetting = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def RadiationMode(self) -> Optional[str]: + if "RadiationMode" in self._dataset: + return self._dataset.RadiationMode + return None + + @RadiationMode.setter + def RadiationMode(self, value: Optional[str]): + if value is None: + if "RadiationMode" in self._dataset: + del self._dataset.RadiationMode + else: + self._dataset.RadiationMode = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def XRayReceptorType(self) -> Optional[str]: + if "XRayReceptorType" in self._dataset: + return self._dataset.XRayReceptorType + return None + + @XRayReceptorType.setter + def XRayReceptorType(self, value: Optional[str]): + if value is None: + if "XRayReceptorType" in self._dataset: + del self._dataset.XRayReceptorType + else: + self._dataset.XRayReceptorType = value + + @property + def DistanceReceptorPlaneToDetectorHousing(self) -> Optional[float]: + if "DistanceReceptorPlaneToDetectorHousing" in self._dataset: + return self._dataset.DistanceReceptorPlaneToDetectorHousing + return None + + @DistanceReceptorPlaneToDetectorHousing.setter + def DistanceReceptorPlaneToDetectorHousing(self, value: Optional[float]): + if value is None: + if "DistanceReceptorPlaneToDetectorHousing" in self._dataset: + del self._dataset.DistanceReceptorPlaneToDetectorHousing + else: + self._dataset.DistanceReceptorPlaneToDetectorHousing = value + + @property + def AcquiredImageAreaDoseProduct(self) -> Optional[float]: + if "AcquiredImageAreaDoseProduct" in self._dataset: + return self._dataset.AcquiredImageAreaDoseProduct + return None + + @AcquiredImageAreaDoseProduct.setter + def AcquiredImageAreaDoseProduct(self, value: Optional[float]): + if value is None: + if "AcquiredImageAreaDoseProduct" in self._dataset: + del self._dataset.AcquiredImageAreaDoseProduct + else: + self._dataset.AcquiredImageAreaDoseProduct = value + + @property + def CArmPositionerTabletopRelationship(self) -> Optional[str]: + if "CArmPositionerTabletopRelationship" in self._dataset: + return self._dataset.CArmPositionerTabletopRelationship + return None + + @CArmPositionerTabletopRelationship.setter + def CArmPositionerTabletopRelationship(self, value: Optional[str]): + if value is None: + if "CArmPositionerTabletopRelationship" in self._dataset: + del self._dataset.CArmPositionerTabletopRelationship + else: + self._dataset.CArmPositionerTabletopRelationship = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def IntensifierSize(self) -> Optional[Decimal]: + if "IntensifierSize" in self._dataset: + return self._dataset.IntensifierSize + return None + + @IntensifierSize.setter + def IntensifierSize(self, value: Optional[Decimal]): + if value is None: + if "IntensifierSize" in self._dataset: + del self._dataset.IntensifierSize + else: + self._dataset.IntensifierSize = value + + @property + def IntensifierActiveShape(self) -> Optional[str]: + if "IntensifierActiveShape" in self._dataset: + return self._dataset.IntensifierActiveShape + return None + + @IntensifierActiveShape.setter + def IntensifierActiveShape(self, value: Optional[str]): + if value is None: + if "IntensifierActiveShape" in self._dataset: + del self._dataset.IntensifierActiveShape + else: + self._dataset.IntensifierActiveShape = value + + @property + def IntensifierActiveDimensions(self) -> Optional[List[float]]: + if "IntensifierActiveDimensions" in self._dataset: + return self._dataset.IntensifierActiveDimensions + return None + + @IntensifierActiveDimensions.setter + def IntensifierActiveDimensions(self, value: Optional[List[float]]): + if value is None: + if "IntensifierActiveDimensions" in self._dataset: + del self._dataset.IntensifierActiveDimensions + else: + self._dataset.IntensifierActiveDimensions = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def FrameDisplaySequence(self) -> Optional[List[FrameDisplaySequenceItem]]: + if "FrameDisplaySequence" in self._dataset: + if len(self._FrameDisplaySequence) == len(self._dataset.FrameDisplaySequence): + return self._FrameDisplaySequence + else: + return [FrameDisplaySequenceItem(x) for x in self._dataset.FrameDisplaySequence] + return None + + @FrameDisplaySequence.setter + def FrameDisplaySequence(self, value: Optional[List[FrameDisplaySequenceItem]]): + if value is None: + self._FrameDisplaySequence = [] + if "FrameDisplaySequence" in self._dataset: + del self._dataset.FrameDisplaySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplaySequenceItem) for item in value): + raise ValueError("FrameDisplaySequence must be a list of FrameDisplaySequenceItem objects") + else: + self._FrameDisplaySequence = value + if "FrameDisplaySequence" not in self._dataset: + self._dataset.FrameDisplaySequence = pydicom.Sequence() + self._dataset.FrameDisplaySequence.clear() + self._dataset.FrameDisplaySequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplay(self, item: FrameDisplaySequenceItem): + if not isinstance(item, FrameDisplaySequenceItem): + raise ValueError("Item must be an instance of FrameDisplaySequenceItem") + self._FrameDisplaySequence.append(item) + if "FrameDisplaySequence" not in self._dataset: + self._dataset.FrameDisplaySequence = pydicom.Sequence() + self._dataset.FrameDisplaySequence.append(item.to_dataset()) + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def PhysicalDetectorSize(self) -> Optional[List[float]]: + if "PhysicalDetectorSize" in self._dataset: + return self._dataset.PhysicalDetectorSize + return None + + @PhysicalDetectorSize.setter + def PhysicalDetectorSize(self, value: Optional[List[float]]): + if value is None: + if "PhysicalDetectorSize" in self._dataset: + del self._dataset.PhysicalDetectorSize + else: + self._dataset.PhysicalDetectorSize = value + + @property + def PositionOfIsocenterProjection(self) -> Optional[List[float]]: + if "PositionOfIsocenterProjection" in self._dataset: + return self._dataset.PositionOfIsocenterProjection + return None + + @PositionOfIsocenterProjection.setter + def PositionOfIsocenterProjection(self, value: Optional[List[float]]): + if value is None: + if "PositionOfIsocenterProjection" in self._dataset: + del self._dataset.PositionOfIsocenterProjection + else: + self._dataset.PositionOfIsocenterProjection = value diff --git a/tdwii_plus_examples/domain_model/enhanced_xrf_image.py b/tdwii_plus_examples/domain_model/enhanced_xrf_image.py new file mode 100644 index 0000000..f923347 --- /dev/null +++ b/tdwii_plus_examples/domain_model/enhanced_xrf_image.py @@ -0,0 +1,7131 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_display_sequence_item import FrameDisplaySequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_other_plane_sequence_item import ReferencedOtherPlaneSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class EnhancedXrfImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedOtherPlaneSequence: List[ReferencedOtherPlaneSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._FrameDisplaySequence: List[FrameDisplaySequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedOtherPlaneSequence(self) -> Optional[List[ReferencedOtherPlaneSequenceItem]]: + if "ReferencedOtherPlaneSequence" in self._dataset: + if len(self._ReferencedOtherPlaneSequence) == len(self._dataset.ReferencedOtherPlaneSequence): + return self._ReferencedOtherPlaneSequence + else: + return [ReferencedOtherPlaneSequenceItem(x) for x in self._dataset.ReferencedOtherPlaneSequence] + return None + + @ReferencedOtherPlaneSequence.setter + def ReferencedOtherPlaneSequence(self, value: Optional[List[ReferencedOtherPlaneSequenceItem]]): + if value is None: + self._ReferencedOtherPlaneSequence = [] + if "ReferencedOtherPlaneSequence" in self._dataset: + del self._dataset.ReferencedOtherPlaneSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedOtherPlaneSequenceItem) for item in value): + raise ValueError("ReferencedOtherPlaneSequence must be a list of ReferencedOtherPlaneSequenceItem objects") + else: + self._ReferencedOtherPlaneSequence = value + if "ReferencedOtherPlaneSequence" not in self._dataset: + self._dataset.ReferencedOtherPlaneSequence = pydicom.Sequence() + self._dataset.ReferencedOtherPlaneSequence.clear() + self._dataset.ReferencedOtherPlaneSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedOtherPlane(self, item: ReferencedOtherPlaneSequenceItem): + if not isinstance(item, ReferencedOtherPlaneSequenceItem): + raise ValueError("Item must be an instance of ReferencedOtherPlaneSequenceItem") + self._ReferencedOtherPlaneSequence.append(item) + if "ReferencedOtherPlaneSequence" not in self._dataset: + self._dataset.ReferencedOtherPlaneSequence = pydicom.Sequence() + self._dataset.ReferencedOtherPlaneSequence.append(item.to_dataset()) + + @property + def ExaminedBodyThickness(self) -> Optional[float]: + if "ExaminedBodyThickness" in self._dataset: + return self._dataset.ExaminedBodyThickness + return None + + @ExaminedBodyThickness.setter + def ExaminedBodyThickness(self, value: Optional[float]): + if value is None: + if "ExaminedBodyThickness" in self._dataset: + del self._dataset.ExaminedBodyThickness + else: + self._dataset.ExaminedBodyThickness = value + + @property + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def PlanesInAcquisition(self) -> Optional[str]: + if "PlanesInAcquisition" in self._dataset: + return self._dataset.PlanesInAcquisition + return None + + @PlanesInAcquisition.setter + def PlanesInAcquisition(self, value: Optional[str]): + if value is None: + if "PlanesInAcquisition" in self._dataset: + del self._dataset.PlanesInAcquisition + else: + self._dataset.PlanesInAcquisition = value + + @property + def AcquisitionProtocolName(self) -> Optional[str]: + if "AcquisitionProtocolName" in self._dataset: + return self._dataset.AcquisitionProtocolName + return None + + @AcquisitionProtocolName.setter + def AcquisitionProtocolName(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolName" in self._dataset: + del self._dataset.AcquisitionProtocolName + else: + self._dataset.AcquisitionProtocolName = value + + @property + def AcquisitionProtocolDescription(self) -> Optional[str]: + if "AcquisitionProtocolDescription" in self._dataset: + return self._dataset.AcquisitionProtocolDescription + return None + + @AcquisitionProtocolDescription.setter + def AcquisitionProtocolDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionProtocolDescription" in self._dataset: + del self._dataset.AcquisitionProtocolDescription + else: + self._dataset.AcquisitionProtocolDescription = value + + @property + def PlaneIdentification(self) -> Optional[str]: + if "PlaneIdentification" in self._dataset: + return self._dataset.PlaneIdentification + return None + + @PlaneIdentification.setter + def PlaneIdentification(self, value: Optional[str]): + if value is None: + if "PlaneIdentification" in self._dataset: + del self._dataset.PlaneIdentification + else: + self._dataset.PlaneIdentification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def RadiationSetting(self) -> Optional[str]: + if "RadiationSetting" in self._dataset: + return self._dataset.RadiationSetting + return None + + @RadiationSetting.setter + def RadiationSetting(self, value: Optional[str]): + if value is None: + if "RadiationSetting" in self._dataset: + del self._dataset.RadiationSetting + else: + self._dataset.RadiationSetting = value + + @property + def RectificationType(self) -> Optional[str]: + if "RectificationType" in self._dataset: + return self._dataset.RectificationType + return None + + @RectificationType.setter + def RectificationType(self, value: Optional[str]): + if value is None: + if "RectificationType" in self._dataset: + del self._dataset.RectificationType + else: + self._dataset.RectificationType = value + + @property + def RadiationMode(self) -> Optional[str]: + if "RadiationMode" in self._dataset: + return self._dataset.RadiationMode + return None + + @RadiationMode.setter + def RadiationMode(self, value: Optional[str]): + if value is None: + if "RadiationMode" in self._dataset: + del self._dataset.RadiationMode + else: + self._dataset.RadiationMode = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def PositionerType(self) -> Optional[str]: + if "PositionerType" in self._dataset: + return self._dataset.PositionerType + return None + + @PositionerType.setter + def PositionerType(self, value: Optional[str]): + if value is None: + if "PositionerType" in self._dataset: + del self._dataset.PositionerType + else: + self._dataset.PositionerType = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def XRayReceptorType(self) -> Optional[str]: + if "XRayReceptorType" in self._dataset: + return self._dataset.XRayReceptorType + return None + + @XRayReceptorType.setter + def XRayReceptorType(self, value: Optional[str]): + if value is None: + if "XRayReceptorType" in self._dataset: + del self._dataset.XRayReceptorType + else: + self._dataset.XRayReceptorType = value + + @property + def DistanceReceptorPlaneToDetectorHousing(self) -> Optional[float]: + if "DistanceReceptorPlaneToDetectorHousing" in self._dataset: + return self._dataset.DistanceReceptorPlaneToDetectorHousing + return None + + @DistanceReceptorPlaneToDetectorHousing.setter + def DistanceReceptorPlaneToDetectorHousing(self, value: Optional[float]): + if value is None: + if "DistanceReceptorPlaneToDetectorHousing" in self._dataset: + del self._dataset.DistanceReceptorPlaneToDetectorHousing + else: + self._dataset.DistanceReceptorPlaneToDetectorHousing = value + + @property + def AcquiredImageAreaDoseProduct(self) -> Optional[float]: + if "AcquiredImageAreaDoseProduct" in self._dataset: + return self._dataset.AcquiredImageAreaDoseProduct + return None + + @AcquiredImageAreaDoseProduct.setter + def AcquiredImageAreaDoseProduct(self, value: Optional[float]): + if value is None: + if "AcquiredImageAreaDoseProduct" in self._dataset: + del self._dataset.AcquiredImageAreaDoseProduct + else: + self._dataset.AcquiredImageAreaDoseProduct = value + + @property + def CArmPositionerTabletopRelationship(self) -> Optional[str]: + if "CArmPositionerTabletopRelationship" in self._dataset: + return self._dataset.CArmPositionerTabletopRelationship + return None + + @CArmPositionerTabletopRelationship.setter + def CArmPositionerTabletopRelationship(self, value: Optional[str]): + if value is None: + if "CArmPositionerTabletopRelationship" in self._dataset: + del self._dataset.CArmPositionerTabletopRelationship + else: + self._dataset.CArmPositionerTabletopRelationship = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def TomoLayerHeight(self) -> Optional[Decimal]: + if "TomoLayerHeight" in self._dataset: + return self._dataset.TomoLayerHeight + return None + + @TomoLayerHeight.setter + def TomoLayerHeight(self, value: Optional[Decimal]): + if value is None: + if "TomoLayerHeight" in self._dataset: + del self._dataset.TomoLayerHeight + else: + self._dataset.TomoLayerHeight = value + + @property + def TomoAngle(self) -> Optional[Decimal]: + if "TomoAngle" in self._dataset: + return self._dataset.TomoAngle + return None + + @TomoAngle.setter + def TomoAngle(self, value: Optional[Decimal]): + if value is None: + if "TomoAngle" in self._dataset: + del self._dataset.TomoAngle + else: + self._dataset.TomoAngle = value + + @property + def TomoTime(self) -> Optional[Decimal]: + if "TomoTime" in self._dataset: + return self._dataset.TomoTime + return None + + @TomoTime.setter + def TomoTime(self, value: Optional[Decimal]): + if value is None: + if "TomoTime" in self._dataset: + del self._dataset.TomoTime + else: + self._dataset.TomoTime = value + + @property + def TomoType(self) -> Optional[str]: + if "TomoType" in self._dataset: + return self._dataset.TomoType + return None + + @TomoType.setter + def TomoType(self, value: Optional[str]): + if value is None: + if "TomoType" in self._dataset: + del self._dataset.TomoType + else: + self._dataset.TomoType = value + + @property + def TomoClass(self) -> Optional[str]: + if "TomoClass" in self._dataset: + return self._dataset.TomoClass + return None + + @TomoClass.setter + def TomoClass(self, value: Optional[str]): + if value is None: + if "TomoClass" in self._dataset: + del self._dataset.TomoClass + else: + self._dataset.TomoClass = value + + @property + def NumberOfTomosynthesisSourceImages(self) -> Optional[int]: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + return self._dataset.NumberOfTomosynthesisSourceImages + return None + + @NumberOfTomosynthesisSourceImages.setter + def NumberOfTomosynthesisSourceImages(self, value: Optional[int]): + if value is None: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + del self._dataset.NumberOfTomosynthesisSourceImages + else: + self._dataset.NumberOfTomosynthesisSourceImages = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def IntensifierSize(self) -> Optional[Decimal]: + if "IntensifierSize" in self._dataset: + return self._dataset.IntensifierSize + return None + + @IntensifierSize.setter + def IntensifierSize(self, value: Optional[Decimal]): + if value is None: + if "IntensifierSize" in self._dataset: + del self._dataset.IntensifierSize + else: + self._dataset.IntensifierSize = value + + @property + def IntensifierActiveShape(self) -> Optional[str]: + if "IntensifierActiveShape" in self._dataset: + return self._dataset.IntensifierActiveShape + return None + + @IntensifierActiveShape.setter + def IntensifierActiveShape(self, value: Optional[str]): + if value is None: + if "IntensifierActiveShape" in self._dataset: + del self._dataset.IntensifierActiveShape + else: + self._dataset.IntensifierActiveShape = value + + @property + def IntensifierActiveDimensions(self) -> Optional[List[float]]: + if "IntensifierActiveDimensions" in self._dataset: + return self._dataset.IntensifierActiveDimensions + return None + + @IntensifierActiveDimensions.setter + def IntensifierActiveDimensions(self, value: Optional[List[float]]): + if value is None: + if "IntensifierActiveDimensions" in self._dataset: + del self._dataset.IntensifierActiveDimensions + else: + self._dataset.IntensifierActiveDimensions = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def FrameDisplaySequence(self) -> Optional[List[FrameDisplaySequenceItem]]: + if "FrameDisplaySequence" in self._dataset: + if len(self._FrameDisplaySequence) == len(self._dataset.FrameDisplaySequence): + return self._FrameDisplaySequence + else: + return [FrameDisplaySequenceItem(x) for x in self._dataset.FrameDisplaySequence] + return None + + @FrameDisplaySequence.setter + def FrameDisplaySequence(self, value: Optional[List[FrameDisplaySequenceItem]]): + if value is None: + self._FrameDisplaySequence = [] + if "FrameDisplaySequence" in self._dataset: + del self._dataset.FrameDisplaySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplaySequenceItem) for item in value): + raise ValueError("FrameDisplaySequence must be a list of FrameDisplaySequenceItem objects") + else: + self._FrameDisplaySequence = value + if "FrameDisplaySequence" not in self._dataset: + self._dataset.FrameDisplaySequence = pydicom.Sequence() + self._dataset.FrameDisplaySequence.clear() + self._dataset.FrameDisplaySequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplay(self, item: FrameDisplaySequenceItem): + if not isinstance(item, FrameDisplaySequenceItem): + raise ValueError("Item must be an instance of FrameDisplaySequenceItem") + self._FrameDisplaySequence.append(item) + if "FrameDisplaySequence" not in self._dataset: + self._dataset.FrameDisplaySequence = pydicom.Sequence() + self._dataset.FrameDisplaySequence.append(item.to_dataset()) + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def PhysicalDetectorSize(self) -> Optional[List[float]]: + if "PhysicalDetectorSize" in self._dataset: + return self._dataset.PhysicalDetectorSize + return None + + @PhysicalDetectorSize.setter + def PhysicalDetectorSize(self, value: Optional[List[float]]): + if value is None: + if "PhysicalDetectorSize" in self._dataset: + del self._dataset.PhysicalDetectorSize + else: + self._dataset.PhysicalDetectorSize = value + + @property + def PositionOfIsocenterProjection(self) -> Optional[List[float]]: + if "PositionOfIsocenterProjection" in self._dataset: + return self._dataset.PositionOfIsocenterProjection + return None + + @PositionOfIsocenterProjection.setter + def PositionOfIsocenterProjection(self, value: Optional[List[float]]): + if value is None: + if "PositionOfIsocenterProjection" in self._dataset: + del self._dataset.PositionOfIsocenterProjection + else: + self._dataset.PositionOfIsocenterProjection = value diff --git a/tdwii_plus_examples/domain_model/equipment_reference_point_coordinates_sequence_item.py b/tdwii_plus_examples/domain_model/equipment_reference_point_coordinates_sequence_item.py new file mode 100644 index 0000000..b5f012e --- /dev/null +++ b/tdwii_plus_examples/domain_model/equipment_reference_point_coordinates_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class EquipmentReferencePointCoordinatesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquipmentReferencePointCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ThreeDPointCoordinates(self) -> Optional[List[float]]: + if "ThreeDPointCoordinates" in self._dataset: + return self._dataset.ThreeDPointCoordinates + return None + + @ThreeDPointCoordinates.setter + def ThreeDPointCoordinates(self, value: Optional[List[float]]): + if value is None: + if "ThreeDPointCoordinates" in self._dataset: + del self._dataset.ThreeDPointCoordinates + else: + self._dataset.ThreeDPointCoordinates = value + + @property + def EquipmentReferencePointCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquipmentReferencePointCodeSequence" in self._dataset: + if len(self._EquipmentReferencePointCodeSequence) == len(self._dataset.EquipmentReferencePointCodeSequence): + return self._EquipmentReferencePointCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquipmentReferencePointCodeSequence] + return None + + @EquipmentReferencePointCodeSequence.setter + def EquipmentReferencePointCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquipmentReferencePointCodeSequence = [] + if "EquipmentReferencePointCodeSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquipmentReferencePointCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquipmentReferencePointCodeSequence = value + if "EquipmentReferencePointCodeSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCodeSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCodeSequence.clear() + self._dataset.EquipmentReferencePointCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquipmentReferencePointCodeSequence.append(item) + if "EquipmentReferencePointCodeSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCodeSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/equivalent_conceptual_volume_instance_reference_sequence_item.py b/tdwii_plus_examples/domain_model/equivalent_conceptual_volume_instance_reference_sequence_item.py new file mode 100644 index 0000000..fb13a8f --- /dev/null +++ b/tdwii_plus_examples/domain_model/equivalent_conceptual_volume_instance_reference_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class EquivalentConceptualVolumeInstanceReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/equivalent_conceptual_volumes_sequence_item.py b/tdwii_plus_examples/domain_model/equivalent_conceptual_volumes_sequence_item.py new file mode 100644 index 0000000..cea0ce0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/equivalent_conceptual_volumes_sequence_item.py @@ -0,0 +1,78 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .equivalent_conceptual_volume_instance_reference_sequence_item import ( + EquivalentConceptualVolumeInstanceReferenceSequenceItem, +) + + +class EquivalentConceptualVolumesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentConceptualVolumeInstanceReferenceSequence: List[ + EquivalentConceptualVolumeInstanceReferenceSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EquivalentConceptualVolumeInstanceReferenceSequence( + self, + ) -> Optional[List[EquivalentConceptualVolumeInstanceReferenceSequenceItem]]: + if "EquivalentConceptualVolumeInstanceReferenceSequence" in self._dataset: + if len(self._EquivalentConceptualVolumeInstanceReferenceSequence) == len( + self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence + ): + return self._EquivalentConceptualVolumeInstanceReferenceSequence + else: + return [ + EquivalentConceptualVolumeInstanceReferenceSequenceItem(x) + for x in self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence + ] + return None + + @EquivalentConceptualVolumeInstanceReferenceSequence.setter + def EquivalentConceptualVolumeInstanceReferenceSequence( + self, value: Optional[List[EquivalentConceptualVolumeInstanceReferenceSequenceItem]] + ): + if value is None: + self._EquivalentConceptualVolumeInstanceReferenceSequence = [] + if "EquivalentConceptualVolumeInstanceReferenceSequence" in self._dataset: + del self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquivalentConceptualVolumeInstanceReferenceSequenceItem) for item in value + ): + raise ValueError( + "EquivalentConceptualVolumeInstanceReferenceSequence must be a list of" + " EquivalentConceptualVolumeInstanceReferenceSequenceItem objects" + ) + else: + self._EquivalentConceptualVolumeInstanceReferenceSequence = value + if "EquivalentConceptualVolumeInstanceReferenceSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence.clear() + self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentConceptualVolumeInstanceReference(self, item: EquivalentConceptualVolumeInstanceReferenceSequenceItem): + if not isinstance(item, EquivalentConceptualVolumeInstanceReferenceSequenceItem): + raise ValueError("Item must be an instance of EquivalentConceptualVolumeInstanceReferenceSequenceItem") + self._EquivalentConceptualVolumeInstanceReferenceSequence.append(item) + if "EquivalentConceptualVolumeInstanceReferenceSequence" not in self._dataset: + self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence = pydicom.Sequence() + self._dataset.EquivalentConceptualVolumeInstanceReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedConceptualVolumeUID(self) -> Optional[str]: + if "ReferencedConceptualVolumeUID" in self._dataset: + return self._dataset.ReferencedConceptualVolumeUID + return None + + @ReferencedConceptualVolumeUID.setter + def ReferencedConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "ReferencedConceptualVolumeUID" in self._dataset: + del self._dataset.ReferencedConceptualVolumeUID + else: + self._dataset.ReferencedConceptualVolumeUID = value diff --git a/tdwii_plus_examples/domain_model/event_timer_sequence_item.py b/tdwii_plus_examples/domain_model/event_timer_sequence_item.py new file mode 100644 index 0000000..da76c72 --- /dev/null +++ b/tdwii_plus_examples/domain_model/event_timer_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class EventTimerSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EventCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EventTimerNames(self) -> Optional[List[str]]: + if "EventTimerNames" in self._dataset: + return self._dataset.EventTimerNames + return None + + @EventTimerNames.setter + def EventTimerNames(self, value: Optional[List[str]]): + if value is None: + if "EventTimerNames" in self._dataset: + del self._dataset.EventTimerNames + else: + self._dataset.EventTimerNames = value + + @property + def EventTimeOffset(self) -> Optional[float]: + if "EventTimeOffset" in self._dataset: + return self._dataset.EventTimeOffset + return None + + @EventTimeOffset.setter + def EventTimeOffset(self, value: Optional[float]): + if value is None: + if "EventTimeOffset" in self._dataset: + del self._dataset.EventTimeOffset + else: + self._dataset.EventTimeOffset = value + + @property + def EventCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EventCodeSequence" in self._dataset: + if len(self._EventCodeSequence) == len(self._dataset.EventCodeSequence): + return self._EventCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EventCodeSequence] + return None + + @EventCodeSequence.setter + def EventCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EventCodeSequence = [] + if "EventCodeSequence" in self._dataset: + del self._dataset.EventCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EventCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EventCodeSequence = value + if "EventCodeSequence" not in self._dataset: + self._dataset.EventCodeSequence = pydicom.Sequence() + self._dataset.EventCodeSequence.clear() + self._dataset.EventCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EventCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EventCodeSequence.append(item) + if "EventCodeSequence" not in self._dataset: + self._dataset.EventCodeSequence = pydicom.Sequence() + self._dataset.EventCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/excitation_wavelength_sequence_item.py b/tdwii_plus_examples/domain_model/excitation_wavelength_sequence_item.py new file mode 100644 index 0000000..9082fa0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/excitation_wavelength_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ExcitationWavelengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ExcitationWavelength(self) -> Optional[float]: + if "ExcitationWavelength" in self._dataset: + return self._dataset.ExcitationWavelength + return None + + @ExcitationWavelength.setter + def ExcitationWavelength(self, value: Optional[float]): + if value is None: + if "ExcitationWavelength" in self._dataset: + del self._dataset.ExcitationWavelength + else: + self._dataset.ExcitationWavelength = value diff --git a/tdwii_plus_examples/domain_model/excluded_intervals_sequence_item.py b/tdwii_plus_examples/domain_model/excluded_intervals_sequence_item.py new file mode 100644 index 0000000..fb56c1d --- /dev/null +++ b/tdwii_plus_examples/domain_model/excluded_intervals_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ExcludedIntervalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ExclusionStartDateTime(self) -> Optional[str]: + if "ExclusionStartDateTime" in self._dataset: + return self._dataset.ExclusionStartDateTime + return None + + @ExclusionStartDateTime.setter + def ExclusionStartDateTime(self, value: Optional[str]): + if value is None: + if "ExclusionStartDateTime" in self._dataset: + del self._dataset.ExclusionStartDateTime + else: + self._dataset.ExclusionStartDateTime = value + + @property + def ExclusionDuration(self) -> Optional[float]: + if "ExclusionDuration" in self._dataset: + return self._dataset.ExclusionDuration + return None + + @ExclusionDuration.setter + def ExclusionDuration(self, value: Optional[float]): + if value is None: + if "ExclusionDuration" in self._dataset: + del self._dataset.ExclusionDuration + else: + self._dataset.ExclusionDuration = value diff --git a/tdwii_plus_examples/domain_model/expected_in_vivo_measurement_values_sequence_item.py b/tdwii_plus_examples/domain_model/expected_in_vivo_measurement_values_sequence_item.py new file mode 100644 index 0000000..d9a444a --- /dev/null +++ b/tdwii_plus_examples/domain_model/expected_in_vivo_measurement_values_sequence_item.py @@ -0,0 +1,130 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .meterset_to_dose_mapping_sequence_item import MetersetToDoseMappingSequenceItem + + +class ExpectedInVivoMeasurementValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MetersetToDoseMappingSequence: List[MetersetToDoseMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MetersetToDoseMappingSequence(self) -> Optional[List[MetersetToDoseMappingSequenceItem]]: + if "MetersetToDoseMappingSequence" in self._dataset: + if len(self._MetersetToDoseMappingSequence) == len(self._dataset.MetersetToDoseMappingSequence): + return self._MetersetToDoseMappingSequence + else: + return [MetersetToDoseMappingSequenceItem(x) for x in self._dataset.MetersetToDoseMappingSequence] + return None + + @MetersetToDoseMappingSequence.setter + def MetersetToDoseMappingSequence(self, value: Optional[List[MetersetToDoseMappingSequenceItem]]): + if value is None: + self._MetersetToDoseMappingSequence = [] + if "MetersetToDoseMappingSequence" in self._dataset: + del self._dataset.MetersetToDoseMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, MetersetToDoseMappingSequenceItem) for item in value): + raise ValueError("MetersetToDoseMappingSequence must be a list of MetersetToDoseMappingSequenceItem objects") + else: + self._MetersetToDoseMappingSequence = value + if "MetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MetersetToDoseMappingSequence.clear() + self._dataset.MetersetToDoseMappingSequence.extend([item.to_dataset() for item in value]) + + def add_MetersetToDoseMapping(self, item: MetersetToDoseMappingSequenceItem): + if not isinstance(item, MetersetToDoseMappingSequenceItem): + raise ValueError("Item must be an instance of MetersetToDoseMappingSequenceItem") + self._MetersetToDoseMappingSequence.append(item) + if "MetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MetersetToDoseMappingSequence.append(item.to_dataset()) + + @property + def ExpectedInVivoMeasurementValueIndex(self) -> Optional[int]: + if "ExpectedInVivoMeasurementValueIndex" in self._dataset: + return self._dataset.ExpectedInVivoMeasurementValueIndex + return None + + @ExpectedInVivoMeasurementValueIndex.setter + def ExpectedInVivoMeasurementValueIndex(self, value: Optional[int]): + if value is None: + if "ExpectedInVivoMeasurementValueIndex" in self._dataset: + del self._dataset.ExpectedInVivoMeasurementValueIndex + else: + self._dataset.ExpectedInVivoMeasurementValueIndex = value + + @property + def RadiationDoseInVivoMeasurementLabel(self) -> Optional[str]: + if "RadiationDoseInVivoMeasurementLabel" in self._dataset: + return self._dataset.RadiationDoseInVivoMeasurementLabel + return None + + @RadiationDoseInVivoMeasurementLabel.setter + def RadiationDoseInVivoMeasurementLabel(self, value: Optional[str]): + if value is None: + if "RadiationDoseInVivoMeasurementLabel" in self._dataset: + del self._dataset.RadiationDoseInVivoMeasurementLabel + else: + self._dataset.RadiationDoseInVivoMeasurementLabel = value + + @property + def RadiationDoseCentralAxisDisplacement(self) -> Optional[List[float]]: + if "RadiationDoseCentralAxisDisplacement" in self._dataset: + return self._dataset.RadiationDoseCentralAxisDisplacement + return None + + @RadiationDoseCentralAxisDisplacement.setter + def RadiationDoseCentralAxisDisplacement(self, value: Optional[List[float]]): + if value is None: + if "RadiationDoseCentralAxisDisplacement" in self._dataset: + del self._dataset.RadiationDoseCentralAxisDisplacement + else: + self._dataset.RadiationDoseCentralAxisDisplacement = value + + @property + def RadiationDoseSourceToSkinDistance(self) -> Optional[float]: + if "RadiationDoseSourceToSkinDistance" in self._dataset: + return self._dataset.RadiationDoseSourceToSkinDistance + return None + + @RadiationDoseSourceToSkinDistance.setter + def RadiationDoseSourceToSkinDistance(self, value: Optional[float]): + if value is None: + if "RadiationDoseSourceToSkinDistance" in self._dataset: + del self._dataset.RadiationDoseSourceToSkinDistance + else: + self._dataset.RadiationDoseSourceToSkinDistance = value + + @property + def RadiationDoseMeasurementPointCoordinates(self) -> Optional[List[float]]: + if "RadiationDoseMeasurementPointCoordinates" in self._dataset: + return self._dataset.RadiationDoseMeasurementPointCoordinates + return None + + @RadiationDoseMeasurementPointCoordinates.setter + def RadiationDoseMeasurementPointCoordinates(self, value: Optional[List[float]]): + if value is None: + if "RadiationDoseMeasurementPointCoordinates" in self._dataset: + del self._dataset.RadiationDoseMeasurementPointCoordinates + else: + self._dataset.RadiationDoseMeasurementPointCoordinates = value + + @property + def RadiationDoseSourceToExternalContourDistance(self) -> Optional[float]: + if "RadiationDoseSourceToExternalContourDistance" in self._dataset: + return self._dataset.RadiationDoseSourceToExternalContourDistance + return None + + @RadiationDoseSourceToExternalContourDistance.setter + def RadiationDoseSourceToExternalContourDistance(self, value: Optional[float]): + if value is None: + if "RadiationDoseSourceToExternalContourDistance" in self._dataset: + del self._dataset.RadiationDoseSourceToExternalContourDistance + else: + self._dataset.RadiationDoseSourceToExternalContourDistance = value diff --git a/tdwii_plus_examples/domain_model/exposure_control_sensing_regions_sequence_item.py b/tdwii_plus_examples/domain_model/exposure_control_sensing_regions_sequence_item.py new file mode 100644 index 0000000..7e1caba --- /dev/null +++ b/tdwii_plus_examples/domain_model/exposure_control_sensing_regions_sequence_item.py @@ -0,0 +1,123 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ExposureControlSensingRegionsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ExposureControlSensingRegionShape(self) -> Optional[str]: + if "ExposureControlSensingRegionShape" in self._dataset: + return self._dataset.ExposureControlSensingRegionShape + return None + + @ExposureControlSensingRegionShape.setter + def ExposureControlSensingRegionShape(self, value: Optional[str]): + if value is None: + if "ExposureControlSensingRegionShape" in self._dataset: + del self._dataset.ExposureControlSensingRegionShape + else: + self._dataset.ExposureControlSensingRegionShape = value + + @property + def ExposureControlSensingRegionLeftVerticalEdge(self) -> Optional[int]: + if "ExposureControlSensingRegionLeftVerticalEdge" in self._dataset: + return self._dataset.ExposureControlSensingRegionLeftVerticalEdge + return None + + @ExposureControlSensingRegionLeftVerticalEdge.setter + def ExposureControlSensingRegionLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ExposureControlSensingRegionLeftVerticalEdge" in self._dataset: + del self._dataset.ExposureControlSensingRegionLeftVerticalEdge + else: + self._dataset.ExposureControlSensingRegionLeftVerticalEdge = value + + @property + def ExposureControlSensingRegionRightVerticalEdge(self) -> Optional[int]: + if "ExposureControlSensingRegionRightVerticalEdge" in self._dataset: + return self._dataset.ExposureControlSensingRegionRightVerticalEdge + return None + + @ExposureControlSensingRegionRightVerticalEdge.setter + def ExposureControlSensingRegionRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ExposureControlSensingRegionRightVerticalEdge" in self._dataset: + del self._dataset.ExposureControlSensingRegionRightVerticalEdge + else: + self._dataset.ExposureControlSensingRegionRightVerticalEdge = value + + @property + def ExposureControlSensingRegionUpperHorizontalEdge(self) -> Optional[int]: + if "ExposureControlSensingRegionUpperHorizontalEdge" in self._dataset: + return self._dataset.ExposureControlSensingRegionUpperHorizontalEdge + return None + + @ExposureControlSensingRegionUpperHorizontalEdge.setter + def ExposureControlSensingRegionUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ExposureControlSensingRegionUpperHorizontalEdge" in self._dataset: + del self._dataset.ExposureControlSensingRegionUpperHorizontalEdge + else: + self._dataset.ExposureControlSensingRegionUpperHorizontalEdge = value + + @property + def ExposureControlSensingRegionLowerHorizontalEdge(self) -> Optional[int]: + if "ExposureControlSensingRegionLowerHorizontalEdge" in self._dataset: + return self._dataset.ExposureControlSensingRegionLowerHorizontalEdge + return None + + @ExposureControlSensingRegionLowerHorizontalEdge.setter + def ExposureControlSensingRegionLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ExposureControlSensingRegionLowerHorizontalEdge" in self._dataset: + del self._dataset.ExposureControlSensingRegionLowerHorizontalEdge + else: + self._dataset.ExposureControlSensingRegionLowerHorizontalEdge = value + + @property + def CenterOfCircularExposureControlSensingRegion(self) -> Optional[List[int]]: + if "CenterOfCircularExposureControlSensingRegion" in self._dataset: + return self._dataset.CenterOfCircularExposureControlSensingRegion + return None + + @CenterOfCircularExposureControlSensingRegion.setter + def CenterOfCircularExposureControlSensingRegion(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularExposureControlSensingRegion" in self._dataset: + del self._dataset.CenterOfCircularExposureControlSensingRegion + else: + self._dataset.CenterOfCircularExposureControlSensingRegion = value + + @property + def RadiusOfCircularExposureControlSensingRegion(self) -> Optional[int]: + if "RadiusOfCircularExposureControlSensingRegion" in self._dataset: + return self._dataset.RadiusOfCircularExposureControlSensingRegion + return None + + @RadiusOfCircularExposureControlSensingRegion.setter + def RadiusOfCircularExposureControlSensingRegion(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularExposureControlSensingRegion" in self._dataset: + del self._dataset.RadiusOfCircularExposureControlSensingRegion + else: + self._dataset.RadiusOfCircularExposureControlSensingRegion = value + + @property + def VerticesOfThePolygonalExposureControlSensingRegion(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalExposureControlSensingRegion" in self._dataset: + return self._dataset.VerticesOfThePolygonalExposureControlSensingRegion + return None + + @VerticesOfThePolygonalExposureControlSensingRegion.setter + def VerticesOfThePolygonalExposureControlSensingRegion(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalExposureControlSensingRegion" in self._dataset: + del self._dataset.VerticesOfThePolygonalExposureControlSensingRegion + else: + self._dataset.VerticesOfThePolygonalExposureControlSensingRegion = value diff --git a/tdwii_plus_examples/domain_model/exposure_sequence_item.py b/tdwii_plus_examples/domain_model/exposure_sequence_item.py new file mode 100644 index 0000000..2376766 --- /dev/null +++ b/tdwii_plus_examples/domain_model/exposure_sequence_item.py @@ -0,0 +1,477 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .applicator_sequence_item import ApplicatorSequenceItem +from .beam_limiting_device_sequence_item import BeamLimitingDeviceSequenceItem +from .block_sequence_item import BlockSequenceItem +from .enhanced_rt_beam_limiting_opening_sequence_item import ( + EnhancedRTBeamLimitingOpeningSequenceItem, +) +from .general_accessory_sequence_item import GeneralAccessorySequenceItem +from .primary_fluence_mode_sequence_item import PrimaryFluenceModeSequenceItem + + +class ExposureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PrimaryFluenceModeSequence: List[PrimaryFluenceModeSequenceItem] = [] + self._EnhancedRTBeamLimitingOpeningSequence: List[EnhancedRTBeamLimitingOpeningSequenceItem] = [] + self._BeamLimitingDeviceSequence: List[BeamLimitingDeviceSequenceItem] = [] + self._BlockSequence: List[BlockSequenceItem] = [] + self._ApplicatorSequence: List[ApplicatorSequenceItem] = [] + self._GeneralAccessorySequence: List[GeneralAccessorySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def MetersetExposure(self) -> Optional[Decimal]: + if "MetersetExposure" in self._dataset: + return self._dataset.MetersetExposure + return None + + @MetersetExposure.setter + def MetersetExposure(self, value: Optional[Decimal]): + if value is None: + if "MetersetExposure" in self._dataset: + del self._dataset.MetersetExposure + else: + self._dataset.MetersetExposure = value + + @property + def DiaphragmPosition(self) -> Optional[List[Decimal]]: + if "DiaphragmPosition" in self._dataset: + return self._dataset.DiaphragmPosition + return None + + @DiaphragmPosition.setter + def DiaphragmPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "DiaphragmPosition" in self._dataset: + del self._dataset.DiaphragmPosition + else: + self._dataset.DiaphragmPosition = value + + @property + def PrimaryFluenceModeSequence(self) -> Optional[List[PrimaryFluenceModeSequenceItem]]: + if "PrimaryFluenceModeSequence" in self._dataset: + if len(self._PrimaryFluenceModeSequence) == len(self._dataset.PrimaryFluenceModeSequence): + return self._PrimaryFluenceModeSequence + else: + return [PrimaryFluenceModeSequenceItem(x) for x in self._dataset.PrimaryFluenceModeSequence] + return None + + @PrimaryFluenceModeSequence.setter + def PrimaryFluenceModeSequence(self, value: Optional[List[PrimaryFluenceModeSequenceItem]]): + if value is None: + self._PrimaryFluenceModeSequence = [] + if "PrimaryFluenceModeSequence" in self._dataset: + del self._dataset.PrimaryFluenceModeSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryFluenceModeSequenceItem) for item in value): + raise ValueError("PrimaryFluenceModeSequence must be a list of PrimaryFluenceModeSequenceItem objects") + else: + self._PrimaryFluenceModeSequence = value + if "PrimaryFluenceModeSequence" not in self._dataset: + self._dataset.PrimaryFluenceModeSequence = pydicom.Sequence() + self._dataset.PrimaryFluenceModeSequence.clear() + self._dataset.PrimaryFluenceModeSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryFluenceMode(self, item: PrimaryFluenceModeSequenceItem): + if not isinstance(item, PrimaryFluenceModeSequenceItem): + raise ValueError("Item must be an instance of PrimaryFluenceModeSequenceItem") + self._PrimaryFluenceModeSequence.append(item) + if "PrimaryFluenceModeSequence" not in self._dataset: + self._dataset.PrimaryFluenceModeSequence = pydicom.Sequence() + self._dataset.PrimaryFluenceModeSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingOpeningSequence(self) -> Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]: + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingOpeningSequence) == len(self._dataset.EnhancedRTBeamLimitingOpeningSequence): + return self._EnhancedRTBeamLimitingOpeningSequence + else: + return [ + EnhancedRTBeamLimitingOpeningSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingOpeningSequence + ] + return None + + @EnhancedRTBeamLimitingOpeningSequence.setter + def EnhancedRTBeamLimitingOpeningSequence(self, value: Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingOpeningSequence = [] + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingOpeningSequence must be a list of EnhancedRTBeamLimitingOpeningSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingOpeningSequence = value + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.clear() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingOpening(self, item: EnhancedRTBeamLimitingOpeningSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingOpeningSequenceItem") + self._EnhancedRTBeamLimitingOpeningSequence.append(item) + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.append(item.to_dataset()) + + @property + def BeamLimitingDeviceSequence(self) -> Optional[List[BeamLimitingDeviceSequenceItem]]: + if "BeamLimitingDeviceSequence" in self._dataset: + if len(self._BeamLimitingDeviceSequence) == len(self._dataset.BeamLimitingDeviceSequence): + return self._BeamLimitingDeviceSequence + else: + return [BeamLimitingDeviceSequenceItem(x) for x in self._dataset.BeamLimitingDeviceSequence] + return None + + @BeamLimitingDeviceSequence.setter + def BeamLimitingDeviceSequence(self, value: Optional[List[BeamLimitingDeviceSequenceItem]]): + if value is None: + self._BeamLimitingDeviceSequence = [] + if "BeamLimitingDeviceSequence" in self._dataset: + del self._dataset.BeamLimitingDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamLimitingDeviceSequenceItem) for item in value): + raise ValueError("BeamLimitingDeviceSequence must be a list of BeamLimitingDeviceSequenceItem objects") + else: + self._BeamLimitingDeviceSequence = value + if "BeamLimitingDeviceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceSequence.clear() + self._dataset.BeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDevice(self, item: BeamLimitingDeviceSequenceItem): + if not isinstance(item, BeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDeviceSequenceItem") + self._BeamLimitingDeviceSequence.append(item) + if "BeamLimitingDeviceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def BlockSequence(self) -> Optional[List[BlockSequenceItem]]: + if "BlockSequence" in self._dataset: + if len(self._BlockSequence) == len(self._dataset.BlockSequence): + return self._BlockSequence + else: + return [BlockSequenceItem(x) for x in self._dataset.BlockSequence] + return None + + @BlockSequence.setter + def BlockSequence(self, value: Optional[List[BlockSequenceItem]]): + if value is None: + self._BlockSequence = [] + if "BlockSequence" in self._dataset: + del self._dataset.BlockSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockSequenceItem) for item in value): + raise ValueError("BlockSequence must be a list of BlockSequenceItem objects") + else: + self._BlockSequence = value + if "BlockSequence" not in self._dataset: + self._dataset.BlockSequence = pydicom.Sequence() + self._dataset.BlockSequence.clear() + self._dataset.BlockSequence.extend([item.to_dataset() for item in value]) + + def add_Block(self, item: BlockSequenceItem): + if not isinstance(item, BlockSequenceItem): + raise ValueError("Item must be an instance of BlockSequenceItem") + self._BlockSequence.append(item) + if "BlockSequence" not in self._dataset: + self._dataset.BlockSequence = pydicom.Sequence() + self._dataset.BlockSequence.append(item.to_dataset()) + + @property + def ApplicatorSequence(self) -> Optional[List[ApplicatorSequenceItem]]: + if "ApplicatorSequence" in self._dataset: + if len(self._ApplicatorSequence) == len(self._dataset.ApplicatorSequence): + return self._ApplicatorSequence + else: + return [ApplicatorSequenceItem(x) for x in self._dataset.ApplicatorSequence] + return None + + @ApplicatorSequence.setter + def ApplicatorSequence(self, value: Optional[List[ApplicatorSequenceItem]]): + if value is None: + self._ApplicatorSequence = [] + if "ApplicatorSequence" in self._dataset: + del self._dataset.ApplicatorSequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicatorSequenceItem) for item in value): + raise ValueError("ApplicatorSequence must be a list of ApplicatorSequenceItem objects") + else: + self._ApplicatorSequence = value + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.clear() + self._dataset.ApplicatorSequence.extend([item.to_dataset() for item in value]) + + def add_Applicator(self, item: ApplicatorSequenceItem): + if not isinstance(item, ApplicatorSequenceItem): + raise ValueError("Item must be an instance of ApplicatorSequenceItem") + self._ApplicatorSequence.append(item) + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.append(item.to_dataset()) + + @property + def GantryAngle(self) -> Optional[Decimal]: + if "GantryAngle" in self._dataset: + return self._dataset.GantryAngle + return None + + @GantryAngle.setter + def GantryAngle(self, value: Optional[Decimal]): + if value is None: + if "GantryAngle" in self._dataset: + del self._dataset.GantryAngle + else: + self._dataset.GantryAngle = value + + @property + def BeamLimitingDeviceAngle(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngle" in self._dataset: + return self._dataset.BeamLimitingDeviceAngle + return None + + @BeamLimitingDeviceAngle.setter + def BeamLimitingDeviceAngle(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngle" in self._dataset: + del self._dataset.BeamLimitingDeviceAngle + else: + self._dataset.BeamLimitingDeviceAngle = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def GantryPitchAngle(self) -> Optional[float]: + if "GantryPitchAngle" in self._dataset: + return self._dataset.GantryPitchAngle + return None + + @GantryPitchAngle.setter + def GantryPitchAngle(self, value: Optional[float]): + if value is None: + if "GantryPitchAngle" in self._dataset: + del self._dataset.GantryPitchAngle + else: + self._dataset.GantryPitchAngle = value + + @property + def GeneralAccessorySequence(self) -> Optional[List[GeneralAccessorySequenceItem]]: + if "GeneralAccessorySequence" in self._dataset: + if len(self._GeneralAccessorySequence) == len(self._dataset.GeneralAccessorySequence): + return self._GeneralAccessorySequence + else: + return [GeneralAccessorySequenceItem(x) for x in self._dataset.GeneralAccessorySequence] + return None + + @GeneralAccessorySequence.setter + def GeneralAccessorySequence(self, value: Optional[List[GeneralAccessorySequenceItem]]): + if value is None: + self._GeneralAccessorySequence = [] + if "GeneralAccessorySequence" in self._dataset: + del self._dataset.GeneralAccessorySequence + elif not isinstance(value, list) or not all(isinstance(item, GeneralAccessorySequenceItem) for item in value): + raise ValueError("GeneralAccessorySequence must be a list of GeneralAccessorySequenceItem objects") + else: + self._GeneralAccessorySequence = value + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.clear() + self._dataset.GeneralAccessorySequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessory(self, item: GeneralAccessorySequenceItem): + if not isinstance(item, GeneralAccessorySequenceItem): + raise ValueError("Item must be an instance of GeneralAccessorySequenceItem") + self._GeneralAccessorySequence.append(item) + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/extensible_sr.py b/tdwii_plus_examples/domain_model/extensible_sr.py new file mode 100644 index 0000000..31ace36 --- /dev/null +++ b/tdwii_plus_examples/domain_model/extensible_sr.py @@ -0,0 +1,4673 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class ExtensibleSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/facet_sequence_item.py b/tdwii_plus_examples/domain_model/facet_sequence_item.py new file mode 100644 index 0000000..ce29208 --- /dev/null +++ b/tdwii_plus_examples/domain_model/facet_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FacetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LongPrimitivePointIndexList(self) -> Optional[bytes]: + if "LongPrimitivePointIndexList" in self._dataset: + return self._dataset.LongPrimitivePointIndexList + return None + + @LongPrimitivePointIndexList.setter + def LongPrimitivePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongPrimitivePointIndexList" in self._dataset: + del self._dataset.LongPrimitivePointIndexList + else: + self._dataset.LongPrimitivePointIndexList = value diff --git a/tdwii_plus_examples/domain_model/fiducial_sequence_item.py b/tdwii_plus_examples/domain_model/fiducial_sequence_item.py new file mode 100644 index 0000000..8d7df91 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fiducial_sequence_item.py @@ -0,0 +1,246 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .graphic_coordinates_data_sequence_item import GraphicCoordinatesDataSequenceItem + + +class FiducialSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._FiducialIdentifierCodeSequence: List[CodeSequenceItem] = [] + self._GraphicCoordinatesDataSequence: List[GraphicCoordinatesDataSequenceItem] = [] + self._FiducialsPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def ShapeType(self) -> Optional[str]: + if "ShapeType" in self._dataset: + return self._dataset.ShapeType + return None + + @ShapeType.setter + def ShapeType(self, value: Optional[str]): + if value is None: + if "ShapeType" in self._dataset: + del self._dataset.ShapeType + else: + self._dataset.ShapeType = value + + @property + def FiducialDescription(self) -> Optional[str]: + if "FiducialDescription" in self._dataset: + return self._dataset.FiducialDescription + return None + + @FiducialDescription.setter + def FiducialDescription(self, value: Optional[str]): + if value is None: + if "FiducialDescription" in self._dataset: + del self._dataset.FiducialDescription + else: + self._dataset.FiducialDescription = value + + @property + def FiducialIdentifier(self) -> Optional[str]: + if "FiducialIdentifier" in self._dataset: + return self._dataset.FiducialIdentifier + return None + + @FiducialIdentifier.setter + def FiducialIdentifier(self, value: Optional[str]): + if value is None: + if "FiducialIdentifier" in self._dataset: + del self._dataset.FiducialIdentifier + else: + self._dataset.FiducialIdentifier = value + + @property + def FiducialIdentifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "FiducialIdentifierCodeSequence" in self._dataset: + if len(self._FiducialIdentifierCodeSequence) == len(self._dataset.FiducialIdentifierCodeSequence): + return self._FiducialIdentifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.FiducialIdentifierCodeSequence] + return None + + @FiducialIdentifierCodeSequence.setter + def FiducialIdentifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._FiducialIdentifierCodeSequence = [] + if "FiducialIdentifierCodeSequence" in self._dataset: + del self._dataset.FiducialIdentifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("FiducialIdentifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._FiducialIdentifierCodeSequence = value + if "FiducialIdentifierCodeSequence" not in self._dataset: + self._dataset.FiducialIdentifierCodeSequence = pydicom.Sequence() + self._dataset.FiducialIdentifierCodeSequence.clear() + self._dataset.FiducialIdentifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_FiducialIdentifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._FiducialIdentifierCodeSequence.append(item) + if "FiducialIdentifierCodeSequence" not in self._dataset: + self._dataset.FiducialIdentifierCodeSequence = pydicom.Sequence() + self._dataset.FiducialIdentifierCodeSequence.append(item.to_dataset()) + + @property + def ContourUncertaintyRadius(self) -> Optional[float]: + if "ContourUncertaintyRadius" in self._dataset: + return self._dataset.ContourUncertaintyRadius + return None + + @ContourUncertaintyRadius.setter + def ContourUncertaintyRadius(self, value: Optional[float]): + if value is None: + if "ContourUncertaintyRadius" in self._dataset: + del self._dataset.ContourUncertaintyRadius + else: + self._dataset.ContourUncertaintyRadius = value + + @property + def GraphicCoordinatesDataSequence(self) -> Optional[List[GraphicCoordinatesDataSequenceItem]]: + if "GraphicCoordinatesDataSequence" in self._dataset: + if len(self._GraphicCoordinatesDataSequence) == len(self._dataset.GraphicCoordinatesDataSequence): + return self._GraphicCoordinatesDataSequence + else: + return [GraphicCoordinatesDataSequenceItem(x) for x in self._dataset.GraphicCoordinatesDataSequence] + return None + + @GraphicCoordinatesDataSequence.setter + def GraphicCoordinatesDataSequence(self, value: Optional[List[GraphicCoordinatesDataSequenceItem]]): + if value is None: + self._GraphicCoordinatesDataSequence = [] + if "GraphicCoordinatesDataSequence" in self._dataset: + del self._dataset.GraphicCoordinatesDataSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicCoordinatesDataSequenceItem) for item in value): + raise ValueError("GraphicCoordinatesDataSequence must be a list of GraphicCoordinatesDataSequenceItem objects") + else: + self._GraphicCoordinatesDataSequence = value + if "GraphicCoordinatesDataSequence" not in self._dataset: + self._dataset.GraphicCoordinatesDataSequence = pydicom.Sequence() + self._dataset.GraphicCoordinatesDataSequence.clear() + self._dataset.GraphicCoordinatesDataSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicCoordinatesData(self, item: GraphicCoordinatesDataSequenceItem): + if not isinstance(item, GraphicCoordinatesDataSequenceItem): + raise ValueError("Item must be an instance of GraphicCoordinatesDataSequenceItem") + self._GraphicCoordinatesDataSequence.append(item) + if "GraphicCoordinatesDataSequence" not in self._dataset: + self._dataset.GraphicCoordinatesDataSequence = pydicom.Sequence() + self._dataset.GraphicCoordinatesDataSequence.append(item.to_dataset()) + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def FiducialsPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "FiducialsPropertyCategoryCodeSequence" in self._dataset: + if len(self._FiducialsPropertyCategoryCodeSequence) == len(self._dataset.FiducialsPropertyCategoryCodeSequence): + return self._FiducialsPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.FiducialsPropertyCategoryCodeSequence] + return None + + @FiducialsPropertyCategoryCodeSequence.setter + def FiducialsPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._FiducialsPropertyCategoryCodeSequence = [] + if "FiducialsPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.FiducialsPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("FiducialsPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._FiducialsPropertyCategoryCodeSequence = value + if "FiducialsPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.FiducialsPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.FiducialsPropertyCategoryCodeSequence.clear() + self._dataset.FiducialsPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_FiducialsPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._FiducialsPropertyCategoryCodeSequence.append(item) + if "FiducialsPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.FiducialsPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.FiducialsPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def NumberOfContourPoints(self) -> Optional[int]: + if "NumberOfContourPoints" in self._dataset: + return self._dataset.NumberOfContourPoints + return None + + @NumberOfContourPoints.setter + def NumberOfContourPoints(self, value: Optional[int]): + if value is None: + if "NumberOfContourPoints" in self._dataset: + del self._dataset.NumberOfContourPoints + else: + self._dataset.NumberOfContourPoints = value + + @property + def ContourData(self) -> Optional[List[Decimal]]: + if "ContourData" in self._dataset: + return self._dataset.ContourData + return None + + @ContourData.setter + def ContourData(self, value: Optional[List[Decimal]]): + if value is None: + if "ContourData" in self._dataset: + del self._dataset.ContourData + else: + self._dataset.ContourData = value diff --git a/tdwii_plus_examples/domain_model/fiducial_set_sequence_item.py b/tdwii_plus_examples/domain_model/fiducial_set_sequence_item.py new file mode 100644 index 0000000..13384c7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fiducial_set_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .fiducial_sequence_item import FiducialSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class FiducialSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._FiducialSequence: List[FiducialSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def FiducialSequence(self) -> Optional[List[FiducialSequenceItem]]: + if "FiducialSequence" in self._dataset: + if len(self._FiducialSequence) == len(self._dataset.FiducialSequence): + return self._FiducialSequence + else: + return [FiducialSequenceItem(x) for x in self._dataset.FiducialSequence] + return None + + @FiducialSequence.setter + def FiducialSequence(self, value: Optional[List[FiducialSequenceItem]]): + if value is None: + self._FiducialSequence = [] + if "FiducialSequence" in self._dataset: + del self._dataset.FiducialSequence + elif not isinstance(value, list) or not all(isinstance(item, FiducialSequenceItem) for item in value): + raise ValueError("FiducialSequence must be a list of FiducialSequenceItem objects") + else: + self._FiducialSequence = value + if "FiducialSequence" not in self._dataset: + self._dataset.FiducialSequence = pydicom.Sequence() + self._dataset.FiducialSequence.clear() + self._dataset.FiducialSequence.extend([item.to_dataset() for item in value]) + + def add_Fiducial(self, item: FiducialSequenceItem): + if not isinstance(item, FiducialSequenceItem): + raise ValueError("Item must be an instance of FiducialSequenceItem") + self._FiducialSequence.append(item) + if "FiducialSequence" not in self._dataset: + self._dataset.FiducialSequence = pydicom.Sequence() + self._dataset.FiducialSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/field_of_view_sequence_item.py b/tdwii_plus_examples/domain_model/field_of_view_sequence_item.py new file mode 100644 index 0000000..eaf6786 --- /dev/null +++ b/tdwii_plus_examples/domain_model/field_of_view_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class FieldOfViewSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def FieldOfViewDescription(self) -> Optional[str]: + if "FieldOfViewDescription" in self._dataset: + return self._dataset.FieldOfViewDescription + return None + + @FieldOfViewDescription.setter + def FieldOfViewDescription(self, value: Optional[str]): + if value is None: + if "FieldOfViewDescription" in self._dataset: + del self._dataset.FieldOfViewDescription + else: + self._dataset.FieldOfViewDescription = value + + @property + def FieldOfViewDimensionsInFloat(self) -> Optional[List[float]]: + if "FieldOfViewDimensionsInFloat" in self._dataset: + return self._dataset.FieldOfViewDimensionsInFloat + return None + + @FieldOfViewDimensionsInFloat.setter + def FieldOfViewDimensionsInFloat(self, value: Optional[List[float]]): + if value is None: + if "FieldOfViewDimensionsInFloat" in self._dataset: + del self._dataset.FieldOfViewDimensionsInFloat + else: + self._dataset.FieldOfViewDimensionsInFloat = value diff --git a/tdwii_plus_examples/domain_model/fill_style_sequence_item.py b/tdwii_plus_examples/domain_model/fill_style_sequence_item.py new file mode 100644 index 0000000..8b6f984 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fill_style_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FillStyleSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatternOnColorCIELabValue(self) -> Optional[List[int]]: + if "PatternOnColorCIELabValue" in self._dataset: + return self._dataset.PatternOnColorCIELabValue + return None + + @PatternOnColorCIELabValue.setter + def PatternOnColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "PatternOnColorCIELabValue" in self._dataset: + del self._dataset.PatternOnColorCIELabValue + else: + self._dataset.PatternOnColorCIELabValue = value + + @property + def PatternOffColorCIELabValue(self) -> Optional[List[int]]: + if "PatternOffColorCIELabValue" in self._dataset: + return self._dataset.PatternOffColorCIELabValue + return None + + @PatternOffColorCIELabValue.setter + def PatternOffColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "PatternOffColorCIELabValue" in self._dataset: + del self._dataset.PatternOffColorCIELabValue + else: + self._dataset.PatternOffColorCIELabValue = value + + @property + def FillPattern(self) -> Optional[bytes]: + if "FillPattern" in self._dataset: + return self._dataset.FillPattern + return None + + @FillPattern.setter + def FillPattern(self, value: Optional[bytes]): + if value is None: + if "FillPattern" in self._dataset: + del self._dataset.FillPattern + else: + self._dataset.FillPattern = value + + @property + def FillMode(self) -> Optional[str]: + if "FillMode" in self._dataset: + return self._dataset.FillMode + return None + + @FillMode.setter + def FillMode(self, value: Optional[str]): + if value is None: + if "FillMode" in self._dataset: + del self._dataset.FillMode + else: + self._dataset.FillMode = value + + @property + def PatternOnOpacity(self) -> Optional[float]: + if "PatternOnOpacity" in self._dataset: + return self._dataset.PatternOnOpacity + return None + + @PatternOnOpacity.setter + def PatternOnOpacity(self, value: Optional[float]): + if value is None: + if "PatternOnOpacity" in self._dataset: + del self._dataset.PatternOnOpacity + else: + self._dataset.PatternOnOpacity = value + + @property + def PatternOffOpacity(self) -> Optional[float]: + if "PatternOffOpacity" in self._dataset: + return self._dataset.PatternOffOpacity + return None + + @PatternOffOpacity.setter + def PatternOffOpacity(self, value: Optional[float]): + if value is None: + if "PatternOffOpacity" in self._dataset: + del self._dataset.PatternOffOpacity + else: + self._dataset.PatternOffOpacity = value diff --git a/tdwii_plus_examples/domain_model/filter_high_frequency_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/filter_high_frequency_characteristics_sequence_item.py new file mode 100644 index 0000000..420696f --- /dev/null +++ b/tdwii_plus_examples/domain_model/filter_high_frequency_characteristics_sequence_item.py @@ -0,0 +1,213 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .analog_filter_characteristics_sequence_item import ( + AnalogFilterCharacteristicsSequenceItem, +) +from .digital_filter_characteristics_sequence_item import ( + DigitalFilterCharacteristicsSequenceItem, +) +from .filter_lookup_table_sequence_item import FilterLookupTableSequenceItem + + +class FilterHighFrequencyCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnalogFilterCharacteristicsSequence: List[AnalogFilterCharacteristicsSequenceItem] = [] + self._DigitalFilterCharacteristicsSequence: List[DigitalFilterCharacteristicsSequenceItem] = [] + self._FilterLookupTableSequence: List[FilterLookupTableSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FilterLowFrequency(self) -> Optional[Decimal]: + if "FilterLowFrequency" in self._dataset: + return self._dataset.FilterLowFrequency + return None + + @FilterLowFrequency.setter + def FilterLowFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterLowFrequency" in self._dataset: + del self._dataset.FilterLowFrequency + else: + self._dataset.FilterLowFrequency = value + + @property + def FilterHighFrequency(self) -> Optional[Decimal]: + if "FilterHighFrequency" in self._dataset: + return self._dataset.FilterHighFrequency + return None + + @FilterHighFrequency.setter + def FilterHighFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterHighFrequency" in self._dataset: + del self._dataset.FilterHighFrequency + else: + self._dataset.FilterHighFrequency = value + + @property + def NotchFilterFrequency(self) -> Optional[Decimal]: + if "NotchFilterFrequency" in self._dataset: + return self._dataset.NotchFilterFrequency + return None + + @NotchFilterFrequency.setter + def NotchFilterFrequency(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterFrequency" in self._dataset: + del self._dataset.NotchFilterFrequency + else: + self._dataset.NotchFilterFrequency = value + + @property + def NotchFilterBandwidth(self) -> Optional[Decimal]: + if "NotchFilterBandwidth" in self._dataset: + return self._dataset.NotchFilterBandwidth + return None + + @NotchFilterBandwidth.setter + def NotchFilterBandwidth(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterBandwidth" in self._dataset: + del self._dataset.NotchFilterBandwidth + else: + self._dataset.NotchFilterBandwidth = value + + @property + def WaveformFilterType(self) -> Optional[str]: + if "WaveformFilterType" in self._dataset: + return self._dataset.WaveformFilterType + return None + + @WaveformFilterType.setter + def WaveformFilterType(self, value: Optional[str]): + if value is None: + if "WaveformFilterType" in self._dataset: + del self._dataset.WaveformFilterType + else: + self._dataset.WaveformFilterType = value + + @property + def AnalogFilterCharacteristicsSequence(self) -> Optional[List[AnalogFilterCharacteristicsSequenceItem]]: + if "AnalogFilterCharacteristicsSequence" in self._dataset: + if len(self._AnalogFilterCharacteristicsSequence) == len(self._dataset.AnalogFilterCharacteristicsSequence): + return self._AnalogFilterCharacteristicsSequence + else: + return [AnalogFilterCharacteristicsSequenceItem(x) for x in self._dataset.AnalogFilterCharacteristicsSequence] + return None + + @AnalogFilterCharacteristicsSequence.setter + def AnalogFilterCharacteristicsSequence(self, value: Optional[List[AnalogFilterCharacteristicsSequenceItem]]): + if value is None: + self._AnalogFilterCharacteristicsSequence = [] + if "AnalogFilterCharacteristicsSequence" in self._dataset: + del self._dataset.AnalogFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, AnalogFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "AnalogFilterCharacteristicsSequence must be a list of AnalogFilterCharacteristicsSequenceItem objects" + ) + else: + self._AnalogFilterCharacteristicsSequence = value + if "AnalogFilterCharacteristicsSequence" not in self._dataset: + self._dataset.AnalogFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.AnalogFilterCharacteristicsSequence.clear() + self._dataset.AnalogFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_AnalogFilterCharacteristics(self, item: AnalogFilterCharacteristicsSequenceItem): + if not isinstance(item, AnalogFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of AnalogFilterCharacteristicsSequenceItem") + self._AnalogFilterCharacteristicsSequence.append(item) + if "AnalogFilterCharacteristicsSequence" not in self._dataset: + self._dataset.AnalogFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.AnalogFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def DigitalFilterCharacteristicsSequence(self) -> Optional[List[DigitalFilterCharacteristicsSequenceItem]]: + if "DigitalFilterCharacteristicsSequence" in self._dataset: + if len(self._DigitalFilterCharacteristicsSequence) == len(self._dataset.DigitalFilterCharacteristicsSequence): + return self._DigitalFilterCharacteristicsSequence + else: + return [ + DigitalFilterCharacteristicsSequenceItem(x) for x in self._dataset.DigitalFilterCharacteristicsSequence + ] + return None + + @DigitalFilterCharacteristicsSequence.setter + def DigitalFilterCharacteristicsSequence(self, value: Optional[List[DigitalFilterCharacteristicsSequenceItem]]): + if value is None: + self._DigitalFilterCharacteristicsSequence = [] + if "DigitalFilterCharacteristicsSequence" in self._dataset: + del self._dataset.DigitalFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, DigitalFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "DigitalFilterCharacteristicsSequence must be a list of DigitalFilterCharacteristicsSequenceItem objects" + ) + else: + self._DigitalFilterCharacteristicsSequence = value + if "DigitalFilterCharacteristicsSequence" not in self._dataset: + self._dataset.DigitalFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.DigitalFilterCharacteristicsSequence.clear() + self._dataset.DigitalFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalFilterCharacteristics(self, item: DigitalFilterCharacteristicsSequenceItem): + if not isinstance(item, DigitalFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of DigitalFilterCharacteristicsSequenceItem") + self._DigitalFilterCharacteristicsSequence.append(item) + if "DigitalFilterCharacteristicsSequence" not in self._dataset: + self._dataset.DigitalFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.DigitalFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def WaveformFilterDescription(self) -> Optional[str]: + if "WaveformFilterDescription" in self._dataset: + return self._dataset.WaveformFilterDescription + return None + + @WaveformFilterDescription.setter + def WaveformFilterDescription(self, value: Optional[str]): + if value is None: + if "WaveformFilterDescription" in self._dataset: + del self._dataset.WaveformFilterDescription + else: + self._dataset.WaveformFilterDescription = value + + @property + def FilterLookupTableSequence(self) -> Optional[List[FilterLookupTableSequenceItem]]: + if "FilterLookupTableSequence" in self._dataset: + if len(self._FilterLookupTableSequence) == len(self._dataset.FilterLookupTableSequence): + return self._FilterLookupTableSequence + else: + return [FilterLookupTableSequenceItem(x) for x in self._dataset.FilterLookupTableSequence] + return None + + @FilterLookupTableSequence.setter + def FilterLookupTableSequence(self, value: Optional[List[FilterLookupTableSequenceItem]]): + if value is None: + self._FilterLookupTableSequence = [] + if "FilterLookupTableSequence" in self._dataset: + del self._dataset.FilterLookupTableSequence + elif not isinstance(value, list) or not all(isinstance(item, FilterLookupTableSequenceItem) for item in value): + raise ValueError("FilterLookupTableSequence must be a list of FilterLookupTableSequenceItem objects") + else: + self._FilterLookupTableSequence = value + if "FilterLookupTableSequence" not in self._dataset: + self._dataset.FilterLookupTableSequence = pydicom.Sequence() + self._dataset.FilterLookupTableSequence.clear() + self._dataset.FilterLookupTableSequence.extend([item.to_dataset() for item in value]) + + def add_FilterLookupTable(self, item: FilterLookupTableSequenceItem): + if not isinstance(item, FilterLookupTableSequenceItem): + raise ValueError("Item must be an instance of FilterLookupTableSequenceItem") + self._FilterLookupTableSequence.append(item) + if "FilterLookupTableSequence" not in self._dataset: + self._dataset.FilterLookupTableSequence = pydicom.Sequence() + self._dataset.FilterLookupTableSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/filter_lookup_table_sequence_item.py b/tdwii_plus_examples/domain_model/filter_lookup_table_sequence_item.py new file mode 100644 index 0000000..c6716ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/filter_lookup_table_sequence_item.py @@ -0,0 +1,107 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class FilterLookupTableSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._FrequencyEncodingCodeSequence: List[CodeSequenceItem] = [] + self._MagnitudeEncodingCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FilterLookupTableDescription(self) -> Optional[str]: + if "FilterLookupTableDescription" in self._dataset: + return self._dataset.FilterLookupTableDescription + return None + + @FilterLookupTableDescription.setter + def FilterLookupTableDescription(self, value: Optional[str]): + if value is None: + if "FilterLookupTableDescription" in self._dataset: + del self._dataset.FilterLookupTableDescription + else: + self._dataset.FilterLookupTableDescription = value + + @property + def FrequencyEncodingCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "FrequencyEncodingCodeSequence" in self._dataset: + if len(self._FrequencyEncodingCodeSequence) == len(self._dataset.FrequencyEncodingCodeSequence): + return self._FrequencyEncodingCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.FrequencyEncodingCodeSequence] + return None + + @FrequencyEncodingCodeSequence.setter + def FrequencyEncodingCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._FrequencyEncodingCodeSequence = [] + if "FrequencyEncodingCodeSequence" in self._dataset: + del self._dataset.FrequencyEncodingCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("FrequencyEncodingCodeSequence must be a list of CodeSequenceItem objects") + else: + self._FrequencyEncodingCodeSequence = value + if "FrequencyEncodingCodeSequence" not in self._dataset: + self._dataset.FrequencyEncodingCodeSequence = pydicom.Sequence() + self._dataset.FrequencyEncodingCodeSequence.clear() + self._dataset.FrequencyEncodingCodeSequence.extend([item.to_dataset() for item in value]) + + def add_FrequencyEncodingCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._FrequencyEncodingCodeSequence.append(item) + if "FrequencyEncodingCodeSequence" not in self._dataset: + self._dataset.FrequencyEncodingCodeSequence = pydicom.Sequence() + self._dataset.FrequencyEncodingCodeSequence.append(item.to_dataset()) + + @property + def MagnitudeEncodingCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MagnitudeEncodingCodeSequence" in self._dataset: + if len(self._MagnitudeEncodingCodeSequence) == len(self._dataset.MagnitudeEncodingCodeSequence): + return self._MagnitudeEncodingCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MagnitudeEncodingCodeSequence] + return None + + @MagnitudeEncodingCodeSequence.setter + def MagnitudeEncodingCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MagnitudeEncodingCodeSequence = [] + if "MagnitudeEncodingCodeSequence" in self._dataset: + del self._dataset.MagnitudeEncodingCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MagnitudeEncodingCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MagnitudeEncodingCodeSequence = value + if "MagnitudeEncodingCodeSequence" not in self._dataset: + self._dataset.MagnitudeEncodingCodeSequence = pydicom.Sequence() + self._dataset.MagnitudeEncodingCodeSequence.clear() + self._dataset.MagnitudeEncodingCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MagnitudeEncodingCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MagnitudeEncodingCodeSequence.append(item) + if "MagnitudeEncodingCodeSequence" not in self._dataset: + self._dataset.MagnitudeEncodingCodeSequence = pydicom.Sequence() + self._dataset.MagnitudeEncodingCodeSequence.append(item.to_dataset()) + + @property + def FilterLookupTableData(self) -> Optional[bytes]: + if "FilterLookupTableData" in self._dataset: + return self._dataset.FilterLookupTableData + return None + + @FilterLookupTableData.setter + def FilterLookupTableData(self, value: Optional[bytes]): + if value is None: + if "FilterLookupTableData" in self._dataset: + del self._dataset.FilterLookupTableData + else: + self._dataset.FilterLookupTableData = value diff --git a/tdwii_plus_examples/domain_model/filter_low_frequency_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/filter_low_frequency_characteristics_sequence_item.py new file mode 100644 index 0000000..6a9457d --- /dev/null +++ b/tdwii_plus_examples/domain_model/filter_low_frequency_characteristics_sequence_item.py @@ -0,0 +1,213 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .analog_filter_characteristics_sequence_item import ( + AnalogFilterCharacteristicsSequenceItem, +) +from .digital_filter_characteristics_sequence_item import ( + DigitalFilterCharacteristicsSequenceItem, +) +from .filter_lookup_table_sequence_item import FilterLookupTableSequenceItem + + +class FilterLowFrequencyCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnalogFilterCharacteristicsSequence: List[AnalogFilterCharacteristicsSequenceItem] = [] + self._DigitalFilterCharacteristicsSequence: List[DigitalFilterCharacteristicsSequenceItem] = [] + self._FilterLookupTableSequence: List[FilterLookupTableSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FilterLowFrequency(self) -> Optional[Decimal]: + if "FilterLowFrequency" in self._dataset: + return self._dataset.FilterLowFrequency + return None + + @FilterLowFrequency.setter + def FilterLowFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterLowFrequency" in self._dataset: + del self._dataset.FilterLowFrequency + else: + self._dataset.FilterLowFrequency = value + + @property + def FilterHighFrequency(self) -> Optional[Decimal]: + if "FilterHighFrequency" in self._dataset: + return self._dataset.FilterHighFrequency + return None + + @FilterHighFrequency.setter + def FilterHighFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterHighFrequency" in self._dataset: + del self._dataset.FilterHighFrequency + else: + self._dataset.FilterHighFrequency = value + + @property + def NotchFilterFrequency(self) -> Optional[Decimal]: + if "NotchFilterFrequency" in self._dataset: + return self._dataset.NotchFilterFrequency + return None + + @NotchFilterFrequency.setter + def NotchFilterFrequency(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterFrequency" in self._dataset: + del self._dataset.NotchFilterFrequency + else: + self._dataset.NotchFilterFrequency = value + + @property + def NotchFilterBandwidth(self) -> Optional[Decimal]: + if "NotchFilterBandwidth" in self._dataset: + return self._dataset.NotchFilterBandwidth + return None + + @NotchFilterBandwidth.setter + def NotchFilterBandwidth(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterBandwidth" in self._dataset: + del self._dataset.NotchFilterBandwidth + else: + self._dataset.NotchFilterBandwidth = value + + @property + def WaveformFilterType(self) -> Optional[str]: + if "WaveformFilterType" in self._dataset: + return self._dataset.WaveformFilterType + return None + + @WaveformFilterType.setter + def WaveformFilterType(self, value: Optional[str]): + if value is None: + if "WaveformFilterType" in self._dataset: + del self._dataset.WaveformFilterType + else: + self._dataset.WaveformFilterType = value + + @property + def AnalogFilterCharacteristicsSequence(self) -> Optional[List[AnalogFilterCharacteristicsSequenceItem]]: + if "AnalogFilterCharacteristicsSequence" in self._dataset: + if len(self._AnalogFilterCharacteristicsSequence) == len(self._dataset.AnalogFilterCharacteristicsSequence): + return self._AnalogFilterCharacteristicsSequence + else: + return [AnalogFilterCharacteristicsSequenceItem(x) for x in self._dataset.AnalogFilterCharacteristicsSequence] + return None + + @AnalogFilterCharacteristicsSequence.setter + def AnalogFilterCharacteristicsSequence(self, value: Optional[List[AnalogFilterCharacteristicsSequenceItem]]): + if value is None: + self._AnalogFilterCharacteristicsSequence = [] + if "AnalogFilterCharacteristicsSequence" in self._dataset: + del self._dataset.AnalogFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, AnalogFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "AnalogFilterCharacteristicsSequence must be a list of AnalogFilterCharacteristicsSequenceItem objects" + ) + else: + self._AnalogFilterCharacteristicsSequence = value + if "AnalogFilterCharacteristicsSequence" not in self._dataset: + self._dataset.AnalogFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.AnalogFilterCharacteristicsSequence.clear() + self._dataset.AnalogFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_AnalogFilterCharacteristics(self, item: AnalogFilterCharacteristicsSequenceItem): + if not isinstance(item, AnalogFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of AnalogFilterCharacteristicsSequenceItem") + self._AnalogFilterCharacteristicsSequence.append(item) + if "AnalogFilterCharacteristicsSequence" not in self._dataset: + self._dataset.AnalogFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.AnalogFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def DigitalFilterCharacteristicsSequence(self) -> Optional[List[DigitalFilterCharacteristicsSequenceItem]]: + if "DigitalFilterCharacteristicsSequence" in self._dataset: + if len(self._DigitalFilterCharacteristicsSequence) == len(self._dataset.DigitalFilterCharacteristicsSequence): + return self._DigitalFilterCharacteristicsSequence + else: + return [ + DigitalFilterCharacteristicsSequenceItem(x) for x in self._dataset.DigitalFilterCharacteristicsSequence + ] + return None + + @DigitalFilterCharacteristicsSequence.setter + def DigitalFilterCharacteristicsSequence(self, value: Optional[List[DigitalFilterCharacteristicsSequenceItem]]): + if value is None: + self._DigitalFilterCharacteristicsSequence = [] + if "DigitalFilterCharacteristicsSequence" in self._dataset: + del self._dataset.DigitalFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, DigitalFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "DigitalFilterCharacteristicsSequence must be a list of DigitalFilterCharacteristicsSequenceItem objects" + ) + else: + self._DigitalFilterCharacteristicsSequence = value + if "DigitalFilterCharacteristicsSequence" not in self._dataset: + self._dataset.DigitalFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.DigitalFilterCharacteristicsSequence.clear() + self._dataset.DigitalFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalFilterCharacteristics(self, item: DigitalFilterCharacteristicsSequenceItem): + if not isinstance(item, DigitalFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of DigitalFilterCharacteristicsSequenceItem") + self._DigitalFilterCharacteristicsSequence.append(item) + if "DigitalFilterCharacteristicsSequence" not in self._dataset: + self._dataset.DigitalFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.DigitalFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def WaveformFilterDescription(self) -> Optional[str]: + if "WaveformFilterDescription" in self._dataset: + return self._dataset.WaveformFilterDescription + return None + + @WaveformFilterDescription.setter + def WaveformFilterDescription(self, value: Optional[str]): + if value is None: + if "WaveformFilterDescription" in self._dataset: + del self._dataset.WaveformFilterDescription + else: + self._dataset.WaveformFilterDescription = value + + @property + def FilterLookupTableSequence(self) -> Optional[List[FilterLookupTableSequenceItem]]: + if "FilterLookupTableSequence" in self._dataset: + if len(self._FilterLookupTableSequence) == len(self._dataset.FilterLookupTableSequence): + return self._FilterLookupTableSequence + else: + return [FilterLookupTableSequenceItem(x) for x in self._dataset.FilterLookupTableSequence] + return None + + @FilterLookupTableSequence.setter + def FilterLookupTableSequence(self, value: Optional[List[FilterLookupTableSequenceItem]]): + if value is None: + self._FilterLookupTableSequence = [] + if "FilterLookupTableSequence" in self._dataset: + del self._dataset.FilterLookupTableSequence + elif not isinstance(value, list) or not all(isinstance(item, FilterLookupTableSequenceItem) for item in value): + raise ValueError("FilterLookupTableSequence must be a list of FilterLookupTableSequenceItem objects") + else: + self._FilterLookupTableSequence = value + if "FilterLookupTableSequence" not in self._dataset: + self._dataset.FilterLookupTableSequence = pydicom.Sequence() + self._dataset.FilterLookupTableSequence.clear() + self._dataset.FilterLookupTableSequence.extend([item.to_dataset() for item in value]) + + def add_FilterLookupTable(self, item: FilterLookupTableSequenceItem): + if not isinstance(item, FilterLookupTableSequenceItem): + raise ValueError("Item must be an instance of FilterLookupTableSequenceItem") + self._FilterLookupTableSequence.append(item) + if "FilterLookupTableSequence" not in self._dataset: + self._dataset.FilterLookupTableSequence = pydicom.Sequence() + self._dataset.FilterLookupTableSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/fixation_device_sequence_item.py b/tdwii_plus_examples/domain_model/fixation_device_sequence_item.py new file mode 100644 index 0000000..ffb96f7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fixation_device_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FixationDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def FixationDeviceType(self) -> Optional[str]: + if "FixationDeviceType" in self._dataset: + return self._dataset.FixationDeviceType + return None + + @FixationDeviceType.setter + def FixationDeviceType(self, value: Optional[str]): + if value is None: + if "FixationDeviceType" in self._dataset: + del self._dataset.FixationDeviceType + else: + self._dataset.FixationDeviceType = value + + @property + def FixationDeviceLabel(self) -> Optional[str]: + if "FixationDeviceLabel" in self._dataset: + return self._dataset.FixationDeviceLabel + return None + + @FixationDeviceLabel.setter + def FixationDeviceLabel(self, value: Optional[str]): + if value is None: + if "FixationDeviceLabel" in self._dataset: + del self._dataset.FixationDeviceLabel + else: + self._dataset.FixationDeviceLabel = value + + @property + def FixationDeviceDescription(self) -> Optional[str]: + if "FixationDeviceDescription" in self._dataset: + return self._dataset.FixationDeviceDescription + return None + + @FixationDeviceDescription.setter + def FixationDeviceDescription(self, value: Optional[str]): + if value is None: + if "FixationDeviceDescription" in self._dataset: + del self._dataset.FixationDeviceDescription + else: + self._dataset.FixationDeviceDescription = value + + @property + def FixationDevicePosition(self) -> Optional[str]: + if "FixationDevicePosition" in self._dataset: + return self._dataset.FixationDevicePosition + return None + + @FixationDevicePosition.setter + def FixationDevicePosition(self, value: Optional[str]): + if value is None: + if "FixationDevicePosition" in self._dataset: + del self._dataset.FixationDevicePosition + else: + self._dataset.FixationDevicePosition = value + + @property + def FixationDevicePitchAngle(self) -> Optional[float]: + if "FixationDevicePitchAngle" in self._dataset: + return self._dataset.FixationDevicePitchAngle + return None + + @FixationDevicePitchAngle.setter + def FixationDevicePitchAngle(self, value: Optional[float]): + if value is None: + if "FixationDevicePitchAngle" in self._dataset: + del self._dataset.FixationDevicePitchAngle + else: + self._dataset.FixationDevicePitchAngle = value + + @property + def FixationDeviceRollAngle(self) -> Optional[float]: + if "FixationDeviceRollAngle" in self._dataset: + return self._dataset.FixationDeviceRollAngle + return None + + @FixationDeviceRollAngle.setter + def FixationDeviceRollAngle(self, value: Optional[float]): + if value is None: + if "FixationDeviceRollAngle" in self._dataset: + del self._dataset.FixationDeviceRollAngle + else: + self._dataset.FixationDeviceRollAngle = value diff --git a/tdwii_plus_examples/domain_model/fixation_sequence_item.py b/tdwii_plus_examples/domain_model/fixation_sequence_item.py new file mode 100644 index 0000000..af010f1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fixation_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class FixationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._FixationMonitoringCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FixationMonitoringCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "FixationMonitoringCodeSequence" in self._dataset: + if len(self._FixationMonitoringCodeSequence) == len(self._dataset.FixationMonitoringCodeSequence): + return self._FixationMonitoringCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.FixationMonitoringCodeSequence] + return None + + @FixationMonitoringCodeSequence.setter + def FixationMonitoringCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._FixationMonitoringCodeSequence = [] + if "FixationMonitoringCodeSequence" in self._dataset: + del self._dataset.FixationMonitoringCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("FixationMonitoringCodeSequence must be a list of CodeSequenceItem objects") + else: + self._FixationMonitoringCodeSequence = value + if "FixationMonitoringCodeSequence" not in self._dataset: + self._dataset.FixationMonitoringCodeSequence = pydicom.Sequence() + self._dataset.FixationMonitoringCodeSequence.clear() + self._dataset.FixationMonitoringCodeSequence.extend([item.to_dataset() for item in value]) + + def add_FixationMonitoringCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._FixationMonitoringCodeSequence.append(item) + if "FixationMonitoringCodeSequence" not in self._dataset: + self._dataset.FixationMonitoringCodeSequence = pydicom.Sequence() + self._dataset.FixationMonitoringCodeSequence.append(item.to_dataset()) + + @property + def FixationCheckedQuantity(self) -> Optional[int]: + if "FixationCheckedQuantity" in self._dataset: + return self._dataset.FixationCheckedQuantity + return None + + @FixationCheckedQuantity.setter + def FixationCheckedQuantity(self, value: Optional[int]): + if value is None: + if "FixationCheckedQuantity" in self._dataset: + del self._dataset.FixationCheckedQuantity + else: + self._dataset.FixationCheckedQuantity = value + + @property + def PatientNotProperlyFixatedQuantity(self) -> Optional[int]: + if "PatientNotProperlyFixatedQuantity" in self._dataset: + return self._dataset.PatientNotProperlyFixatedQuantity + return None + + @PatientNotProperlyFixatedQuantity.setter + def PatientNotProperlyFixatedQuantity(self, value: Optional[int]): + if value is None: + if "PatientNotProperlyFixatedQuantity" in self._dataset: + del self._dataset.PatientNotProperlyFixatedQuantity + else: + self._dataset.PatientNotProperlyFixatedQuantity = value + + @property + def ExcessiveFixationLossesDataFlag(self) -> Optional[str]: + if "ExcessiveFixationLossesDataFlag" in self._dataset: + return self._dataset.ExcessiveFixationLossesDataFlag + return None + + @ExcessiveFixationLossesDataFlag.setter + def ExcessiveFixationLossesDataFlag(self, value: Optional[str]): + if value is None: + if "ExcessiveFixationLossesDataFlag" in self._dataset: + del self._dataset.ExcessiveFixationLossesDataFlag + else: + self._dataset.ExcessiveFixationLossesDataFlag = value + + @property + def ExcessiveFixationLosses(self) -> Optional[str]: + if "ExcessiveFixationLosses" in self._dataset: + return self._dataset.ExcessiveFixationLosses + return None + + @ExcessiveFixationLosses.setter + def ExcessiveFixationLosses(self, value: Optional[str]): + if value is None: + if "ExcessiveFixationLosses" in self._dataset: + del self._dataset.ExcessiveFixationLosses + else: + self._dataset.ExcessiveFixationLosses = value diff --git a/tdwii_plus_examples/domain_model/fixed_rt_beam_delimiter_device_sequence_item.py b/tdwii_plus_examples/domain_model/fixed_rt_beam_delimiter_device_sequence_item.py new file mode 100644 index 0000000..6e7907b --- /dev/null +++ b/tdwii_plus_examples/domain_model/fixed_rt_beam_delimiter_device_sequence_item.py @@ -0,0 +1,137 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FixedRTBeamDelimiterDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OutlineShapeType(self) -> Optional[str]: + if "OutlineShapeType" in self._dataset: + return self._dataset.OutlineShapeType + return None + + @OutlineShapeType.setter + def OutlineShapeType(self, value: Optional[str]): + if value is None: + if "OutlineShapeType" in self._dataset: + del self._dataset.OutlineShapeType + else: + self._dataset.OutlineShapeType = value + + @property + def OutlineLeftVerticalEdge(self) -> Optional[float]: + if "OutlineLeftVerticalEdge" in self._dataset: + return self._dataset.OutlineLeftVerticalEdge + return None + + @OutlineLeftVerticalEdge.setter + def OutlineLeftVerticalEdge(self, value: Optional[float]): + if value is None: + if "OutlineLeftVerticalEdge" in self._dataset: + del self._dataset.OutlineLeftVerticalEdge + else: + self._dataset.OutlineLeftVerticalEdge = value + + @property + def OutlineRightVerticalEdge(self) -> Optional[float]: + if "OutlineRightVerticalEdge" in self._dataset: + return self._dataset.OutlineRightVerticalEdge + return None + + @OutlineRightVerticalEdge.setter + def OutlineRightVerticalEdge(self, value: Optional[float]): + if value is None: + if "OutlineRightVerticalEdge" in self._dataset: + del self._dataset.OutlineRightVerticalEdge + else: + self._dataset.OutlineRightVerticalEdge = value + + @property + def OutlineUpperHorizontalEdge(self) -> Optional[float]: + if "OutlineUpperHorizontalEdge" in self._dataset: + return self._dataset.OutlineUpperHorizontalEdge + return None + + @OutlineUpperHorizontalEdge.setter + def OutlineUpperHorizontalEdge(self, value: Optional[float]): + if value is None: + if "OutlineUpperHorizontalEdge" in self._dataset: + del self._dataset.OutlineUpperHorizontalEdge + else: + self._dataset.OutlineUpperHorizontalEdge = value + + @property + def OutlineLowerHorizontalEdge(self) -> Optional[float]: + if "OutlineLowerHorizontalEdge" in self._dataset: + return self._dataset.OutlineLowerHorizontalEdge + return None + + @OutlineLowerHorizontalEdge.setter + def OutlineLowerHorizontalEdge(self, value: Optional[float]): + if value is None: + if "OutlineLowerHorizontalEdge" in self._dataset: + del self._dataset.OutlineLowerHorizontalEdge + else: + self._dataset.OutlineLowerHorizontalEdge = value + + @property + def CenterOfCircularOutline(self) -> Optional[List[float]]: + if "CenterOfCircularOutline" in self._dataset: + return self._dataset.CenterOfCircularOutline + return None + + @CenterOfCircularOutline.setter + def CenterOfCircularOutline(self, value: Optional[List[float]]): + if value is None: + if "CenterOfCircularOutline" in self._dataset: + del self._dataset.CenterOfCircularOutline + else: + self._dataset.CenterOfCircularOutline = value + + @property + def DiameterOfCircularOutline(self) -> Optional[float]: + if "DiameterOfCircularOutline" in self._dataset: + return self._dataset.DiameterOfCircularOutline + return None + + @DiameterOfCircularOutline.setter + def DiameterOfCircularOutline(self, value: Optional[float]): + if value is None: + if "DiameterOfCircularOutline" in self._dataset: + del self._dataset.DiameterOfCircularOutline + else: + self._dataset.DiameterOfCircularOutline = value + + @property + def NumberOfPolygonalVertices(self) -> Optional[int]: + if "NumberOfPolygonalVertices" in self._dataset: + return self._dataset.NumberOfPolygonalVertices + return None + + @NumberOfPolygonalVertices.setter + def NumberOfPolygonalVertices(self, value: Optional[int]): + if value is None: + if "NumberOfPolygonalVertices" in self._dataset: + del self._dataset.NumberOfPolygonalVertices + else: + self._dataset.NumberOfPolygonalVertices = value + + @property + def VerticesOfThePolygonalOutline(self) -> Optional[bytes]: + if "VerticesOfThePolygonalOutline" in self._dataset: + return self._dataset.VerticesOfThePolygonalOutline + return None + + @VerticesOfThePolygonalOutline.setter + def VerticesOfThePolygonalOutline(self, value: Optional[bytes]): + if value is None: + if "VerticesOfThePolygonalOutline" in self._dataset: + del self._dataset.VerticesOfThePolygonalOutline + else: + self._dataset.VerticesOfThePolygonalOutline = value diff --git a/tdwii_plus_examples/domain_model/flat_corneal_axis_sequence_item.py b/tdwii_plus_examples/domain_model/flat_corneal_axis_sequence_item.py new file mode 100644 index 0000000..4593d31 --- /dev/null +++ b/tdwii_plus_examples/domain_model/flat_corneal_axis_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FlatCornealAxisSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiusOfCurvature(self) -> Optional[float]: + if "RadiusOfCurvature" in self._dataset: + return self._dataset.RadiusOfCurvature + return None + + @RadiusOfCurvature.setter + def RadiusOfCurvature(self, value: Optional[float]): + if value is None: + if "RadiusOfCurvature" in self._dataset: + del self._dataset.RadiusOfCurvature + else: + self._dataset.RadiusOfCurvature = value + + @property + def CornealPower(self) -> Optional[float]: + if "CornealPower" in self._dataset: + return self._dataset.CornealPower + return None + + @CornealPower.setter + def CornealPower(self, value: Optional[float]): + if value is None: + if "CornealPower" in self._dataset: + del self._dataset.CornealPower + else: + self._dataset.CornealPower = value + + @property + def CornealAxis(self) -> Optional[float]: + if "CornealAxis" in self._dataset: + return self._dataset.CornealAxis + return None + + @CornealAxis.setter + def CornealAxis(self, value: Optional[float]): + if value is None: + if "CornealAxis" in self._dataset: + del self._dataset.CornealAxis + else: + self._dataset.CornealAxis = value diff --git a/tdwii_plus_examples/domain_model/flat_keratometric_axis_sequence_item.py b/tdwii_plus_examples/domain_model/flat_keratometric_axis_sequence_item.py new file mode 100644 index 0000000..b20eaeb --- /dev/null +++ b/tdwii_plus_examples/domain_model/flat_keratometric_axis_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FlatKeratometricAxisSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiusOfCurvature(self) -> Optional[float]: + if "RadiusOfCurvature" in self._dataset: + return self._dataset.RadiusOfCurvature + return None + + @RadiusOfCurvature.setter + def RadiusOfCurvature(self, value: Optional[float]): + if value is None: + if "RadiusOfCurvature" in self._dataset: + del self._dataset.RadiusOfCurvature + else: + self._dataset.RadiusOfCurvature = value + + @property + def KeratometricPower(self) -> Optional[float]: + if "KeratometricPower" in self._dataset: + return self._dataset.KeratometricPower + return None + + @KeratometricPower.setter + def KeratometricPower(self, value: Optional[float]): + if value is None: + if "KeratometricPower" in self._dataset: + del self._dataset.KeratometricPower + else: + self._dataset.KeratometricPower = value + + @property + def KeratometricAxis(self) -> Optional[float]: + if "KeratometricAxis" in self._dataset: + return self._dataset.KeratometricAxis + return None + + @KeratometricAxis.setter + def KeratometricAxis(self, value: Optional[float]): + if value is None: + if "KeratometricAxis" in self._dataset: + del self._dataset.KeratometricAxis + else: + self._dataset.KeratometricAxis = value diff --git a/tdwii_plus_examples/domain_model/flow_identifier_sequence_item.py b/tdwii_plus_examples/domain_model/flow_identifier_sequence_item.py new file mode 100644 index 0000000..6c327e3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/flow_identifier_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FlowIdentifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FlowIdentifier(self) -> Optional[bytes]: + if "FlowIdentifier" in self._dataset: + return self._dataset.FlowIdentifier + return None + + @FlowIdentifier.setter + def FlowIdentifier(self, value: Optional[bytes]): + if value is None: + if "FlowIdentifier" in self._dataset: + del self._dataset.FlowIdentifier + else: + self._dataset.FlowIdentifier = value + + @property + def FlowTransferSyntaxUID(self) -> Optional[str]: + if "FlowTransferSyntaxUID" in self._dataset: + return self._dataset.FlowTransferSyntaxUID + return None + + @FlowTransferSyntaxUID.setter + def FlowTransferSyntaxUID(self, value: Optional[str]): + if value is None: + if "FlowTransferSyntaxUID" in self._dataset: + del self._dataset.FlowTransferSyntaxUID + else: + self._dataset.FlowTransferSyntaxUID = value + + @property + def FlowRTPSamplingRate(self) -> Optional[int]: + if "FlowRTPSamplingRate" in self._dataset: + return self._dataset.FlowRTPSamplingRate + return None + + @FlowRTPSamplingRate.setter + def FlowRTPSamplingRate(self, value: Optional[int]): + if value is None: + if "FlowRTPSamplingRate" in self._dataset: + del self._dataset.FlowRTPSamplingRate + else: + self._dataset.FlowRTPSamplingRate = value diff --git a/tdwii_plus_examples/domain_model/fluence_map_sequence_item.py b/tdwii_plus_examples/domain_model/fluence_map_sequence_item.py new file mode 100644 index 0000000..17d3ec3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fluence_map_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class FluenceMapSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FluenceDataSource(self) -> Optional[str]: + if "FluenceDataSource" in self._dataset: + return self._dataset.FluenceDataSource + return None + + @FluenceDataSource.setter + def FluenceDataSource(self, value: Optional[str]): + if value is None: + if "FluenceDataSource" in self._dataset: + del self._dataset.FluenceDataSource + else: + self._dataset.FluenceDataSource = value + + @property + def FluenceDataScale(self) -> Optional[Decimal]: + if "FluenceDataScale" in self._dataset: + return self._dataset.FluenceDataScale + return None + + @FluenceDataScale.setter + def FluenceDataScale(self, value: Optional[Decimal]): + if value is None: + if "FluenceDataScale" in self._dataset: + del self._dataset.FluenceDataScale + else: + self._dataset.FluenceDataScale = value diff --git a/tdwii_plus_examples/domain_model/fraction_based_relationship_sequence_item.py b/tdwii_plus_examples/domain_model/fraction_based_relationship_sequence_item.py new file mode 100644 index 0000000..cd15b41 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fraction_based_relationship_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FractionBasedRelationshipSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRTPrescriptionIndex(self) -> Optional[int]: + if "ReferencedRTPrescriptionIndex" in self._dataset: + return self._dataset.ReferencedRTPrescriptionIndex + return None + + @ReferencedRTPrescriptionIndex.setter + def ReferencedRTPrescriptionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTPrescriptionIndex" in self._dataset: + del self._dataset.ReferencedRTPrescriptionIndex + else: + self._dataset.ReferencedRTPrescriptionIndex = value + + @property + def NumberOfIntervalFractions(self) -> Optional[int]: + if "NumberOfIntervalFractions" in self._dataset: + return self._dataset.NumberOfIntervalFractions + return None + + @NumberOfIntervalFractions.setter + def NumberOfIntervalFractions(self, value: Optional[int]): + if value is None: + if "NumberOfIntervalFractions" in self._dataset: + del self._dataset.NumberOfIntervalFractions + else: + self._dataset.NumberOfIntervalFractions = value + + @property + def FractionBasedRelationshipIntervalAnchor(self) -> Optional[str]: + if "FractionBasedRelationshipIntervalAnchor" in self._dataset: + return self._dataset.FractionBasedRelationshipIntervalAnchor + return None + + @FractionBasedRelationshipIntervalAnchor.setter + def FractionBasedRelationshipIntervalAnchor(self, value: Optional[str]): + if value is None: + if "FractionBasedRelationshipIntervalAnchor" in self._dataset: + del self._dataset.FractionBasedRelationshipIntervalAnchor + else: + self._dataset.FractionBasedRelationshipIntervalAnchor = value diff --git a/tdwii_plus_examples/domain_model/fraction_group_sequence_item.py b/tdwii_plus_examples/domain_model/fraction_group_sequence_item.py new file mode 100644 index 0000000..052d7f8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fraction_group_sequence_item.py @@ -0,0 +1,320 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .referenced_beam_sequence_item import ReferencedBeamSequenceItem +from .referenced_brachy_application_setup_sequence_item import ( + ReferencedBrachyApplicationSetupSequenceItem, +) +from .referenced_dose_reference_sequence_item import ReferencedDoseReferenceSequenceItem +from .referenced_dose_sequence_item import ReferencedDoseSequenceItem + + +class FractionGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._ReferencedBeamSequence: List[ReferencedBeamSequenceItem] = [] + self._ReferencedBrachyApplicationSetupSequence: List[ReferencedBrachyApplicationSetupSequenceItem] = [] + self._ReferencedDoseReferenceSequence: List[ReferencedDoseReferenceSequenceItem] = [] + self._ReferencedDoseSequence: List[ReferencedDoseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def FractionGroupNumber(self) -> Optional[int]: + if "FractionGroupNumber" in self._dataset: + return self._dataset.FractionGroupNumber + return None + + @FractionGroupNumber.setter + def FractionGroupNumber(self, value: Optional[int]): + if value is None: + if "FractionGroupNumber" in self._dataset: + del self._dataset.FractionGroupNumber + else: + self._dataset.FractionGroupNumber = value + + @property + def FractionGroupDescription(self) -> Optional[str]: + if "FractionGroupDescription" in self._dataset: + return self._dataset.FractionGroupDescription + return None + + @FractionGroupDescription.setter + def FractionGroupDescription(self, value: Optional[str]): + if value is None: + if "FractionGroupDescription" in self._dataset: + del self._dataset.FractionGroupDescription + else: + self._dataset.FractionGroupDescription = value + + @property + def NumberOfFractionsPlanned(self) -> Optional[int]: + if "NumberOfFractionsPlanned" in self._dataset: + return self._dataset.NumberOfFractionsPlanned + return None + + @NumberOfFractionsPlanned.setter + def NumberOfFractionsPlanned(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsPlanned" in self._dataset: + del self._dataset.NumberOfFractionsPlanned + else: + self._dataset.NumberOfFractionsPlanned = value + + @property + def NumberOfFractionPatternDigitsPerDay(self) -> Optional[int]: + if "NumberOfFractionPatternDigitsPerDay" in self._dataset: + return self._dataset.NumberOfFractionPatternDigitsPerDay + return None + + @NumberOfFractionPatternDigitsPerDay.setter + def NumberOfFractionPatternDigitsPerDay(self, value: Optional[int]): + if value is None: + if "NumberOfFractionPatternDigitsPerDay" in self._dataset: + del self._dataset.NumberOfFractionPatternDigitsPerDay + else: + self._dataset.NumberOfFractionPatternDigitsPerDay = value + + @property + def RepeatFractionCycleLength(self) -> Optional[int]: + if "RepeatFractionCycleLength" in self._dataset: + return self._dataset.RepeatFractionCycleLength + return None + + @RepeatFractionCycleLength.setter + def RepeatFractionCycleLength(self, value: Optional[int]): + if value is None: + if "RepeatFractionCycleLength" in self._dataset: + del self._dataset.RepeatFractionCycleLength + else: + self._dataset.RepeatFractionCycleLength = value + + @property + def FractionPattern(self) -> Optional[str]: + if "FractionPattern" in self._dataset: + return self._dataset.FractionPattern + return None + + @FractionPattern.setter + def FractionPattern(self, value: Optional[str]): + if value is None: + if "FractionPattern" in self._dataset: + del self._dataset.FractionPattern + else: + self._dataset.FractionPattern = value + + @property + def NumberOfBeams(self) -> Optional[int]: + if "NumberOfBeams" in self._dataset: + return self._dataset.NumberOfBeams + return None + + @NumberOfBeams.setter + def NumberOfBeams(self, value: Optional[int]): + if value is None: + if "NumberOfBeams" in self._dataset: + del self._dataset.NumberOfBeams + else: + self._dataset.NumberOfBeams = value + + @property + def BeamDoseMeaning(self) -> Optional[str]: + if "BeamDoseMeaning" in self._dataset: + return self._dataset.BeamDoseMeaning + return None + + @BeamDoseMeaning.setter + def BeamDoseMeaning(self, value: Optional[str]): + if value is None: + if "BeamDoseMeaning" in self._dataset: + del self._dataset.BeamDoseMeaning + else: + self._dataset.BeamDoseMeaning = value + + @property + def NumberOfBrachyApplicationSetups(self) -> Optional[int]: + if "NumberOfBrachyApplicationSetups" in self._dataset: + return self._dataset.NumberOfBrachyApplicationSetups + return None + + @NumberOfBrachyApplicationSetups.setter + def NumberOfBrachyApplicationSetups(self, value: Optional[int]): + if value is None: + if "NumberOfBrachyApplicationSetups" in self._dataset: + del self._dataset.NumberOfBrachyApplicationSetups + else: + self._dataset.NumberOfBrachyApplicationSetups = value + + @property + def ReferencedBeamSequence(self) -> Optional[List[ReferencedBeamSequenceItem]]: + if "ReferencedBeamSequence" in self._dataset: + if len(self._ReferencedBeamSequence) == len(self._dataset.ReferencedBeamSequence): + return self._ReferencedBeamSequence + else: + return [ReferencedBeamSequenceItem(x) for x in self._dataset.ReferencedBeamSequence] + return None + + @ReferencedBeamSequence.setter + def ReferencedBeamSequence(self, value: Optional[List[ReferencedBeamSequenceItem]]): + if value is None: + self._ReferencedBeamSequence = [] + if "ReferencedBeamSequence" in self._dataset: + del self._dataset.ReferencedBeamSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBeamSequenceItem) for item in value): + raise ValueError("ReferencedBeamSequence must be a list of ReferencedBeamSequenceItem objects") + else: + self._ReferencedBeamSequence = value + if "ReferencedBeamSequence" not in self._dataset: + self._dataset.ReferencedBeamSequence = pydicom.Sequence() + self._dataset.ReferencedBeamSequence.clear() + self._dataset.ReferencedBeamSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBeam(self, item: ReferencedBeamSequenceItem): + if not isinstance(item, ReferencedBeamSequenceItem): + raise ValueError("Item must be an instance of ReferencedBeamSequenceItem") + self._ReferencedBeamSequence.append(item) + if "ReferencedBeamSequence" not in self._dataset: + self._dataset.ReferencedBeamSequence = pydicom.Sequence() + self._dataset.ReferencedBeamSequence.append(item.to_dataset()) + + @property + def ReferencedBrachyApplicationSetupSequence(self) -> Optional[List[ReferencedBrachyApplicationSetupSequenceItem]]: + if "ReferencedBrachyApplicationSetupSequence" in self._dataset: + if len(self._ReferencedBrachyApplicationSetupSequence) == len( + self._dataset.ReferencedBrachyApplicationSetupSequence + ): + return self._ReferencedBrachyApplicationSetupSequence + else: + return [ + ReferencedBrachyApplicationSetupSequenceItem(x) + for x in self._dataset.ReferencedBrachyApplicationSetupSequence + ] + return None + + @ReferencedBrachyApplicationSetupSequence.setter + def ReferencedBrachyApplicationSetupSequence(self, value: Optional[List[ReferencedBrachyApplicationSetupSequenceItem]]): + if value is None: + self._ReferencedBrachyApplicationSetupSequence = [] + if "ReferencedBrachyApplicationSetupSequence" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedBrachyApplicationSetupSequenceItem) for item in value + ): + raise ValueError( + "ReferencedBrachyApplicationSetupSequence must be a list of ReferencedBrachyApplicationSetupSequenceItem" + " objects" + ) + else: + self._ReferencedBrachyApplicationSetupSequence = value + if "ReferencedBrachyApplicationSetupSequence" not in self._dataset: + self._dataset.ReferencedBrachyApplicationSetupSequence = pydicom.Sequence() + self._dataset.ReferencedBrachyApplicationSetupSequence.clear() + self._dataset.ReferencedBrachyApplicationSetupSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBrachyApplicationSetup(self, item: ReferencedBrachyApplicationSetupSequenceItem): + if not isinstance(item, ReferencedBrachyApplicationSetupSequenceItem): + raise ValueError("Item must be an instance of ReferencedBrachyApplicationSetupSequenceItem") + self._ReferencedBrachyApplicationSetupSequence.append(item) + if "ReferencedBrachyApplicationSetupSequence" not in self._dataset: + self._dataset.ReferencedBrachyApplicationSetupSequence = pydicom.Sequence() + self._dataset.ReferencedBrachyApplicationSetupSequence.append(item.to_dataset()) + + @property + def ReferencedDoseReferenceSequence(self) -> Optional[List[ReferencedDoseReferenceSequenceItem]]: + if "ReferencedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedDoseReferenceSequence) == len(self._dataset.ReferencedDoseReferenceSequence): + return self._ReferencedDoseReferenceSequence + else: + return [ReferencedDoseReferenceSequenceItem(x) for x in self._dataset.ReferencedDoseReferenceSequence] + return None + + @ReferencedDoseReferenceSequence.setter + def ReferencedDoseReferenceSequence(self, value: Optional[List[ReferencedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedDoseReferenceSequence = [] + if "ReferencedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseReferenceSequenceItem) for item in value): + raise ValueError("ReferencedDoseReferenceSequence must be a list of ReferencedDoseReferenceSequenceItem objects") + else: + self._ReferencedDoseReferenceSequence = value + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.clear() + self._dataset.ReferencedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDoseReference(self, item: ReferencedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseReferenceSequenceItem") + self._ReferencedDoseReferenceSequence.append(item) + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedDoseSequence(self) -> Optional[List[ReferencedDoseSequenceItem]]: + if "ReferencedDoseSequence" in self._dataset: + if len(self._ReferencedDoseSequence) == len(self._dataset.ReferencedDoseSequence): + return self._ReferencedDoseSequence + else: + return [ReferencedDoseSequenceItem(x) for x in self._dataset.ReferencedDoseSequence] + return None + + @ReferencedDoseSequence.setter + def ReferencedDoseSequence(self, value: Optional[List[ReferencedDoseSequenceItem]]): + if value is None: + self._ReferencedDoseSequence = [] + if "ReferencedDoseSequence" in self._dataset: + del self._dataset.ReferencedDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseSequenceItem) for item in value): + raise ValueError("ReferencedDoseSequence must be a list of ReferencedDoseSequenceItem objects") + else: + self._ReferencedDoseSequence = value + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.clear() + self._dataset.ReferencedDoseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDose(self, item: ReferencedDoseSequenceItem): + if not isinstance(item, ReferencedDoseSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseSequenceItem") + self._ReferencedDoseSequence.append(item) + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/fraction_group_summary_sequence_item.py b/tdwii_plus_examples/domain_model/fraction_group_summary_sequence_item.py new file mode 100644 index 0000000..dc4978a --- /dev/null +++ b/tdwii_plus_examples/domain_model/fraction_group_summary_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .fraction_status_summary_sequence_item import FractionStatusSummarySequenceItem + + +class FractionGroupSummarySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._FractionStatusSummarySequence: List[FractionStatusSummarySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfFractionsDelivered(self) -> Optional[int]: + if "NumberOfFractionsDelivered" in self._dataset: + return self._dataset.NumberOfFractionsDelivered + return None + + @NumberOfFractionsDelivered.setter + def NumberOfFractionsDelivered(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsDelivered" in self._dataset: + del self._dataset.NumberOfFractionsDelivered + else: + self._dataset.NumberOfFractionsDelivered = value + + @property + def FractionGroupType(self) -> Optional[str]: + if "FractionGroupType" in self._dataset: + return self._dataset.FractionGroupType + return None + + @FractionGroupType.setter + def FractionGroupType(self, value: Optional[str]): + if value is None: + if "FractionGroupType" in self._dataset: + del self._dataset.FractionGroupType + else: + self._dataset.FractionGroupType = value + + @property + def FractionStatusSummarySequence(self) -> Optional[List[FractionStatusSummarySequenceItem]]: + if "FractionStatusSummarySequence" in self._dataset: + if len(self._FractionStatusSummarySequence) == len(self._dataset.FractionStatusSummarySequence): + return self._FractionStatusSummarySequence + else: + return [FractionStatusSummarySequenceItem(x) for x in self._dataset.FractionStatusSummarySequence] + return None + + @FractionStatusSummarySequence.setter + def FractionStatusSummarySequence(self, value: Optional[List[FractionStatusSummarySequenceItem]]): + if value is None: + self._FractionStatusSummarySequence = [] + if "FractionStatusSummarySequence" in self._dataset: + del self._dataset.FractionStatusSummarySequence + elif not isinstance(value, list) or not all(isinstance(item, FractionStatusSummarySequenceItem) for item in value): + raise ValueError("FractionStatusSummarySequence must be a list of FractionStatusSummarySequenceItem objects") + else: + self._FractionStatusSummarySequence = value + if "FractionStatusSummarySequence" not in self._dataset: + self._dataset.FractionStatusSummarySequence = pydicom.Sequence() + self._dataset.FractionStatusSummarySequence.clear() + self._dataset.FractionStatusSummarySequence.extend([item.to_dataset() for item in value]) + + def add_FractionStatusSummary(self, item: FractionStatusSummarySequenceItem): + if not isinstance(item, FractionStatusSummarySequenceItem): + raise ValueError("Item must be an instance of FractionStatusSummarySequenceItem") + self._FractionStatusSummarySequence.append(item) + if "FractionStatusSummarySequence" not in self._dataset: + self._dataset.FractionStatusSummarySequence = pydicom.Sequence() + self._dataset.FractionStatusSummarySequence.append(item.to_dataset()) + + @property + def NumberOfFractionsPlanned(self) -> Optional[int]: + if "NumberOfFractionsPlanned" in self._dataset: + return self._dataset.NumberOfFractionsPlanned + return None + + @NumberOfFractionsPlanned.setter + def NumberOfFractionsPlanned(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsPlanned" in self._dataset: + del self._dataset.NumberOfFractionsPlanned + else: + self._dataset.NumberOfFractionsPlanned = value + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value diff --git a/tdwii_plus_examples/domain_model/fraction_pattern_sequence_item.py b/tdwii_plus_examples/domain_model/fraction_pattern_sequence_item.py new file mode 100644 index 0000000..ce3344f --- /dev/null +++ b/tdwii_plus_examples/domain_model/fraction_pattern_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .weekday_fraction_pattern_sequence_item import WeekdayFractionPatternSequenceItem + + +class FractionPatternSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._WeekdayFractionPatternSequence: List[WeekdayFractionPatternSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfFractionPatternDigitsPerDay(self) -> Optional[int]: + if "NumberOfFractionPatternDigitsPerDay" in self._dataset: + return self._dataset.NumberOfFractionPatternDigitsPerDay + return None + + @NumberOfFractionPatternDigitsPerDay.setter + def NumberOfFractionPatternDigitsPerDay(self, value: Optional[int]): + if value is None: + if "NumberOfFractionPatternDigitsPerDay" in self._dataset: + del self._dataset.NumberOfFractionPatternDigitsPerDay + else: + self._dataset.NumberOfFractionPatternDigitsPerDay = value + + @property + def RepeatFractionCycleLength(self) -> Optional[int]: + if "RepeatFractionCycleLength" in self._dataset: + return self._dataset.RepeatFractionCycleLength + return None + + @RepeatFractionCycleLength.setter + def RepeatFractionCycleLength(self, value: Optional[int]): + if value is None: + if "RepeatFractionCycleLength" in self._dataset: + del self._dataset.RepeatFractionCycleLength + else: + self._dataset.RepeatFractionCycleLength = value + + @property + def MinimumHoursBetweenFractions(self) -> Optional[float]: + if "MinimumHoursBetweenFractions" in self._dataset: + return self._dataset.MinimumHoursBetweenFractions + return None + + @MinimumHoursBetweenFractions.setter + def MinimumHoursBetweenFractions(self, value: Optional[float]): + if value is None: + if "MinimumHoursBetweenFractions" in self._dataset: + del self._dataset.MinimumHoursBetweenFractions + else: + self._dataset.MinimumHoursBetweenFractions = value + + @property + def IntendedFractionStartTime(self) -> Optional[List[str]]: + if "IntendedFractionStartTime" in self._dataset: + return self._dataset.IntendedFractionStartTime + return None + + @IntendedFractionStartTime.setter + def IntendedFractionStartTime(self, value: Optional[List[str]]): + if value is None: + if "IntendedFractionStartTime" in self._dataset: + del self._dataset.IntendedFractionStartTime + else: + self._dataset.IntendedFractionStartTime = value + + @property + def WeekdayFractionPatternSequence(self) -> Optional[List[WeekdayFractionPatternSequenceItem]]: + if "WeekdayFractionPatternSequence" in self._dataset: + if len(self._WeekdayFractionPatternSequence) == len(self._dataset.WeekdayFractionPatternSequence): + return self._WeekdayFractionPatternSequence + else: + return [WeekdayFractionPatternSequenceItem(x) for x in self._dataset.WeekdayFractionPatternSequence] + return None + + @WeekdayFractionPatternSequence.setter + def WeekdayFractionPatternSequence(self, value: Optional[List[WeekdayFractionPatternSequenceItem]]): + if value is None: + self._WeekdayFractionPatternSequence = [] + if "WeekdayFractionPatternSequence" in self._dataset: + del self._dataset.WeekdayFractionPatternSequence + elif not isinstance(value, list) or not all(isinstance(item, WeekdayFractionPatternSequenceItem) for item in value): + raise ValueError("WeekdayFractionPatternSequence must be a list of WeekdayFractionPatternSequenceItem objects") + else: + self._WeekdayFractionPatternSequence = value + if "WeekdayFractionPatternSequence" not in self._dataset: + self._dataset.WeekdayFractionPatternSequence = pydicom.Sequence() + self._dataset.WeekdayFractionPatternSequence.clear() + self._dataset.WeekdayFractionPatternSequence.extend([item.to_dataset() for item in value]) + + def add_WeekdayFractionPattern(self, item: WeekdayFractionPatternSequenceItem): + if not isinstance(item, WeekdayFractionPatternSequenceItem): + raise ValueError("Item must be an instance of WeekdayFractionPatternSequenceItem") + self._WeekdayFractionPatternSequence.append(item) + if "WeekdayFractionPatternSequence" not in self._dataset: + self._dataset.WeekdayFractionPatternSequence = pydicom.Sequence() + self._dataset.WeekdayFractionPatternSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/fraction_status_summary_sequence_item.py b/tdwii_plus_examples/domain_model/fraction_status_summary_sequence_item.py new file mode 100644 index 0000000..4f83fb4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/fraction_status_summary_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FractionStatusSummarySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TreatmentTerminationStatus(self) -> Optional[str]: + if "TreatmentTerminationStatus" in self._dataset: + return self._dataset.TreatmentTerminationStatus + return None + + @TreatmentTerminationStatus.setter + def TreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationStatus" in self._dataset: + del self._dataset.TreatmentTerminationStatus + else: + self._dataset.TreatmentTerminationStatus = value + + @property + def ReferencedFractionNumber(self) -> Optional[int]: + if "ReferencedFractionNumber" in self._dataset: + return self._dataset.ReferencedFractionNumber + return None + + @ReferencedFractionNumber.setter + def ReferencedFractionNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionNumber" in self._dataset: + del self._dataset.ReferencedFractionNumber + else: + self._dataset.ReferencedFractionNumber = value + + @property + def TreatmentDate(self) -> Optional[str]: + if "TreatmentDate" in self._dataset: + return self._dataset.TreatmentDate + return None + + @TreatmentDate.setter + def TreatmentDate(self, value: Optional[str]): + if value is None: + if "TreatmentDate" in self._dataset: + del self._dataset.TreatmentDate + else: + self._dataset.TreatmentDate = value + + @property + def TreatmentTime(self) -> Optional[str]: + if "TreatmentTime" in self._dataset: + return self._dataset.TreatmentTime + return None + + @TreatmentTime.setter + def TreatmentTime(self, value: Optional[str]): + if value is None: + if "TreatmentTime" in self._dataset: + del self._dataset.TreatmentTime + else: + self._dataset.TreatmentTime = value diff --git a/tdwii_plus_examples/domain_model/frame_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/frame_acquisition_sequence_item.py new file mode 100644 index 0000000..9f85fa7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_acquisition_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value diff --git a/tdwii_plus_examples/domain_model/frame_anatomy_sequence_item.py b/tdwii_plus_examples/domain_model/frame_anatomy_sequence_item.py new file mode 100644 index 0000000..ce96396 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_anatomy_sequence_item.py @@ -0,0 +1,96 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) + + +class FrameAnatomySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def FrameLaterality(self) -> Optional[str]: + if "FrameLaterality" in self._dataset: + return self._dataset.FrameLaterality + return None + + @FrameLaterality.setter + def FrameLaterality(self, value: Optional[str]): + if value is None: + if "FrameLaterality" in self._dataset: + del self._dataset.FrameLaterality + else: + self._dataset.FrameLaterality = value diff --git a/tdwii_plus_examples/domain_model/frame_content_sequence_item.py b/tdwii_plus_examples/domain_model/frame_content_sequence_item.py new file mode 100644 index 0000000..51c6865 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_content_sequence_item.py @@ -0,0 +1,179 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameContentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameAcquisitionDateTime(self) -> Optional[str]: + if "FrameAcquisitionDateTime" in self._dataset: + return self._dataset.FrameAcquisitionDateTime + return None + + @FrameAcquisitionDateTime.setter + def FrameAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "FrameAcquisitionDateTime" in self._dataset: + del self._dataset.FrameAcquisitionDateTime + else: + self._dataset.FrameAcquisitionDateTime = value + + @property + def FrameReferenceDateTime(self) -> Optional[str]: + if "FrameReferenceDateTime" in self._dataset: + return self._dataset.FrameReferenceDateTime + return None + + @FrameReferenceDateTime.setter + def FrameReferenceDateTime(self, value: Optional[str]): + if value is None: + if "FrameReferenceDateTime" in self._dataset: + del self._dataset.FrameReferenceDateTime + else: + self._dataset.FrameReferenceDateTime = value + + @property + def RespiratoryCyclePosition(self) -> Optional[str]: + if "RespiratoryCyclePosition" in self._dataset: + return self._dataset.RespiratoryCyclePosition + return None + + @RespiratoryCyclePosition.setter + def RespiratoryCyclePosition(self, value: Optional[str]): + if value is None: + if "RespiratoryCyclePosition" in self._dataset: + del self._dataset.RespiratoryCyclePosition + else: + self._dataset.RespiratoryCyclePosition = value + + @property + def FrameAcquisitionDuration(self) -> Optional[float]: + if "FrameAcquisitionDuration" in self._dataset: + return self._dataset.FrameAcquisitionDuration + return None + + @FrameAcquisitionDuration.setter + def FrameAcquisitionDuration(self, value: Optional[float]): + if value is None: + if "FrameAcquisitionDuration" in self._dataset: + del self._dataset.FrameAcquisitionDuration + else: + self._dataset.FrameAcquisitionDuration = value + + @property + def CardiacCyclePosition(self) -> Optional[str]: + if "CardiacCyclePosition" in self._dataset: + return self._dataset.CardiacCyclePosition + return None + + @CardiacCyclePosition.setter + def CardiacCyclePosition(self, value: Optional[str]): + if value is None: + if "CardiacCyclePosition" in self._dataset: + del self._dataset.CardiacCyclePosition + else: + self._dataset.CardiacCyclePosition = value + + @property + def StackID(self) -> Optional[str]: + if "StackID" in self._dataset: + return self._dataset.StackID + return None + + @StackID.setter + def StackID(self, value: Optional[str]): + if value is None: + if "StackID" in self._dataset: + del self._dataset.StackID + else: + self._dataset.StackID = value + + @property + def InStackPositionNumber(self) -> Optional[int]: + if "InStackPositionNumber" in self._dataset: + return self._dataset.InStackPositionNumber + return None + + @InStackPositionNumber.setter + def InStackPositionNumber(self, value: Optional[int]): + if value is None: + if "InStackPositionNumber" in self._dataset: + del self._dataset.InStackPositionNumber + else: + self._dataset.InStackPositionNumber = value + + @property + def TemporalPositionIndex(self) -> Optional[int]: + if "TemporalPositionIndex" in self._dataset: + return self._dataset.TemporalPositionIndex + return None + + @TemporalPositionIndex.setter + def TemporalPositionIndex(self, value: Optional[int]): + if value is None: + if "TemporalPositionIndex" in self._dataset: + del self._dataset.TemporalPositionIndex + else: + self._dataset.TemporalPositionIndex = value + + @property + def FrameAcquisitionNumber(self) -> Optional[int]: + if "FrameAcquisitionNumber" in self._dataset: + return self._dataset.FrameAcquisitionNumber + return None + + @FrameAcquisitionNumber.setter + def FrameAcquisitionNumber(self, value: Optional[int]): + if value is None: + if "FrameAcquisitionNumber" in self._dataset: + del self._dataset.FrameAcquisitionNumber + else: + self._dataset.FrameAcquisitionNumber = value + + @property + def DimensionIndexValues(self) -> Optional[List[int]]: + if "DimensionIndexValues" in self._dataset: + return self._dataset.DimensionIndexValues + return None + + @DimensionIndexValues.setter + def DimensionIndexValues(self, value: Optional[List[int]]): + if value is None: + if "DimensionIndexValues" in self._dataset: + del self._dataset.DimensionIndexValues + else: + self._dataset.DimensionIndexValues = value + + @property + def FrameComments(self) -> Optional[str]: + if "FrameComments" in self._dataset: + return self._dataset.FrameComments + return None + + @FrameComments.setter + def FrameComments(self, value: Optional[str]): + if value is None: + if "FrameComments" in self._dataset: + del self._dataset.FrameComments + else: + self._dataset.FrameComments = value + + @property + def FrameLabel(self) -> Optional[str]: + if "FrameLabel" in self._dataset: + return self._dataset.FrameLabel + return None + + @FrameLabel.setter + def FrameLabel(self, value: Optional[str]): + if value is None: + if "FrameLabel" in self._dataset: + del self._dataset.FrameLabel + else: + self._dataset.FrameLabel = value diff --git a/tdwii_plus_examples/domain_model/frame_detector_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/frame_detector_parameters_sequence_item.py new file mode 100644 index 0000000..56dc7c3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_detector_parameters_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameDetectorParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DetectorActiveTime(self) -> Optional[Decimal]: + if "DetectorActiveTime" in self._dataset: + return self._dataset.DetectorActiveTime + return None + + @DetectorActiveTime.setter + def DetectorActiveTime(self, value: Optional[Decimal]): + if value is None: + if "DetectorActiveTime" in self._dataset: + del self._dataset.DetectorActiveTime + else: + self._dataset.DetectorActiveTime = value + + @property + def DetectorActivationOffsetFromExposure(self) -> Optional[Decimal]: + if "DetectorActivationOffsetFromExposure" in self._dataset: + return self._dataset.DetectorActivationOffsetFromExposure + return None + + @DetectorActivationOffsetFromExposure.setter + def DetectorActivationOffsetFromExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorActivationOffsetFromExposure" in self._dataset: + del self._dataset.DetectorActivationOffsetFromExposure + else: + self._dataset.DetectorActivationOffsetFromExposure = value diff --git a/tdwii_plus_examples/domain_model/frame_display_sequence_item.py b/tdwii_plus_examples/domain_model/frame_display_sequence_item.py new file mode 100644 index 0000000..c0c604d --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_display_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameDisplaySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRateInFloat(self) -> Optional[float]: + if "RecommendedDisplayFrameRateInFloat" in self._dataset: + return self._dataset.RecommendedDisplayFrameRateInFloat + return None + + @RecommendedDisplayFrameRateInFloat.setter + def RecommendedDisplayFrameRateInFloat(self, value: Optional[float]): + if value is None: + if "RecommendedDisplayFrameRateInFloat" in self._dataset: + del self._dataset.RecommendedDisplayFrameRateInFloat + else: + self._dataset.RecommendedDisplayFrameRateInFloat = value + + @property + def SkipFrameRangeFlag(self) -> Optional[str]: + if "SkipFrameRangeFlag" in self._dataset: + return self._dataset.SkipFrameRangeFlag + return None + + @SkipFrameRangeFlag.setter + def SkipFrameRangeFlag(self, value: Optional[str]): + if value is None: + if "SkipFrameRangeFlag" in self._dataset: + del self._dataset.SkipFrameRangeFlag + else: + self._dataset.SkipFrameRangeFlag = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def DisplayFilterPercentage(self) -> Optional[float]: + if "DisplayFilterPercentage" in self._dataset: + return self._dataset.DisplayFilterPercentage + return None + + @DisplayFilterPercentage.setter + def DisplayFilterPercentage(self, value: Optional[float]): + if value is None: + if "DisplayFilterPercentage" in self._dataset: + del self._dataset.DisplayFilterPercentage + else: + self._dataset.DisplayFilterPercentage = value + + @property + def MaskVisibilityPercentage(self) -> Optional[float]: + if "MaskVisibilityPercentage" in self._dataset: + return self._dataset.MaskVisibilityPercentage + return None + + @MaskVisibilityPercentage.setter + def MaskVisibilityPercentage(self, value: Optional[float]): + if value is None: + if "MaskVisibilityPercentage" in self._dataset: + del self._dataset.MaskVisibilityPercentage + else: + self._dataset.MaskVisibilityPercentage = value diff --git a/tdwii_plus_examples/domain_model/frame_display_shutter_sequence_item.py b/tdwii_plus_examples/domain_model/frame_display_shutter_sequence_item.py new file mode 100644 index 0000000..f5563cf --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_display_shutter_sequence_item.py @@ -0,0 +1,186 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class FrameDisplayShutterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value diff --git a/tdwii_plus_examples/domain_model/frame_extraction_sequence_item.py b/tdwii_plus_examples/domain_model/frame_extraction_sequence_item.py new file mode 100644 index 0000000..860b0f8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_extraction_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameExtractionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SimpleFrameList(self) -> Optional[List[int]]: + if "SimpleFrameList" in self._dataset: + return self._dataset.SimpleFrameList + return None + + @SimpleFrameList.setter + def SimpleFrameList(self, value: Optional[List[int]]): + if value is None: + if "SimpleFrameList" in self._dataset: + del self._dataset.SimpleFrameList + else: + self._dataset.SimpleFrameList = value + + @property + def CalculatedFrameList(self) -> Optional[List[int]]: + if "CalculatedFrameList" in self._dataset: + return self._dataset.CalculatedFrameList + return None + + @CalculatedFrameList.setter + def CalculatedFrameList(self, value: Optional[List[int]]): + if value is None: + if "CalculatedFrameList" in self._dataset: + del self._dataset.CalculatedFrameList + else: + self._dataset.CalculatedFrameList = value + + @property + def TimeRange(self) -> Optional[List[float]]: + if "TimeRange" in self._dataset: + return self._dataset.TimeRange + return None + + @TimeRange.setter + def TimeRange(self, value: Optional[List[float]]): + if value is None: + if "TimeRange" in self._dataset: + del self._dataset.TimeRange + else: + self._dataset.TimeRange = value + + @property + def MultiFrameSourceSOPInstanceUID(self) -> Optional[str]: + if "MultiFrameSourceSOPInstanceUID" in self._dataset: + return self._dataset.MultiFrameSourceSOPInstanceUID + return None + + @MultiFrameSourceSOPInstanceUID.setter + def MultiFrameSourceSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "MultiFrameSourceSOPInstanceUID" in self._dataset: + del self._dataset.MultiFrameSourceSOPInstanceUID + else: + self._dataset.MultiFrameSourceSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/frame_pixel_data_properties_sequence_item.py b/tdwii_plus_examples/domain_model/frame_pixel_data_properties_sequence_item.py new file mode 100644 index 0000000..15f7a50 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_pixel_data_properties_sequence_item.py @@ -0,0 +1,138 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class FramePixelDataPropertiesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def PixelDataAreaOriginRelativeToFOV(self) -> Optional[List[float]]: + if "PixelDataAreaOriginRelativeToFOV" in self._dataset: + return self._dataset.PixelDataAreaOriginRelativeToFOV + return None + + @PixelDataAreaOriginRelativeToFOV.setter + def PixelDataAreaOriginRelativeToFOV(self, value: Optional[List[float]]): + if value is None: + if "PixelDataAreaOriginRelativeToFOV" in self._dataset: + del self._dataset.PixelDataAreaOriginRelativeToFOV + else: + self._dataset.PixelDataAreaOriginRelativeToFOV = value + + @property + def PixelDataAreaRotationAngleRelativeToFOV(self) -> Optional[float]: + if "PixelDataAreaRotationAngleRelativeToFOV" in self._dataset: + return self._dataset.PixelDataAreaRotationAngleRelativeToFOV + return None + + @PixelDataAreaRotationAngleRelativeToFOV.setter + def PixelDataAreaRotationAngleRelativeToFOV(self, value: Optional[float]): + if value is None: + if "PixelDataAreaRotationAngleRelativeToFOV" in self._dataset: + del self._dataset.PixelDataAreaRotationAngleRelativeToFOV + else: + self._dataset.PixelDataAreaRotationAngleRelativeToFOV = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def PixelIntensityRelationshipSign(self) -> Optional[int]: + if "PixelIntensityRelationshipSign" in self._dataset: + return self._dataset.PixelIntensityRelationshipSign + return None + + @PixelIntensityRelationshipSign.setter + def PixelIntensityRelationshipSign(self, value: Optional[int]): + if value is None: + if "PixelIntensityRelationshipSign" in self._dataset: + del self._dataset.PixelIntensityRelationshipSign + else: + self._dataset.PixelIntensityRelationshipSign = value + + @property + def GeometricalProperties(self) -> Optional[str]: + if "GeometricalProperties" in self._dataset: + return self._dataset.GeometricalProperties + return None + + @GeometricalProperties.setter + def GeometricalProperties(self, value: Optional[str]): + if value is None: + if "GeometricalProperties" in self._dataset: + del self._dataset.GeometricalProperties + else: + self._dataset.GeometricalProperties = value + + @property + def GeometricMaximumDistortion(self) -> Optional[float]: + if "GeometricMaximumDistortion" in self._dataset: + return self._dataset.GeometricMaximumDistortion + return None + + @GeometricMaximumDistortion.setter + def GeometricMaximumDistortion(self, value: Optional[float]): + if value is None: + if "GeometricMaximumDistortion" in self._dataset: + del self._dataset.GeometricMaximumDistortion + else: + self._dataset.GeometricMaximumDistortion = value + + @property + def ImageProcessingApplied(self) -> Optional[List[str]]: + if "ImageProcessingApplied" in self._dataset: + return self._dataset.ImageProcessingApplied + return None + + @ImageProcessingApplied.setter + def ImageProcessingApplied(self, value: Optional[List[str]]): + if value is None: + if "ImageProcessingApplied" in self._dataset: + del self._dataset.ImageProcessingApplied + else: + self._dataset.ImageProcessingApplied = value diff --git a/tdwii_plus_examples/domain_model/frame_pixel_shift_sequence_item.py b/tdwii_plus_examples/domain_model/frame_pixel_shift_sequence_item.py new file mode 100644 index 0000000..422cd0d --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_pixel_shift_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FramePixelShiftSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaskSubPixelShift(self) -> Optional[List[float]]: + if "MaskSubPixelShift" in self._dataset: + return self._dataset.MaskSubPixelShift + return None + + @MaskSubPixelShift.setter + def MaskSubPixelShift(self, value: Optional[List[float]]): + if value is None: + if "MaskSubPixelShift" in self._dataset: + del self._dataset.MaskSubPixelShift + else: + self._dataset.MaskSubPixelShift = value + + @property + def SubtractionItemID(self) -> Optional[int]: + if "SubtractionItemID" in self._dataset: + return self._dataset.SubtractionItemID + return None + + @SubtractionItemID.setter + def SubtractionItemID(self, value: Optional[int]): + if value is None: + if "SubtractionItemID" in self._dataset: + del self._dataset.SubtractionItemID + else: + self._dataset.SubtractionItemID = value diff --git a/tdwii_plus_examples/domain_model/frame_usefulness_group_sequence_item.py b/tdwii_plus_examples/domain_model/frame_usefulness_group_sequence_item.py new file mode 100644 index 0000000..8718146 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_usefulness_group_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameUsefulnessGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IncludesImagingSubject(self) -> Optional[str]: + if "IncludesImagingSubject" in self._dataset: + return self._dataset.IncludesImagingSubject + return None + + @IncludesImagingSubject.setter + def IncludesImagingSubject(self, value: Optional[str]): + if value is None: + if "IncludesImagingSubject" in self._dataset: + del self._dataset.IncludesImagingSubject + else: + self._dataset.IncludesImagingSubject = value + + @property + def IncludesInformation(self) -> Optional[str]: + if "IncludesInformation" in self._dataset: + return self._dataset.IncludesInformation + return None + + @IncludesInformation.setter + def IncludesInformation(self, value: Optional[str]): + if value is None: + if "IncludesInformation" in self._dataset: + del self._dataset.IncludesInformation + else: + self._dataset.IncludesInformation = value diff --git a/tdwii_plus_examples/domain_model/frame_voilut_sequence_item.py b/tdwii_plus_examples/domain_model/frame_voilut_sequence_item.py new file mode 100644 index 0000000..39170b0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/frame_voilut_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class FrameVOILUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value diff --git a/tdwii_plus_examples/domain_model/functional_mr_sequence_item.py b/tdwii_plus_examples/domain_model/functional_mr_sequence_item.py new file mode 100644 index 0000000..6484099 --- /dev/null +++ b/tdwii_plus_examples/domain_model/functional_mr_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class FunctionalMRSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FunctionalSyncPulse(self) -> Optional[str]: + if "FunctionalSyncPulse" in self._dataset: + return self._dataset.FunctionalSyncPulse + return None + + @FunctionalSyncPulse.setter + def FunctionalSyncPulse(self, value: Optional[str]): + if value is None: + if "FunctionalSyncPulse" in self._dataset: + del self._dataset.FunctionalSyncPulse + else: + self._dataset.FunctionalSyncPulse = value + + @property + def SettlingPhaseFrame(self) -> Optional[str]: + if "SettlingPhaseFrame" in self._dataset: + return self._dataset.SettlingPhaseFrame + return None + + @SettlingPhaseFrame.setter + def SettlingPhaseFrame(self, value: Optional[str]): + if value is None: + if "SettlingPhaseFrame" in self._dataset: + del self._dataset.SettlingPhaseFrame + else: + self._dataset.SettlingPhaseFrame = value diff --git a/tdwii_plus_examples/domain_model/gated_information_sequence_item.py b/tdwii_plus_examples/domain_model/gated_information_sequence_item.py new file mode 100644 index 0000000..04455bf --- /dev/null +++ b/tdwii_plus_examples/domain_model/gated_information_sequence_item.py @@ -0,0 +1,75 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .data_information_sequence_item import DataInformationSequenceItem + + +class GatedInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DataInformationSequence: List[DataInformationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerTime(self) -> Optional[Decimal]: + if "TriggerTime" in self._dataset: + return self._dataset.TriggerTime + return None + + @TriggerTime.setter + def TriggerTime(self, value: Optional[Decimal]): + if value is None: + if "TriggerTime" in self._dataset: + del self._dataset.TriggerTime + else: + self._dataset.TriggerTime = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def DataInformationSequence(self) -> Optional[List[DataInformationSequenceItem]]: + if "DataInformationSequence" in self._dataset: + if len(self._DataInformationSequence) == len(self._dataset.DataInformationSequence): + return self._DataInformationSequence + else: + return [DataInformationSequenceItem(x) for x in self._dataset.DataInformationSequence] + return None + + @DataInformationSequence.setter + def DataInformationSequence(self, value: Optional[List[DataInformationSequenceItem]]): + if value is None: + self._DataInformationSequence = [] + if "DataInformationSequence" in self._dataset: + del self._dataset.DataInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, DataInformationSequenceItem) for item in value): + raise ValueError("DataInformationSequence must be a list of DataInformationSequenceItem objects") + else: + self._DataInformationSequence = value + if "DataInformationSequence" not in self._dataset: + self._dataset.DataInformationSequence = pydicom.Sequence() + self._dataset.DataInformationSequence.clear() + self._dataset.DataInformationSequence.extend([item.to_dataset() for item in value]) + + def add_DataInformation(self, item: DataInformationSequenceItem): + if not isinstance(item, DataInformationSequenceItem): + raise ValueError("Item must be an instance of DataInformationSequenceItem") + self._DataInformationSequence.append(item) + if "DataInformationSequence" not in self._dataset: + self._dataset.DataInformationSequence = pydicom.Sequence() + self._dataset.DataInformationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/gating_beam_hold_transition_sequence_item.py b/tdwii_plus_examples/domain_model/gating_beam_hold_transition_sequence_item.py new file mode 100644 index 0000000..297341b --- /dev/null +++ b/tdwii_plus_examples/domain_model/gating_beam_hold_transition_sequence_item.py @@ -0,0 +1,92 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_hold_originating_device_sequence_item import ( + BeamHoldOriginatingDeviceSequenceItem, +) + + +class GatingBeamHoldTransitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BeamHoldOriginatingDeviceSequence: List[BeamHoldOriginatingDeviceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BeamHoldTransition(self) -> Optional[str]: + if "BeamHoldTransition" in self._dataset: + return self._dataset.BeamHoldTransition + return None + + @BeamHoldTransition.setter + def BeamHoldTransition(self, value: Optional[str]): + if value is None: + if "BeamHoldTransition" in self._dataset: + del self._dataset.BeamHoldTransition + else: + self._dataset.BeamHoldTransition = value + + @property + def BeamHoldTransitionDateTime(self) -> Optional[str]: + if "BeamHoldTransitionDateTime" in self._dataset: + return self._dataset.BeamHoldTransitionDateTime + return None + + @BeamHoldTransitionDateTime.setter + def BeamHoldTransitionDateTime(self, value: Optional[str]): + if value is None: + if "BeamHoldTransitionDateTime" in self._dataset: + del self._dataset.BeamHoldTransitionDateTime + else: + self._dataset.BeamHoldTransitionDateTime = value + + @property + def BeamHoldOriginatingDeviceSequence(self) -> Optional[List[BeamHoldOriginatingDeviceSequenceItem]]: + if "BeamHoldOriginatingDeviceSequence" in self._dataset: + if len(self._BeamHoldOriginatingDeviceSequence) == len(self._dataset.BeamHoldOriginatingDeviceSequence): + return self._BeamHoldOriginatingDeviceSequence + else: + return [BeamHoldOriginatingDeviceSequenceItem(x) for x in self._dataset.BeamHoldOriginatingDeviceSequence] + return None + + @BeamHoldOriginatingDeviceSequence.setter + def BeamHoldOriginatingDeviceSequence(self, value: Optional[List[BeamHoldOriginatingDeviceSequenceItem]]): + if value is None: + self._BeamHoldOriginatingDeviceSequence = [] + if "BeamHoldOriginatingDeviceSequence" in self._dataset: + del self._dataset.BeamHoldOriginatingDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamHoldOriginatingDeviceSequenceItem) for item in value): + raise ValueError( + "BeamHoldOriginatingDeviceSequence must be a list of BeamHoldOriginatingDeviceSequenceItem objects" + ) + else: + self._BeamHoldOriginatingDeviceSequence = value + if "BeamHoldOriginatingDeviceSequence" not in self._dataset: + self._dataset.BeamHoldOriginatingDeviceSequence = pydicom.Sequence() + self._dataset.BeamHoldOriginatingDeviceSequence.clear() + self._dataset.BeamHoldOriginatingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_BeamHoldOriginatingDevice(self, item: BeamHoldOriginatingDeviceSequenceItem): + if not isinstance(item, BeamHoldOriginatingDeviceSequenceItem): + raise ValueError("Item must be an instance of BeamHoldOriginatingDeviceSequenceItem") + self._BeamHoldOriginatingDeviceSequence.append(item) + if "BeamHoldOriginatingDeviceSequence" not in self._dataset: + self._dataset.BeamHoldOriginatingDeviceSequence = pydicom.Sequence() + self._dataset.BeamHoldOriginatingDeviceSequence.append(item.to_dataset()) + + @property + def BeamHoldTransitionTriggerSource(self) -> Optional[str]: + if "BeamHoldTransitionTriggerSource" in self._dataset: + return self._dataset.BeamHoldTransitionTriggerSource + return None + + @BeamHoldTransitionTriggerSource.setter + def BeamHoldTransitionTriggerSource(self, value: Optional[str]): + if value is None: + if "BeamHoldTransitionTriggerSource" in self._dataset: + del self._dataset.BeamHoldTransitionTriggerSource + else: + self._dataset.BeamHoldTransitionTriggerSource = value diff --git a/tdwii_plus_examples/domain_model/general32_bit_ecg.py b/tdwii_plus_examples/domain_model/general32_bit_ecg.py new file mode 100644 index 0000000..ac47a9b --- /dev/null +++ b/tdwii_plus_examples/domain_model/general32_bit_ecg.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class General32BitEcg: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/general_accessory_definition_sequence_item.py b/tdwii_plus_examples/domain_model/general_accessory_definition_sequence_item.py new file mode 100644 index 0000000..bc656ee --- /dev/null +++ b/tdwii_plus_examples/domain_model/general_accessory_definition_sequence_item.py @@ -0,0 +1,360 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class GeneralAccessoryDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/general_accessory_sequence_item.py b/tdwii_plus_examples/domain_model/general_accessory_sequence_item.py new file mode 100644 index 0000000..8505b50 --- /dev/null +++ b/tdwii_plus_examples/domain_model/general_accessory_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class GeneralAccessorySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def GeneralAccessoryID(self) -> Optional[str]: + if "GeneralAccessoryID" in self._dataset: + return self._dataset.GeneralAccessoryID + return None + + @GeneralAccessoryID.setter + def GeneralAccessoryID(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryID" in self._dataset: + del self._dataset.GeneralAccessoryID + else: + self._dataset.GeneralAccessoryID = value + + @property + def GeneralAccessoryDescription(self) -> Optional[str]: + if "GeneralAccessoryDescription" in self._dataset: + return self._dataset.GeneralAccessoryDescription + return None + + @GeneralAccessoryDescription.setter + def GeneralAccessoryDescription(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryDescription" in self._dataset: + del self._dataset.GeneralAccessoryDescription + else: + self._dataset.GeneralAccessoryDescription = value + + @property + def GeneralAccessoryType(self) -> Optional[str]: + if "GeneralAccessoryType" in self._dataset: + return self._dataset.GeneralAccessoryType + return None + + @GeneralAccessoryType.setter + def GeneralAccessoryType(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryType" in self._dataset: + del self._dataset.GeneralAccessoryType + else: + self._dataset.GeneralAccessoryType = value + + @property + def GeneralAccessoryNumber(self) -> Optional[int]: + if "GeneralAccessoryNumber" in self._dataset: + return self._dataset.GeneralAccessoryNumber + return None + + @GeneralAccessoryNumber.setter + def GeneralAccessoryNumber(self, value: Optional[int]): + if value is None: + if "GeneralAccessoryNumber" in self._dataset: + del self._dataset.GeneralAccessoryNumber + else: + self._dataset.GeneralAccessoryNumber = value + + @property + def SourceToGeneralAccessoryDistance(self) -> Optional[float]: + if "SourceToGeneralAccessoryDistance" in self._dataset: + return self._dataset.SourceToGeneralAccessoryDistance + return None + + @SourceToGeneralAccessoryDistance.setter + def SourceToGeneralAccessoryDistance(self, value: Optional[float]): + if value is None: + if "SourceToGeneralAccessoryDistance" in self._dataset: + del self._dataset.SourceToGeneralAccessoryDistance + else: + self._dataset.SourceToGeneralAccessoryDistance = value diff --git a/tdwii_plus_examples/domain_model/general_accessory_sequence_item_3.py b/tdwii_plus_examples/domain_model/general_accessory_sequence_item_3.py new file mode 100644 index 0000000..5660a34 --- /dev/null +++ b/tdwii_plus_examples/domain_model/general_accessory_sequence_item_3.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class GeneralAccessorySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def GeneralAccessoryID(self) -> Optional[str]: + if "GeneralAccessoryID" in self._dataset: + return self._dataset.GeneralAccessoryID + return None + + @GeneralAccessoryID.setter + def GeneralAccessoryID(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryID" in self._dataset: + del self._dataset.GeneralAccessoryID + else: + self._dataset.GeneralAccessoryID = value + + @property + def GeneralAccessoryDescription(self) -> Optional[str]: + if "GeneralAccessoryDescription" in self._dataset: + return self._dataset.GeneralAccessoryDescription + return None + + @GeneralAccessoryDescription.setter + def GeneralAccessoryDescription(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryDescription" in self._dataset: + del self._dataset.GeneralAccessoryDescription + else: + self._dataset.GeneralAccessoryDescription = value + + @property + def GeneralAccessoryType(self) -> Optional[str]: + if "GeneralAccessoryType" in self._dataset: + return self._dataset.GeneralAccessoryType + return None + + @GeneralAccessoryType.setter + def GeneralAccessoryType(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryType" in self._dataset: + del self._dataset.GeneralAccessoryType + else: + self._dataset.GeneralAccessoryType = value + + @property + def GeneralAccessoryNumber(self) -> Optional[int]: + if "GeneralAccessoryNumber" in self._dataset: + return self._dataset.GeneralAccessoryNumber + return None + + @GeneralAccessoryNumber.setter + def GeneralAccessoryNumber(self, value: Optional[int]): + if value is None: + if "GeneralAccessoryNumber" in self._dataset: + del self._dataset.GeneralAccessoryNumber + else: + self._dataset.GeneralAccessoryNumber = value + + @property + def IsocenterToGeneralAccessoryDistance(self) -> Optional[Decimal]: + if "IsocenterToGeneralAccessoryDistance" in self._dataset: + return self._dataset.IsocenterToGeneralAccessoryDistance + return None + + @IsocenterToGeneralAccessoryDistance.setter + def IsocenterToGeneralAccessoryDistance(self, value: Optional[Decimal]): + if value is None: + if "IsocenterToGeneralAccessoryDistance" in self._dataset: + del self._dataset.IsocenterToGeneralAccessoryDistance + else: + self._dataset.IsocenterToGeneralAccessoryDistance = value diff --git a/tdwii_plus_examples/domain_model/general_accessory_sequence_item_4.py b/tdwii_plus_examples/domain_model/general_accessory_sequence_item_4.py new file mode 100644 index 0000000..afc56b2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/general_accessory_sequence_item_4.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class GeneralAccessorySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def GeneralAccessoryID(self) -> Optional[str]: + if "GeneralAccessoryID" in self._dataset: + return self._dataset.GeneralAccessoryID + return None + + @GeneralAccessoryID.setter + def GeneralAccessoryID(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryID" in self._dataset: + del self._dataset.GeneralAccessoryID + else: + self._dataset.GeneralAccessoryID = value + + @property + def GeneralAccessoryDescription(self) -> Optional[str]: + if "GeneralAccessoryDescription" in self._dataset: + return self._dataset.GeneralAccessoryDescription + return None + + @GeneralAccessoryDescription.setter + def GeneralAccessoryDescription(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryDescription" in self._dataset: + del self._dataset.GeneralAccessoryDescription + else: + self._dataset.GeneralAccessoryDescription = value + + @property + def GeneralAccessoryType(self) -> Optional[str]: + if "GeneralAccessoryType" in self._dataset: + return self._dataset.GeneralAccessoryType + return None + + @GeneralAccessoryType.setter + def GeneralAccessoryType(self, value: Optional[str]): + if value is None: + if "GeneralAccessoryType" in self._dataset: + del self._dataset.GeneralAccessoryType + else: + self._dataset.GeneralAccessoryType = value + + @property + def GeneralAccessoryNumber(self) -> Optional[int]: + if "GeneralAccessoryNumber" in self._dataset: + return self._dataset.GeneralAccessoryNumber + return None + + @GeneralAccessoryNumber.setter + def GeneralAccessoryNumber(self, value: Optional[int]): + if value is None: + if "GeneralAccessoryNumber" in self._dataset: + del self._dataset.GeneralAccessoryNumber + else: + self._dataset.GeneralAccessoryNumber = value diff --git a/tdwii_plus_examples/domain_model/general_audio_waveform.py b/tdwii_plus_examples/domain_model/general_audio_waveform.py new file mode 100644 index 0000000..28da800 --- /dev/null +++ b/tdwii_plus_examples/domain_model/general_audio_waveform.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class GeneralAudioWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/general_ecg.py b/tdwii_plus_examples/domain_model/general_ecg.py new file mode 100644 index 0000000..adc6d2a --- /dev/null +++ b/tdwii_plus_examples/domain_model/general_ecg.py @@ -0,0 +1,4262 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class GeneralEcg: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/generalized_defect_sensitivity_deviation_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/generalized_defect_sensitivity_deviation_algorithm_sequence_item.py new file mode 100644 index 0000000..e8fef0e --- /dev/null +++ b/tdwii_plus_examples/domain_model/generalized_defect_sensitivity_deviation_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/genetic_modifications_sequence_item.py b/tdwii_plus_examples/domain_model/genetic_modifications_sequence_item.py new file mode 100644 index 0000000..cd5b9d6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/genetic_modifications_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class GeneticModificationsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._GeneticModificationsCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GeneticModificationsDescription(self) -> Optional[str]: + if "GeneticModificationsDescription" in self._dataset: + return self._dataset.GeneticModificationsDescription + return None + + @GeneticModificationsDescription.setter + def GeneticModificationsDescription(self, value: Optional[str]): + if value is None: + if "GeneticModificationsDescription" in self._dataset: + del self._dataset.GeneticModificationsDescription + else: + self._dataset.GeneticModificationsDescription = value + + @property + def GeneticModificationsNomenclature(self) -> Optional[str]: + if "GeneticModificationsNomenclature" in self._dataset: + return self._dataset.GeneticModificationsNomenclature + return None + + @GeneticModificationsNomenclature.setter + def GeneticModificationsNomenclature(self, value: Optional[str]): + if value is None: + if "GeneticModificationsNomenclature" in self._dataset: + del self._dataset.GeneticModificationsNomenclature + else: + self._dataset.GeneticModificationsNomenclature = value + + @property + def GeneticModificationsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "GeneticModificationsCodeSequence" in self._dataset: + if len(self._GeneticModificationsCodeSequence) == len(self._dataset.GeneticModificationsCodeSequence): + return self._GeneticModificationsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.GeneticModificationsCodeSequence] + return None + + @GeneticModificationsCodeSequence.setter + def GeneticModificationsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._GeneticModificationsCodeSequence = [] + if "GeneticModificationsCodeSequence" in self._dataset: + del self._dataset.GeneticModificationsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("GeneticModificationsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._GeneticModificationsCodeSequence = value + if "GeneticModificationsCodeSequence" not in self._dataset: + self._dataset.GeneticModificationsCodeSequence = pydicom.Sequence() + self._dataset.GeneticModificationsCodeSequence.clear() + self._dataset.GeneticModificationsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModificationsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._GeneticModificationsCodeSequence.append(item) + if "GeneticModificationsCodeSequence" not in self._dataset: + self._dataset.GeneticModificationsCodeSequence = pydicom.Sequence() + self._dataset.GeneticModificationsCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/global_deviation_probability_sequence_item.py b/tdwii_plus_examples/domain_model/global_deviation_probability_sequence_item.py new file mode 100644 index 0000000..24a5523 --- /dev/null +++ b/tdwii_plus_examples/domain_model/global_deviation_probability_sequence_item.py @@ -0,0 +1,149 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class GlobalDeviationProbabilitySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GlobalDeviationProbability(self) -> Optional[float]: + if "GlobalDeviationProbability" in self._dataset: + return self._dataset.GlobalDeviationProbability + return None + + @GlobalDeviationProbability.setter + def GlobalDeviationProbability(self, value: Optional[float]): + if value is None: + if "GlobalDeviationProbability" in self._dataset: + del self._dataset.GlobalDeviationProbability + else: + self._dataset.GlobalDeviationProbability = value + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/graphic_annotation_sequence_item.py b/tdwii_plus_examples/domain_model/graphic_annotation_sequence_item.py new file mode 100644 index 0000000..85aa2ae --- /dev/null +++ b/tdwii_plus_examples/domain_model/graphic_annotation_sequence_item.py @@ -0,0 +1,162 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .compound_graphic_sequence_item import CompoundGraphicSequenceItem +from .graphic_object_sequence_item import GraphicObjectSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .text_object_sequence_item import TextObjectSequenceItem + + +class GraphicAnnotationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._TextObjectSequence: List[TextObjectSequenceItem] = [] + self._GraphicObjectSequence: List[GraphicObjectSequenceItem] = [] + self._CompoundGraphicSequence: List[CompoundGraphicSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def GraphicLayer(self) -> Optional[str]: + if "GraphicLayer" in self._dataset: + return self._dataset.GraphicLayer + return None + + @GraphicLayer.setter + def GraphicLayer(self, value: Optional[str]): + if value is None: + if "GraphicLayer" in self._dataset: + del self._dataset.GraphicLayer + else: + self._dataset.GraphicLayer = value + + @property + def TextObjectSequence(self) -> Optional[List[TextObjectSequenceItem]]: + if "TextObjectSequence" in self._dataset: + if len(self._TextObjectSequence) == len(self._dataset.TextObjectSequence): + return self._TextObjectSequence + else: + return [TextObjectSequenceItem(x) for x in self._dataset.TextObjectSequence] + return None + + @TextObjectSequence.setter + def TextObjectSequence(self, value: Optional[List[TextObjectSequenceItem]]): + if value is None: + self._TextObjectSequence = [] + if "TextObjectSequence" in self._dataset: + del self._dataset.TextObjectSequence + elif not isinstance(value, list) or not all(isinstance(item, TextObjectSequenceItem) for item in value): + raise ValueError("TextObjectSequence must be a list of TextObjectSequenceItem objects") + else: + self._TextObjectSequence = value + if "TextObjectSequence" not in self._dataset: + self._dataset.TextObjectSequence = pydicom.Sequence() + self._dataset.TextObjectSequence.clear() + self._dataset.TextObjectSequence.extend([item.to_dataset() for item in value]) + + def add_TextObject(self, item: TextObjectSequenceItem): + if not isinstance(item, TextObjectSequenceItem): + raise ValueError("Item must be an instance of TextObjectSequenceItem") + self._TextObjectSequence.append(item) + if "TextObjectSequence" not in self._dataset: + self._dataset.TextObjectSequence = pydicom.Sequence() + self._dataset.TextObjectSequence.append(item.to_dataset()) + + @property + def GraphicObjectSequence(self) -> Optional[List[GraphicObjectSequenceItem]]: + if "GraphicObjectSequence" in self._dataset: + if len(self._GraphicObjectSequence) == len(self._dataset.GraphicObjectSequence): + return self._GraphicObjectSequence + else: + return [GraphicObjectSequenceItem(x) for x in self._dataset.GraphicObjectSequence] + return None + + @GraphicObjectSequence.setter + def GraphicObjectSequence(self, value: Optional[List[GraphicObjectSequenceItem]]): + if value is None: + self._GraphicObjectSequence = [] + if "GraphicObjectSequence" in self._dataset: + del self._dataset.GraphicObjectSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicObjectSequenceItem) for item in value): + raise ValueError("GraphicObjectSequence must be a list of GraphicObjectSequenceItem objects") + else: + self._GraphicObjectSequence = value + if "GraphicObjectSequence" not in self._dataset: + self._dataset.GraphicObjectSequence = pydicom.Sequence() + self._dataset.GraphicObjectSequence.clear() + self._dataset.GraphicObjectSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicObject(self, item: GraphicObjectSequenceItem): + if not isinstance(item, GraphicObjectSequenceItem): + raise ValueError("Item must be an instance of GraphicObjectSequenceItem") + self._GraphicObjectSequence.append(item) + if "GraphicObjectSequence" not in self._dataset: + self._dataset.GraphicObjectSequence = pydicom.Sequence() + self._dataset.GraphicObjectSequence.append(item.to_dataset()) + + @property + def CompoundGraphicSequence(self) -> Optional[List[CompoundGraphicSequenceItem]]: + if "CompoundGraphicSequence" in self._dataset: + if len(self._CompoundGraphicSequence) == len(self._dataset.CompoundGraphicSequence): + return self._CompoundGraphicSequence + else: + return [CompoundGraphicSequenceItem(x) for x in self._dataset.CompoundGraphicSequence] + return None + + @CompoundGraphicSequence.setter + def CompoundGraphicSequence(self, value: Optional[List[CompoundGraphicSequenceItem]]): + if value is None: + self._CompoundGraphicSequence = [] + if "CompoundGraphicSequence" in self._dataset: + del self._dataset.CompoundGraphicSequence + elif not isinstance(value, list) or not all(isinstance(item, CompoundGraphicSequenceItem) for item in value): + raise ValueError("CompoundGraphicSequence must be a list of CompoundGraphicSequenceItem objects") + else: + self._CompoundGraphicSequence = value + if "CompoundGraphicSequence" not in self._dataset: + self._dataset.CompoundGraphicSequence = pydicom.Sequence() + self._dataset.CompoundGraphicSequence.clear() + self._dataset.CompoundGraphicSequence.extend([item.to_dataset() for item in value]) + + def add_CompoundGraphic(self, item: CompoundGraphicSequenceItem): + if not isinstance(item, CompoundGraphicSequenceItem): + raise ValueError("Item must be an instance of CompoundGraphicSequenceItem") + self._CompoundGraphicSequence.append(item) + if "CompoundGraphicSequence" not in self._dataset: + self._dataset.CompoundGraphicSequence = pydicom.Sequence() + self._dataset.CompoundGraphicSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/graphic_coordinates_data_sequence_item.py b/tdwii_plus_examples/domain_model/graphic_coordinates_data_sequence_item.py new file mode 100644 index 0000000..878117c --- /dev/null +++ b/tdwii_plus_examples/domain_model/graphic_coordinates_data_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class GraphicCoordinatesDataSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value diff --git a/tdwii_plus_examples/domain_model/graphic_group_sequence_item.py b/tdwii_plus_examples/domain_model/graphic_group_sequence_item.py new file mode 100644 index 0000000..072bd1d --- /dev/null +++ b/tdwii_plus_examples/domain_model/graphic_group_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class GraphicGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GraphicGroupLabel(self) -> Optional[str]: + if "GraphicGroupLabel" in self._dataset: + return self._dataset.GraphicGroupLabel + return None + + @GraphicGroupLabel.setter + def GraphicGroupLabel(self, value: Optional[str]): + if value is None: + if "GraphicGroupLabel" in self._dataset: + del self._dataset.GraphicGroupLabel + else: + self._dataset.GraphicGroupLabel = value + + @property + def GraphicGroupDescription(self) -> Optional[str]: + if "GraphicGroupDescription" in self._dataset: + return self._dataset.GraphicGroupDescription + return None + + @GraphicGroupDescription.setter + def GraphicGroupDescription(self, value: Optional[str]): + if value is None: + if "GraphicGroupDescription" in self._dataset: + del self._dataset.GraphicGroupDescription + else: + self._dataset.GraphicGroupDescription = value + + @property + def GraphicGroupID(self) -> Optional[int]: + if "GraphicGroupID" in self._dataset: + return self._dataset.GraphicGroupID + return None + + @GraphicGroupID.setter + def GraphicGroupID(self, value: Optional[int]): + if value is None: + if "GraphicGroupID" in self._dataset: + del self._dataset.GraphicGroupID + else: + self._dataset.GraphicGroupID = value diff --git a/tdwii_plus_examples/domain_model/graphic_layer_sequence_item.py b/tdwii_plus_examples/domain_model/graphic_layer_sequence_item.py new file mode 100644 index 0000000..777bc3b --- /dev/null +++ b/tdwii_plus_examples/domain_model/graphic_layer_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class GraphicLayerSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GraphicLayer(self) -> Optional[str]: + if "GraphicLayer" in self._dataset: + return self._dataset.GraphicLayer + return None + + @GraphicLayer.setter + def GraphicLayer(self, value: Optional[str]): + if value is None: + if "GraphicLayer" in self._dataset: + del self._dataset.GraphicLayer + else: + self._dataset.GraphicLayer = value + + @property + def GraphicLayerOrder(self) -> Optional[int]: + if "GraphicLayerOrder" in self._dataset: + return self._dataset.GraphicLayerOrder + return None + + @GraphicLayerOrder.setter + def GraphicLayerOrder(self, value: Optional[int]): + if value is None: + if "GraphicLayerOrder" in self._dataset: + del self._dataset.GraphicLayerOrder + else: + self._dataset.GraphicLayerOrder = value + + @property + def GraphicLayerRecommendedDisplayGrayscaleValue(self) -> Optional[int]: + if "GraphicLayerRecommendedDisplayGrayscaleValue" in self._dataset: + return self._dataset.GraphicLayerRecommendedDisplayGrayscaleValue + return None + + @GraphicLayerRecommendedDisplayGrayscaleValue.setter + def GraphicLayerRecommendedDisplayGrayscaleValue(self, value: Optional[int]): + if value is None: + if "GraphicLayerRecommendedDisplayGrayscaleValue" in self._dataset: + del self._dataset.GraphicLayerRecommendedDisplayGrayscaleValue + else: + self._dataset.GraphicLayerRecommendedDisplayGrayscaleValue = value + + @property + def GraphicLayerDescription(self) -> Optional[str]: + if "GraphicLayerDescription" in self._dataset: + return self._dataset.GraphicLayerDescription + return None + + @GraphicLayerDescription.setter + def GraphicLayerDescription(self, value: Optional[str]): + if value is None: + if "GraphicLayerDescription" in self._dataset: + del self._dataset.GraphicLayerDescription + else: + self._dataset.GraphicLayerDescription = value + + @property + def GraphicLayerRecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "GraphicLayerRecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.GraphicLayerRecommendedDisplayCIELabValue + return None + + @GraphicLayerRecommendedDisplayCIELabValue.setter + def GraphicLayerRecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "GraphicLayerRecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.GraphicLayerRecommendedDisplayCIELabValue + else: + self._dataset.GraphicLayerRecommendedDisplayCIELabValue = value diff --git a/tdwii_plus_examples/domain_model/graphic_object_sequence_item.py b/tdwii_plus_examples/domain_model/graphic_object_sequence_item.py new file mode 100644 index 0000000..1f2a767 --- /dev/null +++ b/tdwii_plus_examples/domain_model/graphic_object_sequence_item.py @@ -0,0 +1,220 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .fill_style_sequence_item import FillStyleSequenceItem +from .line_style_sequence_item import LineStyleSequenceItem + + +class GraphicObjectSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._LineStyleSequence: List[LineStyleSequenceItem] = [] + self._FillStyleSequence: List[FillStyleSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def GraphicAnnotationUnits(self) -> Optional[str]: + if "GraphicAnnotationUnits" in self._dataset: + return self._dataset.GraphicAnnotationUnits + return None + + @GraphicAnnotationUnits.setter + def GraphicAnnotationUnits(self, value: Optional[str]): + if value is None: + if "GraphicAnnotationUnits" in self._dataset: + del self._dataset.GraphicAnnotationUnits + else: + self._dataset.GraphicAnnotationUnits = value + + @property + def GraphicDimensions(self) -> Optional[int]: + if "GraphicDimensions" in self._dataset: + return self._dataset.GraphicDimensions + return None + + @GraphicDimensions.setter + def GraphicDimensions(self, value: Optional[int]): + if value is None: + if "GraphicDimensions" in self._dataset: + del self._dataset.GraphicDimensions + else: + self._dataset.GraphicDimensions = value + + @property + def NumberOfGraphicPoints(self) -> Optional[int]: + if "NumberOfGraphicPoints" in self._dataset: + return self._dataset.NumberOfGraphicPoints + return None + + @NumberOfGraphicPoints.setter + def NumberOfGraphicPoints(self, value: Optional[int]): + if value is None: + if "NumberOfGraphicPoints" in self._dataset: + del self._dataset.NumberOfGraphicPoints + else: + self._dataset.NumberOfGraphicPoints = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def GraphicFilled(self) -> Optional[str]: + if "GraphicFilled" in self._dataset: + return self._dataset.GraphicFilled + return None + + @GraphicFilled.setter + def GraphicFilled(self, value: Optional[str]): + if value is None: + if "GraphicFilled" in self._dataset: + del self._dataset.GraphicFilled + else: + self._dataset.GraphicFilled = value + + @property + def CompoundGraphicInstanceID(self) -> Optional[int]: + if "CompoundGraphicInstanceID" in self._dataset: + return self._dataset.CompoundGraphicInstanceID + return None + + @CompoundGraphicInstanceID.setter + def CompoundGraphicInstanceID(self, value: Optional[int]): + if value is None: + if "CompoundGraphicInstanceID" in self._dataset: + del self._dataset.CompoundGraphicInstanceID + else: + self._dataset.CompoundGraphicInstanceID = value + + @property + def LineStyleSequence(self) -> Optional[List[LineStyleSequenceItem]]: + if "LineStyleSequence" in self._dataset: + if len(self._LineStyleSequence) == len(self._dataset.LineStyleSequence): + return self._LineStyleSequence + else: + return [LineStyleSequenceItem(x) for x in self._dataset.LineStyleSequence] + return None + + @LineStyleSequence.setter + def LineStyleSequence(self, value: Optional[List[LineStyleSequenceItem]]): + if value is None: + self._LineStyleSequence = [] + if "LineStyleSequence" in self._dataset: + del self._dataset.LineStyleSequence + elif not isinstance(value, list) or not all(isinstance(item, LineStyleSequenceItem) for item in value): + raise ValueError("LineStyleSequence must be a list of LineStyleSequenceItem objects") + else: + self._LineStyleSequence = value + if "LineStyleSequence" not in self._dataset: + self._dataset.LineStyleSequence = pydicom.Sequence() + self._dataset.LineStyleSequence.clear() + self._dataset.LineStyleSequence.extend([item.to_dataset() for item in value]) + + def add_LineStyle(self, item: LineStyleSequenceItem): + if not isinstance(item, LineStyleSequenceItem): + raise ValueError("Item must be an instance of LineStyleSequenceItem") + self._LineStyleSequence.append(item) + if "LineStyleSequence" not in self._dataset: + self._dataset.LineStyleSequence = pydicom.Sequence() + self._dataset.LineStyleSequence.append(item.to_dataset()) + + @property + def FillStyleSequence(self) -> Optional[List[FillStyleSequenceItem]]: + if "FillStyleSequence" in self._dataset: + if len(self._FillStyleSequence) == len(self._dataset.FillStyleSequence): + return self._FillStyleSequence + else: + return [FillStyleSequenceItem(x) for x in self._dataset.FillStyleSequence] + return None + + @FillStyleSequence.setter + def FillStyleSequence(self, value: Optional[List[FillStyleSequenceItem]]): + if value is None: + self._FillStyleSequence = [] + if "FillStyleSequence" in self._dataset: + del self._dataset.FillStyleSequence + elif not isinstance(value, list) or not all(isinstance(item, FillStyleSequenceItem) for item in value): + raise ValueError("FillStyleSequence must be a list of FillStyleSequenceItem objects") + else: + self._FillStyleSequence = value + if "FillStyleSequence" not in self._dataset: + self._dataset.FillStyleSequence = pydicom.Sequence() + self._dataset.FillStyleSequence.clear() + self._dataset.FillStyleSequence.extend([item.to_dataset() for item in value]) + + def add_FillStyle(self, item: FillStyleSequenceItem): + if not isinstance(item, FillStyleSequenceItem): + raise ValueError("Item must be an instance of FillStyleSequenceItem") + self._FillStyleSequence.append(item) + if "FillStyleSequence" not in self._dataset: + self._dataset.FillStyleSequence = pydicom.Sequence() + self._dataset.FillStyleSequence.append(item.to_dataset()) + + @property + def GraphicGroupID(self) -> Optional[int]: + if "GraphicGroupID" in self._dataset: + return self._dataset.GraphicGroupID + return None + + @GraphicGroupID.setter + def GraphicGroupID(self, value: Optional[int]): + if value is None: + if "GraphicGroupID" in self._dataset: + del self._dataset.GraphicGroupID + else: + self._dataset.GraphicGroupID = value diff --git a/tdwii_plus_examples/domain_model/grayscale_softcopy_presentation_state.py b/tdwii_plus_examples/domain_model/grayscale_softcopy_presentation_state.py new file mode 100644 index 0000000..6fbb3d0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/grayscale_softcopy_presentation_state.py @@ -0,0 +1,5159 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .presentation_lut_sequence_item import PresentationLUTSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .softcopy_voilut_sequence_item import SoftcopyVOILUTSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class GrayscaleSoftcopyPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._SoftcopyVOILUTSequence: List[SoftcopyVOILUTSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PresentationLUTSequence: List[PresentationLUTSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def OverlayActivationLayer(self) -> Optional[str]: + if "OverlayActivationLayer" in self._dataset: + return self._dataset.OverlayActivationLayer + return None + + @OverlayActivationLayer.setter + def OverlayActivationLayer(self, value: Optional[str]): + if value is None: + if "OverlayActivationLayer" in self._dataset: + del self._dataset.OverlayActivationLayer + else: + self._dataset.OverlayActivationLayer = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterOverlayGroup(self) -> Optional[int]: + if "ShutterOverlayGroup" in self._dataset: + return self._dataset.ShutterOverlayGroup + return None + + @ShutterOverlayGroup.setter + def ShutterOverlayGroup(self, value: Optional[int]): + if value is None: + if "ShutterOverlayGroup" in self._dataset: + del self._dataset.ShutterOverlayGroup + else: + self._dataset.ShutterOverlayGroup = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def SoftcopyVOILUTSequence(self) -> Optional[List[SoftcopyVOILUTSequenceItem]]: + if "SoftcopyVOILUTSequence" in self._dataset: + if len(self._SoftcopyVOILUTSequence) == len(self._dataset.SoftcopyVOILUTSequence): + return self._SoftcopyVOILUTSequence + else: + return [SoftcopyVOILUTSequenceItem(x) for x in self._dataset.SoftcopyVOILUTSequence] + return None + + @SoftcopyVOILUTSequence.setter + def SoftcopyVOILUTSequence(self, value: Optional[List[SoftcopyVOILUTSequenceItem]]): + if value is None: + self._SoftcopyVOILUTSequence = [] + if "SoftcopyVOILUTSequence" in self._dataset: + del self._dataset.SoftcopyVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, SoftcopyVOILUTSequenceItem) for item in value): + raise ValueError("SoftcopyVOILUTSequence must be a list of SoftcopyVOILUTSequenceItem objects") + else: + self._SoftcopyVOILUTSequence = value + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.clear() + self._dataset.SoftcopyVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_SoftcopyVOILUT(self, item: SoftcopyVOILUTSequenceItem): + if not isinstance(item, SoftcopyVOILUTSequenceItem): + raise ValueError("Item must be an instance of SoftcopyVOILUTSequenceItem") + self._SoftcopyVOILUTSequence.append(item) + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PresentationLUTSequence(self) -> Optional[List[PresentationLUTSequenceItem]]: + if "PresentationLUTSequence" in self._dataset: + if len(self._PresentationLUTSequence) == len(self._dataset.PresentationLUTSequence): + return self._PresentationLUTSequence + else: + return [PresentationLUTSequenceItem(x) for x in self._dataset.PresentationLUTSequence] + return None + + @PresentationLUTSequence.setter + def PresentationLUTSequence(self, value: Optional[List[PresentationLUTSequenceItem]]): + if value is None: + self._PresentationLUTSequence = [] + if "PresentationLUTSequence" in self._dataset: + del self._dataset.PresentationLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, PresentationLUTSequenceItem) for item in value): + raise ValueError("PresentationLUTSequence must be a list of PresentationLUTSequenceItem objects") + else: + self._PresentationLUTSequence = value + if "PresentationLUTSequence" not in self._dataset: + self._dataset.PresentationLUTSequence = pydicom.Sequence() + self._dataset.PresentationLUTSequence.clear() + self._dataset.PresentationLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationLUT(self, item: PresentationLUTSequenceItem): + if not isinstance(item, PresentationLUTSequenceItem): + raise ValueError("Item must be an instance of PresentationLUTSequenceItem") + self._PresentationLUTSequence.append(item) + if "PresentationLUTSequence" not in self._dataset: + self._dataset.PresentationLUTSequence = pydicom.Sequence() + self._dataset.PresentationLUTSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/group_of_patients_identification_sequence_item.py b/tdwii_plus_examples/domain_model/group_of_patients_identification_sequence_item.py new file mode 100644 index 0000000..a65ce91 --- /dev/null +++ b/tdwii_plus_examples/domain_model/group_of_patients_identification_sequence_item.py @@ -0,0 +1,108 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) + + +class GroupOfPatientsIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SubjectRelativePositionInImage(self) -> Optional[List[int]]: + if "SubjectRelativePositionInImage" in self._dataset: + return self._dataset.SubjectRelativePositionInImage + return None + + @SubjectRelativePositionInImage.setter + def SubjectRelativePositionInImage(self, value: Optional[List[int]]): + if value is None: + if "SubjectRelativePositionInImage" in self._dataset: + del self._dataset.SubjectRelativePositionInImage + else: + self._dataset.SubjectRelativePositionInImage = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value diff --git a/tdwii_plus_examples/domain_model/hemodynamic_waveform.py b/tdwii_plus_examples/domain_model/hemodynamic_waveform.py new file mode 100644 index 0000000..7763aaa --- /dev/null +++ b/tdwii_plus_examples/domain_model/hemodynamic_waveform.py @@ -0,0 +1,4262 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class HemodynamicWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/histogram_sequence_item.py b/tdwii_plus_examples/domain_model/histogram_sequence_item.py new file mode 100644 index 0000000..4d52a5c --- /dev/null +++ b/tdwii_plus_examples/domain_model/histogram_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class HistogramSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def HistogramNumberOfBins(self) -> Optional[int]: + if "HistogramNumberOfBins" in self._dataset: + return self._dataset.HistogramNumberOfBins + return None + + @HistogramNumberOfBins.setter + def HistogramNumberOfBins(self, value: Optional[int]): + if value is None: + if "HistogramNumberOfBins" in self._dataset: + del self._dataset.HistogramNumberOfBins + else: + self._dataset.HistogramNumberOfBins = value + + @property + def HistogramFirstBinValue(self) -> Optional[int]: + if "HistogramFirstBinValue" in self._dataset: + return self._dataset.HistogramFirstBinValue + return None + + @HistogramFirstBinValue.setter + def HistogramFirstBinValue(self, value: Optional[int]): + if value is None: + if "HistogramFirstBinValue" in self._dataset: + del self._dataset.HistogramFirstBinValue + else: + self._dataset.HistogramFirstBinValue = value + + @property + def HistogramLastBinValue(self) -> Optional[int]: + if "HistogramLastBinValue" in self._dataset: + return self._dataset.HistogramLastBinValue + return None + + @HistogramLastBinValue.setter + def HistogramLastBinValue(self, value: Optional[int]): + if value is None: + if "HistogramLastBinValue" in self._dataset: + del self._dataset.HistogramLastBinValue + else: + self._dataset.HistogramLastBinValue = value + + @property + def HistogramBinWidth(self) -> Optional[int]: + if "HistogramBinWidth" in self._dataset: + return self._dataset.HistogramBinWidth + return None + + @HistogramBinWidth.setter + def HistogramBinWidth(self, value: Optional[int]): + if value is None: + if "HistogramBinWidth" in self._dataset: + del self._dataset.HistogramBinWidth + else: + self._dataset.HistogramBinWidth = value + + @property + def HistogramExplanation(self) -> Optional[str]: + if "HistogramExplanation" in self._dataset: + return self._dataset.HistogramExplanation + return None + + @HistogramExplanation.setter + def HistogramExplanation(self, value: Optional[str]): + if value is None: + if "HistogramExplanation" in self._dataset: + del self._dataset.HistogramExplanation + else: + self._dataset.HistogramExplanation = value + + @property + def HistogramData(self) -> Optional[List[int]]: + if "HistogramData" in self._dataset: + return self._dataset.HistogramData + return None + + @HistogramData.setter + def HistogramData(self, value: Optional[List[int]]): + if value is None: + if "HistogramData" in self._dataset: + del self._dataset.HistogramData + else: + self._dataset.HistogramData = value diff --git a/tdwii_plus_examples/domain_model/hl7_structured_document_reference_sequence_item.py b/tdwii_plus_examples/domain_model/hl7_structured_document_reference_sequence_item.py new file mode 100644 index 0000000..793e517 --- /dev/null +++ b/tdwii_plus_examples/domain_model/hl7_structured_document_reference_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class HL7StructuredDocumentReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def RetrieveURI(self) -> Optional[str]: + if "RetrieveURI" in self._dataset: + return self._dataset.RetrieveURI + return None + + @RetrieveURI.setter + def RetrieveURI(self, value: Optional[str]): + if value is None: + if "RetrieveURI" in self._dataset: + del self._dataset.RetrieveURI + else: + self._dataset.RetrieveURI = value diff --git a/tdwii_plus_examples/domain_model/icon_image_sequence_item.py b/tdwii_plus_examples/domain_model/icon_image_sequence_item.py new file mode 100644 index 0000000..480b1a3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/icon_image_sequence_item.py @@ -0,0 +1,305 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IconImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value diff --git a/tdwii_plus_examples/domain_model/identical_documents_sequence_item.py b/tdwii_plus_examples/domain_model/identical_documents_sequence_item.py new file mode 100644 index 0000000..eda923e --- /dev/null +++ b/tdwii_plus_examples/domain_model/identical_documents_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class IdenticalDocumentsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/image_box_synchronization_sequence_item.py b/tdwii_plus_examples/domain_model/image_box_synchronization_sequence_item.py new file mode 100644 index 0000000..a86fbb0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/image_box_synchronization_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ImageBoxSynchronizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SynchronizedImageBoxList(self) -> Optional[List[int]]: + if "SynchronizedImageBoxList" in self._dataset: + return self._dataset.SynchronizedImageBoxList + return None + + @SynchronizedImageBoxList.setter + def SynchronizedImageBoxList(self, value: Optional[List[int]]): + if value is None: + if "SynchronizedImageBoxList" in self._dataset: + del self._dataset.SynchronizedImageBoxList + else: + self._dataset.SynchronizedImageBoxList = value + + @property + def TypeOfSynchronization(self) -> Optional[str]: + if "TypeOfSynchronization" in self._dataset: + return self._dataset.TypeOfSynchronization + return None + + @TypeOfSynchronization.setter + def TypeOfSynchronization(self, value: Optional[str]): + if value is None: + if "TypeOfSynchronization" in self._dataset: + del self._dataset.TypeOfSynchronization + else: + self._dataset.TypeOfSynchronization = value diff --git a/tdwii_plus_examples/domain_model/image_center_point_coordinates_sequence_item.py b/tdwii_plus_examples/domain_model/image_center_point_coordinates_sequence_item.py new file mode 100644 index 0000000..d49d114 --- /dev/null +++ b/tdwii_plus_examples/domain_model/image_center_point_coordinates_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ImageCenterPointCoordinatesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def XOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "XOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.XOffsetInSlideCoordinateSystem + return None + + @XOffsetInSlideCoordinateSystem.setter + def XOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "XOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.XOffsetInSlideCoordinateSystem + else: + self._dataset.XOffsetInSlideCoordinateSystem = value + + @property + def YOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "YOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.YOffsetInSlideCoordinateSystem + return None + + @YOffsetInSlideCoordinateSystem.setter + def YOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "YOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.YOffsetInSlideCoordinateSystem + else: + self._dataset.YOffsetInSlideCoordinateSystem = value + + @property + def ZOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "ZOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.ZOffsetInSlideCoordinateSystem + return None + + @ZOffsetInSlideCoordinateSystem.setter + def ZOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "ZOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.ZOffsetInSlideCoordinateSystem + else: + self._dataset.ZOffsetInSlideCoordinateSystem = value diff --git a/tdwii_plus_examples/domain_model/image_data_type_sequence_item.py b/tdwii_plus_examples/domain_model/image_data_type_sequence_item.py new file mode 100644 index 0000000..0ff855d --- /dev/null +++ b/tdwii_plus_examples/domain_model/image_data_type_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ImageDataTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataType(self) -> Optional[str]: + if "DataType" in self._dataset: + return self._dataset.DataType + return None + + @DataType.setter + def DataType(self, value: Optional[str]): + if value is None: + if "DataType" in self._dataset: + del self._dataset.DataType + else: + self._dataset.DataType = value + + @property + def AliasedDataType(self) -> Optional[str]: + if "AliasedDataType" in self._dataset: + return self._dataset.AliasedDataType + return None + + @AliasedDataType.setter + def AliasedDataType(self, value: Optional[str]): + if value is None: + if "AliasedDataType" in self._dataset: + del self._dataset.AliasedDataType + else: + self._dataset.AliasedDataType = value + + @property + def ZeroVelocityPixelValue(self) -> Optional[int]: + if "ZeroVelocityPixelValue" in self._dataset: + return self._dataset.ZeroVelocityPixelValue + return None + + @ZeroVelocityPixelValue.setter + def ZeroVelocityPixelValue(self, value: Optional[int]): + if value is None: + if "ZeroVelocityPixelValue" in self._dataset: + del self._dataset.ZeroVelocityPixelValue + else: + self._dataset.ZeroVelocityPixelValue = value diff --git a/tdwii_plus_examples/domain_model/image_filter_details_sequence_item.py b/tdwii_plus_examples/domain_model/image_filter_details_sequence_item.py new file mode 100644 index 0000000..c98acd8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/image_filter_details_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ImageFilterDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageFilter(self) -> Optional[str]: + if "ImageFilter" in self._dataset: + return self._dataset.ImageFilter + return None + + @ImageFilter.setter + def ImageFilter(self, value: Optional[str]): + if value is None: + if "ImageFilter" in self._dataset: + del self._dataset.ImageFilter + else: + self._dataset.ImageFilter = value + + @property + def ImageFilterDescription(self) -> Optional[str]: + if "ImageFilterDescription" in self._dataset: + return self._dataset.ImageFilterDescription + return None + + @ImageFilterDescription.setter + def ImageFilterDescription(self, value: Optional[str]): + if value is None: + if "ImageFilterDescription" in self._dataset: + del self._dataset.ImageFilterDescription + else: + self._dataset.ImageFilterDescription = value diff --git a/tdwii_plus_examples/domain_model/image_receptor_position_sequence_item.py b/tdwii_plus_examples/domain_model/image_receptor_position_sequence_item.py new file mode 100644 index 0000000..318fb02 --- /dev/null +++ b/tdwii_plus_examples/domain_model/image_receptor_position_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .device_position_parameter_sequence_item import DevicePositionParameterSequenceItem + + +class ImageReceptorPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DevicePositionParameterSequence: List[DevicePositionParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DevicePositionToEquipmentMappingMatrix(self) -> Optional[List[float]]: + if "DevicePositionToEquipmentMappingMatrix" in self._dataset: + return self._dataset.DevicePositionToEquipmentMappingMatrix + return None + + @DevicePositionToEquipmentMappingMatrix.setter + def DevicePositionToEquipmentMappingMatrix(self, value: Optional[List[float]]): + if value is None: + if "DevicePositionToEquipmentMappingMatrix" in self._dataset: + del self._dataset.DevicePositionToEquipmentMappingMatrix + else: + self._dataset.DevicePositionToEquipmentMappingMatrix = value + + @property + def DevicePositionParameterSequence(self) -> Optional[List[DevicePositionParameterSequenceItem]]: + if "DevicePositionParameterSequence" in self._dataset: + if len(self._DevicePositionParameterSequence) == len(self._dataset.DevicePositionParameterSequence): + return self._DevicePositionParameterSequence + else: + return [DevicePositionParameterSequenceItem(x) for x in self._dataset.DevicePositionParameterSequence] + return None + + @DevicePositionParameterSequence.setter + def DevicePositionParameterSequence(self, value: Optional[List[DevicePositionParameterSequenceItem]]): + if value is None: + self._DevicePositionParameterSequence = [] + if "DevicePositionParameterSequence" in self._dataset: + del self._dataset.DevicePositionParameterSequence + elif not isinstance(value, list) or not all(isinstance(item, DevicePositionParameterSequenceItem) for item in value): + raise ValueError("DevicePositionParameterSequence must be a list of DevicePositionParameterSequenceItem objects") + else: + self._DevicePositionParameterSequence = value + if "DevicePositionParameterSequence" not in self._dataset: + self._dataset.DevicePositionParameterSequence = pydicom.Sequence() + self._dataset.DevicePositionParameterSequence.clear() + self._dataset.DevicePositionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_DevicePositionParameter(self, item: DevicePositionParameterSequenceItem): + if not isinstance(item, DevicePositionParameterSequenceItem): + raise ValueError("Item must be an instance of DevicePositionParameterSequenceItem") + self._DevicePositionParameterSequence.append(item) + if "DevicePositionParameterSequence" not in self._dataset: + self._dataset.DevicePositionParameterSequence = pydicom.Sequence() + self._dataset.DevicePositionParameterSequence.append(item.to_dataset()) + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value diff --git a/tdwii_plus_examples/domain_model/imaging_aperture_sequence_item.py b/tdwii_plus_examples/domain_model/imaging_aperture_sequence_item.py new file mode 100644 index 0000000..c8c5b30 --- /dev/null +++ b/tdwii_plus_examples/domain_model/imaging_aperture_sequence_item.py @@ -0,0 +1,52 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_beam_limiting_device_opening_sequence_item import ( + RTBeamLimitingDeviceOpeningSequenceItem, +) + + +class ImagingApertureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTBeamLimitingDeviceOpeningSequence: List[RTBeamLimitingDeviceOpeningSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTBeamLimitingDeviceOpeningSequence(self) -> Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]: + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceOpeningSequence) == len(self._dataset.RTBeamLimitingDeviceOpeningSequence): + return self._RTBeamLimitingDeviceOpeningSequence + else: + return [RTBeamLimitingDeviceOpeningSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceOpeningSequence] + return None + + @RTBeamLimitingDeviceOpeningSequence.setter + def RTBeamLimitingDeviceOpeningSequence(self, value: Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceOpeningSequence = [] + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceOpeningSequence must be a list of RTBeamLimitingDeviceOpeningSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceOpeningSequence = value + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.clear() + self._dataset.RTBeamLimitingDeviceOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceOpening(self, item: RTBeamLimitingDeviceOpeningSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceOpeningSequenceItem") + self._RTBeamLimitingDeviceOpeningSequence.append(item) + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/imaging_device_location_matrix_sequence_item.py b/tdwii_plus_examples/domain_model/imaging_device_location_matrix_sequence_item.py new file mode 100644 index 0000000..4726712 --- /dev/null +++ b/tdwii_plus_examples/domain_model/imaging_device_location_matrix_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .image_receptor_position_sequence_item import ImageReceptorPositionSequenceItem +from .imaging_source_position_sequence_item import ImagingSourcePositionSequenceItem + + +class ImagingDeviceLocationMatrixSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ImagingSourcePositionSequence: List[ImagingSourcePositionSequenceItem] = [] + self._ImageReceptorPositionSequence: List[ImageReceptorPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagingSourcePositionSequence(self) -> Optional[List[ImagingSourcePositionSequenceItem]]: + if "ImagingSourcePositionSequence" in self._dataset: + if len(self._ImagingSourcePositionSequence) == len(self._dataset.ImagingSourcePositionSequence): + return self._ImagingSourcePositionSequence + else: + return [ImagingSourcePositionSequenceItem(x) for x in self._dataset.ImagingSourcePositionSequence] + return None + + @ImagingSourcePositionSequence.setter + def ImagingSourcePositionSequence(self, value: Optional[List[ImagingSourcePositionSequenceItem]]): + if value is None: + self._ImagingSourcePositionSequence = [] + if "ImagingSourcePositionSequence" in self._dataset: + del self._dataset.ImagingSourcePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImagingSourcePositionSequenceItem) for item in value): + raise ValueError("ImagingSourcePositionSequence must be a list of ImagingSourcePositionSequenceItem objects") + else: + self._ImagingSourcePositionSequence = value + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.clear() + self._dataset.ImagingSourcePositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingSourcePosition(self, item: ImagingSourcePositionSequenceItem): + if not isinstance(item, ImagingSourcePositionSequenceItem): + raise ValueError("Item must be an instance of ImagingSourcePositionSequenceItem") + self._ImagingSourcePositionSequence.append(item) + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.append(item.to_dataset()) + + @property + def ImageReceptorPositionSequence(self) -> Optional[List[ImageReceptorPositionSequenceItem]]: + if "ImageReceptorPositionSequence" in self._dataset: + if len(self._ImageReceptorPositionSequence) == len(self._dataset.ImageReceptorPositionSequence): + return self._ImageReceptorPositionSequence + else: + return [ImageReceptorPositionSequenceItem(x) for x in self._dataset.ImageReceptorPositionSequence] + return None + + @ImageReceptorPositionSequence.setter + def ImageReceptorPositionSequence(self, value: Optional[List[ImageReceptorPositionSequenceItem]]): + if value is None: + self._ImageReceptorPositionSequence = [] + if "ImageReceptorPositionSequence" in self._dataset: + del self._dataset.ImageReceptorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageReceptorPositionSequenceItem) for item in value): + raise ValueError("ImageReceptorPositionSequence must be a list of ImageReceptorPositionSequenceItem objects") + else: + self._ImageReceptorPositionSequence = value + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.clear() + self._dataset.ImageReceptorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImageReceptorPosition(self, item: ImageReceptorPositionSequenceItem): + if not isinstance(item, ImageReceptorPositionSequenceItem): + raise ValueError("Item must be an instance of ImageReceptorPositionSequenceItem") + self._ImageReceptorPositionSequence.append(item) + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/imaging_device_location_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/imaging_device_location_parameter_sequence_item.py new file mode 100644 index 0000000..00b6db3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/imaging_device_location_parameter_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .image_receptor_position_sequence_item import ImageReceptorPositionSequenceItem +from .imaging_source_position_sequence_item import ImagingSourcePositionSequenceItem + + +class ImagingDeviceLocationParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ImagingSourcePositionSequence: List[ImagingSourcePositionSequenceItem] = [] + self._ImageReceptorPositionSequence: List[ImageReceptorPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagingSourcePositionSequence(self) -> Optional[List[ImagingSourcePositionSequenceItem]]: + if "ImagingSourcePositionSequence" in self._dataset: + if len(self._ImagingSourcePositionSequence) == len(self._dataset.ImagingSourcePositionSequence): + return self._ImagingSourcePositionSequence + else: + return [ImagingSourcePositionSequenceItem(x) for x in self._dataset.ImagingSourcePositionSequence] + return None + + @ImagingSourcePositionSequence.setter + def ImagingSourcePositionSequence(self, value: Optional[List[ImagingSourcePositionSequenceItem]]): + if value is None: + self._ImagingSourcePositionSequence = [] + if "ImagingSourcePositionSequence" in self._dataset: + del self._dataset.ImagingSourcePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImagingSourcePositionSequenceItem) for item in value): + raise ValueError("ImagingSourcePositionSequence must be a list of ImagingSourcePositionSequenceItem objects") + else: + self._ImagingSourcePositionSequence = value + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.clear() + self._dataset.ImagingSourcePositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingSourcePosition(self, item: ImagingSourcePositionSequenceItem): + if not isinstance(item, ImagingSourcePositionSequenceItem): + raise ValueError("Item must be an instance of ImagingSourcePositionSequenceItem") + self._ImagingSourcePositionSequence.append(item) + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.append(item.to_dataset()) + + @property + def ImageReceptorPositionSequence(self) -> Optional[List[ImageReceptorPositionSequenceItem]]: + if "ImageReceptorPositionSequence" in self._dataset: + if len(self._ImageReceptorPositionSequence) == len(self._dataset.ImageReceptorPositionSequence): + return self._ImageReceptorPositionSequence + else: + return [ImageReceptorPositionSequenceItem(x) for x in self._dataset.ImageReceptorPositionSequence] + return None + + @ImageReceptorPositionSequence.setter + def ImageReceptorPositionSequence(self, value: Optional[List[ImageReceptorPositionSequenceItem]]): + if value is None: + self._ImageReceptorPositionSequence = [] + if "ImageReceptorPositionSequence" in self._dataset: + del self._dataset.ImageReceptorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageReceptorPositionSequenceItem) for item in value): + raise ValueError("ImageReceptorPositionSequence must be a list of ImageReceptorPositionSequenceItem objects") + else: + self._ImageReceptorPositionSequence = value + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.clear() + self._dataset.ImageReceptorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImageReceptorPosition(self, item: ImageReceptorPositionSequenceItem): + if not isinstance(item, ImageReceptorPositionSequenceItem): + raise ValueError("Item must be an instance of ImageReceptorPositionSequenceItem") + self._ImageReceptorPositionSequence.append(item) + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.append(item.to_dataset()) + + @property + def ReferencedRadiationRTControlPointIndex(self) -> Optional[int]: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + return self._dataset.ReferencedRadiationRTControlPointIndex + return None + + @ReferencedRadiationRTControlPointIndex.setter + def ReferencedRadiationRTControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + del self._dataset.ReferencedRadiationRTControlPointIndex + else: + self._dataset.ReferencedRadiationRTControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/imaging_source_position_sequence_item.py b/tdwii_plus_examples/domain_model/imaging_source_position_sequence_item.py new file mode 100644 index 0000000..b944f02 --- /dev/null +++ b/tdwii_plus_examples/domain_model/imaging_source_position_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .device_position_parameter_sequence_item import DevicePositionParameterSequenceItem + + +class ImagingSourcePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DevicePositionParameterSequence: List[DevicePositionParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DevicePositionToEquipmentMappingMatrix(self) -> Optional[List[float]]: + if "DevicePositionToEquipmentMappingMatrix" in self._dataset: + return self._dataset.DevicePositionToEquipmentMappingMatrix + return None + + @DevicePositionToEquipmentMappingMatrix.setter + def DevicePositionToEquipmentMappingMatrix(self, value: Optional[List[float]]): + if value is None: + if "DevicePositionToEquipmentMappingMatrix" in self._dataset: + del self._dataset.DevicePositionToEquipmentMappingMatrix + else: + self._dataset.DevicePositionToEquipmentMappingMatrix = value + + @property + def DevicePositionParameterSequence(self) -> Optional[List[DevicePositionParameterSequenceItem]]: + if "DevicePositionParameterSequence" in self._dataset: + if len(self._DevicePositionParameterSequence) == len(self._dataset.DevicePositionParameterSequence): + return self._DevicePositionParameterSequence + else: + return [DevicePositionParameterSequenceItem(x) for x in self._dataset.DevicePositionParameterSequence] + return None + + @DevicePositionParameterSequence.setter + def DevicePositionParameterSequence(self, value: Optional[List[DevicePositionParameterSequenceItem]]): + if value is None: + self._DevicePositionParameterSequence = [] + if "DevicePositionParameterSequence" in self._dataset: + del self._dataset.DevicePositionParameterSequence + elif not isinstance(value, list) or not all(isinstance(item, DevicePositionParameterSequenceItem) for item in value): + raise ValueError("DevicePositionParameterSequence must be a list of DevicePositionParameterSequenceItem objects") + else: + self._DevicePositionParameterSequence = value + if "DevicePositionParameterSequence" not in self._dataset: + self._dataset.DevicePositionParameterSequence = pydicom.Sequence() + self._dataset.DevicePositionParameterSequence.clear() + self._dataset.DevicePositionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_DevicePositionParameter(self, item: DevicePositionParameterSequenceItem): + if not isinstance(item, DevicePositionParameterSequenceItem): + raise ValueError("Item must be an instance of DevicePositionParameterSequenceItem") + self._DevicePositionParameterSequence.append(item) + if "DevicePositionParameterSequence" not in self._dataset: + self._dataset.DevicePositionParameterSequence = pydicom.Sequence() + self._dataset.DevicePositionParameterSequence.append(item.to_dataset()) + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value diff --git a/tdwii_plus_examples/domain_model/implantation_plan_sr_document.py b/tdwii_plus_examples/domain_model/implantation_plan_sr_document.py new file mode 100644 index 0000000..ddb2b02 --- /dev/null +++ b/tdwii_plus_examples/domain_model/implantation_plan_sr_document.py @@ -0,0 +1,4561 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class ImplantationPlanSrDocument: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/index_probability_sequence_item.py b/tdwii_plus_examples/domain_model/index_probability_sequence_item.py new file mode 100644 index 0000000..b3782b5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/index_probability_sequence_item.py @@ -0,0 +1,149 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class IndexProbabilitySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def IndexProbability(self) -> Optional[float]: + if "IndexProbability" in self._dataset: + return self._dataset.IndexProbability + return None + + @IndexProbability.setter + def IndexProbability(self, value: Optional[float]): + if value is None: + if "IndexProbability" in self._dataset: + del self._dataset.IndexProbability + else: + self._dataset.IndexProbability = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/instance_level_referenced_performed_procedure_step_sequence_item.py b/tdwii_plus_examples/domain_model/instance_level_referenced_performed_procedure_step_sequence_item.py new file mode 100644 index 0000000..4888acc --- /dev/null +++ b/tdwii_plus_examples/domain_model/instance_level_referenced_performed_procedure_step_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class InstanceLevelReferencedPerformedProcedureStepSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/instruction_sequence_item.py b/tdwii_plus_examples/domain_model/instruction_sequence_item.py new file mode 100644 index 0000000..b614236 --- /dev/null +++ b/tdwii_plus_examples/domain_model/instruction_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class InstructionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstructionIndex(self) -> Optional[int]: + if "InstructionIndex" in self._dataset: + return self._dataset.InstructionIndex + return None + + @InstructionIndex.setter + def InstructionIndex(self, value: Optional[int]): + if value is None: + if "InstructionIndex" in self._dataset: + del self._dataset.InstructionIndex + else: + self._dataset.InstructionIndex = value + + @property + def InstructionText(self) -> Optional[str]: + if "InstructionText" in self._dataset: + return self._dataset.InstructionText + return None + + @InstructionText.setter + def InstructionText(self, value: Optional[str]): + if value is None: + if "InstructionText" in self._dataset: + del self._dataset.InstructionText + else: + self._dataset.InstructionText = value + + @property + def InstructionDescription(self) -> Optional[str]: + if "InstructionDescription" in self._dataset: + return self._dataset.InstructionDescription + return None + + @InstructionDescription.setter + def InstructionDescription(self, value: Optional[str]): + if value is None: + if "InstructionDescription" in self._dataset: + del self._dataset.InstructionDescription + else: + self._dataset.InstructionDescription = value + + @property + def InstructionPerformedFlag(self) -> Optional[str]: + if "InstructionPerformedFlag" in self._dataset: + return self._dataset.InstructionPerformedFlag + return None + + @InstructionPerformedFlag.setter + def InstructionPerformedFlag(self, value: Optional[str]): + if value is None: + if "InstructionPerformedFlag" in self._dataset: + del self._dataset.InstructionPerformedFlag + else: + self._dataset.InstructionPerformedFlag = value + + @property + def InstructionPerformedDateTime(self) -> Optional[str]: + if "InstructionPerformedDateTime" in self._dataset: + return self._dataset.InstructionPerformedDateTime + return None + + @InstructionPerformedDateTime.setter + def InstructionPerformedDateTime(self, value: Optional[str]): + if value is None: + if "InstructionPerformedDateTime" in self._dataset: + del self._dataset.InstructionPerformedDateTime + else: + self._dataset.InstructionPerformedDateTime = value + + @property + def InstructionPerformanceComment(self) -> Optional[str]: + if "InstructionPerformanceComment" in self._dataset: + return self._dataset.InstructionPerformanceComment + return None + + @InstructionPerformanceComment.setter + def InstructionPerformanceComment(self, value: Optional[str]): + if value is None: + if "InstructionPerformanceComment" in self._dataset: + del self._dataset.InstructionPerformanceComment + else: + self._dataset.InstructionPerformanceComment = value diff --git a/tdwii_plus_examples/domain_model/intended_rt_treatment_phase_sequence_item.py b/tdwii_plus_examples/domain_model/intended_rt_treatment_phase_sequence_item.py new file mode 100644 index 0000000..cd275e7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intended_rt_treatment_phase_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IntendedRTTreatmentPhaseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EntityLabel(self) -> Optional[str]: + if "EntityLabel" in self._dataset: + return self._dataset.EntityLabel + return None + + @EntityLabel.setter + def EntityLabel(self, value: Optional[str]): + if value is None: + if "EntityLabel" in self._dataset: + del self._dataset.EntityLabel + else: + self._dataset.EntityLabel = value + + @property + def EntityName(self) -> Optional[str]: + if "EntityName" in self._dataset: + return self._dataset.EntityName + return None + + @EntityName.setter + def EntityName(self, value: Optional[str]): + if value is None: + if "EntityName" in self._dataset: + del self._dataset.EntityName + else: + self._dataset.EntityName = value + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def RTTreatmentPhaseIndex(self) -> Optional[int]: + if "RTTreatmentPhaseIndex" in self._dataset: + return self._dataset.RTTreatmentPhaseIndex + return None + + @RTTreatmentPhaseIndex.setter + def RTTreatmentPhaseIndex(self, value: Optional[int]): + if value is None: + if "RTTreatmentPhaseIndex" in self._dataset: + del self._dataset.RTTreatmentPhaseIndex + else: + self._dataset.RTTreatmentPhaseIndex = value + + @property + def RTTreatmentPhaseUID(self) -> Optional[str]: + if "RTTreatmentPhaseUID" in self._dataset: + return self._dataset.RTTreatmentPhaseUID + return None + + @RTTreatmentPhaseUID.setter + def RTTreatmentPhaseUID(self, value: Optional[str]): + if value is None: + if "RTTreatmentPhaseUID" in self._dataset: + del self._dataset.RTTreatmentPhaseUID + else: + self._dataset.RTTreatmentPhaseUID = value + + @property + def IntendedPhaseStartDate(self) -> Optional[str]: + if "IntendedPhaseStartDate" in self._dataset: + return self._dataset.IntendedPhaseStartDate + return None + + @IntendedPhaseStartDate.setter + def IntendedPhaseStartDate(self, value: Optional[str]): + if value is None: + if "IntendedPhaseStartDate" in self._dataset: + del self._dataset.IntendedPhaseStartDate + else: + self._dataset.IntendedPhaseStartDate = value + + @property + def IntendedPhaseEndDate(self) -> Optional[str]: + if "IntendedPhaseEndDate" in self._dataset: + return self._dataset.IntendedPhaseEndDate + return None + + @IntendedPhaseEndDate.setter + def IntendedPhaseEndDate(self, value: Optional[str]): + if value is None: + if "IntendedPhaseEndDate" in self._dataset: + del self._dataset.IntendedPhaseEndDate + else: + self._dataset.IntendedPhaseEndDate = value diff --git a/tdwii_plus_examples/domain_model/interlock_originating_device_sequence_item.py b/tdwii_plus_examples/domain_model/interlock_originating_device_sequence_item.py new file mode 100644 index 0000000..fe529cc --- /dev/null +++ b/tdwii_plus_examples/domain_model/interlock_originating_device_sequence_item.py @@ -0,0 +1,220 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class InterlockOriginatingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/interlock_resolution_user_sequence_item.py b/tdwii_plus_examples/domain_model/interlock_resolution_user_sequence_item.py new file mode 100644 index 0000000..517a9e2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/interlock_resolution_user_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class InterlockResolutionUserSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/interlock_sequence_item.py b/tdwii_plus_examples/domain_model/interlock_sequence_item.py new file mode 100644 index 0000000..8db4ade --- /dev/null +++ b/tdwii_plus_examples/domain_model/interlock_sequence_item.py @@ -0,0 +1,195 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .interlock_originating_device_sequence_item import ( + InterlockOriginatingDeviceSequenceItem, +) +from .interlock_resolution_user_sequence_item import InterlockResolutionUserSequenceItem + + +class InterlockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InterlockOriginatingDeviceSequence: List[InterlockOriginatingDeviceSequenceItem] = [] + self._InterlockCodeSequence: List[CodeSequenceItem] = [] + self._InterlockResolutionCodeSequence: List[CodeSequenceItem] = [] + self._InterlockResolutionUserSequence: List[InterlockResolutionUserSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InterlockDateTime(self) -> Optional[str]: + if "InterlockDateTime" in self._dataset: + return self._dataset.InterlockDateTime + return None + + @InterlockDateTime.setter + def InterlockDateTime(self, value: Optional[str]): + if value is None: + if "InterlockDateTime" in self._dataset: + del self._dataset.InterlockDateTime + else: + self._dataset.InterlockDateTime = value + + @property + def InterlockDescription(self) -> Optional[str]: + if "InterlockDescription" in self._dataset: + return self._dataset.InterlockDescription + return None + + @InterlockDescription.setter + def InterlockDescription(self, value: Optional[str]): + if value is None: + if "InterlockDescription" in self._dataset: + del self._dataset.InterlockDescription + else: + self._dataset.InterlockDescription = value + + @property + def InterlockOriginatingDeviceSequence(self) -> Optional[List[InterlockOriginatingDeviceSequenceItem]]: + if "InterlockOriginatingDeviceSequence" in self._dataset: + if len(self._InterlockOriginatingDeviceSequence) == len(self._dataset.InterlockOriginatingDeviceSequence): + return self._InterlockOriginatingDeviceSequence + else: + return [InterlockOriginatingDeviceSequenceItem(x) for x in self._dataset.InterlockOriginatingDeviceSequence] + return None + + @InterlockOriginatingDeviceSequence.setter + def InterlockOriginatingDeviceSequence(self, value: Optional[List[InterlockOriginatingDeviceSequenceItem]]): + if value is None: + self._InterlockOriginatingDeviceSequence = [] + if "InterlockOriginatingDeviceSequence" in self._dataset: + del self._dataset.InterlockOriginatingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, InterlockOriginatingDeviceSequenceItem) for item in value + ): + raise ValueError( + "InterlockOriginatingDeviceSequence must be a list of InterlockOriginatingDeviceSequenceItem objects" + ) + else: + self._InterlockOriginatingDeviceSequence = value + if "InterlockOriginatingDeviceSequence" not in self._dataset: + self._dataset.InterlockOriginatingDeviceSequence = pydicom.Sequence() + self._dataset.InterlockOriginatingDeviceSequence.clear() + self._dataset.InterlockOriginatingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_InterlockOriginatingDevice(self, item: InterlockOriginatingDeviceSequenceItem): + if not isinstance(item, InterlockOriginatingDeviceSequenceItem): + raise ValueError("Item must be an instance of InterlockOriginatingDeviceSequenceItem") + self._InterlockOriginatingDeviceSequence.append(item) + if "InterlockOriginatingDeviceSequence" not in self._dataset: + self._dataset.InterlockOriginatingDeviceSequence = pydicom.Sequence() + self._dataset.InterlockOriginatingDeviceSequence.append(item.to_dataset()) + + @property + def InterlockCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InterlockCodeSequence" in self._dataset: + if len(self._InterlockCodeSequence) == len(self._dataset.InterlockCodeSequence): + return self._InterlockCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InterlockCodeSequence] + return None + + @InterlockCodeSequence.setter + def InterlockCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InterlockCodeSequence = [] + if "InterlockCodeSequence" in self._dataset: + del self._dataset.InterlockCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InterlockCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InterlockCodeSequence = value + if "InterlockCodeSequence" not in self._dataset: + self._dataset.InterlockCodeSequence = pydicom.Sequence() + self._dataset.InterlockCodeSequence.clear() + self._dataset.InterlockCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InterlockCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InterlockCodeSequence.append(item) + if "InterlockCodeSequence" not in self._dataset: + self._dataset.InterlockCodeSequence = pydicom.Sequence() + self._dataset.InterlockCodeSequence.append(item.to_dataset()) + + @property + def InterlockResolutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InterlockResolutionCodeSequence" in self._dataset: + if len(self._InterlockResolutionCodeSequence) == len(self._dataset.InterlockResolutionCodeSequence): + return self._InterlockResolutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InterlockResolutionCodeSequence] + return None + + @InterlockResolutionCodeSequence.setter + def InterlockResolutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InterlockResolutionCodeSequence = [] + if "InterlockResolutionCodeSequence" in self._dataset: + del self._dataset.InterlockResolutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InterlockResolutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InterlockResolutionCodeSequence = value + if "InterlockResolutionCodeSequence" not in self._dataset: + self._dataset.InterlockResolutionCodeSequence = pydicom.Sequence() + self._dataset.InterlockResolutionCodeSequence.clear() + self._dataset.InterlockResolutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InterlockResolutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InterlockResolutionCodeSequence.append(item) + if "InterlockResolutionCodeSequence" not in self._dataset: + self._dataset.InterlockResolutionCodeSequence = pydicom.Sequence() + self._dataset.InterlockResolutionCodeSequence.append(item.to_dataset()) + + @property + def InterlockResolutionUserSequence(self) -> Optional[List[InterlockResolutionUserSequenceItem]]: + if "InterlockResolutionUserSequence" in self._dataset: + if len(self._InterlockResolutionUserSequence) == len(self._dataset.InterlockResolutionUserSequence): + return self._InterlockResolutionUserSequence + else: + return [InterlockResolutionUserSequenceItem(x) for x in self._dataset.InterlockResolutionUserSequence] + return None + + @InterlockResolutionUserSequence.setter + def InterlockResolutionUserSequence(self, value: Optional[List[InterlockResolutionUserSequenceItem]]): + if value is None: + self._InterlockResolutionUserSequence = [] + if "InterlockResolutionUserSequence" in self._dataset: + del self._dataset.InterlockResolutionUserSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockResolutionUserSequenceItem) for item in value): + raise ValueError("InterlockResolutionUserSequence must be a list of InterlockResolutionUserSequenceItem objects") + else: + self._InterlockResolutionUserSequence = value + if "InterlockResolutionUserSequence" not in self._dataset: + self._dataset.InterlockResolutionUserSequence = pydicom.Sequence() + self._dataset.InterlockResolutionUserSequence.clear() + self._dataset.InterlockResolutionUserSequence.extend([item.to_dataset() for item in value]) + + def add_InterlockResolutionUser(self, item: InterlockResolutionUserSequenceItem): + if not isinstance(item, InterlockResolutionUserSequenceItem): + raise ValueError("Item must be an instance of InterlockResolutionUserSequenceItem") + self._InterlockResolutionUserSequence.append(item) + if "InterlockResolutionUserSequence" not in self._dataset: + self._dataset.InterlockResolutionUserSequence = pydicom.Sequence() + self._dataset.InterlockResolutionUserSequence.append(item.to_dataset()) + + @property + def InterlockOriginDescription(self) -> Optional[str]: + if "InterlockOriginDescription" in self._dataset: + return self._dataset.InterlockOriginDescription + return None + + @InterlockOriginDescription.setter + def InterlockOriginDescription(self, value: Optional[str]): + if value is None: + if "InterlockOriginDescription" in self._dataset: + del self._dataset.InterlockOriginDescription + else: + self._dataset.InterlockOriginDescription = value diff --git a/tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item.py b/tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item.py new file mode 100644 index 0000000..57167db --- /dev/null +++ b/tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item.py @@ -0,0 +1,103 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class InterventionDrugInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InterventionDrugCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InterventionDrugStopTime(self) -> Optional[str]: + if "InterventionDrugStopTime" in self._dataset: + return self._dataset.InterventionDrugStopTime + return None + + @InterventionDrugStopTime.setter + def InterventionDrugStopTime(self, value: Optional[str]): + if value is None: + if "InterventionDrugStopTime" in self._dataset: + del self._dataset.InterventionDrugStopTime + else: + self._dataset.InterventionDrugStopTime = value + + @property + def InterventionDrugDose(self) -> Optional[Decimal]: + if "InterventionDrugDose" in self._dataset: + return self._dataset.InterventionDrugDose + return None + + @InterventionDrugDose.setter + def InterventionDrugDose(self, value: Optional[Decimal]): + if value is None: + if "InterventionDrugDose" in self._dataset: + del self._dataset.InterventionDrugDose + else: + self._dataset.InterventionDrugDose = value + + @property + def InterventionDrugCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InterventionDrugCodeSequence" in self._dataset: + if len(self._InterventionDrugCodeSequence) == len(self._dataset.InterventionDrugCodeSequence): + return self._InterventionDrugCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InterventionDrugCodeSequence] + return None + + @InterventionDrugCodeSequence.setter + def InterventionDrugCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InterventionDrugCodeSequence = [] + if "InterventionDrugCodeSequence" in self._dataset: + del self._dataset.InterventionDrugCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InterventionDrugCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InterventionDrugCodeSequence = value + if "InterventionDrugCodeSequence" not in self._dataset: + self._dataset.InterventionDrugCodeSequence = pydicom.Sequence() + self._dataset.InterventionDrugCodeSequence.clear() + self._dataset.InterventionDrugCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InterventionDrugCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InterventionDrugCodeSequence.append(item) + if "InterventionDrugCodeSequence" not in self._dataset: + self._dataset.InterventionDrugCodeSequence = pydicom.Sequence() + self._dataset.InterventionDrugCodeSequence.append(item.to_dataset()) + + @property + def InterventionDrugName(self) -> Optional[str]: + if "InterventionDrugName" in self._dataset: + return self._dataset.InterventionDrugName + return None + + @InterventionDrugName.setter + def InterventionDrugName(self, value: Optional[str]): + if value is None: + if "InterventionDrugName" in self._dataset: + del self._dataset.InterventionDrugName + else: + self._dataset.InterventionDrugName = value + + @property + def InterventionDrugStartTime(self) -> Optional[str]: + if "InterventionDrugStartTime" in self._dataset: + return self._dataset.InterventionDrugStartTime + return None + + @InterventionDrugStartTime.setter + def InterventionDrugStartTime(self, value: Optional[str]): + if value is None: + if "InterventionDrugStartTime" in self._dataset: + del self._dataset.InterventionDrugStartTime + else: + self._dataset.InterventionDrugStartTime = value diff --git a/tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item_1.py b/tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item_1.py new file mode 100644 index 0000000..6a74218 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intervention_drug_information_sequence_item_1.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class InterventionDrugInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InterventionDrugCodeSequence: List[CodeSequenceItem] = [] + self._AdministrationRouteCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InterventionDrugStopTime(self) -> Optional[str]: + if "InterventionDrugStopTime" in self._dataset: + return self._dataset.InterventionDrugStopTime + return None + + @InterventionDrugStopTime.setter + def InterventionDrugStopTime(self, value: Optional[str]): + if value is None: + if "InterventionDrugStopTime" in self._dataset: + del self._dataset.InterventionDrugStopTime + else: + self._dataset.InterventionDrugStopTime = value + + @property + def InterventionDrugDose(self) -> Optional[Decimal]: + if "InterventionDrugDose" in self._dataset: + return self._dataset.InterventionDrugDose + return None + + @InterventionDrugDose.setter + def InterventionDrugDose(self, value: Optional[Decimal]): + if value is None: + if "InterventionDrugDose" in self._dataset: + del self._dataset.InterventionDrugDose + else: + self._dataset.InterventionDrugDose = value + + @property + def InterventionDrugCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InterventionDrugCodeSequence" in self._dataset: + if len(self._InterventionDrugCodeSequence) == len(self._dataset.InterventionDrugCodeSequence): + return self._InterventionDrugCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InterventionDrugCodeSequence] + return None + + @InterventionDrugCodeSequence.setter + def InterventionDrugCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InterventionDrugCodeSequence = [] + if "InterventionDrugCodeSequence" in self._dataset: + del self._dataset.InterventionDrugCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InterventionDrugCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InterventionDrugCodeSequence = value + if "InterventionDrugCodeSequence" not in self._dataset: + self._dataset.InterventionDrugCodeSequence = pydicom.Sequence() + self._dataset.InterventionDrugCodeSequence.clear() + self._dataset.InterventionDrugCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InterventionDrugCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InterventionDrugCodeSequence.append(item) + if "InterventionDrugCodeSequence" not in self._dataset: + self._dataset.InterventionDrugCodeSequence = pydicom.Sequence() + self._dataset.InterventionDrugCodeSequence.append(item.to_dataset()) + + @property + def InterventionDrugName(self) -> Optional[str]: + if "InterventionDrugName" in self._dataset: + return self._dataset.InterventionDrugName + return None + + @InterventionDrugName.setter + def InterventionDrugName(self, value: Optional[str]): + if value is None: + if "InterventionDrugName" in self._dataset: + del self._dataset.InterventionDrugName + else: + self._dataset.InterventionDrugName = value + + @property + def InterventionDrugStartTime(self) -> Optional[str]: + if "InterventionDrugStartTime" in self._dataset: + return self._dataset.InterventionDrugStartTime + return None + + @InterventionDrugStartTime.setter + def InterventionDrugStartTime(self, value: Optional[str]): + if value is None: + if "InterventionDrugStartTime" in self._dataset: + del self._dataset.InterventionDrugStartTime + else: + self._dataset.InterventionDrugStartTime = value + + @property + def AdministrationRouteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdministrationRouteCodeSequence" in self._dataset: + if len(self._AdministrationRouteCodeSequence) == len(self._dataset.AdministrationRouteCodeSequence): + return self._AdministrationRouteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdministrationRouteCodeSequence] + return None + + @AdministrationRouteCodeSequence.setter + def AdministrationRouteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdministrationRouteCodeSequence = [] + if "AdministrationRouteCodeSequence" in self._dataset: + del self._dataset.AdministrationRouteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdministrationRouteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdministrationRouteCodeSequence = value + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.clear() + self._dataset.AdministrationRouteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdministrationRouteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdministrationRouteCodeSequence.append(item) + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/intervention_sequence_item.py b/tdwii_plus_examples/domain_model/intervention_sequence_item.py new file mode 100644 index 0000000..6dc48ed --- /dev/null +++ b/tdwii_plus_examples/domain_model/intervention_sequence_item.py @@ -0,0 +1,378 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class InterventionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + self._InterventionDrugCodeSequence: List[CodeSequenceItem] = [] + self._AdministrationRouteCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value + + @property + def InterventionDrugStopTime(self) -> Optional[str]: + if "InterventionDrugStopTime" in self._dataset: + return self._dataset.InterventionDrugStopTime + return None + + @InterventionDrugStopTime.setter + def InterventionDrugStopTime(self, value: Optional[str]): + if value is None: + if "InterventionDrugStopTime" in self._dataset: + del self._dataset.InterventionDrugStopTime + else: + self._dataset.InterventionDrugStopTime = value + + @property + def InterventionDrugCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InterventionDrugCodeSequence" in self._dataset: + if len(self._InterventionDrugCodeSequence) == len(self._dataset.InterventionDrugCodeSequence): + return self._InterventionDrugCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InterventionDrugCodeSequence] + return None + + @InterventionDrugCodeSequence.setter + def InterventionDrugCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InterventionDrugCodeSequence = [] + if "InterventionDrugCodeSequence" in self._dataset: + del self._dataset.InterventionDrugCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InterventionDrugCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InterventionDrugCodeSequence = value + if "InterventionDrugCodeSequence" not in self._dataset: + self._dataset.InterventionDrugCodeSequence = pydicom.Sequence() + self._dataset.InterventionDrugCodeSequence.clear() + self._dataset.InterventionDrugCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InterventionDrugCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InterventionDrugCodeSequence.append(item) + if "InterventionDrugCodeSequence" not in self._dataset: + self._dataset.InterventionDrugCodeSequence = pydicom.Sequence() + self._dataset.InterventionDrugCodeSequence.append(item.to_dataset()) + + @property + def InterventionDrugStartTime(self) -> Optional[str]: + if "InterventionDrugStartTime" in self._dataset: + return self._dataset.InterventionDrugStartTime + return None + + @InterventionDrugStartTime.setter + def InterventionDrugStartTime(self, value: Optional[str]): + if value is None: + if "InterventionDrugStartTime" in self._dataset: + del self._dataset.InterventionDrugStartTime + else: + self._dataset.InterventionDrugStartTime = value + + @property + def InterventionStatus(self) -> Optional[str]: + if "InterventionStatus" in self._dataset: + return self._dataset.InterventionStatus + return None + + @InterventionStatus.setter + def InterventionStatus(self, value: Optional[str]): + if value is None: + if "InterventionStatus" in self._dataset: + del self._dataset.InterventionStatus + else: + self._dataset.InterventionStatus = value + + @property + def InterventionDescription(self) -> Optional[str]: + if "InterventionDescription" in self._dataset: + return self._dataset.InterventionDescription + return None + + @InterventionDescription.setter + def InterventionDescription(self, value: Optional[str]): + if value is None: + if "InterventionDescription" in self._dataset: + del self._dataset.InterventionDescription + else: + self._dataset.InterventionDescription = value + + @property + def AdministrationRouteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdministrationRouteCodeSequence" in self._dataset: + if len(self._AdministrationRouteCodeSequence) == len(self._dataset.AdministrationRouteCodeSequence): + return self._AdministrationRouteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdministrationRouteCodeSequence] + return None + + @AdministrationRouteCodeSequence.setter + def AdministrationRouteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdministrationRouteCodeSequence = [] + if "AdministrationRouteCodeSequence" in self._dataset: + del self._dataset.AdministrationRouteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdministrationRouteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdministrationRouteCodeSequence = value + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.clear() + self._dataset.AdministrationRouteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdministrationRouteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdministrationRouteCodeSequence.append(item) + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/intraocular_lens_calculations.py b/tdwii_plus_examples/domain_model/intraocular_lens_calculations.py new file mode 100644 index 0000000..4ca07e6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intraocular_lens_calculations.py @@ -0,0 +1,4194 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .intraocular_lens_calculations_left_eye_sequence_item import ( + IntraocularLensCalculationsLeftEyeSequenceItem, +) +from .intraocular_lens_calculations_right_eye_sequence_item import ( + IntraocularLensCalculationsRightEyeSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class IntraocularLensCalculations: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._IntraocularLensCalculationsRightEyeSequence: List[IntraocularLensCalculationsRightEyeSequenceItem] = [] + self._IntraocularLensCalculationsLeftEyeSequence: List[IntraocularLensCalculationsLeftEyeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def IntraocularLensCalculationsRightEyeSequence(self) -> Optional[List[IntraocularLensCalculationsRightEyeSequenceItem]]: + if "IntraocularLensCalculationsRightEyeSequence" in self._dataset: + if len(self._IntraocularLensCalculationsRightEyeSequence) == len( + self._dataset.IntraocularLensCalculationsRightEyeSequence + ): + return self._IntraocularLensCalculationsRightEyeSequence + else: + return [ + IntraocularLensCalculationsRightEyeSequenceItem(x) + for x in self._dataset.IntraocularLensCalculationsRightEyeSequence + ] + return None + + @IntraocularLensCalculationsRightEyeSequence.setter + def IntraocularLensCalculationsRightEyeSequence( + self, value: Optional[List[IntraocularLensCalculationsRightEyeSequenceItem]] + ): + if value is None: + self._IntraocularLensCalculationsRightEyeSequence = [] + if "IntraocularLensCalculationsRightEyeSequence" in self._dataset: + del self._dataset.IntraocularLensCalculationsRightEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, IntraocularLensCalculationsRightEyeSequenceItem) for item in value + ): + raise ValueError( + "IntraocularLensCalculationsRightEyeSequence must be a list of IntraocularLensCalculationsRightEyeSequenceItem" + " objects" + ) + else: + self._IntraocularLensCalculationsRightEyeSequence = value + if "IntraocularLensCalculationsRightEyeSequence" not in self._dataset: + self._dataset.IntraocularLensCalculationsRightEyeSequence = pydicom.Sequence() + self._dataset.IntraocularLensCalculationsRightEyeSequence.clear() + self._dataset.IntraocularLensCalculationsRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_IntraocularLensCalculationsRightEye(self, item: IntraocularLensCalculationsRightEyeSequenceItem): + if not isinstance(item, IntraocularLensCalculationsRightEyeSequenceItem): + raise ValueError("Item must be an instance of IntraocularLensCalculationsRightEyeSequenceItem") + self._IntraocularLensCalculationsRightEyeSequence.append(item) + if "IntraocularLensCalculationsRightEyeSequence" not in self._dataset: + self._dataset.IntraocularLensCalculationsRightEyeSequence = pydicom.Sequence() + self._dataset.IntraocularLensCalculationsRightEyeSequence.append(item.to_dataset()) + + @property + def IntraocularLensCalculationsLeftEyeSequence(self) -> Optional[List[IntraocularLensCalculationsLeftEyeSequenceItem]]: + if "IntraocularLensCalculationsLeftEyeSequence" in self._dataset: + if len(self._IntraocularLensCalculationsLeftEyeSequence) == len( + self._dataset.IntraocularLensCalculationsLeftEyeSequence + ): + return self._IntraocularLensCalculationsLeftEyeSequence + else: + return [ + IntraocularLensCalculationsLeftEyeSequenceItem(x) + for x in self._dataset.IntraocularLensCalculationsLeftEyeSequence + ] + return None + + @IntraocularLensCalculationsLeftEyeSequence.setter + def IntraocularLensCalculationsLeftEyeSequence( + self, value: Optional[List[IntraocularLensCalculationsLeftEyeSequenceItem]] + ): + if value is None: + self._IntraocularLensCalculationsLeftEyeSequence = [] + if "IntraocularLensCalculationsLeftEyeSequence" in self._dataset: + del self._dataset.IntraocularLensCalculationsLeftEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, IntraocularLensCalculationsLeftEyeSequenceItem) for item in value + ): + raise ValueError( + "IntraocularLensCalculationsLeftEyeSequence must be a list of IntraocularLensCalculationsLeftEyeSequenceItem" + " objects" + ) + else: + self._IntraocularLensCalculationsLeftEyeSequence = value + if "IntraocularLensCalculationsLeftEyeSequence" not in self._dataset: + self._dataset.IntraocularLensCalculationsLeftEyeSequence = pydicom.Sequence() + self._dataset.IntraocularLensCalculationsLeftEyeSequence.clear() + self._dataset.IntraocularLensCalculationsLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_IntraocularLensCalculationsLeftEye(self, item: IntraocularLensCalculationsLeftEyeSequenceItem): + if not isinstance(item, IntraocularLensCalculationsLeftEyeSequenceItem): + raise ValueError("Item must be an instance of IntraocularLensCalculationsLeftEyeSequenceItem") + self._IntraocularLensCalculationsLeftEyeSequence.append(item) + if "IntraocularLensCalculationsLeftEyeSequence" not in self._dataset: + self._dataset.IntraocularLensCalculationsLeftEyeSequence = pydicom.Sequence() + self._dataset.IntraocularLensCalculationsLeftEyeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/intraocular_lens_calculations_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/intraocular_lens_calculations_left_eye_sequence_item.py new file mode 100644 index 0000000..9bd1f90 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intraocular_lens_calculations_left_eye_sequence_item.py @@ -0,0 +1,784 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anterior_chamber_depth_sequence_item import AnteriorChamberDepthSequenceItem +from .calculation_comment_sequence_item import CalculationCommentSequenceItem +from .code_sequence_item import CodeSequenceItem +from .cornea_measurements_sequence_item import CorneaMeasurementsSequenceItem +from .corneal_size_sequence_item import CornealSizeSequenceItem +from .flat_keratometric_axis_sequence_item import FlatKeratometricAxisSequenceItem +from .iol_power_sequence_item import IOLPowerSequenceItem +from .lens_constant_sequence_item import LensConstantSequenceItem +from .lens_thickness_sequence_item import LensThicknessSequenceItem +from .ophthalmic_axial_length_sequence_item import OphthalmicAxialLengthSequenceItem +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .steep_keratometric_axis_sequence_item import SteepKeratometricAxisSequenceItem +from .surgically_induced_astigmatism_sequence_item import ( + SurgicallyInducedAstigmatismSequenceItem, +) +from .toric_iol_power_for_exact_emmetropia_sequence_item import ( + ToricIOLPowerForExactEmmetropiaSequenceItem, +) +from .toric_iol_power_for_exact_target_refraction_sequence_item import ( + ToricIOLPowerForExactTargetRefractionSequenceItem, +) + + +class IntraocularLensCalculationsLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._OphthalmicAxialLengthSequence: List[OphthalmicAxialLengthSequenceItem] = [] + self._IOLFormulaCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveSurgeryTypeCodeSequence: List[CodeSequenceItem] = [] + self._SurgicallyInducedAstigmatismSequence: List[SurgicallyInducedAstigmatismSequenceItem] = [] + self._ToricIOLPowerForExactEmmetropiaSequence: List[ToricIOLPowerForExactEmmetropiaSequenceItem] = [] + self._ToricIOLPowerForExactTargetRefractionSequence: List[ToricIOLPowerForExactTargetRefractionSequenceItem] = [] + self._IOLPowerSequence: List[IOLPowerSequenceItem] = [] + self._LensConstantSequence: List[LensConstantSequenceItem] = [] + self._KeratometryMeasurementTypeCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence: List[CodeSequenceItem] = [] + self._LensThicknessSequence: List[LensThicknessSequenceItem] = [] + self._AnteriorChamberDepthSequence: List[AnteriorChamberDepthSequenceItem] = [] + self._CalculationCommentSequence: List[CalculationCommentSequenceItem] = [] + self._CornealSizeSequence: List[CornealSizeSequenceItem] = [] + self._SteepKeratometricAxisSequence: List[SteepKeratometricAxisSequenceItem] = [] + self._FlatKeratometricAxisSequence: List[FlatKeratometricAxisSequenceItem] = [] + self._CorneaMeasurementsSequence: List[CorneaMeasurementsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthSequence(self) -> Optional[List[OphthalmicAxialLengthSequenceItem]]: + if "OphthalmicAxialLengthSequence" in self._dataset: + if len(self._OphthalmicAxialLengthSequence) == len(self._dataset.OphthalmicAxialLengthSequence): + return self._OphthalmicAxialLengthSequence + else: + return [OphthalmicAxialLengthSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthSequence] + return None + + @OphthalmicAxialLengthSequence.setter + def OphthalmicAxialLengthSequence(self, value: Optional[List[OphthalmicAxialLengthSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthSequence = [] + if "OphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all(isinstance(item, OphthalmicAxialLengthSequenceItem) for item in value): + raise ValueError("OphthalmicAxialLengthSequence must be a list of OphthalmicAxialLengthSequenceItem objects") + else: + self._OphthalmicAxialLengthSequence = value + if "OphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSequence.clear() + self._dataset.OphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLength(self, item: OphthalmicAxialLengthSequenceItem): + if not isinstance(item, OphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthSequenceItem") + self._OphthalmicAxialLengthSequence.append(item) + if "OphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSequence.append(item.to_dataset()) + + @property + def IOLFormulaCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IOLFormulaCodeSequence" in self._dataset: + if len(self._IOLFormulaCodeSequence) == len(self._dataset.IOLFormulaCodeSequence): + return self._IOLFormulaCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IOLFormulaCodeSequence] + return None + + @IOLFormulaCodeSequence.setter + def IOLFormulaCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IOLFormulaCodeSequence = [] + if "IOLFormulaCodeSequence" in self._dataset: + del self._dataset.IOLFormulaCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IOLFormulaCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IOLFormulaCodeSequence = value + if "IOLFormulaCodeSequence" not in self._dataset: + self._dataset.IOLFormulaCodeSequence = pydicom.Sequence() + self._dataset.IOLFormulaCodeSequence.clear() + self._dataset.IOLFormulaCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IOLFormulaCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IOLFormulaCodeSequence.append(item) + if "IOLFormulaCodeSequence" not in self._dataset: + self._dataset.IOLFormulaCodeSequence = pydicom.Sequence() + self._dataset.IOLFormulaCodeSequence.append(item.to_dataset()) + + @property + def IOLFormulaDetail(self) -> Optional[str]: + if "IOLFormulaDetail" in self._dataset: + return self._dataset.IOLFormulaDetail + return None + + @IOLFormulaDetail.setter + def IOLFormulaDetail(self, value: Optional[str]): + if value is None: + if "IOLFormulaDetail" in self._dataset: + del self._dataset.IOLFormulaDetail + else: + self._dataset.IOLFormulaDetail = value + + @property + def KeratometerIndex(self) -> Optional[float]: + if "KeratometerIndex" in self._dataset: + return self._dataset.KeratometerIndex + return None + + @KeratometerIndex.setter + def KeratometerIndex(self, value: Optional[float]): + if value is None: + if "KeratometerIndex" in self._dataset: + del self._dataset.KeratometerIndex + else: + self._dataset.KeratometerIndex = value + + @property + def TargetRefraction(self) -> Optional[float]: + if "TargetRefraction" in self._dataset: + return self._dataset.TargetRefraction + return None + + @TargetRefraction.setter + def TargetRefraction(self, value: Optional[float]): + if value is None: + if "TargetRefraction" in self._dataset: + del self._dataset.TargetRefraction + else: + self._dataset.TargetRefraction = value + + @property + def RefractiveProcedureOccurred(self) -> Optional[str]: + if "RefractiveProcedureOccurred" in self._dataset: + return self._dataset.RefractiveProcedureOccurred + return None + + @RefractiveProcedureOccurred.setter + def RefractiveProcedureOccurred(self, value: Optional[str]): + if value is None: + if "RefractiveProcedureOccurred" in self._dataset: + del self._dataset.RefractiveProcedureOccurred + else: + self._dataset.RefractiveProcedureOccurred = value + + @property + def RefractiveSurgeryTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RefractiveSurgeryTypeCodeSequence" in self._dataset: + if len(self._RefractiveSurgeryTypeCodeSequence) == len(self._dataset.RefractiveSurgeryTypeCodeSequence): + return self._RefractiveSurgeryTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RefractiveSurgeryTypeCodeSequence] + return None + + @RefractiveSurgeryTypeCodeSequence.setter + def RefractiveSurgeryTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RefractiveSurgeryTypeCodeSequence = [] + if "RefractiveSurgeryTypeCodeSequence" in self._dataset: + del self._dataset.RefractiveSurgeryTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RefractiveSurgeryTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RefractiveSurgeryTypeCodeSequence = value + if "RefractiveSurgeryTypeCodeSequence" not in self._dataset: + self._dataset.RefractiveSurgeryTypeCodeSequence = pydicom.Sequence() + self._dataset.RefractiveSurgeryTypeCodeSequence.clear() + self._dataset.RefractiveSurgeryTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveSurgeryTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RefractiveSurgeryTypeCodeSequence.append(item) + if "RefractiveSurgeryTypeCodeSequence" not in self._dataset: + self._dataset.RefractiveSurgeryTypeCodeSequence = pydicom.Sequence() + self._dataset.RefractiveSurgeryTypeCodeSequence.append(item.to_dataset()) + + @property + def SurgicallyInducedAstigmatismSequence(self) -> Optional[List[SurgicallyInducedAstigmatismSequenceItem]]: + if "SurgicallyInducedAstigmatismSequence" in self._dataset: + if len(self._SurgicallyInducedAstigmatismSequence) == len(self._dataset.SurgicallyInducedAstigmatismSequence): + return self._SurgicallyInducedAstigmatismSequence + else: + return [ + SurgicallyInducedAstigmatismSequenceItem(x) for x in self._dataset.SurgicallyInducedAstigmatismSequence + ] + return None + + @SurgicallyInducedAstigmatismSequence.setter + def SurgicallyInducedAstigmatismSequence(self, value: Optional[List[SurgicallyInducedAstigmatismSequenceItem]]): + if value is None: + self._SurgicallyInducedAstigmatismSequence = [] + if "SurgicallyInducedAstigmatismSequence" in self._dataset: + del self._dataset.SurgicallyInducedAstigmatismSequence + elif not isinstance(value, list) or not all( + isinstance(item, SurgicallyInducedAstigmatismSequenceItem) for item in value + ): + raise ValueError( + "SurgicallyInducedAstigmatismSequence must be a list of SurgicallyInducedAstigmatismSequenceItem objects" + ) + else: + self._SurgicallyInducedAstigmatismSequence = value + if "SurgicallyInducedAstigmatismSequence" not in self._dataset: + self._dataset.SurgicallyInducedAstigmatismSequence = pydicom.Sequence() + self._dataset.SurgicallyInducedAstigmatismSequence.clear() + self._dataset.SurgicallyInducedAstigmatismSequence.extend([item.to_dataset() for item in value]) + + def add_SurgicallyInducedAstigmatism(self, item: SurgicallyInducedAstigmatismSequenceItem): + if not isinstance(item, SurgicallyInducedAstigmatismSequenceItem): + raise ValueError("Item must be an instance of SurgicallyInducedAstigmatismSequenceItem") + self._SurgicallyInducedAstigmatismSequence.append(item) + if "SurgicallyInducedAstigmatismSequence" not in self._dataset: + self._dataset.SurgicallyInducedAstigmatismSequence = pydicom.Sequence() + self._dataset.SurgicallyInducedAstigmatismSequence.append(item.to_dataset()) + + @property + def TypeOfOpticalCorrection(self) -> Optional[str]: + if "TypeOfOpticalCorrection" in self._dataset: + return self._dataset.TypeOfOpticalCorrection + return None + + @TypeOfOpticalCorrection.setter + def TypeOfOpticalCorrection(self, value: Optional[str]): + if value is None: + if "TypeOfOpticalCorrection" in self._dataset: + del self._dataset.TypeOfOpticalCorrection + else: + self._dataset.TypeOfOpticalCorrection = value + + @property + def ToricIOLPowerForExactEmmetropiaSequence(self) -> Optional[List[ToricIOLPowerForExactEmmetropiaSequenceItem]]: + if "ToricIOLPowerForExactEmmetropiaSequence" in self._dataset: + if len(self._ToricIOLPowerForExactEmmetropiaSequence) == len( + self._dataset.ToricIOLPowerForExactEmmetropiaSequence + ): + return self._ToricIOLPowerForExactEmmetropiaSequence + else: + return [ + ToricIOLPowerForExactEmmetropiaSequenceItem(x) + for x in self._dataset.ToricIOLPowerForExactEmmetropiaSequence + ] + return None + + @ToricIOLPowerForExactEmmetropiaSequence.setter + def ToricIOLPowerForExactEmmetropiaSequence(self, value: Optional[List[ToricIOLPowerForExactEmmetropiaSequenceItem]]): + if value is None: + self._ToricIOLPowerForExactEmmetropiaSequence = [] + if "ToricIOLPowerForExactEmmetropiaSequence" in self._dataset: + del self._dataset.ToricIOLPowerForExactEmmetropiaSequence + elif not isinstance(value, list) or not all( + isinstance(item, ToricIOLPowerForExactEmmetropiaSequenceItem) for item in value + ): + raise ValueError( + "ToricIOLPowerForExactEmmetropiaSequence must be a list of ToricIOLPowerForExactEmmetropiaSequenceItem objects" + ) + else: + self._ToricIOLPowerForExactEmmetropiaSequence = value + if "ToricIOLPowerForExactEmmetropiaSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactEmmetropiaSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactEmmetropiaSequence.clear() + self._dataset.ToricIOLPowerForExactEmmetropiaSequence.extend([item.to_dataset() for item in value]) + + def add_ToricIOLPowerForExactEmmetropia(self, item: ToricIOLPowerForExactEmmetropiaSequenceItem): + if not isinstance(item, ToricIOLPowerForExactEmmetropiaSequenceItem): + raise ValueError("Item must be an instance of ToricIOLPowerForExactEmmetropiaSequenceItem") + self._ToricIOLPowerForExactEmmetropiaSequence.append(item) + if "ToricIOLPowerForExactEmmetropiaSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactEmmetropiaSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactEmmetropiaSequence.append(item.to_dataset()) + + @property + def ToricIOLPowerForExactTargetRefractionSequence( + self, + ) -> Optional[List[ToricIOLPowerForExactTargetRefractionSequenceItem]]: + if "ToricIOLPowerForExactTargetRefractionSequence" in self._dataset: + if len(self._ToricIOLPowerForExactTargetRefractionSequence) == len( + self._dataset.ToricIOLPowerForExactTargetRefractionSequence + ): + return self._ToricIOLPowerForExactTargetRefractionSequence + else: + return [ + ToricIOLPowerForExactTargetRefractionSequenceItem(x) + for x in self._dataset.ToricIOLPowerForExactTargetRefractionSequence + ] + return None + + @ToricIOLPowerForExactTargetRefractionSequence.setter + def ToricIOLPowerForExactTargetRefractionSequence( + self, value: Optional[List[ToricIOLPowerForExactTargetRefractionSequenceItem]] + ): + if value is None: + self._ToricIOLPowerForExactTargetRefractionSequence = [] + if "ToricIOLPowerForExactTargetRefractionSequence" in self._dataset: + del self._dataset.ToricIOLPowerForExactTargetRefractionSequence + elif not isinstance(value, list) or not all( + isinstance(item, ToricIOLPowerForExactTargetRefractionSequenceItem) for item in value + ): + raise ValueError( + "ToricIOLPowerForExactTargetRefractionSequence must be a list of" + " ToricIOLPowerForExactTargetRefractionSequenceItem objects" + ) + else: + self._ToricIOLPowerForExactTargetRefractionSequence = value + if "ToricIOLPowerForExactTargetRefractionSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactTargetRefractionSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactTargetRefractionSequence.clear() + self._dataset.ToricIOLPowerForExactTargetRefractionSequence.extend([item.to_dataset() for item in value]) + + def add_ToricIOLPowerForExactTargetRefraction(self, item: ToricIOLPowerForExactTargetRefractionSequenceItem): + if not isinstance(item, ToricIOLPowerForExactTargetRefractionSequenceItem): + raise ValueError("Item must be an instance of ToricIOLPowerForExactTargetRefractionSequenceItem") + self._ToricIOLPowerForExactTargetRefractionSequence.append(item) + if "ToricIOLPowerForExactTargetRefractionSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactTargetRefractionSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactTargetRefractionSequence.append(item.to_dataset()) + + @property + def IOLPowerSequence(self) -> Optional[List[IOLPowerSequenceItem]]: + if "IOLPowerSequence" in self._dataset: + if len(self._IOLPowerSequence) == len(self._dataset.IOLPowerSequence): + return self._IOLPowerSequence + else: + return [IOLPowerSequenceItem(x) for x in self._dataset.IOLPowerSequence] + return None + + @IOLPowerSequence.setter + def IOLPowerSequence(self, value: Optional[List[IOLPowerSequenceItem]]): + if value is None: + self._IOLPowerSequence = [] + if "IOLPowerSequence" in self._dataset: + del self._dataset.IOLPowerSequence + elif not isinstance(value, list) or not all(isinstance(item, IOLPowerSequenceItem) for item in value): + raise ValueError("IOLPowerSequence must be a list of IOLPowerSequenceItem objects") + else: + self._IOLPowerSequence = value + if "IOLPowerSequence" not in self._dataset: + self._dataset.IOLPowerSequence = pydicom.Sequence() + self._dataset.IOLPowerSequence.clear() + self._dataset.IOLPowerSequence.extend([item.to_dataset() for item in value]) + + def add_IOLPower(self, item: IOLPowerSequenceItem): + if not isinstance(item, IOLPowerSequenceItem): + raise ValueError("Item must be an instance of IOLPowerSequenceItem") + self._IOLPowerSequence.append(item) + if "IOLPowerSequence" not in self._dataset: + self._dataset.IOLPowerSequence = pydicom.Sequence() + self._dataset.IOLPowerSequence.append(item.to_dataset()) + + @property + def LensConstantSequence(self) -> Optional[List[LensConstantSequenceItem]]: + if "LensConstantSequence" in self._dataset: + if len(self._LensConstantSequence) == len(self._dataset.LensConstantSequence): + return self._LensConstantSequence + else: + return [LensConstantSequenceItem(x) for x in self._dataset.LensConstantSequence] + return None + + @LensConstantSequence.setter + def LensConstantSequence(self, value: Optional[List[LensConstantSequenceItem]]): + if value is None: + self._LensConstantSequence = [] + if "LensConstantSequence" in self._dataset: + del self._dataset.LensConstantSequence + elif not isinstance(value, list) or not all(isinstance(item, LensConstantSequenceItem) for item in value): + raise ValueError("LensConstantSequence must be a list of LensConstantSequenceItem objects") + else: + self._LensConstantSequence = value + if "LensConstantSequence" not in self._dataset: + self._dataset.LensConstantSequence = pydicom.Sequence() + self._dataset.LensConstantSequence.clear() + self._dataset.LensConstantSequence.extend([item.to_dataset() for item in value]) + + def add_LensConstant(self, item: LensConstantSequenceItem): + if not isinstance(item, LensConstantSequenceItem): + raise ValueError("Item must be an instance of LensConstantSequenceItem") + self._LensConstantSequence.append(item) + if "LensConstantSequence" not in self._dataset: + self._dataset.LensConstantSequence = pydicom.Sequence() + self._dataset.LensConstantSequence.append(item.to_dataset()) + + @property + def IOLManufacturer(self) -> Optional[str]: + if "IOLManufacturer" in self._dataset: + return self._dataset.IOLManufacturer + return None + + @IOLManufacturer.setter + def IOLManufacturer(self, value: Optional[str]): + if value is None: + if "IOLManufacturer" in self._dataset: + del self._dataset.IOLManufacturer + else: + self._dataset.IOLManufacturer = value + + @property + def ImplantName(self) -> Optional[str]: + if "ImplantName" in self._dataset: + return self._dataset.ImplantName + return None + + @ImplantName.setter + def ImplantName(self, value: Optional[str]): + if value is None: + if "ImplantName" in self._dataset: + del self._dataset.ImplantName + else: + self._dataset.ImplantName = value + + @property + def KeratometryMeasurementTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "KeratometryMeasurementTypeCodeSequence" in self._dataset: + if len(self._KeratometryMeasurementTypeCodeSequence) == len(self._dataset.KeratometryMeasurementTypeCodeSequence): + return self._KeratometryMeasurementTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.KeratometryMeasurementTypeCodeSequence] + return None + + @KeratometryMeasurementTypeCodeSequence.setter + def KeratometryMeasurementTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._KeratometryMeasurementTypeCodeSequence = [] + if "KeratometryMeasurementTypeCodeSequence" in self._dataset: + del self._dataset.KeratometryMeasurementTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("KeratometryMeasurementTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._KeratometryMeasurementTypeCodeSequence = value + if "KeratometryMeasurementTypeCodeSequence" not in self._dataset: + self._dataset.KeratometryMeasurementTypeCodeSequence = pydicom.Sequence() + self._dataset.KeratometryMeasurementTypeCodeSequence.clear() + self._dataset.KeratometryMeasurementTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_KeratometryMeasurementTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._KeratometryMeasurementTypeCodeSequence.append(item) + if "KeratometryMeasurementTypeCodeSequence" not in self._dataset: + self._dataset.KeratometryMeasurementTypeCodeSequence = pydicom.Sequence() + self._dataset.KeratometryMeasurementTypeCodeSequence.append(item.to_dataset()) + + @property + def RefractiveErrorBeforeRefractiveSurgeryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" in self._dataset: + if len(self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence) == len( + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence + ): + return self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence] + return None + + @RefractiveErrorBeforeRefractiveSurgeryCodeSequence.setter + def RefractiveErrorBeforeRefractiveSurgeryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence = [] + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" in self._dataset: + del self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RefractiveErrorBeforeRefractiveSurgeryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence = value + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" not in self._dataset: + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence = pydicom.Sequence() + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence.clear() + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveErrorBeforeRefractiveSurgeryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence.append(item) + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" not in self._dataset: + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence = pydicom.Sequence() + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence.append(item.to_dataset()) + + @property + def IOLPowerForExactEmmetropia(self) -> Optional[float]: + if "IOLPowerForExactEmmetropia" in self._dataset: + return self._dataset.IOLPowerForExactEmmetropia + return None + + @IOLPowerForExactEmmetropia.setter + def IOLPowerForExactEmmetropia(self, value: Optional[float]): + if value is None: + if "IOLPowerForExactEmmetropia" in self._dataset: + del self._dataset.IOLPowerForExactEmmetropia + else: + self._dataset.IOLPowerForExactEmmetropia = value + + @property + def IOLPowerForExactTargetRefraction(self) -> Optional[float]: + if "IOLPowerForExactTargetRefraction" in self._dataset: + return self._dataset.IOLPowerForExactTargetRefraction + return None + + @IOLPowerForExactTargetRefraction.setter + def IOLPowerForExactTargetRefraction(self, value: Optional[float]): + if value is None: + if "IOLPowerForExactTargetRefraction" in self._dataset: + del self._dataset.IOLPowerForExactTargetRefraction + else: + self._dataset.IOLPowerForExactTargetRefraction = value + + @property + def LensThicknessSequence(self) -> Optional[List[LensThicknessSequenceItem]]: + if "LensThicknessSequence" in self._dataset: + if len(self._LensThicknessSequence) == len(self._dataset.LensThicknessSequence): + return self._LensThicknessSequence + else: + return [LensThicknessSequenceItem(x) for x in self._dataset.LensThicknessSequence] + return None + + @LensThicknessSequence.setter + def LensThicknessSequence(self, value: Optional[List[LensThicknessSequenceItem]]): + if value is None: + self._LensThicknessSequence = [] + if "LensThicknessSequence" in self._dataset: + del self._dataset.LensThicknessSequence + elif not isinstance(value, list) or not all(isinstance(item, LensThicknessSequenceItem) for item in value): + raise ValueError("LensThicknessSequence must be a list of LensThicknessSequenceItem objects") + else: + self._LensThicknessSequence = value + if "LensThicknessSequence" not in self._dataset: + self._dataset.LensThicknessSequence = pydicom.Sequence() + self._dataset.LensThicknessSequence.clear() + self._dataset.LensThicknessSequence.extend([item.to_dataset() for item in value]) + + def add_LensThickness(self, item: LensThicknessSequenceItem): + if not isinstance(item, LensThicknessSequenceItem): + raise ValueError("Item must be an instance of LensThicknessSequenceItem") + self._LensThicknessSequence.append(item) + if "LensThicknessSequence" not in self._dataset: + self._dataset.LensThicknessSequence = pydicom.Sequence() + self._dataset.LensThicknessSequence.append(item.to_dataset()) + + @property + def AnteriorChamberDepthSequence(self) -> Optional[List[AnteriorChamberDepthSequenceItem]]: + if "AnteriorChamberDepthSequence" in self._dataset: + if len(self._AnteriorChamberDepthSequence) == len(self._dataset.AnteriorChamberDepthSequence): + return self._AnteriorChamberDepthSequence + else: + return [AnteriorChamberDepthSequenceItem(x) for x in self._dataset.AnteriorChamberDepthSequence] + return None + + @AnteriorChamberDepthSequence.setter + def AnteriorChamberDepthSequence(self, value: Optional[List[AnteriorChamberDepthSequenceItem]]): + if value is None: + self._AnteriorChamberDepthSequence = [] + if "AnteriorChamberDepthSequence" in self._dataset: + del self._dataset.AnteriorChamberDepthSequence + elif not isinstance(value, list) or not all(isinstance(item, AnteriorChamberDepthSequenceItem) for item in value): + raise ValueError("AnteriorChamberDepthSequence must be a list of AnteriorChamberDepthSequenceItem objects") + else: + self._AnteriorChamberDepthSequence = value + if "AnteriorChamberDepthSequence" not in self._dataset: + self._dataset.AnteriorChamberDepthSequence = pydicom.Sequence() + self._dataset.AnteriorChamberDepthSequence.clear() + self._dataset.AnteriorChamberDepthSequence.extend([item.to_dataset() for item in value]) + + def add_AnteriorChamberDepth(self, item: AnteriorChamberDepthSequenceItem): + if not isinstance(item, AnteriorChamberDepthSequenceItem): + raise ValueError("Item must be an instance of AnteriorChamberDepthSequenceItem") + self._AnteriorChamberDepthSequence.append(item) + if "AnteriorChamberDepthSequence" not in self._dataset: + self._dataset.AnteriorChamberDepthSequence = pydicom.Sequence() + self._dataset.AnteriorChamberDepthSequence.append(item.to_dataset()) + + @property + def CalculationCommentSequence(self) -> Optional[List[CalculationCommentSequenceItem]]: + if "CalculationCommentSequence" in self._dataset: + if len(self._CalculationCommentSequence) == len(self._dataset.CalculationCommentSequence): + return self._CalculationCommentSequence + else: + return [CalculationCommentSequenceItem(x) for x in self._dataset.CalculationCommentSequence] + return None + + @CalculationCommentSequence.setter + def CalculationCommentSequence(self, value: Optional[List[CalculationCommentSequenceItem]]): + if value is None: + self._CalculationCommentSequence = [] + if "CalculationCommentSequence" in self._dataset: + del self._dataset.CalculationCommentSequence + elif not isinstance(value, list) or not all(isinstance(item, CalculationCommentSequenceItem) for item in value): + raise ValueError("CalculationCommentSequence must be a list of CalculationCommentSequenceItem objects") + else: + self._CalculationCommentSequence = value + if "CalculationCommentSequence" not in self._dataset: + self._dataset.CalculationCommentSequence = pydicom.Sequence() + self._dataset.CalculationCommentSequence.clear() + self._dataset.CalculationCommentSequence.extend([item.to_dataset() for item in value]) + + def add_CalculationComment(self, item: CalculationCommentSequenceItem): + if not isinstance(item, CalculationCommentSequenceItem): + raise ValueError("Item must be an instance of CalculationCommentSequenceItem") + self._CalculationCommentSequence.append(item) + if "CalculationCommentSequence" not in self._dataset: + self._dataset.CalculationCommentSequence = pydicom.Sequence() + self._dataset.CalculationCommentSequence.append(item.to_dataset()) + + @property + def CornealSizeSequence(self) -> Optional[List[CornealSizeSequenceItem]]: + if "CornealSizeSequence" in self._dataset: + if len(self._CornealSizeSequence) == len(self._dataset.CornealSizeSequence): + return self._CornealSizeSequence + else: + return [CornealSizeSequenceItem(x) for x in self._dataset.CornealSizeSequence] + return None + + @CornealSizeSequence.setter + def CornealSizeSequence(self, value: Optional[List[CornealSizeSequenceItem]]): + if value is None: + self._CornealSizeSequence = [] + if "CornealSizeSequence" in self._dataset: + del self._dataset.CornealSizeSequence + elif not isinstance(value, list) or not all(isinstance(item, CornealSizeSequenceItem) for item in value): + raise ValueError("CornealSizeSequence must be a list of CornealSizeSequenceItem objects") + else: + self._CornealSizeSequence = value + if "CornealSizeSequence" not in self._dataset: + self._dataset.CornealSizeSequence = pydicom.Sequence() + self._dataset.CornealSizeSequence.clear() + self._dataset.CornealSizeSequence.extend([item.to_dataset() for item in value]) + + def add_CornealSize(self, item: CornealSizeSequenceItem): + if not isinstance(item, CornealSizeSequenceItem): + raise ValueError("Item must be an instance of CornealSizeSequenceItem") + self._CornealSizeSequence.append(item) + if "CornealSizeSequence" not in self._dataset: + self._dataset.CornealSizeSequence = pydicom.Sequence() + self._dataset.CornealSizeSequence.append(item.to_dataset()) + + @property + def SteepKeratometricAxisSequence(self) -> Optional[List[SteepKeratometricAxisSequenceItem]]: + if "SteepKeratometricAxisSequence" in self._dataset: + if len(self._SteepKeratometricAxisSequence) == len(self._dataset.SteepKeratometricAxisSequence): + return self._SteepKeratometricAxisSequence + else: + return [SteepKeratometricAxisSequenceItem(x) for x in self._dataset.SteepKeratometricAxisSequence] + return None + + @SteepKeratometricAxisSequence.setter + def SteepKeratometricAxisSequence(self, value: Optional[List[SteepKeratometricAxisSequenceItem]]): + if value is None: + self._SteepKeratometricAxisSequence = [] + if "SteepKeratometricAxisSequence" in self._dataset: + del self._dataset.SteepKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, SteepKeratometricAxisSequenceItem) for item in value): + raise ValueError("SteepKeratometricAxisSequence must be a list of SteepKeratometricAxisSequenceItem objects") + else: + self._SteepKeratometricAxisSequence = value + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.clear() + self._dataset.SteepKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_SteepKeratometricAxis(self, item: SteepKeratometricAxisSequenceItem): + if not isinstance(item, SteepKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of SteepKeratometricAxisSequenceItem") + self._SteepKeratometricAxisSequence.append(item) + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.append(item.to_dataset()) + + @property + def FlatKeratometricAxisSequence(self) -> Optional[List[FlatKeratometricAxisSequenceItem]]: + if "FlatKeratometricAxisSequence" in self._dataset: + if len(self._FlatKeratometricAxisSequence) == len(self._dataset.FlatKeratometricAxisSequence): + return self._FlatKeratometricAxisSequence + else: + return [FlatKeratometricAxisSequenceItem(x) for x in self._dataset.FlatKeratometricAxisSequence] + return None + + @FlatKeratometricAxisSequence.setter + def FlatKeratometricAxisSequence(self, value: Optional[List[FlatKeratometricAxisSequenceItem]]): + if value is None: + self._FlatKeratometricAxisSequence = [] + if "FlatKeratometricAxisSequence" in self._dataset: + del self._dataset.FlatKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, FlatKeratometricAxisSequenceItem) for item in value): + raise ValueError("FlatKeratometricAxisSequence must be a list of FlatKeratometricAxisSequenceItem objects") + else: + self._FlatKeratometricAxisSequence = value + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.clear() + self._dataset.FlatKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_FlatKeratometricAxis(self, item: FlatKeratometricAxisSequenceItem): + if not isinstance(item, FlatKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of FlatKeratometricAxisSequenceItem") + self._FlatKeratometricAxisSequence.append(item) + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.append(item.to_dataset()) + + @property + def CorneaMeasurementsSequence(self) -> Optional[List[CorneaMeasurementsSequenceItem]]: + if "CorneaMeasurementsSequence" in self._dataset: + if len(self._CorneaMeasurementsSequence) == len(self._dataset.CorneaMeasurementsSequence): + return self._CorneaMeasurementsSequence + else: + return [CorneaMeasurementsSequenceItem(x) for x in self._dataset.CorneaMeasurementsSequence] + return None + + @CorneaMeasurementsSequence.setter + def CorneaMeasurementsSequence(self, value: Optional[List[CorneaMeasurementsSequenceItem]]): + if value is None: + self._CorneaMeasurementsSequence = [] + if "CorneaMeasurementsSequence" in self._dataset: + del self._dataset.CorneaMeasurementsSequence + elif not isinstance(value, list) or not all(isinstance(item, CorneaMeasurementsSequenceItem) for item in value): + raise ValueError("CorneaMeasurementsSequence must be a list of CorneaMeasurementsSequenceItem objects") + else: + self._CorneaMeasurementsSequence = value + if "CorneaMeasurementsSequence" not in self._dataset: + self._dataset.CorneaMeasurementsSequence = pydicom.Sequence() + self._dataset.CorneaMeasurementsSequence.clear() + self._dataset.CorneaMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_CorneaMeasurements(self, item: CorneaMeasurementsSequenceItem): + if not isinstance(item, CorneaMeasurementsSequenceItem): + raise ValueError("Item must be an instance of CorneaMeasurementsSequenceItem") + self._CorneaMeasurementsSequence.append(item) + if "CorneaMeasurementsSequence" not in self._dataset: + self._dataset.CorneaMeasurementsSequence = pydicom.Sequence() + self._dataset.CorneaMeasurementsSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/intraocular_lens_calculations_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/intraocular_lens_calculations_right_eye_sequence_item.py new file mode 100644 index 0000000..98c0bd2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intraocular_lens_calculations_right_eye_sequence_item.py @@ -0,0 +1,784 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anterior_chamber_depth_sequence_item import AnteriorChamberDepthSequenceItem +from .calculation_comment_sequence_item import CalculationCommentSequenceItem +from .code_sequence_item import CodeSequenceItem +from .cornea_measurements_sequence_item import CorneaMeasurementsSequenceItem +from .corneal_size_sequence_item import CornealSizeSequenceItem +from .flat_keratometric_axis_sequence_item import FlatKeratometricAxisSequenceItem +from .iol_power_sequence_item import IOLPowerSequenceItem +from .lens_constant_sequence_item import LensConstantSequenceItem +from .lens_thickness_sequence_item import LensThicknessSequenceItem +from .ophthalmic_axial_length_sequence_item import OphthalmicAxialLengthSequenceItem +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .steep_keratometric_axis_sequence_item import SteepKeratometricAxisSequenceItem +from .surgically_induced_astigmatism_sequence_item import ( + SurgicallyInducedAstigmatismSequenceItem, +) +from .toric_iol_power_for_exact_emmetropia_sequence_item import ( + ToricIOLPowerForExactEmmetropiaSequenceItem, +) +from .toric_iol_power_for_exact_target_refraction_sequence_item import ( + ToricIOLPowerForExactTargetRefractionSequenceItem, +) + + +class IntraocularLensCalculationsRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._OphthalmicAxialLengthSequence: List[OphthalmicAxialLengthSequenceItem] = [] + self._IOLFormulaCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveSurgeryTypeCodeSequence: List[CodeSequenceItem] = [] + self._SurgicallyInducedAstigmatismSequence: List[SurgicallyInducedAstigmatismSequenceItem] = [] + self._ToricIOLPowerForExactEmmetropiaSequence: List[ToricIOLPowerForExactEmmetropiaSequenceItem] = [] + self._ToricIOLPowerForExactTargetRefractionSequence: List[ToricIOLPowerForExactTargetRefractionSequenceItem] = [] + self._IOLPowerSequence: List[IOLPowerSequenceItem] = [] + self._LensConstantSequence: List[LensConstantSequenceItem] = [] + self._KeratometryMeasurementTypeCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence: List[CodeSequenceItem] = [] + self._LensThicknessSequence: List[LensThicknessSequenceItem] = [] + self._AnteriorChamberDepthSequence: List[AnteriorChamberDepthSequenceItem] = [] + self._CalculationCommentSequence: List[CalculationCommentSequenceItem] = [] + self._CornealSizeSequence: List[CornealSizeSequenceItem] = [] + self._SteepKeratometricAxisSequence: List[SteepKeratometricAxisSequenceItem] = [] + self._FlatKeratometricAxisSequence: List[FlatKeratometricAxisSequenceItem] = [] + self._CorneaMeasurementsSequence: List[CorneaMeasurementsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthSequence(self) -> Optional[List[OphthalmicAxialLengthSequenceItem]]: + if "OphthalmicAxialLengthSequence" in self._dataset: + if len(self._OphthalmicAxialLengthSequence) == len(self._dataset.OphthalmicAxialLengthSequence): + return self._OphthalmicAxialLengthSequence + else: + return [OphthalmicAxialLengthSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthSequence] + return None + + @OphthalmicAxialLengthSequence.setter + def OphthalmicAxialLengthSequence(self, value: Optional[List[OphthalmicAxialLengthSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthSequence = [] + if "OphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all(isinstance(item, OphthalmicAxialLengthSequenceItem) for item in value): + raise ValueError("OphthalmicAxialLengthSequence must be a list of OphthalmicAxialLengthSequenceItem objects") + else: + self._OphthalmicAxialLengthSequence = value + if "OphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSequence.clear() + self._dataset.OphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLength(self, item: OphthalmicAxialLengthSequenceItem): + if not isinstance(item, OphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthSequenceItem") + self._OphthalmicAxialLengthSequence.append(item) + if "OphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSequence.append(item.to_dataset()) + + @property + def IOLFormulaCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IOLFormulaCodeSequence" in self._dataset: + if len(self._IOLFormulaCodeSequence) == len(self._dataset.IOLFormulaCodeSequence): + return self._IOLFormulaCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IOLFormulaCodeSequence] + return None + + @IOLFormulaCodeSequence.setter + def IOLFormulaCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IOLFormulaCodeSequence = [] + if "IOLFormulaCodeSequence" in self._dataset: + del self._dataset.IOLFormulaCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IOLFormulaCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IOLFormulaCodeSequence = value + if "IOLFormulaCodeSequence" not in self._dataset: + self._dataset.IOLFormulaCodeSequence = pydicom.Sequence() + self._dataset.IOLFormulaCodeSequence.clear() + self._dataset.IOLFormulaCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IOLFormulaCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IOLFormulaCodeSequence.append(item) + if "IOLFormulaCodeSequence" not in self._dataset: + self._dataset.IOLFormulaCodeSequence = pydicom.Sequence() + self._dataset.IOLFormulaCodeSequence.append(item.to_dataset()) + + @property + def IOLFormulaDetail(self) -> Optional[str]: + if "IOLFormulaDetail" in self._dataset: + return self._dataset.IOLFormulaDetail + return None + + @IOLFormulaDetail.setter + def IOLFormulaDetail(self, value: Optional[str]): + if value is None: + if "IOLFormulaDetail" in self._dataset: + del self._dataset.IOLFormulaDetail + else: + self._dataset.IOLFormulaDetail = value + + @property + def KeratometerIndex(self) -> Optional[float]: + if "KeratometerIndex" in self._dataset: + return self._dataset.KeratometerIndex + return None + + @KeratometerIndex.setter + def KeratometerIndex(self, value: Optional[float]): + if value is None: + if "KeratometerIndex" in self._dataset: + del self._dataset.KeratometerIndex + else: + self._dataset.KeratometerIndex = value + + @property + def TargetRefraction(self) -> Optional[float]: + if "TargetRefraction" in self._dataset: + return self._dataset.TargetRefraction + return None + + @TargetRefraction.setter + def TargetRefraction(self, value: Optional[float]): + if value is None: + if "TargetRefraction" in self._dataset: + del self._dataset.TargetRefraction + else: + self._dataset.TargetRefraction = value + + @property + def RefractiveProcedureOccurred(self) -> Optional[str]: + if "RefractiveProcedureOccurred" in self._dataset: + return self._dataset.RefractiveProcedureOccurred + return None + + @RefractiveProcedureOccurred.setter + def RefractiveProcedureOccurred(self, value: Optional[str]): + if value is None: + if "RefractiveProcedureOccurred" in self._dataset: + del self._dataset.RefractiveProcedureOccurred + else: + self._dataset.RefractiveProcedureOccurred = value + + @property + def RefractiveSurgeryTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RefractiveSurgeryTypeCodeSequence" in self._dataset: + if len(self._RefractiveSurgeryTypeCodeSequence) == len(self._dataset.RefractiveSurgeryTypeCodeSequence): + return self._RefractiveSurgeryTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RefractiveSurgeryTypeCodeSequence] + return None + + @RefractiveSurgeryTypeCodeSequence.setter + def RefractiveSurgeryTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RefractiveSurgeryTypeCodeSequence = [] + if "RefractiveSurgeryTypeCodeSequence" in self._dataset: + del self._dataset.RefractiveSurgeryTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RefractiveSurgeryTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RefractiveSurgeryTypeCodeSequence = value + if "RefractiveSurgeryTypeCodeSequence" not in self._dataset: + self._dataset.RefractiveSurgeryTypeCodeSequence = pydicom.Sequence() + self._dataset.RefractiveSurgeryTypeCodeSequence.clear() + self._dataset.RefractiveSurgeryTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveSurgeryTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RefractiveSurgeryTypeCodeSequence.append(item) + if "RefractiveSurgeryTypeCodeSequence" not in self._dataset: + self._dataset.RefractiveSurgeryTypeCodeSequence = pydicom.Sequence() + self._dataset.RefractiveSurgeryTypeCodeSequence.append(item.to_dataset()) + + @property + def SurgicallyInducedAstigmatismSequence(self) -> Optional[List[SurgicallyInducedAstigmatismSequenceItem]]: + if "SurgicallyInducedAstigmatismSequence" in self._dataset: + if len(self._SurgicallyInducedAstigmatismSequence) == len(self._dataset.SurgicallyInducedAstigmatismSequence): + return self._SurgicallyInducedAstigmatismSequence + else: + return [ + SurgicallyInducedAstigmatismSequenceItem(x) for x in self._dataset.SurgicallyInducedAstigmatismSequence + ] + return None + + @SurgicallyInducedAstigmatismSequence.setter + def SurgicallyInducedAstigmatismSequence(self, value: Optional[List[SurgicallyInducedAstigmatismSequenceItem]]): + if value is None: + self._SurgicallyInducedAstigmatismSequence = [] + if "SurgicallyInducedAstigmatismSequence" in self._dataset: + del self._dataset.SurgicallyInducedAstigmatismSequence + elif not isinstance(value, list) or not all( + isinstance(item, SurgicallyInducedAstigmatismSequenceItem) for item in value + ): + raise ValueError( + "SurgicallyInducedAstigmatismSequence must be a list of SurgicallyInducedAstigmatismSequenceItem objects" + ) + else: + self._SurgicallyInducedAstigmatismSequence = value + if "SurgicallyInducedAstigmatismSequence" not in self._dataset: + self._dataset.SurgicallyInducedAstigmatismSequence = pydicom.Sequence() + self._dataset.SurgicallyInducedAstigmatismSequence.clear() + self._dataset.SurgicallyInducedAstigmatismSequence.extend([item.to_dataset() for item in value]) + + def add_SurgicallyInducedAstigmatism(self, item: SurgicallyInducedAstigmatismSequenceItem): + if not isinstance(item, SurgicallyInducedAstigmatismSequenceItem): + raise ValueError("Item must be an instance of SurgicallyInducedAstigmatismSequenceItem") + self._SurgicallyInducedAstigmatismSequence.append(item) + if "SurgicallyInducedAstigmatismSequence" not in self._dataset: + self._dataset.SurgicallyInducedAstigmatismSequence = pydicom.Sequence() + self._dataset.SurgicallyInducedAstigmatismSequence.append(item.to_dataset()) + + @property + def TypeOfOpticalCorrection(self) -> Optional[str]: + if "TypeOfOpticalCorrection" in self._dataset: + return self._dataset.TypeOfOpticalCorrection + return None + + @TypeOfOpticalCorrection.setter + def TypeOfOpticalCorrection(self, value: Optional[str]): + if value is None: + if "TypeOfOpticalCorrection" in self._dataset: + del self._dataset.TypeOfOpticalCorrection + else: + self._dataset.TypeOfOpticalCorrection = value + + @property + def ToricIOLPowerForExactEmmetropiaSequence(self) -> Optional[List[ToricIOLPowerForExactEmmetropiaSequenceItem]]: + if "ToricIOLPowerForExactEmmetropiaSequence" in self._dataset: + if len(self._ToricIOLPowerForExactEmmetropiaSequence) == len( + self._dataset.ToricIOLPowerForExactEmmetropiaSequence + ): + return self._ToricIOLPowerForExactEmmetropiaSequence + else: + return [ + ToricIOLPowerForExactEmmetropiaSequenceItem(x) + for x in self._dataset.ToricIOLPowerForExactEmmetropiaSequence + ] + return None + + @ToricIOLPowerForExactEmmetropiaSequence.setter + def ToricIOLPowerForExactEmmetropiaSequence(self, value: Optional[List[ToricIOLPowerForExactEmmetropiaSequenceItem]]): + if value is None: + self._ToricIOLPowerForExactEmmetropiaSequence = [] + if "ToricIOLPowerForExactEmmetropiaSequence" in self._dataset: + del self._dataset.ToricIOLPowerForExactEmmetropiaSequence + elif not isinstance(value, list) or not all( + isinstance(item, ToricIOLPowerForExactEmmetropiaSequenceItem) for item in value + ): + raise ValueError( + "ToricIOLPowerForExactEmmetropiaSequence must be a list of ToricIOLPowerForExactEmmetropiaSequenceItem objects" + ) + else: + self._ToricIOLPowerForExactEmmetropiaSequence = value + if "ToricIOLPowerForExactEmmetropiaSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactEmmetropiaSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactEmmetropiaSequence.clear() + self._dataset.ToricIOLPowerForExactEmmetropiaSequence.extend([item.to_dataset() for item in value]) + + def add_ToricIOLPowerForExactEmmetropia(self, item: ToricIOLPowerForExactEmmetropiaSequenceItem): + if not isinstance(item, ToricIOLPowerForExactEmmetropiaSequenceItem): + raise ValueError("Item must be an instance of ToricIOLPowerForExactEmmetropiaSequenceItem") + self._ToricIOLPowerForExactEmmetropiaSequence.append(item) + if "ToricIOLPowerForExactEmmetropiaSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactEmmetropiaSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactEmmetropiaSequence.append(item.to_dataset()) + + @property + def ToricIOLPowerForExactTargetRefractionSequence( + self, + ) -> Optional[List[ToricIOLPowerForExactTargetRefractionSequenceItem]]: + if "ToricIOLPowerForExactTargetRefractionSequence" in self._dataset: + if len(self._ToricIOLPowerForExactTargetRefractionSequence) == len( + self._dataset.ToricIOLPowerForExactTargetRefractionSequence + ): + return self._ToricIOLPowerForExactTargetRefractionSequence + else: + return [ + ToricIOLPowerForExactTargetRefractionSequenceItem(x) + for x in self._dataset.ToricIOLPowerForExactTargetRefractionSequence + ] + return None + + @ToricIOLPowerForExactTargetRefractionSequence.setter + def ToricIOLPowerForExactTargetRefractionSequence( + self, value: Optional[List[ToricIOLPowerForExactTargetRefractionSequenceItem]] + ): + if value is None: + self._ToricIOLPowerForExactTargetRefractionSequence = [] + if "ToricIOLPowerForExactTargetRefractionSequence" in self._dataset: + del self._dataset.ToricIOLPowerForExactTargetRefractionSequence + elif not isinstance(value, list) or not all( + isinstance(item, ToricIOLPowerForExactTargetRefractionSequenceItem) for item in value + ): + raise ValueError( + "ToricIOLPowerForExactTargetRefractionSequence must be a list of" + " ToricIOLPowerForExactTargetRefractionSequenceItem objects" + ) + else: + self._ToricIOLPowerForExactTargetRefractionSequence = value + if "ToricIOLPowerForExactTargetRefractionSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactTargetRefractionSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactTargetRefractionSequence.clear() + self._dataset.ToricIOLPowerForExactTargetRefractionSequence.extend([item.to_dataset() for item in value]) + + def add_ToricIOLPowerForExactTargetRefraction(self, item: ToricIOLPowerForExactTargetRefractionSequenceItem): + if not isinstance(item, ToricIOLPowerForExactTargetRefractionSequenceItem): + raise ValueError("Item must be an instance of ToricIOLPowerForExactTargetRefractionSequenceItem") + self._ToricIOLPowerForExactTargetRefractionSequence.append(item) + if "ToricIOLPowerForExactTargetRefractionSequence" not in self._dataset: + self._dataset.ToricIOLPowerForExactTargetRefractionSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerForExactTargetRefractionSequence.append(item.to_dataset()) + + @property + def IOLPowerSequence(self) -> Optional[List[IOLPowerSequenceItem]]: + if "IOLPowerSequence" in self._dataset: + if len(self._IOLPowerSequence) == len(self._dataset.IOLPowerSequence): + return self._IOLPowerSequence + else: + return [IOLPowerSequenceItem(x) for x in self._dataset.IOLPowerSequence] + return None + + @IOLPowerSequence.setter + def IOLPowerSequence(self, value: Optional[List[IOLPowerSequenceItem]]): + if value is None: + self._IOLPowerSequence = [] + if "IOLPowerSequence" in self._dataset: + del self._dataset.IOLPowerSequence + elif not isinstance(value, list) or not all(isinstance(item, IOLPowerSequenceItem) for item in value): + raise ValueError("IOLPowerSequence must be a list of IOLPowerSequenceItem objects") + else: + self._IOLPowerSequence = value + if "IOLPowerSequence" not in self._dataset: + self._dataset.IOLPowerSequence = pydicom.Sequence() + self._dataset.IOLPowerSequence.clear() + self._dataset.IOLPowerSequence.extend([item.to_dataset() for item in value]) + + def add_IOLPower(self, item: IOLPowerSequenceItem): + if not isinstance(item, IOLPowerSequenceItem): + raise ValueError("Item must be an instance of IOLPowerSequenceItem") + self._IOLPowerSequence.append(item) + if "IOLPowerSequence" not in self._dataset: + self._dataset.IOLPowerSequence = pydicom.Sequence() + self._dataset.IOLPowerSequence.append(item.to_dataset()) + + @property + def LensConstantSequence(self) -> Optional[List[LensConstantSequenceItem]]: + if "LensConstantSequence" in self._dataset: + if len(self._LensConstantSequence) == len(self._dataset.LensConstantSequence): + return self._LensConstantSequence + else: + return [LensConstantSequenceItem(x) for x in self._dataset.LensConstantSequence] + return None + + @LensConstantSequence.setter + def LensConstantSequence(self, value: Optional[List[LensConstantSequenceItem]]): + if value is None: + self._LensConstantSequence = [] + if "LensConstantSequence" in self._dataset: + del self._dataset.LensConstantSequence + elif not isinstance(value, list) or not all(isinstance(item, LensConstantSequenceItem) for item in value): + raise ValueError("LensConstantSequence must be a list of LensConstantSequenceItem objects") + else: + self._LensConstantSequence = value + if "LensConstantSequence" not in self._dataset: + self._dataset.LensConstantSequence = pydicom.Sequence() + self._dataset.LensConstantSequence.clear() + self._dataset.LensConstantSequence.extend([item.to_dataset() for item in value]) + + def add_LensConstant(self, item: LensConstantSequenceItem): + if not isinstance(item, LensConstantSequenceItem): + raise ValueError("Item must be an instance of LensConstantSequenceItem") + self._LensConstantSequence.append(item) + if "LensConstantSequence" not in self._dataset: + self._dataset.LensConstantSequence = pydicom.Sequence() + self._dataset.LensConstantSequence.append(item.to_dataset()) + + @property + def IOLManufacturer(self) -> Optional[str]: + if "IOLManufacturer" in self._dataset: + return self._dataset.IOLManufacturer + return None + + @IOLManufacturer.setter + def IOLManufacturer(self, value: Optional[str]): + if value is None: + if "IOLManufacturer" in self._dataset: + del self._dataset.IOLManufacturer + else: + self._dataset.IOLManufacturer = value + + @property + def ImplantName(self) -> Optional[str]: + if "ImplantName" in self._dataset: + return self._dataset.ImplantName + return None + + @ImplantName.setter + def ImplantName(self, value: Optional[str]): + if value is None: + if "ImplantName" in self._dataset: + del self._dataset.ImplantName + else: + self._dataset.ImplantName = value + + @property + def KeratometryMeasurementTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "KeratometryMeasurementTypeCodeSequence" in self._dataset: + if len(self._KeratometryMeasurementTypeCodeSequence) == len(self._dataset.KeratometryMeasurementTypeCodeSequence): + return self._KeratometryMeasurementTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.KeratometryMeasurementTypeCodeSequence] + return None + + @KeratometryMeasurementTypeCodeSequence.setter + def KeratometryMeasurementTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._KeratometryMeasurementTypeCodeSequence = [] + if "KeratometryMeasurementTypeCodeSequence" in self._dataset: + del self._dataset.KeratometryMeasurementTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("KeratometryMeasurementTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._KeratometryMeasurementTypeCodeSequence = value + if "KeratometryMeasurementTypeCodeSequence" not in self._dataset: + self._dataset.KeratometryMeasurementTypeCodeSequence = pydicom.Sequence() + self._dataset.KeratometryMeasurementTypeCodeSequence.clear() + self._dataset.KeratometryMeasurementTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_KeratometryMeasurementTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._KeratometryMeasurementTypeCodeSequence.append(item) + if "KeratometryMeasurementTypeCodeSequence" not in self._dataset: + self._dataset.KeratometryMeasurementTypeCodeSequence = pydicom.Sequence() + self._dataset.KeratometryMeasurementTypeCodeSequence.append(item.to_dataset()) + + @property + def RefractiveErrorBeforeRefractiveSurgeryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" in self._dataset: + if len(self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence) == len( + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence + ): + return self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence] + return None + + @RefractiveErrorBeforeRefractiveSurgeryCodeSequence.setter + def RefractiveErrorBeforeRefractiveSurgeryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence = [] + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" in self._dataset: + del self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RefractiveErrorBeforeRefractiveSurgeryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence = value + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" not in self._dataset: + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence = pydicom.Sequence() + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence.clear() + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveErrorBeforeRefractiveSurgeryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RefractiveErrorBeforeRefractiveSurgeryCodeSequence.append(item) + if "RefractiveErrorBeforeRefractiveSurgeryCodeSequence" not in self._dataset: + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence = pydicom.Sequence() + self._dataset.RefractiveErrorBeforeRefractiveSurgeryCodeSequence.append(item.to_dataset()) + + @property + def IOLPowerForExactEmmetropia(self) -> Optional[float]: + if "IOLPowerForExactEmmetropia" in self._dataset: + return self._dataset.IOLPowerForExactEmmetropia + return None + + @IOLPowerForExactEmmetropia.setter + def IOLPowerForExactEmmetropia(self, value: Optional[float]): + if value is None: + if "IOLPowerForExactEmmetropia" in self._dataset: + del self._dataset.IOLPowerForExactEmmetropia + else: + self._dataset.IOLPowerForExactEmmetropia = value + + @property + def IOLPowerForExactTargetRefraction(self) -> Optional[float]: + if "IOLPowerForExactTargetRefraction" in self._dataset: + return self._dataset.IOLPowerForExactTargetRefraction + return None + + @IOLPowerForExactTargetRefraction.setter + def IOLPowerForExactTargetRefraction(self, value: Optional[float]): + if value is None: + if "IOLPowerForExactTargetRefraction" in self._dataset: + del self._dataset.IOLPowerForExactTargetRefraction + else: + self._dataset.IOLPowerForExactTargetRefraction = value + + @property + def LensThicknessSequence(self) -> Optional[List[LensThicknessSequenceItem]]: + if "LensThicknessSequence" in self._dataset: + if len(self._LensThicknessSequence) == len(self._dataset.LensThicknessSequence): + return self._LensThicknessSequence + else: + return [LensThicknessSequenceItem(x) for x in self._dataset.LensThicknessSequence] + return None + + @LensThicknessSequence.setter + def LensThicknessSequence(self, value: Optional[List[LensThicknessSequenceItem]]): + if value is None: + self._LensThicknessSequence = [] + if "LensThicknessSequence" in self._dataset: + del self._dataset.LensThicknessSequence + elif not isinstance(value, list) or not all(isinstance(item, LensThicknessSequenceItem) for item in value): + raise ValueError("LensThicknessSequence must be a list of LensThicknessSequenceItem objects") + else: + self._LensThicknessSequence = value + if "LensThicknessSequence" not in self._dataset: + self._dataset.LensThicknessSequence = pydicom.Sequence() + self._dataset.LensThicknessSequence.clear() + self._dataset.LensThicknessSequence.extend([item.to_dataset() for item in value]) + + def add_LensThickness(self, item: LensThicknessSequenceItem): + if not isinstance(item, LensThicknessSequenceItem): + raise ValueError("Item must be an instance of LensThicknessSequenceItem") + self._LensThicknessSequence.append(item) + if "LensThicknessSequence" not in self._dataset: + self._dataset.LensThicknessSequence = pydicom.Sequence() + self._dataset.LensThicknessSequence.append(item.to_dataset()) + + @property + def AnteriorChamberDepthSequence(self) -> Optional[List[AnteriorChamberDepthSequenceItem]]: + if "AnteriorChamberDepthSequence" in self._dataset: + if len(self._AnteriorChamberDepthSequence) == len(self._dataset.AnteriorChamberDepthSequence): + return self._AnteriorChamberDepthSequence + else: + return [AnteriorChamberDepthSequenceItem(x) for x in self._dataset.AnteriorChamberDepthSequence] + return None + + @AnteriorChamberDepthSequence.setter + def AnteriorChamberDepthSequence(self, value: Optional[List[AnteriorChamberDepthSequenceItem]]): + if value is None: + self._AnteriorChamberDepthSequence = [] + if "AnteriorChamberDepthSequence" in self._dataset: + del self._dataset.AnteriorChamberDepthSequence + elif not isinstance(value, list) or not all(isinstance(item, AnteriorChamberDepthSequenceItem) for item in value): + raise ValueError("AnteriorChamberDepthSequence must be a list of AnteriorChamberDepthSequenceItem objects") + else: + self._AnteriorChamberDepthSequence = value + if "AnteriorChamberDepthSequence" not in self._dataset: + self._dataset.AnteriorChamberDepthSequence = pydicom.Sequence() + self._dataset.AnteriorChamberDepthSequence.clear() + self._dataset.AnteriorChamberDepthSequence.extend([item.to_dataset() for item in value]) + + def add_AnteriorChamberDepth(self, item: AnteriorChamberDepthSequenceItem): + if not isinstance(item, AnteriorChamberDepthSequenceItem): + raise ValueError("Item must be an instance of AnteriorChamberDepthSequenceItem") + self._AnteriorChamberDepthSequence.append(item) + if "AnteriorChamberDepthSequence" not in self._dataset: + self._dataset.AnteriorChamberDepthSequence = pydicom.Sequence() + self._dataset.AnteriorChamberDepthSequence.append(item.to_dataset()) + + @property + def CalculationCommentSequence(self) -> Optional[List[CalculationCommentSequenceItem]]: + if "CalculationCommentSequence" in self._dataset: + if len(self._CalculationCommentSequence) == len(self._dataset.CalculationCommentSequence): + return self._CalculationCommentSequence + else: + return [CalculationCommentSequenceItem(x) for x in self._dataset.CalculationCommentSequence] + return None + + @CalculationCommentSequence.setter + def CalculationCommentSequence(self, value: Optional[List[CalculationCommentSequenceItem]]): + if value is None: + self._CalculationCommentSequence = [] + if "CalculationCommentSequence" in self._dataset: + del self._dataset.CalculationCommentSequence + elif not isinstance(value, list) or not all(isinstance(item, CalculationCommentSequenceItem) for item in value): + raise ValueError("CalculationCommentSequence must be a list of CalculationCommentSequenceItem objects") + else: + self._CalculationCommentSequence = value + if "CalculationCommentSequence" not in self._dataset: + self._dataset.CalculationCommentSequence = pydicom.Sequence() + self._dataset.CalculationCommentSequence.clear() + self._dataset.CalculationCommentSequence.extend([item.to_dataset() for item in value]) + + def add_CalculationComment(self, item: CalculationCommentSequenceItem): + if not isinstance(item, CalculationCommentSequenceItem): + raise ValueError("Item must be an instance of CalculationCommentSequenceItem") + self._CalculationCommentSequence.append(item) + if "CalculationCommentSequence" not in self._dataset: + self._dataset.CalculationCommentSequence = pydicom.Sequence() + self._dataset.CalculationCommentSequence.append(item.to_dataset()) + + @property + def CornealSizeSequence(self) -> Optional[List[CornealSizeSequenceItem]]: + if "CornealSizeSequence" in self._dataset: + if len(self._CornealSizeSequence) == len(self._dataset.CornealSizeSequence): + return self._CornealSizeSequence + else: + return [CornealSizeSequenceItem(x) for x in self._dataset.CornealSizeSequence] + return None + + @CornealSizeSequence.setter + def CornealSizeSequence(self, value: Optional[List[CornealSizeSequenceItem]]): + if value is None: + self._CornealSizeSequence = [] + if "CornealSizeSequence" in self._dataset: + del self._dataset.CornealSizeSequence + elif not isinstance(value, list) or not all(isinstance(item, CornealSizeSequenceItem) for item in value): + raise ValueError("CornealSizeSequence must be a list of CornealSizeSequenceItem objects") + else: + self._CornealSizeSequence = value + if "CornealSizeSequence" not in self._dataset: + self._dataset.CornealSizeSequence = pydicom.Sequence() + self._dataset.CornealSizeSequence.clear() + self._dataset.CornealSizeSequence.extend([item.to_dataset() for item in value]) + + def add_CornealSize(self, item: CornealSizeSequenceItem): + if not isinstance(item, CornealSizeSequenceItem): + raise ValueError("Item must be an instance of CornealSizeSequenceItem") + self._CornealSizeSequence.append(item) + if "CornealSizeSequence" not in self._dataset: + self._dataset.CornealSizeSequence = pydicom.Sequence() + self._dataset.CornealSizeSequence.append(item.to_dataset()) + + @property + def SteepKeratometricAxisSequence(self) -> Optional[List[SteepKeratometricAxisSequenceItem]]: + if "SteepKeratometricAxisSequence" in self._dataset: + if len(self._SteepKeratometricAxisSequence) == len(self._dataset.SteepKeratometricAxisSequence): + return self._SteepKeratometricAxisSequence + else: + return [SteepKeratometricAxisSequenceItem(x) for x in self._dataset.SteepKeratometricAxisSequence] + return None + + @SteepKeratometricAxisSequence.setter + def SteepKeratometricAxisSequence(self, value: Optional[List[SteepKeratometricAxisSequenceItem]]): + if value is None: + self._SteepKeratometricAxisSequence = [] + if "SteepKeratometricAxisSequence" in self._dataset: + del self._dataset.SteepKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, SteepKeratometricAxisSequenceItem) for item in value): + raise ValueError("SteepKeratometricAxisSequence must be a list of SteepKeratometricAxisSequenceItem objects") + else: + self._SteepKeratometricAxisSequence = value + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.clear() + self._dataset.SteepKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_SteepKeratometricAxis(self, item: SteepKeratometricAxisSequenceItem): + if not isinstance(item, SteepKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of SteepKeratometricAxisSequenceItem") + self._SteepKeratometricAxisSequence.append(item) + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.append(item.to_dataset()) + + @property + def FlatKeratometricAxisSequence(self) -> Optional[List[FlatKeratometricAxisSequenceItem]]: + if "FlatKeratometricAxisSequence" in self._dataset: + if len(self._FlatKeratometricAxisSequence) == len(self._dataset.FlatKeratometricAxisSequence): + return self._FlatKeratometricAxisSequence + else: + return [FlatKeratometricAxisSequenceItem(x) for x in self._dataset.FlatKeratometricAxisSequence] + return None + + @FlatKeratometricAxisSequence.setter + def FlatKeratometricAxisSequence(self, value: Optional[List[FlatKeratometricAxisSequenceItem]]): + if value is None: + self._FlatKeratometricAxisSequence = [] + if "FlatKeratometricAxisSequence" in self._dataset: + del self._dataset.FlatKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, FlatKeratometricAxisSequenceItem) for item in value): + raise ValueError("FlatKeratometricAxisSequence must be a list of FlatKeratometricAxisSequenceItem objects") + else: + self._FlatKeratometricAxisSequence = value + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.clear() + self._dataset.FlatKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_FlatKeratometricAxis(self, item: FlatKeratometricAxisSequenceItem): + if not isinstance(item, FlatKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of FlatKeratometricAxisSequenceItem") + self._FlatKeratometricAxisSequence.append(item) + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.append(item.to_dataset()) + + @property + def CorneaMeasurementsSequence(self) -> Optional[List[CorneaMeasurementsSequenceItem]]: + if "CorneaMeasurementsSequence" in self._dataset: + if len(self._CorneaMeasurementsSequence) == len(self._dataset.CorneaMeasurementsSequence): + return self._CorneaMeasurementsSequence + else: + return [CorneaMeasurementsSequenceItem(x) for x in self._dataset.CorneaMeasurementsSequence] + return None + + @CorneaMeasurementsSequence.setter + def CorneaMeasurementsSequence(self, value: Optional[List[CorneaMeasurementsSequenceItem]]): + if value is None: + self._CorneaMeasurementsSequence = [] + if "CorneaMeasurementsSequence" in self._dataset: + del self._dataset.CorneaMeasurementsSequence + elif not isinstance(value, list) or not all(isinstance(item, CorneaMeasurementsSequenceItem) for item in value): + raise ValueError("CorneaMeasurementsSequence must be a list of CorneaMeasurementsSequenceItem objects") + else: + self._CorneaMeasurementsSequence = value + if "CorneaMeasurementsSequence" not in self._dataset: + self._dataset.CorneaMeasurementsSequence = pydicom.Sequence() + self._dataset.CorneaMeasurementsSequence.clear() + self._dataset.CorneaMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_CorneaMeasurements(self, item: CorneaMeasurementsSequenceItem): + if not isinstance(item, CorneaMeasurementsSequenceItem): + raise ValueError("Item must be an instance of CorneaMeasurementsSequenceItem") + self._CorneaMeasurementsSequence.append(item) + if "CorneaMeasurementsSequence" not in self._dataset: + self._dataset.CorneaMeasurementsSequence = pydicom.Sequence() + self._dataset.CorneaMeasurementsSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/intravascular_frame_content_sequence_item.py b/tdwii_plus_examples/domain_model/intravascular_frame_content_sequence_item.py new file mode 100644 index 0000000..62763dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/intravascular_frame_content_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IntravascularFrameContentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IntravascularLongitudinalDistance(self) -> Optional[float]: + if "IntravascularLongitudinalDistance" in self._dataset: + return self._dataset.IntravascularLongitudinalDistance + return None + + @IntravascularLongitudinalDistance.setter + def IntravascularLongitudinalDistance(self, value: Optional[float]): + if value is None: + if "IntravascularLongitudinalDistance" in self._dataset: + del self._dataset.IntravascularLongitudinalDistance + else: + self._dataset.IntravascularLongitudinalDistance = value + + @property + def SeamLineLocation(self) -> Optional[float]: + if "SeamLineLocation" in self._dataset: + return self._dataset.SeamLineLocation + return None + + @SeamLineLocation.setter + def SeamLineLocation(self, value: Optional[float]): + if value is None: + if "SeamLineLocation" in self._dataset: + del self._dataset.SeamLineLocation + else: + self._dataset.SeamLineLocation = value diff --git a/tdwii_plus_examples/domain_model/intravascular_oct_frame_content_sequence_item.py b/tdwii_plus_examples/domain_model/intravascular_oct_frame_content_sequence_item.py new file mode 100644 index 0000000..2fd0f75 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intravascular_oct_frame_content_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IntravascularOCTFrameContentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OCTZOffsetCorrection(self) -> Optional[int]: + if "OCTZOffsetCorrection" in self._dataset: + return self._dataset.OCTZOffsetCorrection + return None + + @OCTZOffsetCorrection.setter + def OCTZOffsetCorrection(self, value: Optional[int]): + if value is None: + if "OCTZOffsetCorrection" in self._dataset: + del self._dataset.OCTZOffsetCorrection + else: + self._dataset.OCTZOffsetCorrection = value + + @property + def SeamLineIndex(self) -> Optional[int]: + if "SeamLineIndex" in self._dataset: + return self._dataset.SeamLineIndex + return None + + @SeamLineIndex.setter + def SeamLineIndex(self, value: Optional[int]): + if value is None: + if "SeamLineIndex" in self._dataset: + del self._dataset.SeamLineIndex + else: + self._dataset.SeamLineIndex = value + + @property + def NumberOfPaddedALines(self) -> Optional[int]: + if "NumberOfPaddedALines" in self._dataset: + return self._dataset.NumberOfPaddedALines + return None + + @NumberOfPaddedALines.setter + def NumberOfPaddedALines(self, value: Optional[int]): + if value is None: + if "NumberOfPaddedALines" in self._dataset: + del self._dataset.NumberOfPaddedALines + else: + self._dataset.NumberOfPaddedALines = value diff --git a/tdwii_plus_examples/domain_model/intravascular_oct_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/intravascular_oct_frame_type_sequence_item.py new file mode 100644 index 0000000..015cde2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intravascular_oct_frame_type_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IntravascularOCTFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value diff --git a/tdwii_plus_examples/domain_model/intravascular_optical_coherence_tomography_image.py b/tdwii_plus_examples/domain_model/intravascular_optical_coherence_tomography_image.py new file mode 100644 index 0000000..c7df3e7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/intravascular_optical_coherence_tomography_image.py @@ -0,0 +1,5938 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mode_of_percutaneous_access_sequence_item import ( + ModeOfPercutaneousAccessSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class IntravascularOpticalCoherenceTomographyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ModeOfPercutaneousAccessSequence: List[ModeOfPercutaneousAccessSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ReferencedColorPaletteInstanceUID(self) -> Optional[str]: + if "ReferencedColorPaletteInstanceUID" in self._dataset: + return self._dataset.ReferencedColorPaletteInstanceUID + return None + + @ReferencedColorPaletteInstanceUID.setter + def ReferencedColorPaletteInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedColorPaletteInstanceUID" in self._dataset: + del self._dataset.ReferencedColorPaletteInstanceUID + else: + self._dataset.ReferencedColorPaletteInstanceUID = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def InterpolationType(self) -> Optional[str]: + if "InterpolationType" in self._dataset: + return self._dataset.InterpolationType + return None + + @InterpolationType.setter + def InterpolationType(self, value: Optional[str]): + if value is None: + if "InterpolationType" in self._dataset: + del self._dataset.InterpolationType + else: + self._dataset.InterpolationType = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def ALinePixelSpacing(self) -> Optional[float]: + if "ALinePixelSpacing" in self._dataset: + return self._dataset.ALinePixelSpacing + return None + + @ALinePixelSpacing.setter + def ALinePixelSpacing(self, value: Optional[float]): + if value is None: + if "ALinePixelSpacing" in self._dataset: + del self._dataset.ALinePixelSpacing + else: + self._dataset.ALinePixelSpacing = value + + @property + def OCTZOffsetApplied(self) -> Optional[str]: + if "OCTZOffsetApplied" in self._dataset: + return self._dataset.OCTZOffsetApplied + return None + + @OCTZOffsetApplied.setter + def OCTZOffsetApplied(self, value: Optional[str]): + if value is None: + if "OCTZOffsetApplied" in self._dataset: + del self._dataset.OCTZOffsetApplied + else: + self._dataset.OCTZOffsetApplied = value + + @property + def FirstALineLocation(self) -> Optional[float]: + if "FirstALineLocation" in self._dataset: + return self._dataset.FirstALineLocation + return None + + @FirstALineLocation.setter + def FirstALineLocation(self, value: Optional[float]): + if value is None: + if "FirstALineLocation" in self._dataset: + del self._dataset.FirstALineLocation + else: + self._dataset.FirstALineLocation = value + + @property + def RefractiveIndexApplied(self) -> Optional[str]: + if "RefractiveIndexApplied" in self._dataset: + return self._dataset.RefractiveIndexApplied + return None + + @RefractiveIndexApplied.setter + def RefractiveIndexApplied(self, value: Optional[str]): + if value is None: + if "RefractiveIndexApplied" in self._dataset: + del self._dataset.RefractiveIndexApplied + else: + self._dataset.RefractiveIndexApplied = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def IVUSAcquisition(self) -> Optional[str]: + if "IVUSAcquisition" in self._dataset: + return self._dataset.IVUSAcquisition + return None + + @IVUSAcquisition.setter + def IVUSAcquisition(self, value: Optional[str]): + if value is None: + if "IVUSAcquisition" in self._dataset: + del self._dataset.IVUSAcquisition + else: + self._dataset.IVUSAcquisition = value + + @property + def IVUSPullbackRate(self) -> Optional[Decimal]: + if "IVUSPullbackRate" in self._dataset: + return self._dataset.IVUSPullbackRate + return None + + @IVUSPullbackRate.setter + def IVUSPullbackRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSPullbackRate" in self._dataset: + del self._dataset.IVUSPullbackRate + else: + self._dataset.IVUSPullbackRate = value + + @property + def IVUSPullbackStartFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStartFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStartFrameNumber + return None + + @IVUSPullbackStartFrameNumber.setter + def IVUSPullbackStartFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStartFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStartFrameNumber + else: + self._dataset.IVUSPullbackStartFrameNumber = value + + @property + def IVUSPullbackStopFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStopFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStopFrameNumber + return None + + @IVUSPullbackStopFrameNumber.setter + def IVUSPullbackStopFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStopFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStopFrameNumber + else: + self._dataset.IVUSPullbackStopFrameNumber = value + + @property + def CatheterRotationalRate(self) -> Optional[float]: + if "CatheterRotationalRate" in self._dataset: + return self._dataset.CatheterRotationalRate + return None + + @CatheterRotationalRate.setter + def CatheterRotationalRate(self, value: Optional[float]): + if value is None: + if "CatheterRotationalRate" in self._dataset: + del self._dataset.CatheterRotationalRate + else: + self._dataset.CatheterRotationalRate = value + + @property + def ModeOfPercutaneousAccessSequence(self) -> Optional[List[ModeOfPercutaneousAccessSequenceItem]]: + if "ModeOfPercutaneousAccessSequence" in self._dataset: + if len(self._ModeOfPercutaneousAccessSequence) == len(self._dataset.ModeOfPercutaneousAccessSequence): + return self._ModeOfPercutaneousAccessSequence + else: + return [ModeOfPercutaneousAccessSequenceItem(x) for x in self._dataset.ModeOfPercutaneousAccessSequence] + return None + + @ModeOfPercutaneousAccessSequence.setter + def ModeOfPercutaneousAccessSequence(self, value: Optional[List[ModeOfPercutaneousAccessSequenceItem]]): + if value is None: + self._ModeOfPercutaneousAccessSequence = [] + if "ModeOfPercutaneousAccessSequence" in self._dataset: + del self._dataset.ModeOfPercutaneousAccessSequence + elif not isinstance(value, list) or not all(isinstance(item, ModeOfPercutaneousAccessSequenceItem) for item in value): + raise ValueError("ModeOfPercutaneousAccessSequence must be a list of ModeOfPercutaneousAccessSequenceItem objects") + else: + self._ModeOfPercutaneousAccessSequence = value + if "ModeOfPercutaneousAccessSequence" not in self._dataset: + self._dataset.ModeOfPercutaneousAccessSequence = pydicom.Sequence() + self._dataset.ModeOfPercutaneousAccessSequence.clear() + self._dataset.ModeOfPercutaneousAccessSequence.extend([item.to_dataset() for item in value]) + + def add_ModeOfPercutaneousAccess(self, item: ModeOfPercutaneousAccessSequenceItem): + if not isinstance(item, ModeOfPercutaneousAccessSequenceItem): + raise ValueError("Item must be an instance of ModeOfPercutaneousAccessSequenceItem") + self._ModeOfPercutaneousAccessSequence.append(item) + if "ModeOfPercutaneousAccessSequence" not in self._dataset: + self._dataset.ModeOfPercutaneousAccessSequence = pydicom.Sequence() + self._dataset.ModeOfPercutaneousAccessSequence.append(item.to_dataset()) + + @property + def CatheterDirectionOfRotation(self) -> Optional[str]: + if "CatheterDirectionOfRotation" in self._dataset: + return self._dataset.CatheterDirectionOfRotation + return None + + @CatheterDirectionOfRotation.setter + def CatheterDirectionOfRotation(self, value: Optional[str]): + if value is None: + if "CatheterDirectionOfRotation" in self._dataset: + del self._dataset.CatheterDirectionOfRotation + else: + self._dataset.CatheterDirectionOfRotation = value + + @property + def OCTFocalDistance(self) -> Optional[float]: + if "OCTFocalDistance" in self._dataset: + return self._dataset.OCTFocalDistance + return None + + @OCTFocalDistance.setter + def OCTFocalDistance(self, value: Optional[float]): + if value is None: + if "OCTFocalDistance" in self._dataset: + del self._dataset.OCTFocalDistance + else: + self._dataset.OCTFocalDistance = value + + @property + def BeamSpotSize(self) -> Optional[float]: + if "BeamSpotSize" in self._dataset: + return self._dataset.BeamSpotSize + return None + + @BeamSpotSize.setter + def BeamSpotSize(self, value: Optional[float]): + if value is None: + if "BeamSpotSize" in self._dataset: + del self._dataset.BeamSpotSize + else: + self._dataset.BeamSpotSize = value + + @property + def EffectiveRefractiveIndex(self) -> Optional[float]: + if "EffectiveRefractiveIndex" in self._dataset: + return self._dataset.EffectiveRefractiveIndex + return None + + @EffectiveRefractiveIndex.setter + def EffectiveRefractiveIndex(self, value: Optional[float]): + if value is None: + if "EffectiveRefractiveIndex" in self._dataset: + del self._dataset.EffectiveRefractiveIndex + else: + self._dataset.EffectiveRefractiveIndex = value + + @property + def OCTAcquisitionDomain(self) -> Optional[str]: + if "OCTAcquisitionDomain" in self._dataset: + return self._dataset.OCTAcquisitionDomain + return None + + @OCTAcquisitionDomain.setter + def OCTAcquisitionDomain(self, value: Optional[str]): + if value is None: + if "OCTAcquisitionDomain" in self._dataset: + del self._dataset.OCTAcquisitionDomain + else: + self._dataset.OCTAcquisitionDomain = value + + @property + def OCTOpticalCenterWavelength(self) -> Optional[float]: + if "OCTOpticalCenterWavelength" in self._dataset: + return self._dataset.OCTOpticalCenterWavelength + return None + + @OCTOpticalCenterWavelength.setter + def OCTOpticalCenterWavelength(self, value: Optional[float]): + if value is None: + if "OCTOpticalCenterWavelength" in self._dataset: + del self._dataset.OCTOpticalCenterWavelength + else: + self._dataset.OCTOpticalCenterWavelength = value + + @property + def AxialResolution(self) -> Optional[float]: + if "AxialResolution" in self._dataset: + return self._dataset.AxialResolution + return None + + @AxialResolution.setter + def AxialResolution(self, value: Optional[float]): + if value is None: + if "AxialResolution" in self._dataset: + del self._dataset.AxialResolution + else: + self._dataset.AxialResolution = value + + @property + def RangingDepth(self) -> Optional[float]: + if "RangingDepth" in self._dataset: + return self._dataset.RangingDepth + return None + + @RangingDepth.setter + def RangingDepth(self, value: Optional[float]): + if value is None: + if "RangingDepth" in self._dataset: + del self._dataset.RangingDepth + else: + self._dataset.RangingDepth = value + + @property + def ALineRate(self) -> Optional[float]: + if "ALineRate" in self._dataset: + return self._dataset.ALineRate + return None + + @ALineRate.setter + def ALineRate(self, value: Optional[float]): + if value is None: + if "ALineRate" in self._dataset: + del self._dataset.ALineRate + else: + self._dataset.ALineRate = value + + @property + def ALinesPerFrame(self) -> Optional[int]: + if "ALinesPerFrame" in self._dataset: + return self._dataset.ALinesPerFrame + return None + + @ALinesPerFrame.setter + def ALinesPerFrame(self, value: Optional[int]): + if value is None: + if "ALinesPerFrame" in self._dataset: + del self._dataset.ALinesPerFrame + else: + self._dataset.ALinesPerFrame = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def PresentationIntentType(self) -> Optional[str]: + if "PresentationIntentType" in self._dataset: + return self._dataset.PresentationIntentType + return None + + @PresentationIntentType.setter + def PresentationIntentType(self, value: Optional[str]): + if value is None: + if "PresentationIntentType" in self._dataset: + del self._dataset.PresentationIntentType + else: + self._dataset.PresentationIntentType = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value diff --git a/tdwii_plus_examples/domain_model/iol_power_sequence_item.py b/tdwii_plus_examples/domain_model/iol_power_sequence_item.py new file mode 100644 index 0000000..d94ead6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/iol_power_sequence_item.py @@ -0,0 +1,136 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .predicted_toric_error_sequence_item import PredictedToricErrorSequenceItem +from .toric_iol_power_sequence_item import ToricIOLPowerSequenceItem + + +class IOLPowerSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ToricIOLPowerSequence: List[ToricIOLPowerSequenceItem] = [] + self._PredictedToricErrorSequence: List[PredictedToricErrorSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ToricIOLPowerSequence(self) -> Optional[List[ToricIOLPowerSequenceItem]]: + if "ToricIOLPowerSequence" in self._dataset: + if len(self._ToricIOLPowerSequence) == len(self._dataset.ToricIOLPowerSequence): + return self._ToricIOLPowerSequence + else: + return [ToricIOLPowerSequenceItem(x) for x in self._dataset.ToricIOLPowerSequence] + return None + + @ToricIOLPowerSequence.setter + def ToricIOLPowerSequence(self, value: Optional[List[ToricIOLPowerSequenceItem]]): + if value is None: + self._ToricIOLPowerSequence = [] + if "ToricIOLPowerSequence" in self._dataset: + del self._dataset.ToricIOLPowerSequence + elif not isinstance(value, list) or not all(isinstance(item, ToricIOLPowerSequenceItem) for item in value): + raise ValueError("ToricIOLPowerSequence must be a list of ToricIOLPowerSequenceItem objects") + else: + self._ToricIOLPowerSequence = value + if "ToricIOLPowerSequence" not in self._dataset: + self._dataset.ToricIOLPowerSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerSequence.clear() + self._dataset.ToricIOLPowerSequence.extend([item.to_dataset() for item in value]) + + def add_ToricIOLPower(self, item: ToricIOLPowerSequenceItem): + if not isinstance(item, ToricIOLPowerSequenceItem): + raise ValueError("Item must be an instance of ToricIOLPowerSequenceItem") + self._ToricIOLPowerSequence.append(item) + if "ToricIOLPowerSequence" not in self._dataset: + self._dataset.ToricIOLPowerSequence = pydicom.Sequence() + self._dataset.ToricIOLPowerSequence.append(item.to_dataset()) + + @property + def PredictedToricErrorSequence(self) -> Optional[List[PredictedToricErrorSequenceItem]]: + if "PredictedToricErrorSequence" in self._dataset: + if len(self._PredictedToricErrorSequence) == len(self._dataset.PredictedToricErrorSequence): + return self._PredictedToricErrorSequence + else: + return [PredictedToricErrorSequenceItem(x) for x in self._dataset.PredictedToricErrorSequence] + return None + + @PredictedToricErrorSequence.setter + def PredictedToricErrorSequence(self, value: Optional[List[PredictedToricErrorSequenceItem]]): + if value is None: + self._PredictedToricErrorSequence = [] + if "PredictedToricErrorSequence" in self._dataset: + del self._dataset.PredictedToricErrorSequence + elif not isinstance(value, list) or not all(isinstance(item, PredictedToricErrorSequenceItem) for item in value): + raise ValueError("PredictedToricErrorSequence must be a list of PredictedToricErrorSequenceItem objects") + else: + self._PredictedToricErrorSequence = value + if "PredictedToricErrorSequence" not in self._dataset: + self._dataset.PredictedToricErrorSequence = pydicom.Sequence() + self._dataset.PredictedToricErrorSequence.clear() + self._dataset.PredictedToricErrorSequence.extend([item.to_dataset() for item in value]) + + def add_PredictedToricError(self, item: PredictedToricErrorSequenceItem): + if not isinstance(item, PredictedToricErrorSequenceItem): + raise ValueError("Item must be an instance of PredictedToricErrorSequenceItem") + self._PredictedToricErrorSequence.append(item) + if "PredictedToricErrorSequence" not in self._dataset: + self._dataset.PredictedToricErrorSequence = pydicom.Sequence() + self._dataset.PredictedToricErrorSequence.append(item.to_dataset()) + + @property + def PreSelectedForImplantation(self) -> Optional[str]: + if "PreSelectedForImplantation" in self._dataset: + return self._dataset.PreSelectedForImplantation + return None + + @PreSelectedForImplantation.setter + def PreSelectedForImplantation(self, value: Optional[str]): + if value is None: + if "PreSelectedForImplantation" in self._dataset: + del self._dataset.PreSelectedForImplantation + else: + self._dataset.PreSelectedForImplantation = value + + @property + def IOLPower(self) -> Optional[float]: + if "IOLPower" in self._dataset: + return self._dataset.IOLPower + return None + + @IOLPower.setter + def IOLPower(self, value: Optional[float]): + if value is None: + if "IOLPower" in self._dataset: + del self._dataset.IOLPower + else: + self._dataset.IOLPower = value + + @property + def PredictedRefractiveError(self) -> Optional[float]: + if "PredictedRefractiveError" in self._dataset: + return self._dataset.PredictedRefractiveError + return None + + @PredictedRefractiveError.setter + def PredictedRefractiveError(self, value: Optional[float]): + if value is None: + if "PredictedRefractiveError" in self._dataset: + del self._dataset.PredictedRefractiveError + else: + self._dataset.PredictedRefractiveError = value + + @property + def ImplantPartNumber(self) -> Optional[str]: + if "ImplantPartNumber" in self._dataset: + return self._dataset.ImplantPartNumber + return None + + @ImplantPartNumber.setter + def ImplantPartNumber(self, value: Optional[str]): + if value is None: + if "ImplantPartNumber" in self._dataset: + del self._dataset.ImplantPartNumber + else: + self._dataset.ImplantPartNumber = value diff --git a/tdwii_plus_examples/domain_model/ion_beam_limiting_device_sequence_item.py b/tdwii_plus_examples/domain_model/ion_beam_limiting_device_sequence_item.py new file mode 100644 index 0000000..1bd0b15 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_beam_limiting_device_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class IonBeamLimitingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTBeamLimitingDeviceType(self) -> Optional[str]: + if "RTBeamLimitingDeviceType" in self._dataset: + return self._dataset.RTBeamLimitingDeviceType + return None + + @RTBeamLimitingDeviceType.setter + def RTBeamLimitingDeviceType(self, value: Optional[str]): + if value is None: + if "RTBeamLimitingDeviceType" in self._dataset: + del self._dataset.RTBeamLimitingDeviceType + else: + self._dataset.RTBeamLimitingDeviceType = value + + @property + def IsocenterToBeamLimitingDeviceDistance(self) -> Optional[float]: + if "IsocenterToBeamLimitingDeviceDistance" in self._dataset: + return self._dataset.IsocenterToBeamLimitingDeviceDistance + return None + + @IsocenterToBeamLimitingDeviceDistance.setter + def IsocenterToBeamLimitingDeviceDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToBeamLimitingDeviceDistance" in self._dataset: + del self._dataset.IsocenterToBeamLimitingDeviceDistance + else: + self._dataset.IsocenterToBeamLimitingDeviceDistance = value + + @property + def NumberOfLeafJawPairs(self) -> Optional[int]: + if "NumberOfLeafJawPairs" in self._dataset: + return self._dataset.NumberOfLeafJawPairs + return None + + @NumberOfLeafJawPairs.setter + def NumberOfLeafJawPairs(self, value: Optional[int]): + if value is None: + if "NumberOfLeafJawPairs" in self._dataset: + del self._dataset.NumberOfLeafJawPairs + else: + self._dataset.NumberOfLeafJawPairs = value + + @property + def LeafPositionBoundaries(self) -> Optional[List[Decimal]]: + if "LeafPositionBoundaries" in self._dataset: + return self._dataset.LeafPositionBoundaries + return None + + @LeafPositionBoundaries.setter + def LeafPositionBoundaries(self, value: Optional[List[Decimal]]): + if value is None: + if "LeafPositionBoundaries" in self._dataset: + del self._dataset.LeafPositionBoundaries + else: + self._dataset.LeafPositionBoundaries = value diff --git a/tdwii_plus_examples/domain_model/ion_beam_sequence_item.py b/tdwii_plus_examples/domain_model/ion_beam_sequence_item.py new file mode 100644 index 0000000..eb18b21 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_beam_sequence_item.py @@ -0,0 +1,1219 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .applicator_sequence_item import ApplicatorSequenceItem +from .code_sequence_item import CodeSequenceItem +from .depth_dose_parameters_sequence_item import DepthDoseParametersSequenceItem +from .enhanced_rt_beam_limiting_device_sequence_item import ( + EnhancedRTBeamLimitingDeviceSequenceItem, +) +from .general_accessory_sequence_item import GeneralAccessorySequenceItem +from .ion_beam_limiting_device_sequence_item import IonBeamLimitingDeviceSequenceItem +from .ion_block_sequence_item import IonBlockSequenceItem +from .ion_control_point_sequence_item import IonControlPointSequenceItem +from .ion_range_compensator_sequence_item import IonRangeCompensatorSequenceItem +from .ion_wedge_sequence_item import IonWedgeSequenceItem +from .lateral_spreading_device_sequence_item import LateralSpreadingDeviceSequenceItem +from .range_modulator_sequence_item import RangeModulatorSequenceItem +from .range_shifter_sequence_item import RangeShifterSequenceItem +from .referenced_bolus_sequence_item import ReferencedBolusSequenceItem +from .referenced_dose_sequence_item import ReferencedDoseSequenceItem +from .referenced_reference_image_sequence_item import ( + ReferencedReferenceImageSequenceItem, +) +from .snout_sequence_item import SnoutSequenceItem + + +class IonBeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._EnhancedRTBeamLimitingDeviceSequence: List[EnhancedRTBeamLimitingDeviceSequenceItem] = [] + self._ApplicatorSequence: List[ApplicatorSequenceItem] = [] + self._IonRangeCompensatorSequence: List[IonRangeCompensatorSequenceItem] = [] + self._SnoutSequence: List[SnoutSequenceItem] = [] + self._RangeShifterSequence: List[RangeShifterSequenceItem] = [] + self._LateralSpreadingDeviceSequence: List[LateralSpreadingDeviceSequenceItem] = [] + self._RangeModulatorSequence: List[RangeModulatorSequenceItem] = [] + self._IonBeamLimitingDeviceSequence: List[IonBeamLimitingDeviceSequenceItem] = [] + self._IonBlockSequence: List[IonBlockSequenceItem] = [] + self._IonControlPointSequence: List[IonControlPointSequenceItem] = [] + self._IonWedgeSequence: List[IonWedgeSequenceItem] = [] + self._GeneralAccessorySequence: List[GeneralAccessorySequenceItem] = [] + self._DepthDoseParametersSequence: List[DepthDoseParametersSequenceItem] = [] + self._ReferencedReferenceImageSequence: List[ReferencedReferenceImageSequenceItem] = [] + self._ReferencedDoseSequence: List[ReferencedDoseSequenceItem] = [] + self._ReferencedBolusSequence: List[ReferencedBolusSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def EnhancedRTBeamLimitingDeviceSequence(self) -> Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]: + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingDeviceSequence) == len(self._dataset.EnhancedRTBeamLimitingDeviceSequence): + return self._EnhancedRTBeamLimitingDeviceSequence + else: + return [ + EnhancedRTBeamLimitingDeviceSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingDeviceSequence + ] + return None + + @EnhancedRTBeamLimitingDeviceSequence.setter + def EnhancedRTBeamLimitingDeviceSequence(self, value: Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingDeviceSequence = [] + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingDeviceSequence must be a list of EnhancedRTBeamLimitingDeviceSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingDeviceSequence = value + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.clear() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingDevice(self, item: EnhancedRTBeamLimitingDeviceSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingDeviceSequenceItem") + self._EnhancedRTBeamLimitingDeviceSequence.append(item) + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self) -> Optional[str]: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + return self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + return None + + @EnhancedRTBeamLimitingDeviceDefinitionFlag.setter + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self, value: Optional[str]): + if value is None: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + else: + self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag = value + + @property + def TreatmentMachineName(self) -> Optional[str]: + if "TreatmentMachineName" in self._dataset: + return self._dataset.TreatmentMachineName + return None + + @TreatmentMachineName.setter + def TreatmentMachineName(self, value: Optional[str]): + if value is None: + if "TreatmentMachineName" in self._dataset: + del self._dataset.TreatmentMachineName + else: + self._dataset.TreatmentMachineName = value + + @property + def PrimaryDosimeterUnit(self) -> Optional[str]: + if "PrimaryDosimeterUnit" in self._dataset: + return self._dataset.PrimaryDosimeterUnit + return None + + @PrimaryDosimeterUnit.setter + def PrimaryDosimeterUnit(self, value: Optional[str]): + if value is None: + if "PrimaryDosimeterUnit" in self._dataset: + del self._dataset.PrimaryDosimeterUnit + else: + self._dataset.PrimaryDosimeterUnit = value + + @property + def BeamNumber(self) -> Optional[int]: + if "BeamNumber" in self._dataset: + return self._dataset.BeamNumber + return None + + @BeamNumber.setter + def BeamNumber(self, value: Optional[int]): + if value is None: + if "BeamNumber" in self._dataset: + del self._dataset.BeamNumber + else: + self._dataset.BeamNumber = value + + @property + def BeamName(self) -> Optional[str]: + if "BeamName" in self._dataset: + return self._dataset.BeamName + return None + + @BeamName.setter + def BeamName(self, value: Optional[str]): + if value is None: + if "BeamName" in self._dataset: + del self._dataset.BeamName + else: + self._dataset.BeamName = value + + @property + def BeamDescription(self) -> Optional[str]: + if "BeamDescription" in self._dataset: + return self._dataset.BeamDescription + return None + + @BeamDescription.setter + def BeamDescription(self, value: Optional[str]): + if value is None: + if "BeamDescription" in self._dataset: + del self._dataset.BeamDescription + else: + self._dataset.BeamDescription = value + + @property + def BeamType(self) -> Optional[str]: + if "BeamType" in self._dataset: + return self._dataset.BeamType + return None + + @BeamType.setter + def BeamType(self, value: Optional[str]): + if value is None: + if "BeamType" in self._dataset: + del self._dataset.BeamType + else: + self._dataset.BeamType = value + + @property + def RadiationType(self) -> Optional[str]: + if "RadiationType" in self._dataset: + return self._dataset.RadiationType + return None + + @RadiationType.setter + def RadiationType(self, value: Optional[str]): + if value is None: + if "RadiationType" in self._dataset: + del self._dataset.RadiationType + else: + self._dataset.RadiationType = value + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def NumberOfWedges(self) -> Optional[int]: + if "NumberOfWedges" in self._dataset: + return self._dataset.NumberOfWedges + return None + + @NumberOfWedges.setter + def NumberOfWedges(self, value: Optional[int]): + if value is None: + if "NumberOfWedges" in self._dataset: + del self._dataset.NumberOfWedges + else: + self._dataset.NumberOfWedges = value + + @property + def TotalWedgeTrayWaterEquivalentThickness(self) -> Optional[float]: + if "TotalWedgeTrayWaterEquivalentThickness" in self._dataset: + return self._dataset.TotalWedgeTrayWaterEquivalentThickness + return None + + @TotalWedgeTrayWaterEquivalentThickness.setter + def TotalWedgeTrayWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "TotalWedgeTrayWaterEquivalentThickness" in self._dataset: + del self._dataset.TotalWedgeTrayWaterEquivalentThickness + else: + self._dataset.TotalWedgeTrayWaterEquivalentThickness = value + + @property + def NumberOfCompensators(self) -> Optional[int]: + if "NumberOfCompensators" in self._dataset: + return self._dataset.NumberOfCompensators + return None + + @NumberOfCompensators.setter + def NumberOfCompensators(self, value: Optional[int]): + if value is None: + if "NumberOfCompensators" in self._dataset: + del self._dataset.NumberOfCompensators + else: + self._dataset.NumberOfCompensators = value + + @property + def NumberOfBoli(self) -> Optional[int]: + if "NumberOfBoli" in self._dataset: + return self._dataset.NumberOfBoli + return None + + @NumberOfBoli.setter + def NumberOfBoli(self, value: Optional[int]): + if value is None: + if "NumberOfBoli" in self._dataset: + del self._dataset.NumberOfBoli + else: + self._dataset.NumberOfBoli = value + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def TotalBlockTrayWaterEquivalentThickness(self) -> Optional[float]: + if "TotalBlockTrayWaterEquivalentThickness" in self._dataset: + return self._dataset.TotalBlockTrayWaterEquivalentThickness + return None + + @TotalBlockTrayWaterEquivalentThickness.setter + def TotalBlockTrayWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "TotalBlockTrayWaterEquivalentThickness" in self._dataset: + del self._dataset.TotalBlockTrayWaterEquivalentThickness + else: + self._dataset.TotalBlockTrayWaterEquivalentThickness = value + + @property + def ApplicatorSequence(self) -> Optional[List[ApplicatorSequenceItem]]: + if "ApplicatorSequence" in self._dataset: + if len(self._ApplicatorSequence) == len(self._dataset.ApplicatorSequence): + return self._ApplicatorSequence + else: + return [ApplicatorSequenceItem(x) for x in self._dataset.ApplicatorSequence] + return None + + @ApplicatorSequence.setter + def ApplicatorSequence(self, value: Optional[List[ApplicatorSequenceItem]]): + if value is None: + self._ApplicatorSequence = [] + if "ApplicatorSequence" in self._dataset: + del self._dataset.ApplicatorSequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicatorSequenceItem) for item in value): + raise ValueError("ApplicatorSequence must be a list of ApplicatorSequenceItem objects") + else: + self._ApplicatorSequence = value + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.clear() + self._dataset.ApplicatorSequence.extend([item.to_dataset() for item in value]) + + def add_Applicator(self, item: ApplicatorSequenceItem): + if not isinstance(item, ApplicatorSequenceItem): + raise ValueError("Item must be an instance of ApplicatorSequenceItem") + self._ApplicatorSequence.append(item) + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.append(item.to_dataset()) + + @property + def FinalCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "FinalCumulativeMetersetWeight" in self._dataset: + return self._dataset.FinalCumulativeMetersetWeight + return None + + @FinalCumulativeMetersetWeight.setter + def FinalCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "FinalCumulativeMetersetWeight" in self._dataset: + del self._dataset.FinalCumulativeMetersetWeight + else: + self._dataset.FinalCumulativeMetersetWeight = value + + @property + def NumberOfControlPoints(self) -> Optional[int]: + if "NumberOfControlPoints" in self._dataset: + return self._dataset.NumberOfControlPoints + return None + + @NumberOfControlPoints.setter + def NumberOfControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfControlPoints" in self._dataset: + del self._dataset.NumberOfControlPoints + else: + self._dataset.NumberOfControlPoints = value + + @property + def FixationEye(self) -> Optional[str]: + if "FixationEye" in self._dataset: + return self._dataset.FixationEye + return None + + @FixationEye.setter + def FixationEye(self, value: Optional[str]): + if value is None: + if "FixationEye" in self._dataset: + del self._dataset.FixationEye + else: + self._dataset.FixationEye = value + + @property + def TotalCompensatorTrayWaterEquivalentThickness(self) -> Optional[float]: + if "TotalCompensatorTrayWaterEquivalentThickness" in self._dataset: + return self._dataset.TotalCompensatorTrayWaterEquivalentThickness + return None + + @TotalCompensatorTrayWaterEquivalentThickness.setter + def TotalCompensatorTrayWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "TotalCompensatorTrayWaterEquivalentThickness" in self._dataset: + del self._dataset.TotalCompensatorTrayWaterEquivalentThickness + else: + self._dataset.TotalCompensatorTrayWaterEquivalentThickness = value + + @property + def IonRangeCompensatorSequence(self) -> Optional[List[IonRangeCompensatorSequenceItem]]: + if "IonRangeCompensatorSequence" in self._dataset: + if len(self._IonRangeCompensatorSequence) == len(self._dataset.IonRangeCompensatorSequence): + return self._IonRangeCompensatorSequence + else: + return [IonRangeCompensatorSequenceItem(x) for x in self._dataset.IonRangeCompensatorSequence] + return None + + @IonRangeCompensatorSequence.setter + def IonRangeCompensatorSequence(self, value: Optional[List[IonRangeCompensatorSequenceItem]]): + if value is None: + self._IonRangeCompensatorSequence = [] + if "IonRangeCompensatorSequence" in self._dataset: + del self._dataset.IonRangeCompensatorSequence + elif not isinstance(value, list) or not all(isinstance(item, IonRangeCompensatorSequenceItem) for item in value): + raise ValueError("IonRangeCompensatorSequence must be a list of IonRangeCompensatorSequenceItem objects") + else: + self._IonRangeCompensatorSequence = value + if "IonRangeCompensatorSequence" not in self._dataset: + self._dataset.IonRangeCompensatorSequence = pydicom.Sequence() + self._dataset.IonRangeCompensatorSequence.clear() + self._dataset.IonRangeCompensatorSequence.extend([item.to_dataset() for item in value]) + + def add_IonRangeCompensator(self, item: IonRangeCompensatorSequenceItem): + if not isinstance(item, IonRangeCompensatorSequenceItem): + raise ValueError("Item must be an instance of IonRangeCompensatorSequenceItem") + self._IonRangeCompensatorSequence.append(item) + if "IonRangeCompensatorSequence" not in self._dataset: + self._dataset.IonRangeCompensatorSequence = pydicom.Sequence() + self._dataset.IonRangeCompensatorSequence.append(item.to_dataset()) + + @property + def RadiationMassNumber(self) -> Optional[int]: + if "RadiationMassNumber" in self._dataset: + return self._dataset.RadiationMassNumber + return None + + @RadiationMassNumber.setter + def RadiationMassNumber(self, value: Optional[int]): + if value is None: + if "RadiationMassNumber" in self._dataset: + del self._dataset.RadiationMassNumber + else: + self._dataset.RadiationMassNumber = value + + @property + def RadiationAtomicNumber(self) -> Optional[int]: + if "RadiationAtomicNumber" in self._dataset: + return self._dataset.RadiationAtomicNumber + return None + + @RadiationAtomicNumber.setter + def RadiationAtomicNumber(self, value: Optional[int]): + if value is None: + if "RadiationAtomicNumber" in self._dataset: + del self._dataset.RadiationAtomicNumber + else: + self._dataset.RadiationAtomicNumber = value + + @property + def RadiationChargeState(self) -> Optional[int]: + if "RadiationChargeState" in self._dataset: + return self._dataset.RadiationChargeState + return None + + @RadiationChargeState.setter + def RadiationChargeState(self, value: Optional[int]): + if value is None: + if "RadiationChargeState" in self._dataset: + del self._dataset.RadiationChargeState + else: + self._dataset.RadiationChargeState = value + + @property + def ScanMode(self) -> Optional[str]: + if "ScanMode" in self._dataset: + return self._dataset.ScanMode + return None + + @ScanMode.setter + def ScanMode(self, value: Optional[str]): + if value is None: + if "ScanMode" in self._dataset: + del self._dataset.ScanMode + else: + self._dataset.ScanMode = value + + @property + def ModulatedScanModeType(self) -> Optional[str]: + if "ModulatedScanModeType" in self._dataset: + return self._dataset.ModulatedScanModeType + return None + + @ModulatedScanModeType.setter + def ModulatedScanModeType(self, value: Optional[str]): + if value is None: + if "ModulatedScanModeType" in self._dataset: + del self._dataset.ModulatedScanModeType + else: + self._dataset.ModulatedScanModeType = value + + @property + def VirtualSourceAxisDistances(self) -> Optional[List[float]]: + if "VirtualSourceAxisDistances" in self._dataset: + return self._dataset.VirtualSourceAxisDistances + return None + + @VirtualSourceAxisDistances.setter + def VirtualSourceAxisDistances(self, value: Optional[List[float]]): + if value is None: + if "VirtualSourceAxisDistances" in self._dataset: + del self._dataset.VirtualSourceAxisDistances + else: + self._dataset.VirtualSourceAxisDistances = value + + @property + def SnoutSequence(self) -> Optional[List[SnoutSequenceItem]]: + if "SnoutSequence" in self._dataset: + if len(self._SnoutSequence) == len(self._dataset.SnoutSequence): + return self._SnoutSequence + else: + return [SnoutSequenceItem(x) for x in self._dataset.SnoutSequence] + return None + + @SnoutSequence.setter + def SnoutSequence(self, value: Optional[List[SnoutSequenceItem]]): + if value is None: + self._SnoutSequence = [] + if "SnoutSequence" in self._dataset: + del self._dataset.SnoutSequence + elif not isinstance(value, list) or not all(isinstance(item, SnoutSequenceItem) for item in value): + raise ValueError("SnoutSequence must be a list of SnoutSequenceItem objects") + else: + self._SnoutSequence = value + if "SnoutSequence" not in self._dataset: + self._dataset.SnoutSequence = pydicom.Sequence() + self._dataset.SnoutSequence.clear() + self._dataset.SnoutSequence.extend([item.to_dataset() for item in value]) + + def add_Snout(self, item: SnoutSequenceItem): + if not isinstance(item, SnoutSequenceItem): + raise ValueError("Item must be an instance of SnoutSequenceItem") + self._SnoutSequence.append(item) + if "SnoutSequence" not in self._dataset: + self._dataset.SnoutSequence = pydicom.Sequence() + self._dataset.SnoutSequence.append(item.to_dataset()) + + @property + def NumberOfRangeShifters(self) -> Optional[int]: + if "NumberOfRangeShifters" in self._dataset: + return self._dataset.NumberOfRangeShifters + return None + + @NumberOfRangeShifters.setter + def NumberOfRangeShifters(self, value: Optional[int]): + if value is None: + if "NumberOfRangeShifters" in self._dataset: + del self._dataset.NumberOfRangeShifters + else: + self._dataset.NumberOfRangeShifters = value + + @property + def RangeShifterSequence(self) -> Optional[List[RangeShifterSequenceItem]]: + if "RangeShifterSequence" in self._dataset: + if len(self._RangeShifterSequence) == len(self._dataset.RangeShifterSequence): + return self._RangeShifterSequence + else: + return [RangeShifterSequenceItem(x) for x in self._dataset.RangeShifterSequence] + return None + + @RangeShifterSequence.setter + def RangeShifterSequence(self, value: Optional[List[RangeShifterSequenceItem]]): + if value is None: + self._RangeShifterSequence = [] + if "RangeShifterSequence" in self._dataset: + del self._dataset.RangeShifterSequence + elif not isinstance(value, list) or not all(isinstance(item, RangeShifterSequenceItem) for item in value): + raise ValueError("RangeShifterSequence must be a list of RangeShifterSequenceItem objects") + else: + self._RangeShifterSequence = value + if "RangeShifterSequence" not in self._dataset: + self._dataset.RangeShifterSequence = pydicom.Sequence() + self._dataset.RangeShifterSequence.clear() + self._dataset.RangeShifterSequence.extend([item.to_dataset() for item in value]) + + def add_RangeShifter(self, item: RangeShifterSequenceItem): + if not isinstance(item, RangeShifterSequenceItem): + raise ValueError("Item must be an instance of RangeShifterSequenceItem") + self._RangeShifterSequence.append(item) + if "RangeShifterSequence" not in self._dataset: + self._dataset.RangeShifterSequence = pydicom.Sequence() + self._dataset.RangeShifterSequence.append(item.to_dataset()) + + @property + def NumberOfLateralSpreadingDevices(self) -> Optional[int]: + if "NumberOfLateralSpreadingDevices" in self._dataset: + return self._dataset.NumberOfLateralSpreadingDevices + return None + + @NumberOfLateralSpreadingDevices.setter + def NumberOfLateralSpreadingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfLateralSpreadingDevices" in self._dataset: + del self._dataset.NumberOfLateralSpreadingDevices + else: + self._dataset.NumberOfLateralSpreadingDevices = value + + @property + def LateralSpreadingDeviceSequence(self) -> Optional[List[LateralSpreadingDeviceSequenceItem]]: + if "LateralSpreadingDeviceSequence" in self._dataset: + if len(self._LateralSpreadingDeviceSequence) == len(self._dataset.LateralSpreadingDeviceSequence): + return self._LateralSpreadingDeviceSequence + else: + return [LateralSpreadingDeviceSequenceItem(x) for x in self._dataset.LateralSpreadingDeviceSequence] + return None + + @LateralSpreadingDeviceSequence.setter + def LateralSpreadingDeviceSequence(self, value: Optional[List[LateralSpreadingDeviceSequenceItem]]): + if value is None: + self._LateralSpreadingDeviceSequence = [] + if "LateralSpreadingDeviceSequence" in self._dataset: + del self._dataset.LateralSpreadingDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, LateralSpreadingDeviceSequenceItem) for item in value): + raise ValueError("LateralSpreadingDeviceSequence must be a list of LateralSpreadingDeviceSequenceItem objects") + else: + self._LateralSpreadingDeviceSequence = value + if "LateralSpreadingDeviceSequence" not in self._dataset: + self._dataset.LateralSpreadingDeviceSequence = pydicom.Sequence() + self._dataset.LateralSpreadingDeviceSequence.clear() + self._dataset.LateralSpreadingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_LateralSpreadingDevice(self, item: LateralSpreadingDeviceSequenceItem): + if not isinstance(item, LateralSpreadingDeviceSequenceItem): + raise ValueError("Item must be an instance of LateralSpreadingDeviceSequenceItem") + self._LateralSpreadingDeviceSequence.append(item) + if "LateralSpreadingDeviceSequence" not in self._dataset: + self._dataset.LateralSpreadingDeviceSequence = pydicom.Sequence() + self._dataset.LateralSpreadingDeviceSequence.append(item.to_dataset()) + + @property + def NumberOfRangeModulators(self) -> Optional[int]: + if "NumberOfRangeModulators" in self._dataset: + return self._dataset.NumberOfRangeModulators + return None + + @NumberOfRangeModulators.setter + def NumberOfRangeModulators(self, value: Optional[int]): + if value is None: + if "NumberOfRangeModulators" in self._dataset: + del self._dataset.NumberOfRangeModulators + else: + self._dataset.NumberOfRangeModulators = value + + @property + def RangeModulatorSequence(self) -> Optional[List[RangeModulatorSequenceItem]]: + if "RangeModulatorSequence" in self._dataset: + if len(self._RangeModulatorSequence) == len(self._dataset.RangeModulatorSequence): + return self._RangeModulatorSequence + else: + return [RangeModulatorSequenceItem(x) for x in self._dataset.RangeModulatorSequence] + return None + + @RangeModulatorSequence.setter + def RangeModulatorSequence(self, value: Optional[List[RangeModulatorSequenceItem]]): + if value is None: + self._RangeModulatorSequence = [] + if "RangeModulatorSequence" in self._dataset: + del self._dataset.RangeModulatorSequence + elif not isinstance(value, list) or not all(isinstance(item, RangeModulatorSequenceItem) for item in value): + raise ValueError("RangeModulatorSequence must be a list of RangeModulatorSequenceItem objects") + else: + self._RangeModulatorSequence = value + if "RangeModulatorSequence" not in self._dataset: + self._dataset.RangeModulatorSequence = pydicom.Sequence() + self._dataset.RangeModulatorSequence.clear() + self._dataset.RangeModulatorSequence.extend([item.to_dataset() for item in value]) + + def add_RangeModulator(self, item: RangeModulatorSequenceItem): + if not isinstance(item, RangeModulatorSequenceItem): + raise ValueError("Item must be an instance of RangeModulatorSequenceItem") + self._RangeModulatorSequence.append(item) + if "RangeModulatorSequence" not in self._dataset: + self._dataset.RangeModulatorSequence = pydicom.Sequence() + self._dataset.RangeModulatorSequence.append(item.to_dataset()) + + @property + def PatientSupportType(self) -> Optional[str]: + if "PatientSupportType" in self._dataset: + return self._dataset.PatientSupportType + return None + + @PatientSupportType.setter + def PatientSupportType(self, value: Optional[str]): + if value is None: + if "PatientSupportType" in self._dataset: + del self._dataset.PatientSupportType + else: + self._dataset.PatientSupportType = value + + @property + def PatientSupportID(self) -> Optional[str]: + if "PatientSupportID" in self._dataset: + return self._dataset.PatientSupportID + return None + + @PatientSupportID.setter + def PatientSupportID(self, value: Optional[str]): + if value is None: + if "PatientSupportID" in self._dataset: + del self._dataset.PatientSupportID + else: + self._dataset.PatientSupportID = value + + @property + def PatientSupportAccessoryCode(self) -> Optional[str]: + if "PatientSupportAccessoryCode" in self._dataset: + return self._dataset.PatientSupportAccessoryCode + return None + + @PatientSupportAccessoryCode.setter + def PatientSupportAccessoryCode(self, value: Optional[str]): + if value is None: + if "PatientSupportAccessoryCode" in self._dataset: + del self._dataset.PatientSupportAccessoryCode + else: + self._dataset.PatientSupportAccessoryCode = value + + @property + def FixationLightAzimuthalAngle(self) -> Optional[float]: + if "FixationLightAzimuthalAngle" in self._dataset: + return self._dataset.FixationLightAzimuthalAngle + return None + + @FixationLightAzimuthalAngle.setter + def FixationLightAzimuthalAngle(self, value: Optional[float]): + if value is None: + if "FixationLightAzimuthalAngle" in self._dataset: + del self._dataset.FixationLightAzimuthalAngle + else: + self._dataset.FixationLightAzimuthalAngle = value + + @property + def FixationLightPolarAngle(self) -> Optional[float]: + if "FixationLightPolarAngle" in self._dataset: + return self._dataset.FixationLightPolarAngle + return None + + @FixationLightPolarAngle.setter + def FixationLightPolarAngle(self, value: Optional[float]): + if value is None: + if "FixationLightPolarAngle" in self._dataset: + del self._dataset.FixationLightPolarAngle + else: + self._dataset.FixationLightPolarAngle = value + + @property + def IonBeamLimitingDeviceSequence(self) -> Optional[List[IonBeamLimitingDeviceSequenceItem]]: + if "IonBeamLimitingDeviceSequence" in self._dataset: + if len(self._IonBeamLimitingDeviceSequence) == len(self._dataset.IonBeamLimitingDeviceSequence): + return self._IonBeamLimitingDeviceSequence + else: + return [IonBeamLimitingDeviceSequenceItem(x) for x in self._dataset.IonBeamLimitingDeviceSequence] + return None + + @IonBeamLimitingDeviceSequence.setter + def IonBeamLimitingDeviceSequence(self, value: Optional[List[IonBeamLimitingDeviceSequenceItem]]): + if value is None: + self._IonBeamLimitingDeviceSequence = [] + if "IonBeamLimitingDeviceSequence" in self._dataset: + del self._dataset.IonBeamLimitingDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, IonBeamLimitingDeviceSequenceItem) for item in value): + raise ValueError("IonBeamLimitingDeviceSequence must be a list of IonBeamLimitingDeviceSequenceItem objects") + else: + self._IonBeamLimitingDeviceSequence = value + if "IonBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.IonBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.IonBeamLimitingDeviceSequence.clear() + self._dataset.IonBeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_IonBeamLimitingDevice(self, item: IonBeamLimitingDeviceSequenceItem): + if not isinstance(item, IonBeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of IonBeamLimitingDeviceSequenceItem") + self._IonBeamLimitingDeviceSequence.append(item) + if "IonBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.IonBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.IonBeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def IonBlockSequence(self) -> Optional[List[IonBlockSequenceItem]]: + if "IonBlockSequence" in self._dataset: + if len(self._IonBlockSequence) == len(self._dataset.IonBlockSequence): + return self._IonBlockSequence + else: + return [IonBlockSequenceItem(x) for x in self._dataset.IonBlockSequence] + return None + + @IonBlockSequence.setter + def IonBlockSequence(self, value: Optional[List[IonBlockSequenceItem]]): + if value is None: + self._IonBlockSequence = [] + if "IonBlockSequence" in self._dataset: + del self._dataset.IonBlockSequence + elif not isinstance(value, list) or not all(isinstance(item, IonBlockSequenceItem) for item in value): + raise ValueError("IonBlockSequence must be a list of IonBlockSequenceItem objects") + else: + self._IonBlockSequence = value + if "IonBlockSequence" not in self._dataset: + self._dataset.IonBlockSequence = pydicom.Sequence() + self._dataset.IonBlockSequence.clear() + self._dataset.IonBlockSequence.extend([item.to_dataset() for item in value]) + + def add_IonBlock(self, item: IonBlockSequenceItem): + if not isinstance(item, IonBlockSequenceItem): + raise ValueError("Item must be an instance of IonBlockSequenceItem") + self._IonBlockSequence.append(item) + if "IonBlockSequence" not in self._dataset: + self._dataset.IonBlockSequence = pydicom.Sequence() + self._dataset.IonBlockSequence.append(item.to_dataset()) + + @property + def IonControlPointSequence(self) -> Optional[List[IonControlPointSequenceItem]]: + if "IonControlPointSequence" in self._dataset: + if len(self._IonControlPointSequence) == len(self._dataset.IonControlPointSequence): + return self._IonControlPointSequence + else: + return [IonControlPointSequenceItem(x) for x in self._dataset.IonControlPointSequence] + return None + + @IonControlPointSequence.setter + def IonControlPointSequence(self, value: Optional[List[IonControlPointSequenceItem]]): + if value is None: + self._IonControlPointSequence = [] + if "IonControlPointSequence" in self._dataset: + del self._dataset.IonControlPointSequence + elif not isinstance(value, list) or not all(isinstance(item, IonControlPointSequenceItem) for item in value): + raise ValueError("IonControlPointSequence must be a list of IonControlPointSequenceItem objects") + else: + self._IonControlPointSequence = value + if "IonControlPointSequence" not in self._dataset: + self._dataset.IonControlPointSequence = pydicom.Sequence() + self._dataset.IonControlPointSequence.clear() + self._dataset.IonControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_IonControlPoint(self, item: IonControlPointSequenceItem): + if not isinstance(item, IonControlPointSequenceItem): + raise ValueError("Item must be an instance of IonControlPointSequenceItem") + self._IonControlPointSequence.append(item) + if "IonControlPointSequence" not in self._dataset: + self._dataset.IonControlPointSequence = pydicom.Sequence() + self._dataset.IonControlPointSequence.append(item.to_dataset()) + + @property + def IonWedgeSequence(self) -> Optional[List[IonWedgeSequenceItem]]: + if "IonWedgeSequence" in self._dataset: + if len(self._IonWedgeSequence) == len(self._dataset.IonWedgeSequence): + return self._IonWedgeSequence + else: + return [IonWedgeSequenceItem(x) for x in self._dataset.IonWedgeSequence] + return None + + @IonWedgeSequence.setter + def IonWedgeSequence(self, value: Optional[List[IonWedgeSequenceItem]]): + if value is None: + self._IonWedgeSequence = [] + if "IonWedgeSequence" in self._dataset: + del self._dataset.IonWedgeSequence + elif not isinstance(value, list) or not all(isinstance(item, IonWedgeSequenceItem) for item in value): + raise ValueError("IonWedgeSequence must be a list of IonWedgeSequenceItem objects") + else: + self._IonWedgeSequence = value + if "IonWedgeSequence" not in self._dataset: + self._dataset.IonWedgeSequence = pydicom.Sequence() + self._dataset.IonWedgeSequence.clear() + self._dataset.IonWedgeSequence.extend([item.to_dataset() for item in value]) + + def add_IonWedge(self, item: IonWedgeSequenceItem): + if not isinstance(item, IonWedgeSequenceItem): + raise ValueError("Item must be an instance of IonWedgeSequenceItem") + self._IonWedgeSequence.append(item) + if "IonWedgeSequence" not in self._dataset: + self._dataset.IonWedgeSequence = pydicom.Sequence() + self._dataset.IonWedgeSequence.append(item.to_dataset()) + + @property + def GeneralAccessorySequence(self) -> Optional[List[GeneralAccessorySequenceItem]]: + if "GeneralAccessorySequence" in self._dataset: + if len(self._GeneralAccessorySequence) == len(self._dataset.GeneralAccessorySequence): + return self._GeneralAccessorySequence + else: + return [GeneralAccessorySequenceItem(x) for x in self._dataset.GeneralAccessorySequence] + return None + + @GeneralAccessorySequence.setter + def GeneralAccessorySequence(self, value: Optional[List[GeneralAccessorySequenceItem]]): + if value is None: + self._GeneralAccessorySequence = [] + if "GeneralAccessorySequence" in self._dataset: + del self._dataset.GeneralAccessorySequence + elif not isinstance(value, list) or not all(isinstance(item, GeneralAccessorySequenceItem) for item in value): + raise ValueError("GeneralAccessorySequence must be a list of GeneralAccessorySequenceItem objects") + else: + self._GeneralAccessorySequence = value + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.clear() + self._dataset.GeneralAccessorySequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessory(self, item: GeneralAccessorySequenceItem): + if not isinstance(item, GeneralAccessorySequenceItem): + raise ValueError("Item must be an instance of GeneralAccessorySequenceItem") + self._GeneralAccessorySequence.append(item) + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.append(item.to_dataset()) + + @property + def DepthDoseParametersSequence(self) -> Optional[List[DepthDoseParametersSequenceItem]]: + if "DepthDoseParametersSequence" in self._dataset: + if len(self._DepthDoseParametersSequence) == len(self._dataset.DepthDoseParametersSequence): + return self._DepthDoseParametersSequence + else: + return [DepthDoseParametersSequenceItem(x) for x in self._dataset.DepthDoseParametersSequence] + return None + + @DepthDoseParametersSequence.setter + def DepthDoseParametersSequence(self, value: Optional[List[DepthDoseParametersSequenceItem]]): + if value is None: + self._DepthDoseParametersSequence = [] + if "DepthDoseParametersSequence" in self._dataset: + del self._dataset.DepthDoseParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, DepthDoseParametersSequenceItem) for item in value): + raise ValueError("DepthDoseParametersSequence must be a list of DepthDoseParametersSequenceItem objects") + else: + self._DepthDoseParametersSequence = value + if "DepthDoseParametersSequence" not in self._dataset: + self._dataset.DepthDoseParametersSequence = pydicom.Sequence() + self._dataset.DepthDoseParametersSequence.clear() + self._dataset.DepthDoseParametersSequence.extend([item.to_dataset() for item in value]) + + def add_DepthDoseParameters(self, item: DepthDoseParametersSequenceItem): + if not isinstance(item, DepthDoseParametersSequenceItem): + raise ValueError("Item must be an instance of DepthDoseParametersSequenceItem") + self._DepthDoseParametersSequence.append(item) + if "DepthDoseParametersSequence" not in self._dataset: + self._dataset.DepthDoseParametersSequence = pydicom.Sequence() + self._dataset.DepthDoseParametersSequence.append(item.to_dataset()) + + @property + def ReferencedReferenceImageSequence(self) -> Optional[List[ReferencedReferenceImageSequenceItem]]: + if "ReferencedReferenceImageSequence" in self._dataset: + if len(self._ReferencedReferenceImageSequence) == len(self._dataset.ReferencedReferenceImageSequence): + return self._ReferencedReferenceImageSequence + else: + return [ReferencedReferenceImageSequenceItem(x) for x in self._dataset.ReferencedReferenceImageSequence] + return None + + @ReferencedReferenceImageSequence.setter + def ReferencedReferenceImageSequence(self, value: Optional[List[ReferencedReferenceImageSequenceItem]]): + if value is None: + self._ReferencedReferenceImageSequence = [] + if "ReferencedReferenceImageSequence" in self._dataset: + del self._dataset.ReferencedReferenceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedReferenceImageSequenceItem) for item in value): + raise ValueError("ReferencedReferenceImageSequence must be a list of ReferencedReferenceImageSequenceItem objects") + else: + self._ReferencedReferenceImageSequence = value + if "ReferencedReferenceImageSequence" not in self._dataset: + self._dataset.ReferencedReferenceImageSequence = pydicom.Sequence() + self._dataset.ReferencedReferenceImageSequence.clear() + self._dataset.ReferencedReferenceImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedReferenceImage(self, item: ReferencedReferenceImageSequenceItem): + if not isinstance(item, ReferencedReferenceImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedReferenceImageSequenceItem") + self._ReferencedReferenceImageSequence.append(item) + if "ReferencedReferenceImageSequence" not in self._dataset: + self._dataset.ReferencedReferenceImageSequence = pydicom.Sequence() + self._dataset.ReferencedReferenceImageSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSetupNumber(self) -> Optional[int]: + if "ReferencedPatientSetupNumber" in self._dataset: + return self._dataset.ReferencedPatientSetupNumber + return None + + @ReferencedPatientSetupNumber.setter + def ReferencedPatientSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedPatientSetupNumber" in self._dataset: + del self._dataset.ReferencedPatientSetupNumber + else: + self._dataset.ReferencedPatientSetupNumber = value + + @property + def ReferencedDoseSequence(self) -> Optional[List[ReferencedDoseSequenceItem]]: + if "ReferencedDoseSequence" in self._dataset: + if len(self._ReferencedDoseSequence) == len(self._dataset.ReferencedDoseSequence): + return self._ReferencedDoseSequence + else: + return [ReferencedDoseSequenceItem(x) for x in self._dataset.ReferencedDoseSequence] + return None + + @ReferencedDoseSequence.setter + def ReferencedDoseSequence(self, value: Optional[List[ReferencedDoseSequenceItem]]): + if value is None: + self._ReferencedDoseSequence = [] + if "ReferencedDoseSequence" in self._dataset: + del self._dataset.ReferencedDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseSequenceItem) for item in value): + raise ValueError("ReferencedDoseSequence must be a list of ReferencedDoseSequenceItem objects") + else: + self._ReferencedDoseSequence = value + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.clear() + self._dataset.ReferencedDoseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDose(self, item: ReferencedDoseSequenceItem): + if not isinstance(item, ReferencedDoseSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseSequenceItem") + self._ReferencedDoseSequence.append(item) + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.append(item.to_dataset()) + + @property + def ReferencedToleranceTableNumber(self) -> Optional[int]: + if "ReferencedToleranceTableNumber" in self._dataset: + return self._dataset.ReferencedToleranceTableNumber + return None + + @ReferencedToleranceTableNumber.setter + def ReferencedToleranceTableNumber(self, value: Optional[int]): + if value is None: + if "ReferencedToleranceTableNumber" in self._dataset: + del self._dataset.ReferencedToleranceTableNumber + else: + self._dataset.ReferencedToleranceTableNumber = value + + @property + def ReferencedBolusSequence(self) -> Optional[List[ReferencedBolusSequenceItem]]: + if "ReferencedBolusSequence" in self._dataset: + if len(self._ReferencedBolusSequence) == len(self._dataset.ReferencedBolusSequence): + return self._ReferencedBolusSequence + else: + return [ReferencedBolusSequenceItem(x) for x in self._dataset.ReferencedBolusSequence] + return None + + @ReferencedBolusSequence.setter + def ReferencedBolusSequence(self, value: Optional[List[ReferencedBolusSequenceItem]]): + if value is None: + self._ReferencedBolusSequence = [] + if "ReferencedBolusSequence" in self._dataset: + del self._dataset.ReferencedBolusSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBolusSequenceItem) for item in value): + raise ValueError("ReferencedBolusSequence must be a list of ReferencedBolusSequenceItem objects") + else: + self._ReferencedBolusSequence = value + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.clear() + self._dataset.ReferencedBolusSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBolus(self, item: ReferencedBolusSequenceItem): + if not isinstance(item, ReferencedBolusSequenceItem): + raise ValueError("Item must be an instance of ReferencedBolusSequenceItem") + self._ReferencedBolusSequence.append(item) + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.append(item.to_dataset()) + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value diff --git a/tdwii_plus_examples/domain_model/ion_block_sequence_item.py b/tdwii_plus_examples/domain_model/ion_block_sequence_item.py new file mode 100644 index 0000000..1c1a121 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_block_sequence_item.py @@ -0,0 +1,229 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .block_slab_sequence_item import BlockSlabSequenceItem + + +class IonBlockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BlockSlabSequence: List[BlockSlabSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def BlockTrayID(self) -> Optional[str]: + if "BlockTrayID" in self._dataset: + return self._dataset.BlockTrayID + return None + + @BlockTrayID.setter + def BlockTrayID(self, value: Optional[str]): + if value is None: + if "BlockTrayID" in self._dataset: + del self._dataset.BlockTrayID + else: + self._dataset.BlockTrayID = value + + @property + def IsocenterToBlockTrayDistance(self) -> Optional[float]: + if "IsocenterToBlockTrayDistance" in self._dataset: + return self._dataset.IsocenterToBlockTrayDistance + return None + + @IsocenterToBlockTrayDistance.setter + def IsocenterToBlockTrayDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToBlockTrayDistance" in self._dataset: + del self._dataset.IsocenterToBlockTrayDistance + else: + self._dataset.IsocenterToBlockTrayDistance = value + + @property + def BlockType(self) -> Optional[str]: + if "BlockType" in self._dataset: + return self._dataset.BlockType + return None + + @BlockType.setter + def BlockType(self, value: Optional[str]): + if value is None: + if "BlockType" in self._dataset: + del self._dataset.BlockType + else: + self._dataset.BlockType = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockDivergence(self) -> Optional[str]: + if "BlockDivergence" in self._dataset: + return self._dataset.BlockDivergence + return None + + @BlockDivergence.setter + def BlockDivergence(self, value: Optional[str]): + if value is None: + if "BlockDivergence" in self._dataset: + del self._dataset.BlockDivergence + else: + self._dataset.BlockDivergence = value + + @property + def BlockMountingPosition(self) -> Optional[str]: + if "BlockMountingPosition" in self._dataset: + return self._dataset.BlockMountingPosition + return None + + @BlockMountingPosition.setter + def BlockMountingPosition(self, value: Optional[str]): + if value is None: + if "BlockMountingPosition" in self._dataset: + del self._dataset.BlockMountingPosition + else: + self._dataset.BlockMountingPosition = value + + @property + def BlockNumber(self) -> Optional[int]: + if "BlockNumber" in self._dataset: + return self._dataset.BlockNumber + return None + + @BlockNumber.setter + def BlockNumber(self, value: Optional[int]): + if value is None: + if "BlockNumber" in self._dataset: + del self._dataset.BlockNumber + else: + self._dataset.BlockNumber = value + + @property + def BlockName(self) -> Optional[str]: + if "BlockName" in self._dataset: + return self._dataset.BlockName + return None + + @BlockName.setter + def BlockName(self, value: Optional[str]): + if value is None: + if "BlockName" in self._dataset: + del self._dataset.BlockName + else: + self._dataset.BlockName = value + + @property + def BlockThickness(self) -> Optional[Decimal]: + if "BlockThickness" in self._dataset: + return self._dataset.BlockThickness + return None + + @BlockThickness.setter + def BlockThickness(self, value: Optional[Decimal]): + if value is None: + if "BlockThickness" in self._dataset: + del self._dataset.BlockThickness + else: + self._dataset.BlockThickness = value + + @property + def BlockNumberOfPoints(self) -> Optional[int]: + if "BlockNumberOfPoints" in self._dataset: + return self._dataset.BlockNumberOfPoints + return None + + @BlockNumberOfPoints.setter + def BlockNumberOfPoints(self, value: Optional[int]): + if value is None: + if "BlockNumberOfPoints" in self._dataset: + del self._dataset.BlockNumberOfPoints + else: + self._dataset.BlockNumberOfPoints = value + + @property + def BlockData(self) -> Optional[List[Decimal]]: + if "BlockData" in self._dataset: + return self._dataset.BlockData + return None + + @BlockData.setter + def BlockData(self, value: Optional[List[Decimal]]): + if value is None: + if "BlockData" in self._dataset: + del self._dataset.BlockData + else: + self._dataset.BlockData = value + + @property + def NumberOfBlockSlabItems(self) -> Optional[int]: + if "NumberOfBlockSlabItems" in self._dataset: + return self._dataset.NumberOfBlockSlabItems + return None + + @NumberOfBlockSlabItems.setter + def NumberOfBlockSlabItems(self, value: Optional[int]): + if value is None: + if "NumberOfBlockSlabItems" in self._dataset: + del self._dataset.NumberOfBlockSlabItems + else: + self._dataset.NumberOfBlockSlabItems = value + + @property + def BlockSlabSequence(self) -> Optional[List[BlockSlabSequenceItem]]: + if "BlockSlabSequence" in self._dataset: + if len(self._BlockSlabSequence) == len(self._dataset.BlockSlabSequence): + return self._BlockSlabSequence + else: + return [BlockSlabSequenceItem(x) for x in self._dataset.BlockSlabSequence] + return None + + @BlockSlabSequence.setter + def BlockSlabSequence(self, value: Optional[List[BlockSlabSequenceItem]]): + if value is None: + self._BlockSlabSequence = [] + if "BlockSlabSequence" in self._dataset: + del self._dataset.BlockSlabSequence + elif not isinstance(value, list) or not all(isinstance(item, BlockSlabSequenceItem) for item in value): + raise ValueError("BlockSlabSequence must be a list of BlockSlabSequenceItem objects") + else: + self._BlockSlabSequence = value + if "BlockSlabSequence" not in self._dataset: + self._dataset.BlockSlabSequence = pydicom.Sequence() + self._dataset.BlockSlabSequence.clear() + self._dataset.BlockSlabSequence.extend([item.to_dataset() for item in value]) + + def add_BlockSlab(self, item: BlockSlabSequenceItem): + if not isinstance(item, BlockSlabSequenceItem): + raise ValueError("Item must be an instance of BlockSlabSequenceItem") + self._BlockSlabSequence.append(item) + if "BlockSlabSequence" not in self._dataset: + self._dataset.BlockSlabSequence = pydicom.Sequence() + self._dataset.BlockSlabSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ion_control_point_delivery_sequence_item.py b/tdwii_plus_examples/domain_model/ion_control_point_delivery_sequence_item.py new file mode 100644 index 0000000..a3d251d --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_control_point_delivery_sequence_item.py @@ -0,0 +1,811 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_limiting_device_position_sequence_item import ( + BeamLimitingDevicePositionSequenceItem, +) +from .corrected_parameter_sequence_item import CorrectedParameterSequenceItem +from .enhanced_rt_beam_limiting_opening_sequence_item import ( + EnhancedRTBeamLimitingOpeningSequenceItem, +) +from .ion_wedge_position_sequence_item import IonWedgePositionSequenceItem +from .lateral_spreading_device_settings_sequence_item import ( + LateralSpreadingDeviceSettingsSequenceItem, +) +from .override_sequence_item import OverrideSequenceItem +from .range_modulator_settings_sequence_item import RangeModulatorSettingsSequenceItem +from .range_shifter_settings_sequence_item import RangeShifterSettingsSequenceItem + + +class IonControlPointDeliverySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OverrideSequence: List[OverrideSequenceItem] = [] + self._CorrectedParameterSequence: List[CorrectedParameterSequenceItem] = [] + self._EnhancedRTBeamLimitingOpeningSequence: List[EnhancedRTBeamLimitingOpeningSequenceItem] = [] + self._BeamLimitingDevicePositionSequence: List[BeamLimitingDevicePositionSequenceItem] = [] + self._RangeShifterSettingsSequence: List[RangeShifterSettingsSequenceItem] = [] + self._LateralSpreadingDeviceSettingsSequence: List[LateralSpreadingDeviceSettingsSequenceItem] = [] + self._RangeModulatorSettingsSequence: List[RangeModulatorSettingsSequenceItem] = [] + self._IonWedgePositionSequence: List[IonWedgePositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def TreatmentControlPointDate(self) -> Optional[str]: + if "TreatmentControlPointDate" in self._dataset: + return self._dataset.TreatmentControlPointDate + return None + + @TreatmentControlPointDate.setter + def TreatmentControlPointDate(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointDate" in self._dataset: + del self._dataset.TreatmentControlPointDate + else: + self._dataset.TreatmentControlPointDate = value + + @property + def TreatmentControlPointTime(self) -> Optional[str]: + if "TreatmentControlPointTime" in self._dataset: + return self._dataset.TreatmentControlPointTime + return None + + @TreatmentControlPointTime.setter + def TreatmentControlPointTime(self, value: Optional[str]): + if value is None: + if "TreatmentControlPointTime" in self._dataset: + del self._dataset.TreatmentControlPointTime + else: + self._dataset.TreatmentControlPointTime = value + + @property + def SpecifiedMeterset(self) -> Optional[Decimal]: + if "SpecifiedMeterset" in self._dataset: + return self._dataset.SpecifiedMeterset + return None + + @SpecifiedMeterset.setter + def SpecifiedMeterset(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedMeterset" in self._dataset: + del self._dataset.SpecifiedMeterset + else: + self._dataset.SpecifiedMeterset = value + + @property + def DeliveredMeterset(self) -> Optional[Decimal]: + if "DeliveredMeterset" in self._dataset: + return self._dataset.DeliveredMeterset + return None + + @DeliveredMeterset.setter + def DeliveredMeterset(self, value: Optional[Decimal]): + if value is None: + if "DeliveredMeterset" in self._dataset: + del self._dataset.DeliveredMeterset + else: + self._dataset.DeliveredMeterset = value + + @property + def MetersetRateSet(self) -> Optional[float]: + if "MetersetRateSet" in self._dataset: + return self._dataset.MetersetRateSet + return None + + @MetersetRateSet.setter + def MetersetRateSet(self, value: Optional[float]): + if value is None: + if "MetersetRateSet" in self._dataset: + del self._dataset.MetersetRateSet + else: + self._dataset.MetersetRateSet = value + + @property + def MetersetRateDelivered(self) -> Optional[float]: + if "MetersetRateDelivered" in self._dataset: + return self._dataset.MetersetRateDelivered + return None + + @MetersetRateDelivered.setter + def MetersetRateDelivered(self, value: Optional[float]): + if value is None: + if "MetersetRateDelivered" in self._dataset: + del self._dataset.MetersetRateDelivered + else: + self._dataset.MetersetRateDelivered = value + + @property + def ScanSpotMetersetsDelivered(self) -> Optional[List[float]]: + if "ScanSpotMetersetsDelivered" in self._dataset: + return self._dataset.ScanSpotMetersetsDelivered + return None + + @ScanSpotMetersetsDelivered.setter + def ScanSpotMetersetsDelivered(self, value: Optional[List[float]]): + if value is None: + if "ScanSpotMetersetsDelivered" in self._dataset: + del self._dataset.ScanSpotMetersetsDelivered + else: + self._dataset.ScanSpotMetersetsDelivered = value + + @property + def OverrideSequence(self) -> Optional[List[OverrideSequenceItem]]: + if "OverrideSequence" in self._dataset: + if len(self._OverrideSequence) == len(self._dataset.OverrideSequence): + return self._OverrideSequence + else: + return [OverrideSequenceItem(x) for x in self._dataset.OverrideSequence] + return None + + @OverrideSequence.setter + def OverrideSequence(self, value: Optional[List[OverrideSequenceItem]]): + if value is None: + self._OverrideSequence = [] + if "OverrideSequence" in self._dataset: + del self._dataset.OverrideSequence + elif not isinstance(value, list) or not all(isinstance(item, OverrideSequenceItem) for item in value): + raise ValueError("OverrideSequence must be a list of OverrideSequenceItem objects") + else: + self._OverrideSequence = value + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.clear() + self._dataset.OverrideSequence.extend([item.to_dataset() for item in value]) + + def add_Override(self, item: OverrideSequenceItem): + if not isinstance(item, OverrideSequenceItem): + raise ValueError("Item must be an instance of OverrideSequenceItem") + self._OverrideSequence.append(item) + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.append(item.to_dataset()) + + @property + def CorrectedParameterSequence(self) -> Optional[List[CorrectedParameterSequenceItem]]: + if "CorrectedParameterSequence" in self._dataset: + if len(self._CorrectedParameterSequence) == len(self._dataset.CorrectedParameterSequence): + return self._CorrectedParameterSequence + else: + return [CorrectedParameterSequenceItem(x) for x in self._dataset.CorrectedParameterSequence] + return None + + @CorrectedParameterSequence.setter + def CorrectedParameterSequence(self, value: Optional[List[CorrectedParameterSequenceItem]]): + if value is None: + self._CorrectedParameterSequence = [] + if "CorrectedParameterSequence" in self._dataset: + del self._dataset.CorrectedParameterSequence + elif not isinstance(value, list) or not all(isinstance(item, CorrectedParameterSequenceItem) for item in value): + raise ValueError("CorrectedParameterSequence must be a list of CorrectedParameterSequenceItem objects") + else: + self._CorrectedParameterSequence = value + if "CorrectedParameterSequence" not in self._dataset: + self._dataset.CorrectedParameterSequence = pydicom.Sequence() + self._dataset.CorrectedParameterSequence.clear() + self._dataset.CorrectedParameterSequence.extend([item.to_dataset() for item in value]) + + def add_CorrectedParameter(self, item: CorrectedParameterSequenceItem): + if not isinstance(item, CorrectedParameterSequenceItem): + raise ValueError("Item must be an instance of CorrectedParameterSequenceItem") + self._CorrectedParameterSequence.append(item) + if "CorrectedParameterSequence" not in self._dataset: + self._dataset.CorrectedParameterSequence = pydicom.Sequence() + self._dataset.CorrectedParameterSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingOpeningSequence(self) -> Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]: + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingOpeningSequence) == len(self._dataset.EnhancedRTBeamLimitingOpeningSequence): + return self._EnhancedRTBeamLimitingOpeningSequence + else: + return [ + EnhancedRTBeamLimitingOpeningSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingOpeningSequence + ] + return None + + @EnhancedRTBeamLimitingOpeningSequence.setter + def EnhancedRTBeamLimitingOpeningSequence(self, value: Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingOpeningSequence = [] + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingOpeningSequence must be a list of EnhancedRTBeamLimitingOpeningSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingOpeningSequence = value + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.clear() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingOpening(self, item: EnhancedRTBeamLimitingOpeningSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingOpeningSequenceItem") + self._EnhancedRTBeamLimitingOpeningSequence.append(item) + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.append(item.to_dataset()) + + @property + def NominalBeamEnergy(self) -> Optional[Decimal]: + if "NominalBeamEnergy" in self._dataset: + return self._dataset.NominalBeamEnergy + return None + + @NominalBeamEnergy.setter + def NominalBeamEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalBeamEnergy" in self._dataset: + del self._dataset.NominalBeamEnergy + else: + self._dataset.NominalBeamEnergy = value + + @property + def BeamLimitingDevicePositionSequence(self) -> Optional[List[BeamLimitingDevicePositionSequenceItem]]: + if "BeamLimitingDevicePositionSequence" in self._dataset: + if len(self._BeamLimitingDevicePositionSequence) == len(self._dataset.BeamLimitingDevicePositionSequence): + return self._BeamLimitingDevicePositionSequence + else: + return [BeamLimitingDevicePositionSequenceItem(x) for x in self._dataset.BeamLimitingDevicePositionSequence] + return None + + @BeamLimitingDevicePositionSequence.setter + def BeamLimitingDevicePositionSequence(self, value: Optional[List[BeamLimitingDevicePositionSequenceItem]]): + if value is None: + self._BeamLimitingDevicePositionSequence = [] + if "BeamLimitingDevicePositionSequence" in self._dataset: + del self._dataset.BeamLimitingDevicePositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDevicePositionSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDevicePositionSequence must be a list of BeamLimitingDevicePositionSequenceItem objects" + ) + else: + self._BeamLimitingDevicePositionSequence = value + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.clear() + self._dataset.BeamLimitingDevicePositionSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDevicePosition(self, item: BeamLimitingDevicePositionSequenceItem): + if not isinstance(item, BeamLimitingDevicePositionSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDevicePositionSequenceItem") + self._BeamLimitingDevicePositionSequence.append(item) + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.append(item.to_dataset()) + + @property + def GantryAngle(self) -> Optional[Decimal]: + if "GantryAngle" in self._dataset: + return self._dataset.GantryAngle + return None + + @GantryAngle.setter + def GantryAngle(self, value: Optional[Decimal]): + if value is None: + if "GantryAngle" in self._dataset: + del self._dataset.GantryAngle + else: + self._dataset.GantryAngle = value + + @property + def GantryRotationDirection(self) -> Optional[str]: + if "GantryRotationDirection" in self._dataset: + return self._dataset.GantryRotationDirection + return None + + @GantryRotationDirection.setter + def GantryRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryRotationDirection" in self._dataset: + del self._dataset.GantryRotationDirection + else: + self._dataset.GantryRotationDirection = value + + @property + def BeamLimitingDeviceAngle(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngle" in self._dataset: + return self._dataset.BeamLimitingDeviceAngle + return None + + @BeamLimitingDeviceAngle.setter + def BeamLimitingDeviceAngle(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngle" in self._dataset: + del self._dataset.BeamLimitingDeviceAngle + else: + self._dataset.BeamLimitingDeviceAngle = value + + @property + def BeamLimitingDeviceRotationDirection(self) -> Optional[str]: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + return self._dataset.BeamLimitingDeviceRotationDirection + return None + + @BeamLimitingDeviceRotationDirection.setter + def BeamLimitingDeviceRotationDirection(self, value: Optional[str]): + if value is None: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + del self._dataset.BeamLimitingDeviceRotationDirection + else: + self._dataset.BeamLimitingDeviceRotationDirection = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def PatientSupportRotationDirection(self) -> Optional[str]: + if "PatientSupportRotationDirection" in self._dataset: + return self._dataset.PatientSupportRotationDirection + return None + + @PatientSupportRotationDirection.setter + def PatientSupportRotationDirection(self, value: Optional[str]): + if value is None: + if "PatientSupportRotationDirection" in self._dataset: + del self._dataset.PatientSupportRotationDirection + else: + self._dataset.PatientSupportRotationDirection = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopPitchRotationDirection(self) -> Optional[str]: + if "TableTopPitchRotationDirection" in self._dataset: + return self._dataset.TableTopPitchRotationDirection + return None + + @TableTopPitchRotationDirection.setter + def TableTopPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopPitchRotationDirection" in self._dataset: + del self._dataset.TableTopPitchRotationDirection + else: + self._dataset.TableTopPitchRotationDirection = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def TableTopRollRotationDirection(self) -> Optional[str]: + if "TableTopRollRotationDirection" in self._dataset: + return self._dataset.TableTopRollRotationDirection + return None + + @TableTopRollRotationDirection.setter + def TableTopRollRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopRollRotationDirection" in self._dataset: + del self._dataset.TableTopRollRotationDirection + else: + self._dataset.TableTopRollRotationDirection = value + + @property + def HeadFixationAngle(self) -> Optional[float]: + if "HeadFixationAngle" in self._dataset: + return self._dataset.HeadFixationAngle + return None + + @HeadFixationAngle.setter + def HeadFixationAngle(self, value: Optional[float]): + if value is None: + if "HeadFixationAngle" in self._dataset: + del self._dataset.HeadFixationAngle + else: + self._dataset.HeadFixationAngle = value + + @property + def GantryPitchAngle(self) -> Optional[float]: + if "GantryPitchAngle" in self._dataset: + return self._dataset.GantryPitchAngle + return None + + @GantryPitchAngle.setter + def GantryPitchAngle(self, value: Optional[float]): + if value is None: + if "GantryPitchAngle" in self._dataset: + del self._dataset.GantryPitchAngle + else: + self._dataset.GantryPitchAngle = value + + @property + def GantryPitchRotationDirection(self) -> Optional[str]: + if "GantryPitchRotationDirection" in self._dataset: + return self._dataset.GantryPitchRotationDirection + return None + + @GantryPitchRotationDirection.setter + def GantryPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryPitchRotationDirection" in self._dataset: + del self._dataset.GantryPitchRotationDirection + else: + self._dataset.GantryPitchRotationDirection = value + + @property + def ChairHeadFramePosition(self) -> Optional[Decimal]: + if "ChairHeadFramePosition" in self._dataset: + return self._dataset.ChairHeadFramePosition + return None + + @ChairHeadFramePosition.setter + def ChairHeadFramePosition(self, value: Optional[Decimal]): + if value is None: + if "ChairHeadFramePosition" in self._dataset: + del self._dataset.ChairHeadFramePosition + else: + self._dataset.ChairHeadFramePosition = value + + @property + def SnoutPosition(self) -> Optional[float]: + if "SnoutPosition" in self._dataset: + return self._dataset.SnoutPosition + return None + + @SnoutPosition.setter + def SnoutPosition(self, value: Optional[float]): + if value is None: + if "SnoutPosition" in self._dataset: + del self._dataset.SnoutPosition + else: + self._dataset.SnoutPosition = value + + @property + def RangeShifterSettingsSequence(self) -> Optional[List[RangeShifterSettingsSequenceItem]]: + if "RangeShifterSettingsSequence" in self._dataset: + if len(self._RangeShifterSettingsSequence) == len(self._dataset.RangeShifterSettingsSequence): + return self._RangeShifterSettingsSequence + else: + return [RangeShifterSettingsSequenceItem(x) for x in self._dataset.RangeShifterSettingsSequence] + return None + + @RangeShifterSettingsSequence.setter + def RangeShifterSettingsSequence(self, value: Optional[List[RangeShifterSettingsSequenceItem]]): + if value is None: + self._RangeShifterSettingsSequence = [] + if "RangeShifterSettingsSequence" in self._dataset: + del self._dataset.RangeShifterSettingsSequence + elif not isinstance(value, list) or not all(isinstance(item, RangeShifterSettingsSequenceItem) for item in value): + raise ValueError("RangeShifterSettingsSequence must be a list of RangeShifterSettingsSequenceItem objects") + else: + self._RangeShifterSettingsSequence = value + if "RangeShifterSettingsSequence" not in self._dataset: + self._dataset.RangeShifterSettingsSequence = pydicom.Sequence() + self._dataset.RangeShifterSettingsSequence.clear() + self._dataset.RangeShifterSettingsSequence.extend([item.to_dataset() for item in value]) + + def add_RangeShifterSettings(self, item: RangeShifterSettingsSequenceItem): + if not isinstance(item, RangeShifterSettingsSequenceItem): + raise ValueError("Item must be an instance of RangeShifterSettingsSequenceItem") + self._RangeShifterSettingsSequence.append(item) + if "RangeShifterSettingsSequence" not in self._dataset: + self._dataset.RangeShifterSettingsSequence = pydicom.Sequence() + self._dataset.RangeShifterSettingsSequence.append(item.to_dataset()) + + @property + def LateralSpreadingDeviceSettingsSequence(self) -> Optional[List[LateralSpreadingDeviceSettingsSequenceItem]]: + if "LateralSpreadingDeviceSettingsSequence" in self._dataset: + if len(self._LateralSpreadingDeviceSettingsSequence) == len(self._dataset.LateralSpreadingDeviceSettingsSequence): + return self._LateralSpreadingDeviceSettingsSequence + else: + return [ + LateralSpreadingDeviceSettingsSequenceItem(x) for x in self._dataset.LateralSpreadingDeviceSettingsSequence + ] + return None + + @LateralSpreadingDeviceSettingsSequence.setter + def LateralSpreadingDeviceSettingsSequence(self, value: Optional[List[LateralSpreadingDeviceSettingsSequenceItem]]): + if value is None: + self._LateralSpreadingDeviceSettingsSequence = [] + if "LateralSpreadingDeviceSettingsSequence" in self._dataset: + del self._dataset.LateralSpreadingDeviceSettingsSequence + elif not isinstance(value, list) or not all( + isinstance(item, LateralSpreadingDeviceSettingsSequenceItem) for item in value + ): + raise ValueError( + "LateralSpreadingDeviceSettingsSequence must be a list of LateralSpreadingDeviceSettingsSequenceItem objects" + ) + else: + self._LateralSpreadingDeviceSettingsSequence = value + if "LateralSpreadingDeviceSettingsSequence" not in self._dataset: + self._dataset.LateralSpreadingDeviceSettingsSequence = pydicom.Sequence() + self._dataset.LateralSpreadingDeviceSettingsSequence.clear() + self._dataset.LateralSpreadingDeviceSettingsSequence.extend([item.to_dataset() for item in value]) + + def add_LateralSpreadingDeviceSettings(self, item: LateralSpreadingDeviceSettingsSequenceItem): + if not isinstance(item, LateralSpreadingDeviceSettingsSequenceItem): + raise ValueError("Item must be an instance of LateralSpreadingDeviceSettingsSequenceItem") + self._LateralSpreadingDeviceSettingsSequence.append(item) + if "LateralSpreadingDeviceSettingsSequence" not in self._dataset: + self._dataset.LateralSpreadingDeviceSettingsSequence = pydicom.Sequence() + self._dataset.LateralSpreadingDeviceSettingsSequence.append(item.to_dataset()) + + @property + def RangeModulatorSettingsSequence(self) -> Optional[List[RangeModulatorSettingsSequenceItem]]: + if "RangeModulatorSettingsSequence" in self._dataset: + if len(self._RangeModulatorSettingsSequence) == len(self._dataset.RangeModulatorSettingsSequence): + return self._RangeModulatorSettingsSequence + else: + return [RangeModulatorSettingsSequenceItem(x) for x in self._dataset.RangeModulatorSettingsSequence] + return None + + @RangeModulatorSettingsSequence.setter + def RangeModulatorSettingsSequence(self, value: Optional[List[RangeModulatorSettingsSequenceItem]]): + if value is None: + self._RangeModulatorSettingsSequence = [] + if "RangeModulatorSettingsSequence" in self._dataset: + del self._dataset.RangeModulatorSettingsSequence + elif not isinstance(value, list) or not all(isinstance(item, RangeModulatorSettingsSequenceItem) for item in value): + raise ValueError("RangeModulatorSettingsSequence must be a list of RangeModulatorSettingsSequenceItem objects") + else: + self._RangeModulatorSettingsSequence = value + if "RangeModulatorSettingsSequence" not in self._dataset: + self._dataset.RangeModulatorSettingsSequence = pydicom.Sequence() + self._dataset.RangeModulatorSettingsSequence.clear() + self._dataset.RangeModulatorSettingsSequence.extend([item.to_dataset() for item in value]) + + def add_RangeModulatorSettings(self, item: RangeModulatorSettingsSequenceItem): + if not isinstance(item, RangeModulatorSettingsSequenceItem): + raise ValueError("Item must be an instance of RangeModulatorSettingsSequenceItem") + self._RangeModulatorSettingsSequence.append(item) + if "RangeModulatorSettingsSequence" not in self._dataset: + self._dataset.RangeModulatorSettingsSequence = pydicom.Sequence() + self._dataset.RangeModulatorSettingsSequence.append(item.to_dataset()) + + @property + def ScanSpotTimeOffset(self) -> Optional[List[float]]: + if "ScanSpotTimeOffset" in self._dataset: + return self._dataset.ScanSpotTimeOffset + return None + + @ScanSpotTimeOffset.setter + def ScanSpotTimeOffset(self, value: Optional[List[float]]): + if value is None: + if "ScanSpotTimeOffset" in self._dataset: + del self._dataset.ScanSpotTimeOffset + else: + self._dataset.ScanSpotTimeOffset = value + + @property + def ScanSpotTuneID(self) -> Optional[str]: + if "ScanSpotTuneID" in self._dataset: + return self._dataset.ScanSpotTuneID + return None + + @ScanSpotTuneID.setter + def ScanSpotTuneID(self, value: Optional[str]): + if value is None: + if "ScanSpotTuneID" in self._dataset: + del self._dataset.ScanSpotTuneID + else: + self._dataset.ScanSpotTuneID = value + + @property + def ScanSpotPrescribedIndices(self) -> Optional[List[int]]: + if "ScanSpotPrescribedIndices" in self._dataset: + return self._dataset.ScanSpotPrescribedIndices + return None + + @ScanSpotPrescribedIndices.setter + def ScanSpotPrescribedIndices(self, value: Optional[List[int]]): + if value is None: + if "ScanSpotPrescribedIndices" in self._dataset: + del self._dataset.ScanSpotPrescribedIndices + else: + self._dataset.ScanSpotPrescribedIndices = value + + @property + def NumberOfScanSpotPositions(self) -> Optional[int]: + if "NumberOfScanSpotPositions" in self._dataset: + return self._dataset.NumberOfScanSpotPositions + return None + + @NumberOfScanSpotPositions.setter + def NumberOfScanSpotPositions(self, value: Optional[int]): + if value is None: + if "NumberOfScanSpotPositions" in self._dataset: + del self._dataset.NumberOfScanSpotPositions + else: + self._dataset.NumberOfScanSpotPositions = value + + @property + def ScanSpotReordered(self) -> Optional[str]: + if "ScanSpotReordered" in self._dataset: + return self._dataset.ScanSpotReordered + return None + + @ScanSpotReordered.setter + def ScanSpotReordered(self, value: Optional[str]): + if value is None: + if "ScanSpotReordered" in self._dataset: + del self._dataset.ScanSpotReordered + else: + self._dataset.ScanSpotReordered = value + + @property + def ScanSpotPositionMap(self) -> Optional[List[float]]: + if "ScanSpotPositionMap" in self._dataset: + return self._dataset.ScanSpotPositionMap + return None + + @ScanSpotPositionMap.setter + def ScanSpotPositionMap(self, value: Optional[List[float]]): + if value is None: + if "ScanSpotPositionMap" in self._dataset: + del self._dataset.ScanSpotPositionMap + else: + self._dataset.ScanSpotPositionMap = value + + @property + def ScanSpotSizesDelivered(self) -> Optional[List[float]]: + if "ScanSpotSizesDelivered" in self._dataset: + return self._dataset.ScanSpotSizesDelivered + return None + + @ScanSpotSizesDelivered.setter + def ScanSpotSizesDelivered(self, value: Optional[List[float]]): + if value is None: + if "ScanSpotSizesDelivered" in self._dataset: + del self._dataset.ScanSpotSizesDelivered + else: + self._dataset.ScanSpotSizesDelivered = value + + @property + def NumberOfPaintings(self) -> Optional[int]: + if "NumberOfPaintings" in self._dataset: + return self._dataset.NumberOfPaintings + return None + + @NumberOfPaintings.setter + def NumberOfPaintings(self, value: Optional[int]): + if value is None: + if "NumberOfPaintings" in self._dataset: + del self._dataset.NumberOfPaintings + else: + self._dataset.NumberOfPaintings = value + + @property + def IonWedgePositionSequence(self) -> Optional[List[IonWedgePositionSequenceItem]]: + if "IonWedgePositionSequence" in self._dataset: + if len(self._IonWedgePositionSequence) == len(self._dataset.IonWedgePositionSequence): + return self._IonWedgePositionSequence + else: + return [IonWedgePositionSequenceItem(x) for x in self._dataset.IonWedgePositionSequence] + return None + + @IonWedgePositionSequence.setter + def IonWedgePositionSequence(self, value: Optional[List[IonWedgePositionSequenceItem]]): + if value is None: + self._IonWedgePositionSequence = [] + if "IonWedgePositionSequence" in self._dataset: + del self._dataset.IonWedgePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, IonWedgePositionSequenceItem) for item in value): + raise ValueError("IonWedgePositionSequence must be a list of IonWedgePositionSequenceItem objects") + else: + self._IonWedgePositionSequence = value + if "IonWedgePositionSequence" not in self._dataset: + self._dataset.IonWedgePositionSequence = pydicom.Sequence() + self._dataset.IonWedgePositionSequence.clear() + self._dataset.IonWedgePositionSequence.extend([item.to_dataset() for item in value]) + + def add_IonWedgePosition(self, item: IonWedgePositionSequenceItem): + if not isinstance(item, IonWedgePositionSequenceItem): + raise ValueError("Item must be an instance of IonWedgePositionSequenceItem") + self._IonWedgePositionSequence.append(item) + if "IonWedgePositionSequence" not in self._dataset: + self._dataset.IonWedgePositionSequence = pydicom.Sequence() + self._dataset.IonWedgePositionSequence.append(item.to_dataset()) + + @property + def ReferencedControlPointIndex(self) -> Optional[int]: + if "ReferencedControlPointIndex" in self._dataset: + return self._dataset.ReferencedControlPointIndex + return None + + @ReferencedControlPointIndex.setter + def ReferencedControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedControlPointIndex" in self._dataset: + del self._dataset.ReferencedControlPointIndex + else: + self._dataset.ReferencedControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/ion_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/ion_control_point_sequence_item.py new file mode 100644 index 0000000..ac6b0e9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_control_point_sequence_item.py @@ -0,0 +1,735 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_limiting_device_position_sequence_item import ( + BeamLimitingDevicePositionSequenceItem, +) +from .enhanced_rt_beam_limiting_opening_sequence_item import ( + EnhancedRTBeamLimitingOpeningSequenceItem, +) +from .ion_wedge_position_sequence_item import IonWedgePositionSequenceItem +from .lateral_spreading_device_settings_sequence_item import ( + LateralSpreadingDeviceSettingsSequenceItem, +) +from .range_modulator_settings_sequence_item import RangeModulatorSettingsSequenceItem +from .range_shifter_settings_sequence_item import RangeShifterSettingsSequenceItem +from .referenced_dose_reference_sequence_item import ReferencedDoseReferenceSequenceItem + + +class IonControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EnhancedRTBeamLimitingOpeningSequence: List[EnhancedRTBeamLimitingOpeningSequenceItem] = [] + self._BeamLimitingDevicePositionSequence: List[BeamLimitingDevicePositionSequenceItem] = [] + self._RangeShifterSettingsSequence: List[RangeShifterSettingsSequenceItem] = [] + self._LateralSpreadingDeviceSettingsSequence: List[LateralSpreadingDeviceSettingsSequenceItem] = [] + self._RangeModulatorSettingsSequence: List[RangeModulatorSettingsSequenceItem] = [] + self._IonWedgePositionSequence: List[IonWedgePositionSequenceItem] = [] + self._ReferencedDoseReferenceSequence: List[ReferencedDoseReferenceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def EnhancedRTBeamLimitingOpeningSequence(self) -> Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]: + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingOpeningSequence) == len(self._dataset.EnhancedRTBeamLimitingOpeningSequence): + return self._EnhancedRTBeamLimitingOpeningSequence + else: + return [ + EnhancedRTBeamLimitingOpeningSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingOpeningSequence + ] + return None + + @EnhancedRTBeamLimitingOpeningSequence.setter + def EnhancedRTBeamLimitingOpeningSequence(self, value: Optional[List[EnhancedRTBeamLimitingOpeningSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingOpeningSequence = [] + if "EnhancedRTBeamLimitingOpeningSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingOpeningSequence must be a list of EnhancedRTBeamLimitingOpeningSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingOpeningSequence = value + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.clear() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingOpening(self, item: EnhancedRTBeamLimitingOpeningSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingOpeningSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingOpeningSequenceItem") + self._EnhancedRTBeamLimitingOpeningSequence.append(item) + if "EnhancedRTBeamLimitingOpeningSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingOpeningSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingOpeningSequence.append(item.to_dataset()) + + @property + def ControlPointIndex(self) -> Optional[int]: + if "ControlPointIndex" in self._dataset: + return self._dataset.ControlPointIndex + return None + + @ControlPointIndex.setter + def ControlPointIndex(self, value: Optional[int]): + if value is None: + if "ControlPointIndex" in self._dataset: + del self._dataset.ControlPointIndex + else: + self._dataset.ControlPointIndex = value + + @property + def NominalBeamEnergy(self) -> Optional[Decimal]: + if "NominalBeamEnergy" in self._dataset: + return self._dataset.NominalBeamEnergy + return None + + @NominalBeamEnergy.setter + def NominalBeamEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalBeamEnergy" in self._dataset: + del self._dataset.NominalBeamEnergy + else: + self._dataset.NominalBeamEnergy = value + + @property + def BeamLimitingDevicePositionSequence(self) -> Optional[List[BeamLimitingDevicePositionSequenceItem]]: + if "BeamLimitingDevicePositionSequence" in self._dataset: + if len(self._BeamLimitingDevicePositionSequence) == len(self._dataset.BeamLimitingDevicePositionSequence): + return self._BeamLimitingDevicePositionSequence + else: + return [BeamLimitingDevicePositionSequenceItem(x) for x in self._dataset.BeamLimitingDevicePositionSequence] + return None + + @BeamLimitingDevicePositionSequence.setter + def BeamLimitingDevicePositionSequence(self, value: Optional[List[BeamLimitingDevicePositionSequenceItem]]): + if value is None: + self._BeamLimitingDevicePositionSequence = [] + if "BeamLimitingDevicePositionSequence" in self._dataset: + del self._dataset.BeamLimitingDevicePositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDevicePositionSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDevicePositionSequence must be a list of BeamLimitingDevicePositionSequenceItem objects" + ) + else: + self._BeamLimitingDevicePositionSequence = value + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.clear() + self._dataset.BeamLimitingDevicePositionSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDevicePosition(self, item: BeamLimitingDevicePositionSequenceItem): + if not isinstance(item, BeamLimitingDevicePositionSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDevicePositionSequenceItem") + self._BeamLimitingDevicePositionSequence.append(item) + if "BeamLimitingDevicePositionSequence" not in self._dataset: + self._dataset.BeamLimitingDevicePositionSequence = pydicom.Sequence() + self._dataset.BeamLimitingDevicePositionSequence.append(item.to_dataset()) + + @property + def GantryAngle(self) -> Optional[Decimal]: + if "GantryAngle" in self._dataset: + return self._dataset.GantryAngle + return None + + @GantryAngle.setter + def GantryAngle(self, value: Optional[Decimal]): + if value is None: + if "GantryAngle" in self._dataset: + del self._dataset.GantryAngle + else: + self._dataset.GantryAngle = value + + @property + def GantryRotationDirection(self) -> Optional[str]: + if "GantryRotationDirection" in self._dataset: + return self._dataset.GantryRotationDirection + return None + + @GantryRotationDirection.setter + def GantryRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryRotationDirection" in self._dataset: + del self._dataset.GantryRotationDirection + else: + self._dataset.GantryRotationDirection = value + + @property + def BeamLimitingDeviceAngle(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngle" in self._dataset: + return self._dataset.BeamLimitingDeviceAngle + return None + + @BeamLimitingDeviceAngle.setter + def BeamLimitingDeviceAngle(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngle" in self._dataset: + del self._dataset.BeamLimitingDeviceAngle + else: + self._dataset.BeamLimitingDeviceAngle = value + + @property + def BeamLimitingDeviceRotationDirection(self) -> Optional[str]: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + return self._dataset.BeamLimitingDeviceRotationDirection + return None + + @BeamLimitingDeviceRotationDirection.setter + def BeamLimitingDeviceRotationDirection(self, value: Optional[str]): + if value is None: + if "BeamLimitingDeviceRotationDirection" in self._dataset: + del self._dataset.BeamLimitingDeviceRotationDirection + else: + self._dataset.BeamLimitingDeviceRotationDirection = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def PatientSupportRotationDirection(self) -> Optional[str]: + if "PatientSupportRotationDirection" in self._dataset: + return self._dataset.PatientSupportRotationDirection + return None + + @PatientSupportRotationDirection.setter + def PatientSupportRotationDirection(self, value: Optional[str]): + if value is None: + if "PatientSupportRotationDirection" in self._dataset: + del self._dataset.PatientSupportRotationDirection + else: + self._dataset.PatientSupportRotationDirection = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def SurfaceEntryPoint(self) -> Optional[List[Decimal]]: + if "SurfaceEntryPoint" in self._dataset: + return self._dataset.SurfaceEntryPoint + return None + + @SurfaceEntryPoint.setter + def SurfaceEntryPoint(self, value: Optional[List[Decimal]]): + if value is None: + if "SurfaceEntryPoint" in self._dataset: + del self._dataset.SurfaceEntryPoint + else: + self._dataset.SurfaceEntryPoint = value + + @property + def ExternalContourEntryPoint(self) -> Optional[List[float]]: + if "ExternalContourEntryPoint" in self._dataset: + return self._dataset.ExternalContourEntryPoint + return None + + @ExternalContourEntryPoint.setter + def ExternalContourEntryPoint(self, value: Optional[List[float]]): + if value is None: + if "ExternalContourEntryPoint" in self._dataset: + del self._dataset.ExternalContourEntryPoint + else: + self._dataset.ExternalContourEntryPoint = value + + @property + def CumulativeMetersetWeight(self) -> Optional[Decimal]: + if "CumulativeMetersetWeight" in self._dataset: + return self._dataset.CumulativeMetersetWeight + return None + + @CumulativeMetersetWeight.setter + def CumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "CumulativeMetersetWeight" in self._dataset: + del self._dataset.CumulativeMetersetWeight + else: + self._dataset.CumulativeMetersetWeight = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopPitchRotationDirection(self) -> Optional[str]: + if "TableTopPitchRotationDirection" in self._dataset: + return self._dataset.TableTopPitchRotationDirection + return None + + @TableTopPitchRotationDirection.setter + def TableTopPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopPitchRotationDirection" in self._dataset: + del self._dataset.TableTopPitchRotationDirection + else: + self._dataset.TableTopPitchRotationDirection = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def TableTopRollRotationDirection(self) -> Optional[str]: + if "TableTopRollRotationDirection" in self._dataset: + return self._dataset.TableTopRollRotationDirection + return None + + @TableTopRollRotationDirection.setter + def TableTopRollRotationDirection(self, value: Optional[str]): + if value is None: + if "TableTopRollRotationDirection" in self._dataset: + del self._dataset.TableTopRollRotationDirection + else: + self._dataset.TableTopRollRotationDirection = value + + @property + def HeadFixationAngle(self) -> Optional[float]: + if "HeadFixationAngle" in self._dataset: + return self._dataset.HeadFixationAngle + return None + + @HeadFixationAngle.setter + def HeadFixationAngle(self, value: Optional[float]): + if value is None: + if "HeadFixationAngle" in self._dataset: + del self._dataset.HeadFixationAngle + else: + self._dataset.HeadFixationAngle = value + + @property + def GantryPitchAngle(self) -> Optional[float]: + if "GantryPitchAngle" in self._dataset: + return self._dataset.GantryPitchAngle + return None + + @GantryPitchAngle.setter + def GantryPitchAngle(self, value: Optional[float]): + if value is None: + if "GantryPitchAngle" in self._dataset: + del self._dataset.GantryPitchAngle + else: + self._dataset.GantryPitchAngle = value + + @property + def GantryPitchRotationDirection(self) -> Optional[str]: + if "GantryPitchRotationDirection" in self._dataset: + return self._dataset.GantryPitchRotationDirection + return None + + @GantryPitchRotationDirection.setter + def GantryPitchRotationDirection(self, value: Optional[str]): + if value is None: + if "GantryPitchRotationDirection" in self._dataset: + del self._dataset.GantryPitchRotationDirection + else: + self._dataset.GantryPitchRotationDirection = value + + @property + def ChairHeadFramePosition(self) -> Optional[Decimal]: + if "ChairHeadFramePosition" in self._dataset: + return self._dataset.ChairHeadFramePosition + return None + + @ChairHeadFramePosition.setter + def ChairHeadFramePosition(self, value: Optional[Decimal]): + if value is None: + if "ChairHeadFramePosition" in self._dataset: + del self._dataset.ChairHeadFramePosition + else: + self._dataset.ChairHeadFramePosition = value + + @property + def SnoutPosition(self) -> Optional[float]: + if "SnoutPosition" in self._dataset: + return self._dataset.SnoutPosition + return None + + @SnoutPosition.setter + def SnoutPosition(self, value: Optional[float]): + if value is None: + if "SnoutPosition" in self._dataset: + del self._dataset.SnoutPosition + else: + self._dataset.SnoutPosition = value + + @property + def MetersetRate(self) -> Optional[float]: + if "MetersetRate" in self._dataset: + return self._dataset.MetersetRate + return None + + @MetersetRate.setter + def MetersetRate(self, value: Optional[float]): + if value is None: + if "MetersetRate" in self._dataset: + del self._dataset.MetersetRate + else: + self._dataset.MetersetRate = value + + @property + def RangeShifterSettingsSequence(self) -> Optional[List[RangeShifterSettingsSequenceItem]]: + if "RangeShifterSettingsSequence" in self._dataset: + if len(self._RangeShifterSettingsSequence) == len(self._dataset.RangeShifterSettingsSequence): + return self._RangeShifterSettingsSequence + else: + return [RangeShifterSettingsSequenceItem(x) for x in self._dataset.RangeShifterSettingsSequence] + return None + + @RangeShifterSettingsSequence.setter + def RangeShifterSettingsSequence(self, value: Optional[List[RangeShifterSettingsSequenceItem]]): + if value is None: + self._RangeShifterSettingsSequence = [] + if "RangeShifterSettingsSequence" in self._dataset: + del self._dataset.RangeShifterSettingsSequence + elif not isinstance(value, list) or not all(isinstance(item, RangeShifterSettingsSequenceItem) for item in value): + raise ValueError("RangeShifterSettingsSequence must be a list of RangeShifterSettingsSequenceItem objects") + else: + self._RangeShifterSettingsSequence = value + if "RangeShifterSettingsSequence" not in self._dataset: + self._dataset.RangeShifterSettingsSequence = pydicom.Sequence() + self._dataset.RangeShifterSettingsSequence.clear() + self._dataset.RangeShifterSettingsSequence.extend([item.to_dataset() for item in value]) + + def add_RangeShifterSettings(self, item: RangeShifterSettingsSequenceItem): + if not isinstance(item, RangeShifterSettingsSequenceItem): + raise ValueError("Item must be an instance of RangeShifterSettingsSequenceItem") + self._RangeShifterSettingsSequence.append(item) + if "RangeShifterSettingsSequence" not in self._dataset: + self._dataset.RangeShifterSettingsSequence = pydicom.Sequence() + self._dataset.RangeShifterSettingsSequence.append(item.to_dataset()) + + @property + def LateralSpreadingDeviceSettingsSequence(self) -> Optional[List[LateralSpreadingDeviceSettingsSequenceItem]]: + if "LateralSpreadingDeviceSettingsSequence" in self._dataset: + if len(self._LateralSpreadingDeviceSettingsSequence) == len(self._dataset.LateralSpreadingDeviceSettingsSequence): + return self._LateralSpreadingDeviceSettingsSequence + else: + return [ + LateralSpreadingDeviceSettingsSequenceItem(x) for x in self._dataset.LateralSpreadingDeviceSettingsSequence + ] + return None + + @LateralSpreadingDeviceSettingsSequence.setter + def LateralSpreadingDeviceSettingsSequence(self, value: Optional[List[LateralSpreadingDeviceSettingsSequenceItem]]): + if value is None: + self._LateralSpreadingDeviceSettingsSequence = [] + if "LateralSpreadingDeviceSettingsSequence" in self._dataset: + del self._dataset.LateralSpreadingDeviceSettingsSequence + elif not isinstance(value, list) or not all( + isinstance(item, LateralSpreadingDeviceSettingsSequenceItem) for item in value + ): + raise ValueError( + "LateralSpreadingDeviceSettingsSequence must be a list of LateralSpreadingDeviceSettingsSequenceItem objects" + ) + else: + self._LateralSpreadingDeviceSettingsSequence = value + if "LateralSpreadingDeviceSettingsSequence" not in self._dataset: + self._dataset.LateralSpreadingDeviceSettingsSequence = pydicom.Sequence() + self._dataset.LateralSpreadingDeviceSettingsSequence.clear() + self._dataset.LateralSpreadingDeviceSettingsSequence.extend([item.to_dataset() for item in value]) + + def add_LateralSpreadingDeviceSettings(self, item: LateralSpreadingDeviceSettingsSequenceItem): + if not isinstance(item, LateralSpreadingDeviceSettingsSequenceItem): + raise ValueError("Item must be an instance of LateralSpreadingDeviceSettingsSequenceItem") + self._LateralSpreadingDeviceSettingsSequence.append(item) + if "LateralSpreadingDeviceSettingsSequence" not in self._dataset: + self._dataset.LateralSpreadingDeviceSettingsSequence = pydicom.Sequence() + self._dataset.LateralSpreadingDeviceSettingsSequence.append(item.to_dataset()) + + @property + def RangeModulatorSettingsSequence(self) -> Optional[List[RangeModulatorSettingsSequenceItem]]: + if "RangeModulatorSettingsSequence" in self._dataset: + if len(self._RangeModulatorSettingsSequence) == len(self._dataset.RangeModulatorSettingsSequence): + return self._RangeModulatorSettingsSequence + else: + return [RangeModulatorSettingsSequenceItem(x) for x in self._dataset.RangeModulatorSettingsSequence] + return None + + @RangeModulatorSettingsSequence.setter + def RangeModulatorSettingsSequence(self, value: Optional[List[RangeModulatorSettingsSequenceItem]]): + if value is None: + self._RangeModulatorSettingsSequence = [] + if "RangeModulatorSettingsSequence" in self._dataset: + del self._dataset.RangeModulatorSettingsSequence + elif not isinstance(value, list) or not all(isinstance(item, RangeModulatorSettingsSequenceItem) for item in value): + raise ValueError("RangeModulatorSettingsSequence must be a list of RangeModulatorSettingsSequenceItem objects") + else: + self._RangeModulatorSettingsSequence = value + if "RangeModulatorSettingsSequence" not in self._dataset: + self._dataset.RangeModulatorSettingsSequence = pydicom.Sequence() + self._dataset.RangeModulatorSettingsSequence.clear() + self._dataset.RangeModulatorSettingsSequence.extend([item.to_dataset() for item in value]) + + def add_RangeModulatorSettings(self, item: RangeModulatorSettingsSequenceItem): + if not isinstance(item, RangeModulatorSettingsSequenceItem): + raise ValueError("Item must be an instance of RangeModulatorSettingsSequenceItem") + self._RangeModulatorSettingsSequence.append(item) + if "RangeModulatorSettingsSequence" not in self._dataset: + self._dataset.RangeModulatorSettingsSequence = pydicom.Sequence() + self._dataset.RangeModulatorSettingsSequence.append(item.to_dataset()) + + @property + def ScanSpotTuneID(self) -> Optional[str]: + if "ScanSpotTuneID" in self._dataset: + return self._dataset.ScanSpotTuneID + return None + + @ScanSpotTuneID.setter + def ScanSpotTuneID(self, value: Optional[str]): + if value is None: + if "ScanSpotTuneID" in self._dataset: + del self._dataset.ScanSpotTuneID + else: + self._dataset.ScanSpotTuneID = value + + @property + def NumberOfScanSpotPositions(self) -> Optional[int]: + if "NumberOfScanSpotPositions" in self._dataset: + return self._dataset.NumberOfScanSpotPositions + return None + + @NumberOfScanSpotPositions.setter + def NumberOfScanSpotPositions(self, value: Optional[int]): + if value is None: + if "NumberOfScanSpotPositions" in self._dataset: + del self._dataset.NumberOfScanSpotPositions + else: + self._dataset.NumberOfScanSpotPositions = value + + @property + def ScanSpotPositionMap(self) -> Optional[List[float]]: + if "ScanSpotPositionMap" in self._dataset: + return self._dataset.ScanSpotPositionMap + return None + + @ScanSpotPositionMap.setter + def ScanSpotPositionMap(self, value: Optional[List[float]]): + if value is None: + if "ScanSpotPositionMap" in self._dataset: + del self._dataset.ScanSpotPositionMap + else: + self._dataset.ScanSpotPositionMap = value + + @property + def ScanSpotReorderingAllowed(self) -> Optional[str]: + if "ScanSpotReorderingAllowed" in self._dataset: + return self._dataset.ScanSpotReorderingAllowed + return None + + @ScanSpotReorderingAllowed.setter + def ScanSpotReorderingAllowed(self, value: Optional[str]): + if value is None: + if "ScanSpotReorderingAllowed" in self._dataset: + del self._dataset.ScanSpotReorderingAllowed + else: + self._dataset.ScanSpotReorderingAllowed = value + + @property + def ScanSpotMetersetWeights(self) -> Optional[List[float]]: + if "ScanSpotMetersetWeights" in self._dataset: + return self._dataset.ScanSpotMetersetWeights + return None + + @ScanSpotMetersetWeights.setter + def ScanSpotMetersetWeights(self, value: Optional[List[float]]): + if value is None: + if "ScanSpotMetersetWeights" in self._dataset: + del self._dataset.ScanSpotMetersetWeights + else: + self._dataset.ScanSpotMetersetWeights = value + + @property + def ScanningSpotSize(self) -> Optional[List[float]]: + if "ScanningSpotSize" in self._dataset: + return self._dataset.ScanningSpotSize + return None + + @ScanningSpotSize.setter + def ScanningSpotSize(self, value: Optional[List[float]]): + if value is None: + if "ScanningSpotSize" in self._dataset: + del self._dataset.ScanningSpotSize + else: + self._dataset.ScanningSpotSize = value + + @property + def NumberOfPaintings(self) -> Optional[int]: + if "NumberOfPaintings" in self._dataset: + return self._dataset.NumberOfPaintings + return None + + @NumberOfPaintings.setter + def NumberOfPaintings(self, value: Optional[int]): + if value is None: + if "NumberOfPaintings" in self._dataset: + del self._dataset.NumberOfPaintings + else: + self._dataset.NumberOfPaintings = value + + @property + def IonWedgePositionSequence(self) -> Optional[List[IonWedgePositionSequenceItem]]: + if "IonWedgePositionSequence" in self._dataset: + if len(self._IonWedgePositionSequence) == len(self._dataset.IonWedgePositionSequence): + return self._IonWedgePositionSequence + else: + return [IonWedgePositionSequenceItem(x) for x in self._dataset.IonWedgePositionSequence] + return None + + @IonWedgePositionSequence.setter + def IonWedgePositionSequence(self, value: Optional[List[IonWedgePositionSequenceItem]]): + if value is None: + self._IonWedgePositionSequence = [] + if "IonWedgePositionSequence" in self._dataset: + del self._dataset.IonWedgePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, IonWedgePositionSequenceItem) for item in value): + raise ValueError("IonWedgePositionSequence must be a list of IonWedgePositionSequenceItem objects") + else: + self._IonWedgePositionSequence = value + if "IonWedgePositionSequence" not in self._dataset: + self._dataset.IonWedgePositionSequence = pydicom.Sequence() + self._dataset.IonWedgePositionSequence.clear() + self._dataset.IonWedgePositionSequence.extend([item.to_dataset() for item in value]) + + def add_IonWedgePosition(self, item: IonWedgePositionSequenceItem): + if not isinstance(item, IonWedgePositionSequenceItem): + raise ValueError("Item must be an instance of IonWedgePositionSequenceItem") + self._IonWedgePositionSequence.append(item) + if "IonWedgePositionSequence" not in self._dataset: + self._dataset.IonWedgePositionSequence = pydicom.Sequence() + self._dataset.IonWedgePositionSequence.append(item.to_dataset()) + + @property + def ReferencedDoseReferenceSequence(self) -> Optional[List[ReferencedDoseReferenceSequenceItem]]: + if "ReferencedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedDoseReferenceSequence) == len(self._dataset.ReferencedDoseReferenceSequence): + return self._ReferencedDoseReferenceSequence + else: + return [ReferencedDoseReferenceSequenceItem(x) for x in self._dataset.ReferencedDoseReferenceSequence] + return None + + @ReferencedDoseReferenceSequence.setter + def ReferencedDoseReferenceSequence(self, value: Optional[List[ReferencedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedDoseReferenceSequence = [] + if "ReferencedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseReferenceSequenceItem) for item in value): + raise ValueError("ReferencedDoseReferenceSequence must be a list of ReferencedDoseReferenceSequenceItem objects") + else: + self._ReferencedDoseReferenceSequence = value + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.clear() + self._dataset.ReferencedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDoseReference(self, item: ReferencedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseReferenceSequenceItem") + self._ReferencedDoseReferenceSequence.append(item) + if "ReferencedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedDoseReferenceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ion_range_compensator_sequence_item.py b/tdwii_plus_examples/domain_model/ion_range_compensator_sequence_item.py new file mode 100644 index 0000000..a2059a1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_range_compensator_sequence_item.py @@ -0,0 +1,250 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class IonRangeCompensatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def CompensatorNumber(self) -> Optional[int]: + if "CompensatorNumber" in self._dataset: + return self._dataset.CompensatorNumber + return None + + @CompensatorNumber.setter + def CompensatorNumber(self, value: Optional[int]): + if value is None: + if "CompensatorNumber" in self._dataset: + del self._dataset.CompensatorNumber + else: + self._dataset.CompensatorNumber = value + + @property + def CompensatorID(self) -> Optional[str]: + if "CompensatorID" in self._dataset: + return self._dataset.CompensatorID + return None + + @CompensatorID.setter + def CompensatorID(self, value: Optional[str]): + if value is None: + if "CompensatorID" in self._dataset: + del self._dataset.CompensatorID + else: + self._dataset.CompensatorID = value + + @property + def CompensatorRows(self) -> Optional[int]: + if "CompensatorRows" in self._dataset: + return self._dataset.CompensatorRows + return None + + @CompensatorRows.setter + def CompensatorRows(self, value: Optional[int]): + if value is None: + if "CompensatorRows" in self._dataset: + del self._dataset.CompensatorRows + else: + self._dataset.CompensatorRows = value + + @property + def CompensatorColumns(self) -> Optional[int]: + if "CompensatorColumns" in self._dataset: + return self._dataset.CompensatorColumns + return None + + @CompensatorColumns.setter + def CompensatorColumns(self, value: Optional[int]): + if value is None: + if "CompensatorColumns" in self._dataset: + del self._dataset.CompensatorColumns + else: + self._dataset.CompensatorColumns = value + + @property + def CompensatorPixelSpacing(self) -> Optional[List[Decimal]]: + if "CompensatorPixelSpacing" in self._dataset: + return self._dataset.CompensatorPixelSpacing + return None + + @CompensatorPixelSpacing.setter + def CompensatorPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorPixelSpacing" in self._dataset: + del self._dataset.CompensatorPixelSpacing + else: + self._dataset.CompensatorPixelSpacing = value + + @property + def CompensatorPosition(self) -> Optional[List[Decimal]]: + if "CompensatorPosition" in self._dataset: + return self._dataset.CompensatorPosition + return None + + @CompensatorPosition.setter + def CompensatorPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorPosition" in self._dataset: + del self._dataset.CompensatorPosition + else: + self._dataset.CompensatorPosition = value + + @property + def CompensatorThicknessData(self) -> Optional[List[Decimal]]: + if "CompensatorThicknessData" in self._dataset: + return self._dataset.CompensatorThicknessData + return None + + @CompensatorThicknessData.setter + def CompensatorThicknessData(self, value: Optional[List[Decimal]]): + if value is None: + if "CompensatorThicknessData" in self._dataset: + del self._dataset.CompensatorThicknessData + else: + self._dataset.CompensatorThicknessData = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def CompensatorDivergence(self) -> Optional[str]: + if "CompensatorDivergence" in self._dataset: + return self._dataset.CompensatorDivergence + return None + + @CompensatorDivergence.setter + def CompensatorDivergence(self, value: Optional[str]): + if value is None: + if "CompensatorDivergence" in self._dataset: + del self._dataset.CompensatorDivergence + else: + self._dataset.CompensatorDivergence = value + + @property + def CompensatorMountingPosition(self) -> Optional[str]: + if "CompensatorMountingPosition" in self._dataset: + return self._dataset.CompensatorMountingPosition + return None + + @CompensatorMountingPosition.setter + def CompensatorMountingPosition(self, value: Optional[str]): + if value is None: + if "CompensatorMountingPosition" in self._dataset: + del self._dataset.CompensatorMountingPosition + else: + self._dataset.CompensatorMountingPosition = value + + @property + def IsocenterToCompensatorTrayDistance(self) -> Optional[float]: + if "IsocenterToCompensatorTrayDistance" in self._dataset: + return self._dataset.IsocenterToCompensatorTrayDistance + return None + + @IsocenterToCompensatorTrayDistance.setter + def IsocenterToCompensatorTrayDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToCompensatorTrayDistance" in self._dataset: + del self._dataset.IsocenterToCompensatorTrayDistance + else: + self._dataset.IsocenterToCompensatorTrayDistance = value + + @property + def CompensatorColumnOffset(self) -> Optional[float]: + if "CompensatorColumnOffset" in self._dataset: + return self._dataset.CompensatorColumnOffset + return None + + @CompensatorColumnOffset.setter + def CompensatorColumnOffset(self, value: Optional[float]): + if value is None: + if "CompensatorColumnOffset" in self._dataset: + del self._dataset.CompensatorColumnOffset + else: + self._dataset.CompensatorColumnOffset = value + + @property + def IsocenterToCompensatorDistances(self) -> Optional[List[float]]: + if "IsocenterToCompensatorDistances" in self._dataset: + return self._dataset.IsocenterToCompensatorDistances + return None + + @IsocenterToCompensatorDistances.setter + def IsocenterToCompensatorDistances(self, value: Optional[List[float]]): + if value is None: + if "IsocenterToCompensatorDistances" in self._dataset: + del self._dataset.IsocenterToCompensatorDistances + else: + self._dataset.IsocenterToCompensatorDistances = value + + @property + def CompensatorRelativeStoppingPowerRatio(self) -> Optional[float]: + if "CompensatorRelativeStoppingPowerRatio" in self._dataset: + return self._dataset.CompensatorRelativeStoppingPowerRatio + return None + + @CompensatorRelativeStoppingPowerRatio.setter + def CompensatorRelativeStoppingPowerRatio(self, value: Optional[float]): + if value is None: + if "CompensatorRelativeStoppingPowerRatio" in self._dataset: + del self._dataset.CompensatorRelativeStoppingPowerRatio + else: + self._dataset.CompensatorRelativeStoppingPowerRatio = value + + @property + def CompensatorMillingToolDiameter(self) -> Optional[float]: + if "CompensatorMillingToolDiameter" in self._dataset: + return self._dataset.CompensatorMillingToolDiameter + return None + + @CompensatorMillingToolDiameter.setter + def CompensatorMillingToolDiameter(self, value: Optional[float]): + if value is None: + if "CompensatorMillingToolDiameter" in self._dataset: + del self._dataset.CompensatorMillingToolDiameter + else: + self._dataset.CompensatorMillingToolDiameter = value + + @property + def CompensatorDescription(self) -> Optional[str]: + if "CompensatorDescription" in self._dataset: + return self._dataset.CompensatorDescription + return None + + @CompensatorDescription.setter + def CompensatorDescription(self, value: Optional[str]): + if value is None: + if "CompensatorDescription" in self._dataset: + del self._dataset.CompensatorDescription + else: + self._dataset.CompensatorDescription = value diff --git a/tdwii_plus_examples/domain_model/ion_tolerance_table_sequence_item.py b/tdwii_plus_examples/domain_model/ion_tolerance_table_sequence_item.py new file mode 100644 index 0000000..1d8a6c7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_tolerance_table_sequence_item.py @@ -0,0 +1,263 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_limiting_device_tolerance_sequence_item import ( + BeamLimitingDeviceToleranceSequenceItem, +) + + +class IonToleranceTableSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BeamLimitingDeviceToleranceSequence: List[BeamLimitingDeviceToleranceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ToleranceTableNumber(self) -> Optional[int]: + if "ToleranceTableNumber" in self._dataset: + return self._dataset.ToleranceTableNumber + return None + + @ToleranceTableNumber.setter + def ToleranceTableNumber(self, value: Optional[int]): + if value is None: + if "ToleranceTableNumber" in self._dataset: + del self._dataset.ToleranceTableNumber + else: + self._dataset.ToleranceTableNumber = value + + @property + def ToleranceTableLabel(self) -> Optional[str]: + if "ToleranceTableLabel" in self._dataset: + return self._dataset.ToleranceTableLabel + return None + + @ToleranceTableLabel.setter + def ToleranceTableLabel(self, value: Optional[str]): + if value is None: + if "ToleranceTableLabel" in self._dataset: + del self._dataset.ToleranceTableLabel + else: + self._dataset.ToleranceTableLabel = value + + @property + def GantryAngleTolerance(self) -> Optional[Decimal]: + if "GantryAngleTolerance" in self._dataset: + return self._dataset.GantryAngleTolerance + return None + + @GantryAngleTolerance.setter + def GantryAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "GantryAngleTolerance" in self._dataset: + del self._dataset.GantryAngleTolerance + else: + self._dataset.GantryAngleTolerance = value + + @property + def BeamLimitingDeviceAngleTolerance(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngleTolerance" in self._dataset: + return self._dataset.BeamLimitingDeviceAngleTolerance + return None + + @BeamLimitingDeviceAngleTolerance.setter + def BeamLimitingDeviceAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngleTolerance" in self._dataset: + del self._dataset.BeamLimitingDeviceAngleTolerance + else: + self._dataset.BeamLimitingDeviceAngleTolerance = value + + @property + def BeamLimitingDeviceToleranceSequence(self) -> Optional[List[BeamLimitingDeviceToleranceSequenceItem]]: + if "BeamLimitingDeviceToleranceSequence" in self._dataset: + if len(self._BeamLimitingDeviceToleranceSequence) == len(self._dataset.BeamLimitingDeviceToleranceSequence): + return self._BeamLimitingDeviceToleranceSequence + else: + return [BeamLimitingDeviceToleranceSequenceItem(x) for x in self._dataset.BeamLimitingDeviceToleranceSequence] + return None + + @BeamLimitingDeviceToleranceSequence.setter + def BeamLimitingDeviceToleranceSequence(self, value: Optional[List[BeamLimitingDeviceToleranceSequenceItem]]): + if value is None: + self._BeamLimitingDeviceToleranceSequence = [] + if "BeamLimitingDeviceToleranceSequence" in self._dataset: + del self._dataset.BeamLimitingDeviceToleranceSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDeviceToleranceSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDeviceToleranceSequence must be a list of BeamLimitingDeviceToleranceSequenceItem objects" + ) + else: + self._BeamLimitingDeviceToleranceSequence = value + if "BeamLimitingDeviceToleranceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceToleranceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceToleranceSequence.clear() + self._dataset.BeamLimitingDeviceToleranceSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDeviceTolerance(self, item: BeamLimitingDeviceToleranceSequenceItem): + if not isinstance(item, BeamLimitingDeviceToleranceSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDeviceToleranceSequenceItem") + self._BeamLimitingDeviceToleranceSequence.append(item) + if "BeamLimitingDeviceToleranceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceToleranceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceToleranceSequence.append(item.to_dataset()) + + @property + def SnoutPositionTolerance(self) -> Optional[float]: + if "SnoutPositionTolerance" in self._dataset: + return self._dataset.SnoutPositionTolerance + return None + + @SnoutPositionTolerance.setter + def SnoutPositionTolerance(self, value: Optional[float]): + if value is None: + if "SnoutPositionTolerance" in self._dataset: + del self._dataset.SnoutPositionTolerance + else: + self._dataset.SnoutPositionTolerance = value + + @property + def PatientSupportAngleTolerance(self) -> Optional[Decimal]: + if "PatientSupportAngleTolerance" in self._dataset: + return self._dataset.PatientSupportAngleTolerance + return None + + @PatientSupportAngleTolerance.setter + def PatientSupportAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngleTolerance" in self._dataset: + del self._dataset.PatientSupportAngleTolerance + else: + self._dataset.PatientSupportAngleTolerance = value + + @property + def TableTopPitchAngleTolerance(self) -> Optional[float]: + if "TableTopPitchAngleTolerance" in self._dataset: + return self._dataset.TableTopPitchAngleTolerance + return None + + @TableTopPitchAngleTolerance.setter + def TableTopPitchAngleTolerance(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngleTolerance" in self._dataset: + del self._dataset.TableTopPitchAngleTolerance + else: + self._dataset.TableTopPitchAngleTolerance = value + + @property + def TableTopRollAngleTolerance(self) -> Optional[float]: + if "TableTopRollAngleTolerance" in self._dataset: + return self._dataset.TableTopRollAngleTolerance + return None + + @TableTopRollAngleTolerance.setter + def TableTopRollAngleTolerance(self, value: Optional[float]): + if value is None: + if "TableTopRollAngleTolerance" in self._dataset: + del self._dataset.TableTopRollAngleTolerance + else: + self._dataset.TableTopRollAngleTolerance = value + + @property + def TableTopVerticalPositionTolerance(self) -> Optional[Decimal]: + if "TableTopVerticalPositionTolerance" in self._dataset: + return self._dataset.TableTopVerticalPositionTolerance + return None + + @TableTopVerticalPositionTolerance.setter + def TableTopVerticalPositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPositionTolerance" in self._dataset: + del self._dataset.TableTopVerticalPositionTolerance + else: + self._dataset.TableTopVerticalPositionTolerance = value + + @property + def TableTopLongitudinalPositionTolerance(self) -> Optional[Decimal]: + if "TableTopLongitudinalPositionTolerance" in self._dataset: + return self._dataset.TableTopLongitudinalPositionTolerance + return None + + @TableTopLongitudinalPositionTolerance.setter + def TableTopLongitudinalPositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPositionTolerance" in self._dataset: + del self._dataset.TableTopLongitudinalPositionTolerance + else: + self._dataset.TableTopLongitudinalPositionTolerance = value + + @property + def TableTopLateralPositionTolerance(self) -> Optional[Decimal]: + if "TableTopLateralPositionTolerance" in self._dataset: + return self._dataset.TableTopLateralPositionTolerance + return None + + @TableTopLateralPositionTolerance.setter + def TableTopLateralPositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPositionTolerance" in self._dataset: + del self._dataset.TableTopLateralPositionTolerance + else: + self._dataset.TableTopLateralPositionTolerance = value + + @property + def HeadFixationAngleTolerance(self) -> Optional[Decimal]: + if "HeadFixationAngleTolerance" in self._dataset: + return self._dataset.HeadFixationAngleTolerance + return None + + @HeadFixationAngleTolerance.setter + def HeadFixationAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "HeadFixationAngleTolerance" in self._dataset: + del self._dataset.HeadFixationAngleTolerance + else: + self._dataset.HeadFixationAngleTolerance = value + + @property + def ChairHeadFramePositionTolerance(self) -> Optional[Decimal]: + if "ChairHeadFramePositionTolerance" in self._dataset: + return self._dataset.ChairHeadFramePositionTolerance + return None + + @ChairHeadFramePositionTolerance.setter + def ChairHeadFramePositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "ChairHeadFramePositionTolerance" in self._dataset: + del self._dataset.ChairHeadFramePositionTolerance + else: + self._dataset.ChairHeadFramePositionTolerance = value + + @property + def FixationLightAzimuthalAngleTolerance(self) -> Optional[Decimal]: + if "FixationLightAzimuthalAngleTolerance" in self._dataset: + return self._dataset.FixationLightAzimuthalAngleTolerance + return None + + @FixationLightAzimuthalAngleTolerance.setter + def FixationLightAzimuthalAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "FixationLightAzimuthalAngleTolerance" in self._dataset: + del self._dataset.FixationLightAzimuthalAngleTolerance + else: + self._dataset.FixationLightAzimuthalAngleTolerance = value + + @property + def FixationLightPolarAngleTolerance(self) -> Optional[Decimal]: + if "FixationLightPolarAngleTolerance" in self._dataset: + return self._dataset.FixationLightPolarAngleTolerance + return None + + @FixationLightPolarAngleTolerance.setter + def FixationLightPolarAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "FixationLightPolarAngleTolerance" in self._dataset: + del self._dataset.FixationLightPolarAngleTolerance + else: + self._dataset.FixationLightPolarAngleTolerance = value diff --git a/tdwii_plus_examples/domain_model/ion_wedge_position_sequence_item.py b/tdwii_plus_examples/domain_model/ion_wedge_position_sequence_item.py new file mode 100644 index 0000000..517d867 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_wedge_position_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IonWedgePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WedgeThinEdgePosition(self) -> Optional[float]: + if "WedgeThinEdgePosition" in self._dataset: + return self._dataset.WedgeThinEdgePosition + return None + + @WedgeThinEdgePosition.setter + def WedgeThinEdgePosition(self, value: Optional[float]): + if value is None: + if "WedgeThinEdgePosition" in self._dataset: + del self._dataset.WedgeThinEdgePosition + else: + self._dataset.WedgeThinEdgePosition = value + + @property + def WedgePosition(self) -> Optional[str]: + if "WedgePosition" in self._dataset: + return self._dataset.WedgePosition + return None + + @WedgePosition.setter + def WedgePosition(self, value: Optional[str]): + if value is None: + if "WedgePosition" in self._dataset: + del self._dataset.WedgePosition + else: + self._dataset.WedgePosition = value + + @property + def ReferencedWedgeNumber(self) -> Optional[int]: + if "ReferencedWedgeNumber" in self._dataset: + return self._dataset.ReferencedWedgeNumber + return None + + @ReferencedWedgeNumber.setter + def ReferencedWedgeNumber(self, value: Optional[int]): + if value is None: + if "ReferencedWedgeNumber" in self._dataset: + del self._dataset.ReferencedWedgeNumber + else: + self._dataset.ReferencedWedgeNumber = value diff --git a/tdwii_plus_examples/domain_model/ion_wedge_sequence_item.py b/tdwii_plus_examples/domain_model/ion_wedge_sequence_item.py new file mode 100644 index 0000000..2922ee2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ion_wedge_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class IonWedgeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WedgeNumber(self) -> Optional[int]: + if "WedgeNumber" in self._dataset: + return self._dataset.WedgeNumber + return None + + @WedgeNumber.setter + def WedgeNumber(self, value: Optional[int]): + if value is None: + if "WedgeNumber" in self._dataset: + del self._dataset.WedgeNumber + else: + self._dataset.WedgeNumber = value + + @property + def WedgeType(self) -> Optional[str]: + if "WedgeType" in self._dataset: + return self._dataset.WedgeType + return None + + @WedgeType.setter + def WedgeType(self, value: Optional[str]): + if value is None: + if "WedgeType" in self._dataset: + del self._dataset.WedgeType + else: + self._dataset.WedgeType = value + + @property + def WedgeID(self) -> Optional[str]: + if "WedgeID" in self._dataset: + return self._dataset.WedgeID + return None + + @WedgeID.setter + def WedgeID(self, value: Optional[str]): + if value is None: + if "WedgeID" in self._dataset: + del self._dataset.WedgeID + else: + self._dataset.WedgeID = value + + @property + def WedgeAngle(self) -> Optional[int]: + if "WedgeAngle" in self._dataset: + return self._dataset.WedgeAngle + return None + + @WedgeAngle.setter + def WedgeAngle(self, value: Optional[int]): + if value is None: + if "WedgeAngle" in self._dataset: + del self._dataset.WedgeAngle + else: + self._dataset.WedgeAngle = value + + @property + def WedgeOrientation(self) -> Optional[Decimal]: + if "WedgeOrientation" in self._dataset: + return self._dataset.WedgeOrientation + return None + + @WedgeOrientation.setter + def WedgeOrientation(self, value: Optional[Decimal]): + if value is None: + if "WedgeOrientation" in self._dataset: + del self._dataset.WedgeOrientation + else: + self._dataset.WedgeOrientation = value + + @property + def IsocenterToWedgeTrayDistance(self) -> Optional[float]: + if "IsocenterToWedgeTrayDistance" in self._dataset: + return self._dataset.IsocenterToWedgeTrayDistance + return None + + @IsocenterToWedgeTrayDistance.setter + def IsocenterToWedgeTrayDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToWedgeTrayDistance" in self._dataset: + del self._dataset.IsocenterToWedgeTrayDistance + else: + self._dataset.IsocenterToWedgeTrayDistance = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/irradiation_event_identification_sequence_item.py b/tdwii_plus_examples/domain_model/irradiation_event_identification_sequence_item.py new file mode 100644 index 0000000..7982917 --- /dev/null +++ b/tdwii_plus_examples/domain_model/irradiation_event_identification_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IrradiationEventIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value diff --git a/tdwii_plus_examples/domain_model/isocenter_reference_system_sequence_item.py b/tdwii_plus_examples/domain_model/isocenter_reference_system_sequence_item.py new file mode 100644 index 0000000..e95e2c1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/isocenter_reference_system_sequence_item.py @@ -0,0 +1,207 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IsocenterReferenceSystemSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def XRaySourceIsocenterPrimaryAngle(self) -> Optional[float]: + if "XRaySourceIsocenterPrimaryAngle" in self._dataset: + return self._dataset.XRaySourceIsocenterPrimaryAngle + return None + + @XRaySourceIsocenterPrimaryAngle.setter + def XRaySourceIsocenterPrimaryAngle(self, value: Optional[float]): + if value is None: + if "XRaySourceIsocenterPrimaryAngle" in self._dataset: + del self._dataset.XRaySourceIsocenterPrimaryAngle + else: + self._dataset.XRaySourceIsocenterPrimaryAngle = value + + @property + def XRaySourceIsocenterSecondaryAngle(self) -> Optional[float]: + if "XRaySourceIsocenterSecondaryAngle" in self._dataset: + return self._dataset.XRaySourceIsocenterSecondaryAngle + return None + + @XRaySourceIsocenterSecondaryAngle.setter + def XRaySourceIsocenterSecondaryAngle(self, value: Optional[float]): + if value is None: + if "XRaySourceIsocenterSecondaryAngle" in self._dataset: + del self._dataset.XRaySourceIsocenterSecondaryAngle + else: + self._dataset.XRaySourceIsocenterSecondaryAngle = value + + @property + def BreastSupportIsocenterPrimaryAngle(self) -> Optional[float]: + if "BreastSupportIsocenterPrimaryAngle" in self._dataset: + return self._dataset.BreastSupportIsocenterPrimaryAngle + return None + + @BreastSupportIsocenterPrimaryAngle.setter + def BreastSupportIsocenterPrimaryAngle(self, value: Optional[float]): + if value is None: + if "BreastSupportIsocenterPrimaryAngle" in self._dataset: + del self._dataset.BreastSupportIsocenterPrimaryAngle + else: + self._dataset.BreastSupportIsocenterPrimaryAngle = value + + @property + def BreastSupportIsocenterSecondaryAngle(self) -> Optional[float]: + if "BreastSupportIsocenterSecondaryAngle" in self._dataset: + return self._dataset.BreastSupportIsocenterSecondaryAngle + return None + + @BreastSupportIsocenterSecondaryAngle.setter + def BreastSupportIsocenterSecondaryAngle(self, value: Optional[float]): + if value is None: + if "BreastSupportIsocenterSecondaryAngle" in self._dataset: + del self._dataset.BreastSupportIsocenterSecondaryAngle + else: + self._dataset.BreastSupportIsocenterSecondaryAngle = value + + @property + def BreastSupportXPositionToIsocenter(self) -> Optional[float]: + if "BreastSupportXPositionToIsocenter" in self._dataset: + return self._dataset.BreastSupportXPositionToIsocenter + return None + + @BreastSupportXPositionToIsocenter.setter + def BreastSupportXPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "BreastSupportXPositionToIsocenter" in self._dataset: + del self._dataset.BreastSupportXPositionToIsocenter + else: + self._dataset.BreastSupportXPositionToIsocenter = value + + @property + def BreastSupportYPositionToIsocenter(self) -> Optional[float]: + if "BreastSupportYPositionToIsocenter" in self._dataset: + return self._dataset.BreastSupportYPositionToIsocenter + return None + + @BreastSupportYPositionToIsocenter.setter + def BreastSupportYPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "BreastSupportYPositionToIsocenter" in self._dataset: + del self._dataset.BreastSupportYPositionToIsocenter + else: + self._dataset.BreastSupportYPositionToIsocenter = value + + @property + def BreastSupportZPositionToIsocenter(self) -> Optional[float]: + if "BreastSupportZPositionToIsocenter" in self._dataset: + return self._dataset.BreastSupportZPositionToIsocenter + return None + + @BreastSupportZPositionToIsocenter.setter + def BreastSupportZPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "BreastSupportZPositionToIsocenter" in self._dataset: + del self._dataset.BreastSupportZPositionToIsocenter + else: + self._dataset.BreastSupportZPositionToIsocenter = value + + @property + def DetectorIsocenterPrimaryAngle(self) -> Optional[float]: + if "DetectorIsocenterPrimaryAngle" in self._dataset: + return self._dataset.DetectorIsocenterPrimaryAngle + return None + + @DetectorIsocenterPrimaryAngle.setter + def DetectorIsocenterPrimaryAngle(self, value: Optional[float]): + if value is None: + if "DetectorIsocenterPrimaryAngle" in self._dataset: + del self._dataset.DetectorIsocenterPrimaryAngle + else: + self._dataset.DetectorIsocenterPrimaryAngle = value + + @property + def DetectorIsocenterSecondaryAngle(self) -> Optional[float]: + if "DetectorIsocenterSecondaryAngle" in self._dataset: + return self._dataset.DetectorIsocenterSecondaryAngle + return None + + @DetectorIsocenterSecondaryAngle.setter + def DetectorIsocenterSecondaryAngle(self, value: Optional[float]): + if value is None: + if "DetectorIsocenterSecondaryAngle" in self._dataset: + del self._dataset.DetectorIsocenterSecondaryAngle + else: + self._dataset.DetectorIsocenterSecondaryAngle = value + + @property + def DetectorXPositionToIsocenter(self) -> Optional[float]: + if "DetectorXPositionToIsocenter" in self._dataset: + return self._dataset.DetectorXPositionToIsocenter + return None + + @DetectorXPositionToIsocenter.setter + def DetectorXPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "DetectorXPositionToIsocenter" in self._dataset: + del self._dataset.DetectorXPositionToIsocenter + else: + self._dataset.DetectorXPositionToIsocenter = value + + @property + def DetectorYPositionToIsocenter(self) -> Optional[float]: + if "DetectorYPositionToIsocenter" in self._dataset: + return self._dataset.DetectorYPositionToIsocenter + return None + + @DetectorYPositionToIsocenter.setter + def DetectorYPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "DetectorYPositionToIsocenter" in self._dataset: + del self._dataset.DetectorYPositionToIsocenter + else: + self._dataset.DetectorYPositionToIsocenter = value + + @property + def DetectorZPositionToIsocenter(self) -> Optional[float]: + if "DetectorZPositionToIsocenter" in self._dataset: + return self._dataset.DetectorZPositionToIsocenter + return None + + @DetectorZPositionToIsocenter.setter + def DetectorZPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "DetectorZPositionToIsocenter" in self._dataset: + del self._dataset.DetectorZPositionToIsocenter + else: + self._dataset.DetectorZPositionToIsocenter = value + + @property + def DetectorActiveAreaTLHCPosition(self) -> Optional[List[float]]: + if "DetectorActiveAreaTLHCPosition" in self._dataset: + return self._dataset.DetectorActiveAreaTLHCPosition + return None + + @DetectorActiveAreaTLHCPosition.setter + def DetectorActiveAreaTLHCPosition(self, value: Optional[List[float]]): + if value is None: + if "DetectorActiveAreaTLHCPosition" in self._dataset: + del self._dataset.DetectorActiveAreaTLHCPosition + else: + self._dataset.DetectorActiveAreaTLHCPosition = value + + @property + def DetectorActiveAreaOrientation(self) -> Optional[List[float]]: + if "DetectorActiveAreaOrientation" in self._dataset: + return self._dataset.DetectorActiveAreaOrientation + return None + + @DetectorActiveAreaOrientation.setter + def DetectorActiveAreaOrientation(self, value: Optional[List[float]]): + if value is None: + if "DetectorActiveAreaOrientation" in self._dataset: + del self._dataset.DetectorActiveAreaOrientation + else: + self._dataset.DetectorActiveAreaOrientation = value diff --git a/tdwii_plus_examples/domain_model/issuer_of_accession_number_sequence_item.py b/tdwii_plus_examples/domain_model/issuer_of_accession_number_sequence_item.py new file mode 100644 index 0000000..71b1865 --- /dev/null +++ b/tdwii_plus_examples/domain_model/issuer_of_accession_number_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IssuerOfAccessionNumberSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/issuer_of_admission_id_sequence_item.py b/tdwii_plus_examples/domain_model/issuer_of_admission_id_sequence_item.py new file mode 100644 index 0000000..a7f2a25 --- /dev/null +++ b/tdwii_plus_examples/domain_model/issuer_of_admission_id_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IssuerOfAdmissionIDSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/issuer_of_patient_id_qualifiers_sequence_item.py b/tdwii_plus_examples/domain_model/issuer_of_patient_id_qualifiers_sequence_item.py new file mode 100644 index 0000000..0ba2663 --- /dev/null +++ b/tdwii_plus_examples/domain_model/issuer_of_patient_id_qualifiers_sequence_item.py @@ -0,0 +1,157 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .assigning_facility_sequence_item import AssigningFacilitySequenceItem +from .code_sequence_item import CodeSequenceItem + + +class IssuerOfPatientIDQualifiersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AssigningFacilitySequence: List[AssigningFacilitySequenceItem] = [] + self._AssigningJurisdictionCodeSequence: List[CodeSequenceItem] = [] + self._AssigningAgencyOrDepartmentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value + + @property + def IdentifierTypeCode(self) -> Optional[str]: + if "IdentifierTypeCode" in self._dataset: + return self._dataset.IdentifierTypeCode + return None + + @IdentifierTypeCode.setter + def IdentifierTypeCode(self, value: Optional[str]): + if value is None: + if "IdentifierTypeCode" in self._dataset: + del self._dataset.IdentifierTypeCode + else: + self._dataset.IdentifierTypeCode = value + + @property + def AssigningFacilitySequence(self) -> Optional[List[AssigningFacilitySequenceItem]]: + if "AssigningFacilitySequence" in self._dataset: + if len(self._AssigningFacilitySequence) == len(self._dataset.AssigningFacilitySequence): + return self._AssigningFacilitySequence + else: + return [AssigningFacilitySequenceItem(x) for x in self._dataset.AssigningFacilitySequence] + return None + + @AssigningFacilitySequence.setter + def AssigningFacilitySequence(self, value: Optional[List[AssigningFacilitySequenceItem]]): + if value is None: + self._AssigningFacilitySequence = [] + if "AssigningFacilitySequence" in self._dataset: + del self._dataset.AssigningFacilitySequence + elif not isinstance(value, list) or not all(isinstance(item, AssigningFacilitySequenceItem) for item in value): + raise ValueError("AssigningFacilitySequence must be a list of AssigningFacilitySequenceItem objects") + else: + self._AssigningFacilitySequence = value + if "AssigningFacilitySequence" not in self._dataset: + self._dataset.AssigningFacilitySequence = pydicom.Sequence() + self._dataset.AssigningFacilitySequence.clear() + self._dataset.AssigningFacilitySequence.extend([item.to_dataset() for item in value]) + + def add_AssigningFacility(self, item: AssigningFacilitySequenceItem): + if not isinstance(item, AssigningFacilitySequenceItem): + raise ValueError("Item must be an instance of AssigningFacilitySequenceItem") + self._AssigningFacilitySequence.append(item) + if "AssigningFacilitySequence" not in self._dataset: + self._dataset.AssigningFacilitySequence = pydicom.Sequence() + self._dataset.AssigningFacilitySequence.append(item.to_dataset()) + + @property + def AssigningJurisdictionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AssigningJurisdictionCodeSequence" in self._dataset: + if len(self._AssigningJurisdictionCodeSequence) == len(self._dataset.AssigningJurisdictionCodeSequence): + return self._AssigningJurisdictionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AssigningJurisdictionCodeSequence] + return None + + @AssigningJurisdictionCodeSequence.setter + def AssigningJurisdictionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AssigningJurisdictionCodeSequence = [] + if "AssigningJurisdictionCodeSequence" in self._dataset: + del self._dataset.AssigningJurisdictionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AssigningJurisdictionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AssigningJurisdictionCodeSequence = value + if "AssigningJurisdictionCodeSequence" not in self._dataset: + self._dataset.AssigningJurisdictionCodeSequence = pydicom.Sequence() + self._dataset.AssigningJurisdictionCodeSequence.clear() + self._dataset.AssigningJurisdictionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AssigningJurisdictionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AssigningJurisdictionCodeSequence.append(item) + if "AssigningJurisdictionCodeSequence" not in self._dataset: + self._dataset.AssigningJurisdictionCodeSequence = pydicom.Sequence() + self._dataset.AssigningJurisdictionCodeSequence.append(item.to_dataset()) + + @property + def AssigningAgencyOrDepartmentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AssigningAgencyOrDepartmentCodeSequence" in self._dataset: + if len(self._AssigningAgencyOrDepartmentCodeSequence) == len( + self._dataset.AssigningAgencyOrDepartmentCodeSequence + ): + return self._AssigningAgencyOrDepartmentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AssigningAgencyOrDepartmentCodeSequence] + return None + + @AssigningAgencyOrDepartmentCodeSequence.setter + def AssigningAgencyOrDepartmentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AssigningAgencyOrDepartmentCodeSequence = [] + if "AssigningAgencyOrDepartmentCodeSequence" in self._dataset: + del self._dataset.AssigningAgencyOrDepartmentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AssigningAgencyOrDepartmentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AssigningAgencyOrDepartmentCodeSequence = value + if "AssigningAgencyOrDepartmentCodeSequence" not in self._dataset: + self._dataset.AssigningAgencyOrDepartmentCodeSequence = pydicom.Sequence() + self._dataset.AssigningAgencyOrDepartmentCodeSequence.clear() + self._dataset.AssigningAgencyOrDepartmentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AssigningAgencyOrDepartmentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AssigningAgencyOrDepartmentCodeSequence.append(item) + if "AssigningAgencyOrDepartmentCodeSequence" not in self._dataset: + self._dataset.AssigningAgencyOrDepartmentCodeSequence = pydicom.Sequence() + self._dataset.AssigningAgencyOrDepartmentCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/issuer_of_service_episode_id_sequence_item.py b/tdwii_plus_examples/domain_model/issuer_of_service_episode_id_sequence_item.py new file mode 100644 index 0000000..09e8d77 --- /dev/null +++ b/tdwii_plus_examples/domain_model/issuer_of_service_episode_id_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IssuerOfServiceEpisodeIDSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/issuer_of_the_container_identifier_sequence_item.py b/tdwii_plus_examples/domain_model/issuer_of_the_container_identifier_sequence_item.py new file mode 100644 index 0000000..94f6050 --- /dev/null +++ b/tdwii_plus_examples/domain_model/issuer_of_the_container_identifier_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IssuerOfTheContainerIdentifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/issuer_of_the_specimen_identifier_sequence_item.py b/tdwii_plus_examples/domain_model/issuer_of_the_specimen_identifier_sequence_item.py new file mode 100644 index 0000000..0a70322 --- /dev/null +++ b/tdwii_plus_examples/domain_model/issuer_of_the_specimen_identifier_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class IssuerOfTheSpecimenIdentifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/keratometry_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/keratometry_left_eye_sequence_item.py new file mode 100644 index 0000000..113279c --- /dev/null +++ b/tdwii_plus_examples/domain_model/keratometry_left_eye_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .flat_keratometric_axis_sequence_item import FlatKeratometricAxisSequenceItem +from .steep_keratometric_axis_sequence_item import SteepKeratometricAxisSequenceItem + + +class KeratometryLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SteepKeratometricAxisSequence: List[SteepKeratometricAxisSequenceItem] = [] + self._FlatKeratometricAxisSequence: List[FlatKeratometricAxisSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SteepKeratometricAxisSequence(self) -> Optional[List[SteepKeratometricAxisSequenceItem]]: + if "SteepKeratometricAxisSequence" in self._dataset: + if len(self._SteepKeratometricAxisSequence) == len(self._dataset.SteepKeratometricAxisSequence): + return self._SteepKeratometricAxisSequence + else: + return [SteepKeratometricAxisSequenceItem(x) for x in self._dataset.SteepKeratometricAxisSequence] + return None + + @SteepKeratometricAxisSequence.setter + def SteepKeratometricAxisSequence(self, value: Optional[List[SteepKeratometricAxisSequenceItem]]): + if value is None: + self._SteepKeratometricAxisSequence = [] + if "SteepKeratometricAxisSequence" in self._dataset: + del self._dataset.SteepKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, SteepKeratometricAxisSequenceItem) for item in value): + raise ValueError("SteepKeratometricAxisSequence must be a list of SteepKeratometricAxisSequenceItem objects") + else: + self._SteepKeratometricAxisSequence = value + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.clear() + self._dataset.SteepKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_SteepKeratometricAxis(self, item: SteepKeratometricAxisSequenceItem): + if not isinstance(item, SteepKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of SteepKeratometricAxisSequenceItem") + self._SteepKeratometricAxisSequence.append(item) + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.append(item.to_dataset()) + + @property + def FlatKeratometricAxisSequence(self) -> Optional[List[FlatKeratometricAxisSequenceItem]]: + if "FlatKeratometricAxisSequence" in self._dataset: + if len(self._FlatKeratometricAxisSequence) == len(self._dataset.FlatKeratometricAxisSequence): + return self._FlatKeratometricAxisSequence + else: + return [FlatKeratometricAxisSequenceItem(x) for x in self._dataset.FlatKeratometricAxisSequence] + return None + + @FlatKeratometricAxisSequence.setter + def FlatKeratometricAxisSequence(self, value: Optional[List[FlatKeratometricAxisSequenceItem]]): + if value is None: + self._FlatKeratometricAxisSequence = [] + if "FlatKeratometricAxisSequence" in self._dataset: + del self._dataset.FlatKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, FlatKeratometricAxisSequenceItem) for item in value): + raise ValueError("FlatKeratometricAxisSequence must be a list of FlatKeratometricAxisSequenceItem objects") + else: + self._FlatKeratometricAxisSequence = value + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.clear() + self._dataset.FlatKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_FlatKeratometricAxis(self, item: FlatKeratometricAxisSequenceItem): + if not isinstance(item, FlatKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of FlatKeratometricAxisSequenceItem") + self._FlatKeratometricAxisSequence.append(item) + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/keratometry_measurements.py b/tdwii_plus_examples/domain_model/keratometry_measurements.py new file mode 100644 index 0000000..22df6ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/keratometry_measurements.py @@ -0,0 +1,4166 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .keratometry_left_eye_sequence_item import KeratometryLeftEyeSequenceItem +from .keratometry_right_eye_sequence_item import KeratometryRightEyeSequenceItem +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class KeratometryMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._KeratometryRightEyeSequence: List[KeratometryRightEyeSequenceItem] = [] + self._KeratometryLeftEyeSequence: List[KeratometryLeftEyeSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def KeratometryRightEyeSequence(self) -> Optional[List[KeratometryRightEyeSequenceItem]]: + if "KeratometryRightEyeSequence" in self._dataset: + if len(self._KeratometryRightEyeSequence) == len(self._dataset.KeratometryRightEyeSequence): + return self._KeratometryRightEyeSequence + else: + return [KeratometryRightEyeSequenceItem(x) for x in self._dataset.KeratometryRightEyeSequence] + return None + + @KeratometryRightEyeSequence.setter + def KeratometryRightEyeSequence(self, value: Optional[List[KeratometryRightEyeSequenceItem]]): + if value is None: + self._KeratometryRightEyeSequence = [] + if "KeratometryRightEyeSequence" in self._dataset: + del self._dataset.KeratometryRightEyeSequence + elif not isinstance(value, list) or not all(isinstance(item, KeratometryRightEyeSequenceItem) for item in value): + raise ValueError("KeratometryRightEyeSequence must be a list of KeratometryRightEyeSequenceItem objects") + else: + self._KeratometryRightEyeSequence = value + if "KeratometryRightEyeSequence" not in self._dataset: + self._dataset.KeratometryRightEyeSequence = pydicom.Sequence() + self._dataset.KeratometryRightEyeSequence.clear() + self._dataset.KeratometryRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_KeratometryRightEye(self, item: KeratometryRightEyeSequenceItem): + if not isinstance(item, KeratometryRightEyeSequenceItem): + raise ValueError("Item must be an instance of KeratometryRightEyeSequenceItem") + self._KeratometryRightEyeSequence.append(item) + if "KeratometryRightEyeSequence" not in self._dataset: + self._dataset.KeratometryRightEyeSequence = pydicom.Sequence() + self._dataset.KeratometryRightEyeSequence.append(item.to_dataset()) + + @property + def KeratometryLeftEyeSequence(self) -> Optional[List[KeratometryLeftEyeSequenceItem]]: + if "KeratometryLeftEyeSequence" in self._dataset: + if len(self._KeratometryLeftEyeSequence) == len(self._dataset.KeratometryLeftEyeSequence): + return self._KeratometryLeftEyeSequence + else: + return [KeratometryLeftEyeSequenceItem(x) for x in self._dataset.KeratometryLeftEyeSequence] + return None + + @KeratometryLeftEyeSequence.setter + def KeratometryLeftEyeSequence(self, value: Optional[List[KeratometryLeftEyeSequenceItem]]): + if value is None: + self._KeratometryLeftEyeSequence = [] + if "KeratometryLeftEyeSequence" in self._dataset: + del self._dataset.KeratometryLeftEyeSequence + elif not isinstance(value, list) or not all(isinstance(item, KeratometryLeftEyeSequenceItem) for item in value): + raise ValueError("KeratometryLeftEyeSequence must be a list of KeratometryLeftEyeSequenceItem objects") + else: + self._KeratometryLeftEyeSequence = value + if "KeratometryLeftEyeSequence" not in self._dataset: + self._dataset.KeratometryLeftEyeSequence = pydicom.Sequence() + self._dataset.KeratometryLeftEyeSequence.clear() + self._dataset.KeratometryLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_KeratometryLeftEye(self, item: KeratometryLeftEyeSequenceItem): + if not isinstance(item, KeratometryLeftEyeSequenceItem): + raise ValueError("Item must be an instance of KeratometryLeftEyeSequenceItem") + self._KeratometryLeftEyeSequence.append(item) + if "KeratometryLeftEyeSequence" not in self._dataset: + self._dataset.KeratometryLeftEyeSequence = pydicom.Sequence() + self._dataset.KeratometryLeftEyeSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/keratometry_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/keratometry_right_eye_sequence_item.py new file mode 100644 index 0000000..9cc0718 --- /dev/null +++ b/tdwii_plus_examples/domain_model/keratometry_right_eye_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .flat_keratometric_axis_sequence_item import FlatKeratometricAxisSequenceItem +from .steep_keratometric_axis_sequence_item import SteepKeratometricAxisSequenceItem + + +class KeratometryRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SteepKeratometricAxisSequence: List[SteepKeratometricAxisSequenceItem] = [] + self._FlatKeratometricAxisSequence: List[FlatKeratometricAxisSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SteepKeratometricAxisSequence(self) -> Optional[List[SteepKeratometricAxisSequenceItem]]: + if "SteepKeratometricAxisSequence" in self._dataset: + if len(self._SteepKeratometricAxisSequence) == len(self._dataset.SteepKeratometricAxisSequence): + return self._SteepKeratometricAxisSequence + else: + return [SteepKeratometricAxisSequenceItem(x) for x in self._dataset.SteepKeratometricAxisSequence] + return None + + @SteepKeratometricAxisSequence.setter + def SteepKeratometricAxisSequence(self, value: Optional[List[SteepKeratometricAxisSequenceItem]]): + if value is None: + self._SteepKeratometricAxisSequence = [] + if "SteepKeratometricAxisSequence" in self._dataset: + del self._dataset.SteepKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, SteepKeratometricAxisSequenceItem) for item in value): + raise ValueError("SteepKeratometricAxisSequence must be a list of SteepKeratometricAxisSequenceItem objects") + else: + self._SteepKeratometricAxisSequence = value + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.clear() + self._dataset.SteepKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_SteepKeratometricAxis(self, item: SteepKeratometricAxisSequenceItem): + if not isinstance(item, SteepKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of SteepKeratometricAxisSequenceItem") + self._SteepKeratometricAxisSequence.append(item) + if "SteepKeratometricAxisSequence" not in self._dataset: + self._dataset.SteepKeratometricAxisSequence = pydicom.Sequence() + self._dataset.SteepKeratometricAxisSequence.append(item.to_dataset()) + + @property + def FlatKeratometricAxisSequence(self) -> Optional[List[FlatKeratometricAxisSequenceItem]]: + if "FlatKeratometricAxisSequence" in self._dataset: + if len(self._FlatKeratometricAxisSequence) == len(self._dataset.FlatKeratometricAxisSequence): + return self._FlatKeratometricAxisSequence + else: + return [FlatKeratometricAxisSequenceItem(x) for x in self._dataset.FlatKeratometricAxisSequence] + return None + + @FlatKeratometricAxisSequence.setter + def FlatKeratometricAxisSequence(self, value: Optional[List[FlatKeratometricAxisSequenceItem]]): + if value is None: + self._FlatKeratometricAxisSequence = [] + if "FlatKeratometricAxisSequence" in self._dataset: + del self._dataset.FlatKeratometricAxisSequence + elif not isinstance(value, list) or not all(isinstance(item, FlatKeratometricAxisSequenceItem) for item in value): + raise ValueError("FlatKeratometricAxisSequence must be a list of FlatKeratometricAxisSequenceItem objects") + else: + self._FlatKeratometricAxisSequence = value + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.clear() + self._dataset.FlatKeratometricAxisSequence.extend([item.to_dataset() for item in value]) + + def add_FlatKeratometricAxis(self, item: FlatKeratometricAxisSequenceItem): + if not isinstance(item, FlatKeratometricAxisSequenceItem): + raise ValueError("Item must be an instance of FlatKeratometricAxisSequenceItem") + self._FlatKeratometricAxisSequence.append(item) + if "FlatKeratometricAxisSequence" not in self._dataset: + self._dataset.FlatKeratometricAxisSequence = pydicom.Sequence() + self._dataset.FlatKeratometricAxisSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/key_object_selection_document.py b/tdwii_plus_examples/domain_model/key_object_selection_document.py new file mode 100644 index 0000000..9e1f776 --- /dev/null +++ b/tdwii_plus_examples/domain_model/key_object_selection_document.py @@ -0,0 +1,4178 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class KeyObjectSelectionDocument: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/kv_imaging_generation_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/kv_imaging_generation_parameters_sequence_item.py new file mode 100644 index 0000000..5cfac16 --- /dev/null +++ b/tdwii_plus_examples/domain_model/kv_imaging_generation_parameters_sequence_item.py @@ -0,0 +1,151 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .x_ray_filter_sequence_item import XRayFilterSequenceItem + + +class KVImagingGenerationParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._XRayFilterSequence: List[XRayFilterSequenceItem] = [] + self._EnergyDerivationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def RadiationMode(self) -> Optional[str]: + if "RadiationMode" in self._dataset: + return self._dataset.RadiationMode + return None + + @RadiationMode.setter + def RadiationMode(self, value: Optional[str]): + if value is None: + if "RadiationMode" in self._dataset: + del self._dataset.RadiationMode + else: + self._dataset.RadiationMode = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def XRayFilterSequence(self) -> Optional[List[XRayFilterSequenceItem]]: + if "XRayFilterSequence" in self._dataset: + if len(self._XRayFilterSequence) == len(self._dataset.XRayFilterSequence): + return self._XRayFilterSequence + else: + return [XRayFilterSequenceItem(x) for x in self._dataset.XRayFilterSequence] + return None + + @XRayFilterSequence.setter + def XRayFilterSequence(self, value: Optional[List[XRayFilterSequenceItem]]): + if value is None: + self._XRayFilterSequence = [] + if "XRayFilterSequence" in self._dataset: + del self._dataset.XRayFilterSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayFilterSequenceItem) for item in value): + raise ValueError("XRayFilterSequence must be a list of XRayFilterSequenceItem objects") + else: + self._XRayFilterSequence = value + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.clear() + self._dataset.XRayFilterSequence.extend([item.to_dataset() for item in value]) + + def add_XRayFilter(self, item: XRayFilterSequenceItem): + if not isinstance(item, XRayFilterSequenceItem): + raise ValueError("Item must be an instance of XRayFilterSequenceItem") + self._XRayFilterSequence.append(item) + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.append(item.to_dataset()) + + @property + def EnergyDerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EnergyDerivationCodeSequence" in self._dataset: + if len(self._EnergyDerivationCodeSequence) == len(self._dataset.EnergyDerivationCodeSequence): + return self._EnergyDerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EnergyDerivationCodeSequence] + return None + + @EnergyDerivationCodeSequence.setter + def EnergyDerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EnergyDerivationCodeSequence = [] + if "EnergyDerivationCodeSequence" in self._dataset: + del self._dataset.EnergyDerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EnergyDerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EnergyDerivationCodeSequence = value + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.clear() + self._dataset.EnergyDerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyDerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EnergyDerivationCodeSequence.append(item) + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/lateral_spreading_device_sequence_item.py b/tdwii_plus_examples/domain_model/lateral_spreading_device_sequence_item.py new file mode 100644 index 0000000..158c29a --- /dev/null +++ b/tdwii_plus_examples/domain_model/lateral_spreading_device_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class LateralSpreadingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def LateralSpreadingDeviceNumber(self) -> Optional[int]: + if "LateralSpreadingDeviceNumber" in self._dataset: + return self._dataset.LateralSpreadingDeviceNumber + return None + + @LateralSpreadingDeviceNumber.setter + def LateralSpreadingDeviceNumber(self, value: Optional[int]): + if value is None: + if "LateralSpreadingDeviceNumber" in self._dataset: + del self._dataset.LateralSpreadingDeviceNumber + else: + self._dataset.LateralSpreadingDeviceNumber = value + + @property + def LateralSpreadingDeviceID(self) -> Optional[str]: + if "LateralSpreadingDeviceID" in self._dataset: + return self._dataset.LateralSpreadingDeviceID + return None + + @LateralSpreadingDeviceID.setter + def LateralSpreadingDeviceID(self, value: Optional[str]): + if value is None: + if "LateralSpreadingDeviceID" in self._dataset: + del self._dataset.LateralSpreadingDeviceID + else: + self._dataset.LateralSpreadingDeviceID = value + + @property + def LateralSpreadingDeviceType(self) -> Optional[str]: + if "LateralSpreadingDeviceType" in self._dataset: + return self._dataset.LateralSpreadingDeviceType + return None + + @LateralSpreadingDeviceType.setter + def LateralSpreadingDeviceType(self, value: Optional[str]): + if value is None: + if "LateralSpreadingDeviceType" in self._dataset: + del self._dataset.LateralSpreadingDeviceType + else: + self._dataset.LateralSpreadingDeviceType = value + + @property + def LateralSpreadingDeviceDescription(self) -> Optional[str]: + if "LateralSpreadingDeviceDescription" in self._dataset: + return self._dataset.LateralSpreadingDeviceDescription + return None + + @LateralSpreadingDeviceDescription.setter + def LateralSpreadingDeviceDescription(self, value: Optional[str]): + if value is None: + if "LateralSpreadingDeviceDescription" in self._dataset: + del self._dataset.LateralSpreadingDeviceDescription + else: + self._dataset.LateralSpreadingDeviceDescription = value diff --git a/tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item.py b/tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item.py new file mode 100644 index 0000000..7a054d1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class LateralSpreadingDeviceSettingsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LateralSpreadingDeviceWaterEquivalentThickness(self) -> Optional[float]: + if "LateralSpreadingDeviceWaterEquivalentThickness" in self._dataset: + return self._dataset.LateralSpreadingDeviceWaterEquivalentThickness + return None + + @LateralSpreadingDeviceWaterEquivalentThickness.setter + def LateralSpreadingDeviceWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "LateralSpreadingDeviceWaterEquivalentThickness" in self._dataset: + del self._dataset.LateralSpreadingDeviceWaterEquivalentThickness + else: + self._dataset.LateralSpreadingDeviceWaterEquivalentThickness = value + + @property + def LateralSpreadingDeviceSetting(self) -> Optional[str]: + if "LateralSpreadingDeviceSetting" in self._dataset: + return self._dataset.LateralSpreadingDeviceSetting + return None + + @LateralSpreadingDeviceSetting.setter + def LateralSpreadingDeviceSetting(self, value: Optional[str]): + if value is None: + if "LateralSpreadingDeviceSetting" in self._dataset: + del self._dataset.LateralSpreadingDeviceSetting + else: + self._dataset.LateralSpreadingDeviceSetting = value + + @property + def IsocenterToLateralSpreadingDeviceDistance(self) -> Optional[float]: + if "IsocenterToLateralSpreadingDeviceDistance" in self._dataset: + return self._dataset.IsocenterToLateralSpreadingDeviceDistance + return None + + @IsocenterToLateralSpreadingDeviceDistance.setter + def IsocenterToLateralSpreadingDeviceDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToLateralSpreadingDeviceDistance" in self._dataset: + del self._dataset.IsocenterToLateralSpreadingDeviceDistance + else: + self._dataset.IsocenterToLateralSpreadingDeviceDistance = value + + @property + def ReferencedLateralSpreadingDeviceNumber(self) -> Optional[int]: + if "ReferencedLateralSpreadingDeviceNumber" in self._dataset: + return self._dataset.ReferencedLateralSpreadingDeviceNumber + return None + + @ReferencedLateralSpreadingDeviceNumber.setter + def ReferencedLateralSpreadingDeviceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedLateralSpreadingDeviceNumber" in self._dataset: + del self._dataset.ReferencedLateralSpreadingDeviceNumber + else: + self._dataset.ReferencedLateralSpreadingDeviceNumber = value diff --git a/tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item_1.py b/tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item_1.py new file mode 100644 index 0000000..9c39962 --- /dev/null +++ b/tdwii_plus_examples/domain_model/lateral_spreading_device_settings_sequence_item_1.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class LateralSpreadingDeviceSettingsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LateralSpreadingDeviceSetting(self) -> Optional[str]: + if "LateralSpreadingDeviceSetting" in self._dataset: + return self._dataset.LateralSpreadingDeviceSetting + return None + + @LateralSpreadingDeviceSetting.setter + def LateralSpreadingDeviceSetting(self, value: Optional[str]): + if value is None: + if "LateralSpreadingDeviceSetting" in self._dataset: + del self._dataset.LateralSpreadingDeviceSetting + else: + self._dataset.LateralSpreadingDeviceSetting = value + + @property + def ReferencedLateralSpreadingDeviceNumber(self) -> Optional[int]: + if "ReferencedLateralSpreadingDeviceNumber" in self._dataset: + return self._dataset.ReferencedLateralSpreadingDeviceNumber + return None + + @ReferencedLateralSpreadingDeviceNumber.setter + def ReferencedLateralSpreadingDeviceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedLateralSpreadingDeviceNumber" in self._dataset: + del self._dataset.ReferencedLateralSpreadingDeviceNumber + else: + self._dataset.ReferencedLateralSpreadingDeviceNumber = value diff --git a/tdwii_plus_examples/domain_model/left_image_sequence_item.py b/tdwii_plus_examples/domain_model/left_image_sequence_item.py new file mode 100644 index 0000000..2b429ea --- /dev/null +++ b/tdwii_plus_examples/domain_model/left_image_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class LeftImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/left_lens_sequence_item.py b/tdwii_plus_examples/domain_model/left_lens_sequence_item.py new file mode 100644 index 0000000..7b7dee9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/left_lens_sequence_item.py @@ -0,0 +1,204 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .add_intermediate_sequence_item import AddIntermediateSequenceItem +from .add_near_sequence_item import AddNearSequenceItem +from .cylinder_sequence_item import CylinderSequenceItem +from .prism_sequence_item import PrismSequenceItem + + +class LeftLensSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + self._PrismSequence: List[PrismSequenceItem] = [] + self._AddNearSequence: List[AddNearSequenceItem] = [] + self._AddIntermediateSequence: List[AddIntermediateSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PrismSequence(self) -> Optional[List[PrismSequenceItem]]: + if "PrismSequence" in self._dataset: + if len(self._PrismSequence) == len(self._dataset.PrismSequence): + return self._PrismSequence + else: + return [PrismSequenceItem(x) for x in self._dataset.PrismSequence] + return None + + @PrismSequence.setter + def PrismSequence(self, value: Optional[List[PrismSequenceItem]]): + if value is None: + self._PrismSequence = [] + if "PrismSequence" in self._dataset: + del self._dataset.PrismSequence + elif not isinstance(value, list) or not all(isinstance(item, PrismSequenceItem) for item in value): + raise ValueError("PrismSequence must be a list of PrismSequenceItem objects") + else: + self._PrismSequence = value + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.clear() + self._dataset.PrismSequence.extend([item.to_dataset() for item in value]) + + def add_Prism(self, item: PrismSequenceItem): + if not isinstance(item, PrismSequenceItem): + raise ValueError("Item must be an instance of PrismSequenceItem") + self._PrismSequence.append(item) + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.append(item.to_dataset()) + + @property + def LensSegmentType(self) -> Optional[str]: + if "LensSegmentType" in self._dataset: + return self._dataset.LensSegmentType + return None + + @LensSegmentType.setter + def LensSegmentType(self, value: Optional[str]): + if value is None: + if "LensSegmentType" in self._dataset: + del self._dataset.LensSegmentType + else: + self._dataset.LensSegmentType = value + + @property + def OpticalTransmittance(self) -> Optional[float]: + if "OpticalTransmittance" in self._dataset: + return self._dataset.OpticalTransmittance + return None + + @OpticalTransmittance.setter + def OpticalTransmittance(self, value: Optional[float]): + if value is None: + if "OpticalTransmittance" in self._dataset: + del self._dataset.OpticalTransmittance + else: + self._dataset.OpticalTransmittance = value + + @property + def ChannelWidth(self) -> Optional[float]: + if "ChannelWidth" in self._dataset: + return self._dataset.ChannelWidth + return None + + @ChannelWidth.setter + def ChannelWidth(self, value: Optional[float]): + if value is None: + if "ChannelWidth" in self._dataset: + del self._dataset.ChannelWidth + else: + self._dataset.ChannelWidth = value + + @property + def AddNearSequence(self) -> Optional[List[AddNearSequenceItem]]: + if "AddNearSequence" in self._dataset: + if len(self._AddNearSequence) == len(self._dataset.AddNearSequence): + return self._AddNearSequence + else: + return [AddNearSequenceItem(x) for x in self._dataset.AddNearSequence] + return None + + @AddNearSequence.setter + def AddNearSequence(self, value: Optional[List[AddNearSequenceItem]]): + if value is None: + self._AddNearSequence = [] + if "AddNearSequence" in self._dataset: + del self._dataset.AddNearSequence + elif not isinstance(value, list) or not all(isinstance(item, AddNearSequenceItem) for item in value): + raise ValueError("AddNearSequence must be a list of AddNearSequenceItem objects") + else: + self._AddNearSequence = value + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.clear() + self._dataset.AddNearSequence.extend([item.to_dataset() for item in value]) + + def add_AddNear(self, item: AddNearSequenceItem): + if not isinstance(item, AddNearSequenceItem): + raise ValueError("Item must be an instance of AddNearSequenceItem") + self._AddNearSequence.append(item) + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.append(item.to_dataset()) + + @property + def AddIntermediateSequence(self) -> Optional[List[AddIntermediateSequenceItem]]: + if "AddIntermediateSequence" in self._dataset: + if len(self._AddIntermediateSequence) == len(self._dataset.AddIntermediateSequence): + return self._AddIntermediateSequence + else: + return [AddIntermediateSequenceItem(x) for x in self._dataset.AddIntermediateSequence] + return None + + @AddIntermediateSequence.setter + def AddIntermediateSequence(self, value: Optional[List[AddIntermediateSequenceItem]]): + if value is None: + self._AddIntermediateSequence = [] + if "AddIntermediateSequence" in self._dataset: + del self._dataset.AddIntermediateSequence + elif not isinstance(value, list) or not all(isinstance(item, AddIntermediateSequenceItem) for item in value): + raise ValueError("AddIntermediateSequence must be a list of AddIntermediateSequenceItem objects") + else: + self._AddIntermediateSequence = value + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.clear() + self._dataset.AddIntermediateSequence.extend([item.to_dataset() for item in value]) + + def add_AddIntermediate(self, item: AddIntermediateSequenceItem): + if not isinstance(item, AddIntermediateSequenceItem): + raise ValueError("Item must be an instance of AddIntermediateSequenceItem") + self._AddIntermediateSequence.append(item) + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.append(item.to_dataset()) + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/legacy_converted_enhanced_ct_image.py b/tdwii_plus_examples/domain_model/legacy_converted_enhanced_ct_image.py new file mode 100644 index 0000000..11395f0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/legacy_converted_enhanced_ct_image.py @@ -0,0 +1,6282 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class LegacyConvertedEnhancedCtImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def MultienergyCTAcquisition(self) -> Optional[str]: + if "MultienergyCTAcquisition" in self._dataset: + return self._dataset.MultienergyCTAcquisition + return None + + @MultienergyCTAcquisition.setter + def MultienergyCTAcquisition(self, value: Optional[str]): + if value is None: + if "MultienergyCTAcquisition" in self._dataset: + del self._dataset.MultienergyCTAcquisition + else: + self._dataset.MultienergyCTAcquisition = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/legacy_converted_enhanced_mr_image.py b/tdwii_plus_examples/domain_model/legacy_converted_enhanced_mr_image.py new file mode 100644 index 0000000..00e5d9f --- /dev/null +++ b/tdwii_plus_examples/domain_model/legacy_converted_enhanced_mr_image.py @@ -0,0 +1,6380 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class LegacyConvertedEnhancedMrImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def BulkMotionCompensationTechnique(self) -> Optional[str]: + if "BulkMotionCompensationTechnique" in self._dataset: + return self._dataset.BulkMotionCompensationTechnique + return None + + @BulkMotionCompensationTechnique.setter + def BulkMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "BulkMotionCompensationTechnique" in self._dataset: + del self._dataset.BulkMotionCompensationTechnique + else: + self._dataset.BulkMotionCompensationTechnique = value + + @property + def BulkMotionSignalSource(self) -> Optional[str]: + if "BulkMotionSignalSource" in self._dataset: + return self._dataset.BulkMotionSignalSource + return None + + @BulkMotionSignalSource.setter + def BulkMotionSignalSource(self, value: Optional[str]): + if value is None: + if "BulkMotionSignalSource" in self._dataset: + del self._dataset.BulkMotionSignalSource + else: + self._dataset.BulkMotionSignalSource = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ComplexImageComponent(self) -> Optional[str]: + if "ComplexImageComponent" in self._dataset: + return self._dataset.ComplexImageComponent + return None + + @ComplexImageComponent.setter + def ComplexImageComponent(self, value: Optional[str]): + if value is None: + if "ComplexImageComponent" in self._dataset: + del self._dataset.ComplexImageComponent + else: + self._dataset.ComplexImageComponent = value + + @property + def AcquisitionContrast(self) -> Optional[str]: + if "AcquisitionContrast" in self._dataset: + return self._dataset.AcquisitionContrast + return None + + @AcquisitionContrast.setter + def AcquisitionContrast(self, value: Optional[str]): + if value is None: + if "AcquisitionContrast" in self._dataset: + del self._dataset.AcquisitionContrast + else: + self._dataset.AcquisitionContrast = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def MagneticFieldStrength(self) -> Optional[Decimal]: + if "MagneticFieldStrength" in self._dataset: + return self._dataset.MagneticFieldStrength + return None + + @MagneticFieldStrength.setter + def MagneticFieldStrength(self, value: Optional[Decimal]): + if value is None: + if "MagneticFieldStrength" in self._dataset: + del self._dataset.MagneticFieldStrength + else: + self._dataset.MagneticFieldStrength = value + + @property + def B1rms(self) -> Optional[float]: + if "B1rms" in self._dataset: + return self._dataset.B1rms + return None + + @B1rms.setter + def B1rms(self, value: Optional[float]): + if value is None: + if "B1rms" in self._dataset: + del self._dataset.B1rms + else: + self._dataset.B1rms = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def KSpaceFiltering(self) -> Optional[str]: + if "KSpaceFiltering" in self._dataset: + return self._dataset.KSpaceFiltering + return None + + @KSpaceFiltering.setter + def KSpaceFiltering(self, value: Optional[str]): + if value is None: + if "KSpaceFiltering" in self._dataset: + del self._dataset.KSpaceFiltering + else: + self._dataset.KSpaceFiltering = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def ResonantNucleus(self) -> Optional[List[str]]: + if "ResonantNucleus" in self._dataset: + return self._dataset.ResonantNucleus + return None + + @ResonantNucleus.setter + def ResonantNucleus(self, value: Optional[List[str]]): + if value is None: + if "ResonantNucleus" in self._dataset: + del self._dataset.ResonantNucleus + else: + self._dataset.ResonantNucleus = value + + @property + def ApplicableSafetyStandardAgency(self) -> Optional[str]: + if "ApplicableSafetyStandardAgency" in self._dataset: + return self._dataset.ApplicableSafetyStandardAgency + return None + + @ApplicableSafetyStandardAgency.setter + def ApplicableSafetyStandardAgency(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardAgency" in self._dataset: + del self._dataset.ApplicableSafetyStandardAgency + else: + self._dataset.ApplicableSafetyStandardAgency = value + + @property + def ApplicableSafetyStandardDescription(self) -> Optional[str]: + if "ApplicableSafetyStandardDescription" in self._dataset: + return self._dataset.ApplicableSafetyStandardDescription + return None + + @ApplicableSafetyStandardDescription.setter + def ApplicableSafetyStandardDescription(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardDescription" in self._dataset: + del self._dataset.ApplicableSafetyStandardDescription + else: + self._dataset.ApplicableSafetyStandardDescription = value + + @property + def FunctionalSettlingPhaseFramesPresent(self) -> Optional[str]: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + return self._dataset.FunctionalSettlingPhaseFramesPresent + return None + + @FunctionalSettlingPhaseFramesPresent.setter + def FunctionalSettlingPhaseFramesPresent(self, value: Optional[str]): + if value is None: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + del self._dataset.FunctionalSettlingPhaseFramesPresent + else: + self._dataset.FunctionalSettlingPhaseFramesPresent = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/legacy_converted_enhanced_pet_image.py b/tdwii_plus_examples/domain_model/legacy_converted_enhanced_pet_image.py new file mode 100644 index 0000000..e0a2514 --- /dev/null +++ b/tdwii_plus_examples/domain_model/legacy_converted_enhanced_pet_image.py @@ -0,0 +1,5917 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class LegacyConvertedEnhancedPetImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value diff --git a/tdwii_plus_examples/domain_model/lens_constant_sequence_item.py b/tdwii_plus_examples/domain_model/lens_constant_sequence_item.py new file mode 100644 index 0000000..88d7f1f --- /dev/null +++ b/tdwii_plus_examples/domain_model/lens_constant_sequence_item.py @@ -0,0 +1,61 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class LensConstantSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/lens_thickness_sequence_item.py b/tdwii_plus_examples/domain_model/lens_thickness_sequence_item.py new file mode 100644 index 0000000..437022f --- /dev/null +++ b/tdwii_plus_examples/domain_model/lens_thickness_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class LensThicknessSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._SourceOfLensThicknessDataCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def LensThickness(self) -> Optional[float]: + if "LensThickness" in self._dataset: + return self._dataset.LensThickness + return None + + @LensThickness.setter + def LensThickness(self, value: Optional[float]): + if value is None: + if "LensThickness" in self._dataset: + del self._dataset.LensThickness + else: + self._dataset.LensThickness = value + + @property + def SourceOfLensThicknessDataCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SourceOfLensThicknessDataCodeSequence" in self._dataset: + if len(self._SourceOfLensThicknessDataCodeSequence) == len(self._dataset.SourceOfLensThicknessDataCodeSequence): + return self._SourceOfLensThicknessDataCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SourceOfLensThicknessDataCodeSequence] + return None + + @SourceOfLensThicknessDataCodeSequence.setter + def SourceOfLensThicknessDataCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SourceOfLensThicknessDataCodeSequence = [] + if "SourceOfLensThicknessDataCodeSequence" in self._dataset: + del self._dataset.SourceOfLensThicknessDataCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SourceOfLensThicknessDataCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SourceOfLensThicknessDataCodeSequence = value + if "SourceOfLensThicknessDataCodeSequence" not in self._dataset: + self._dataset.SourceOfLensThicknessDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfLensThicknessDataCodeSequence.clear() + self._dataset.SourceOfLensThicknessDataCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceOfLensThicknessDataCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SourceOfLensThicknessDataCodeSequence.append(item) + if "SourceOfLensThicknessDataCodeSequence" not in self._dataset: + self._dataset.SourceOfLensThicknessDataCodeSequence = pydicom.Sequence() + self._dataset.SourceOfLensThicknessDataCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/lensometry_measurements.py b/tdwii_plus_examples/domain_model/lensometry_measurements.py new file mode 100644 index 0000000..1d31b8b --- /dev/null +++ b/tdwii_plus_examples/domain_model/lensometry_measurements.py @@ -0,0 +1,4218 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .left_lens_sequence_item import LeftLensSequenceItem +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .right_lens_sequence_item import RightLensSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .unspecified_laterality_lens_sequence_item import ( + UnspecifiedLateralityLensSequenceItem, +) + + +class LensometryMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._RightLensSequence: List[RightLensSequenceItem] = [] + self._LeftLensSequence: List[LeftLensSequenceItem] = [] + self._UnspecifiedLateralityLensSequence: List[UnspecifiedLateralityLensSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def LensDescription(self) -> Optional[str]: + if "LensDescription" in self._dataset: + return self._dataset.LensDescription + return None + + @LensDescription.setter + def LensDescription(self, value: Optional[str]): + if value is None: + if "LensDescription" in self._dataset: + del self._dataset.LensDescription + else: + self._dataset.LensDescription = value + + @property + def RightLensSequence(self) -> Optional[List[RightLensSequenceItem]]: + if "RightLensSequence" in self._dataset: + if len(self._RightLensSequence) == len(self._dataset.RightLensSequence): + return self._RightLensSequence + else: + return [RightLensSequenceItem(x) for x in self._dataset.RightLensSequence] + return None + + @RightLensSequence.setter + def RightLensSequence(self, value: Optional[List[RightLensSequenceItem]]): + if value is None: + self._RightLensSequence = [] + if "RightLensSequence" in self._dataset: + del self._dataset.RightLensSequence + elif not isinstance(value, list) or not all(isinstance(item, RightLensSequenceItem) for item in value): + raise ValueError("RightLensSequence must be a list of RightLensSequenceItem objects") + else: + self._RightLensSequence = value + if "RightLensSequence" not in self._dataset: + self._dataset.RightLensSequence = pydicom.Sequence() + self._dataset.RightLensSequence.clear() + self._dataset.RightLensSequence.extend([item.to_dataset() for item in value]) + + def add_RightLens(self, item: RightLensSequenceItem): + if not isinstance(item, RightLensSequenceItem): + raise ValueError("Item must be an instance of RightLensSequenceItem") + self._RightLensSequence.append(item) + if "RightLensSequence" not in self._dataset: + self._dataset.RightLensSequence = pydicom.Sequence() + self._dataset.RightLensSequence.append(item.to_dataset()) + + @property + def LeftLensSequence(self) -> Optional[List[LeftLensSequenceItem]]: + if "LeftLensSequence" in self._dataset: + if len(self._LeftLensSequence) == len(self._dataset.LeftLensSequence): + return self._LeftLensSequence + else: + return [LeftLensSequenceItem(x) for x in self._dataset.LeftLensSequence] + return None + + @LeftLensSequence.setter + def LeftLensSequence(self, value: Optional[List[LeftLensSequenceItem]]): + if value is None: + self._LeftLensSequence = [] + if "LeftLensSequence" in self._dataset: + del self._dataset.LeftLensSequence + elif not isinstance(value, list) or not all(isinstance(item, LeftLensSequenceItem) for item in value): + raise ValueError("LeftLensSequence must be a list of LeftLensSequenceItem objects") + else: + self._LeftLensSequence = value + if "LeftLensSequence" not in self._dataset: + self._dataset.LeftLensSequence = pydicom.Sequence() + self._dataset.LeftLensSequence.clear() + self._dataset.LeftLensSequence.extend([item.to_dataset() for item in value]) + + def add_LeftLens(self, item: LeftLensSequenceItem): + if not isinstance(item, LeftLensSequenceItem): + raise ValueError("Item must be an instance of LeftLensSequenceItem") + self._LeftLensSequence.append(item) + if "LeftLensSequence" not in self._dataset: + self._dataset.LeftLensSequence = pydicom.Sequence() + self._dataset.LeftLensSequence.append(item.to_dataset()) + + @property + def UnspecifiedLateralityLensSequence(self) -> Optional[List[UnspecifiedLateralityLensSequenceItem]]: + if "UnspecifiedLateralityLensSequence" in self._dataset: + if len(self._UnspecifiedLateralityLensSequence) == len(self._dataset.UnspecifiedLateralityLensSequence): + return self._UnspecifiedLateralityLensSequence + else: + return [UnspecifiedLateralityLensSequenceItem(x) for x in self._dataset.UnspecifiedLateralityLensSequence] + return None + + @UnspecifiedLateralityLensSequence.setter + def UnspecifiedLateralityLensSequence(self, value: Optional[List[UnspecifiedLateralityLensSequenceItem]]): + if value is None: + self._UnspecifiedLateralityLensSequence = [] + if "UnspecifiedLateralityLensSequence" in self._dataset: + del self._dataset.UnspecifiedLateralityLensSequence + elif not isinstance(value, list) or not all(isinstance(item, UnspecifiedLateralityLensSequenceItem) for item in value): + raise ValueError( + "UnspecifiedLateralityLensSequence must be a list of UnspecifiedLateralityLensSequenceItem objects" + ) + else: + self._UnspecifiedLateralityLensSequence = value + if "UnspecifiedLateralityLensSequence" not in self._dataset: + self._dataset.UnspecifiedLateralityLensSequence = pydicom.Sequence() + self._dataset.UnspecifiedLateralityLensSequence.clear() + self._dataset.UnspecifiedLateralityLensSequence.extend([item.to_dataset() for item in value]) + + def add_UnspecifiedLateralityLens(self, item: UnspecifiedLateralityLensSequenceItem): + if not isinstance(item, UnspecifiedLateralityLensSequenceItem): + raise ValueError("Item must be an instance of UnspecifiedLateralityLensSequenceItem") + self._UnspecifiedLateralityLensSequence.append(item) + if "UnspecifiedLateralityLensSequence" not in self._dataset: + self._dataset.UnspecifiedLateralityLensSequence = pydicom.Sequence() + self._dataset.UnspecifiedLateralityLensSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/line_sequence_item.py b/tdwii_plus_examples/domain_model/line_sequence_item.py new file mode 100644 index 0000000..c60f931 --- /dev/null +++ b/tdwii_plus_examples/domain_model/line_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class LineSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LongPrimitivePointIndexList(self) -> Optional[bytes]: + if "LongPrimitivePointIndexList" in self._dataset: + return self._dataset.LongPrimitivePointIndexList + return None + + @LongPrimitivePointIndexList.setter + def LongPrimitivePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongPrimitivePointIndexList" in self._dataset: + del self._dataset.LongPrimitivePointIndexList + else: + self._dataset.LongPrimitivePointIndexList = value diff --git a/tdwii_plus_examples/domain_model/line_style_sequence_item.py b/tdwii_plus_examples/domain_model/line_style_sequence_item.py new file mode 100644 index 0000000..a4e12bb --- /dev/null +++ b/tdwii_plus_examples/domain_model/line_style_sequence_item.py @@ -0,0 +1,179 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class LineStyleSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ShadowStyle(self) -> Optional[str]: + if "ShadowStyle" in self._dataset: + return self._dataset.ShadowStyle + return None + + @ShadowStyle.setter + def ShadowStyle(self, value: Optional[str]): + if value is None: + if "ShadowStyle" in self._dataset: + del self._dataset.ShadowStyle + else: + self._dataset.ShadowStyle = value + + @property + def ShadowOffsetX(self) -> Optional[float]: + if "ShadowOffsetX" in self._dataset: + return self._dataset.ShadowOffsetX + return None + + @ShadowOffsetX.setter + def ShadowOffsetX(self, value: Optional[float]): + if value is None: + if "ShadowOffsetX" in self._dataset: + del self._dataset.ShadowOffsetX + else: + self._dataset.ShadowOffsetX = value + + @property + def ShadowOffsetY(self) -> Optional[float]: + if "ShadowOffsetY" in self._dataset: + return self._dataset.ShadowOffsetY + return None + + @ShadowOffsetY.setter + def ShadowOffsetY(self, value: Optional[float]): + if value is None: + if "ShadowOffsetY" in self._dataset: + del self._dataset.ShadowOffsetY + else: + self._dataset.ShadowOffsetY = value + + @property + def ShadowColorCIELabValue(self) -> Optional[List[int]]: + if "ShadowColorCIELabValue" in self._dataset: + return self._dataset.ShadowColorCIELabValue + return None + + @ShadowColorCIELabValue.setter + def ShadowColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShadowColorCIELabValue" in self._dataset: + del self._dataset.ShadowColorCIELabValue + else: + self._dataset.ShadowColorCIELabValue = value + + @property + def PatternOnColorCIELabValue(self) -> Optional[List[int]]: + if "PatternOnColorCIELabValue" in self._dataset: + return self._dataset.PatternOnColorCIELabValue + return None + + @PatternOnColorCIELabValue.setter + def PatternOnColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "PatternOnColorCIELabValue" in self._dataset: + del self._dataset.PatternOnColorCIELabValue + else: + self._dataset.PatternOnColorCIELabValue = value + + @property + def PatternOffColorCIELabValue(self) -> Optional[List[int]]: + if "PatternOffColorCIELabValue" in self._dataset: + return self._dataset.PatternOffColorCIELabValue + return None + + @PatternOffColorCIELabValue.setter + def PatternOffColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "PatternOffColorCIELabValue" in self._dataset: + del self._dataset.PatternOffColorCIELabValue + else: + self._dataset.PatternOffColorCIELabValue = value + + @property + def LineThickness(self) -> Optional[float]: + if "LineThickness" in self._dataset: + return self._dataset.LineThickness + return None + + @LineThickness.setter + def LineThickness(self, value: Optional[float]): + if value is None: + if "LineThickness" in self._dataset: + del self._dataset.LineThickness + else: + self._dataset.LineThickness = value + + @property + def LineDashingStyle(self) -> Optional[str]: + if "LineDashingStyle" in self._dataset: + return self._dataset.LineDashingStyle + return None + + @LineDashingStyle.setter + def LineDashingStyle(self, value: Optional[str]): + if value is None: + if "LineDashingStyle" in self._dataset: + del self._dataset.LineDashingStyle + else: + self._dataset.LineDashingStyle = value + + @property + def LinePattern(self) -> Optional[int]: + if "LinePattern" in self._dataset: + return self._dataset.LinePattern + return None + + @LinePattern.setter + def LinePattern(self, value: Optional[int]): + if value is None: + if "LinePattern" in self._dataset: + del self._dataset.LinePattern + else: + self._dataset.LinePattern = value + + @property + def ShadowOpacity(self) -> Optional[float]: + if "ShadowOpacity" in self._dataset: + return self._dataset.ShadowOpacity + return None + + @ShadowOpacity.setter + def ShadowOpacity(self, value: Optional[float]): + if value is None: + if "ShadowOpacity" in self._dataset: + del self._dataset.ShadowOpacity + else: + self._dataset.ShadowOpacity = value + + @property + def PatternOnOpacity(self) -> Optional[float]: + if "PatternOnOpacity" in self._dataset: + return self._dataset.PatternOnOpacity + return None + + @PatternOnOpacity.setter + def PatternOnOpacity(self, value: Optional[float]): + if value is None: + if "PatternOnOpacity" in self._dataset: + del self._dataset.PatternOnOpacity + else: + self._dataset.PatternOnOpacity = value + + @property + def PatternOffOpacity(self) -> Optional[float]: + if "PatternOffOpacity" in self._dataset: + return self._dataset.PatternOffOpacity + return None + + @PatternOffOpacity.setter + def PatternOffOpacity(self, value: Optional[float]): + if value is None: + if "PatternOffOpacity" in self._dataset: + del self._dataset.PatternOffOpacity + else: + self._dataset.PatternOffOpacity = value diff --git a/tdwii_plus_examples/domain_model/localized_deviation_probability_sequence_item.py b/tdwii_plus_examples/domain_model/localized_deviation_probability_sequence_item.py new file mode 100644 index 0000000..016a63d --- /dev/null +++ b/tdwii_plus_examples/domain_model/localized_deviation_probability_sequence_item.py @@ -0,0 +1,149 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class LocalizedDeviationProbabilitySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalizedDeviationProbability(self) -> Optional[float]: + if "LocalizedDeviationProbability" in self._dataset: + return self._dataset.LocalizedDeviationProbability + return None + + @LocalizedDeviationProbability.setter + def LocalizedDeviationProbability(self, value: Optional[float]): + if value is None: + if "LocalizedDeviationProbability" in self._dataset: + del self._dataset.LocalizedDeviationProbability + else: + self._dataset.LocalizedDeviationProbability = value + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/mac_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/mac_parameters_sequence_item.py new file mode 100644 index 0000000..e34bdd6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mac_parameters_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MACParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MACIDNumber(self) -> Optional[int]: + if "MACIDNumber" in self._dataset: + return self._dataset.MACIDNumber + return None + + @MACIDNumber.setter + def MACIDNumber(self, value: Optional[int]): + if value is None: + if "MACIDNumber" in self._dataset: + del self._dataset.MACIDNumber + else: + self._dataset.MACIDNumber = value + + @property + def MACCalculationTransferSyntaxUID(self) -> Optional[str]: + if "MACCalculationTransferSyntaxUID" in self._dataset: + return self._dataset.MACCalculationTransferSyntaxUID + return None + + @MACCalculationTransferSyntaxUID.setter + def MACCalculationTransferSyntaxUID(self, value: Optional[str]): + if value is None: + if "MACCalculationTransferSyntaxUID" in self._dataset: + del self._dataset.MACCalculationTransferSyntaxUID + else: + self._dataset.MACCalculationTransferSyntaxUID = value + + @property + def MACAlgorithm(self) -> Optional[str]: + if "MACAlgorithm" in self._dataset: + return self._dataset.MACAlgorithm + return None + + @MACAlgorithm.setter + def MACAlgorithm(self, value: Optional[str]): + if value is None: + if "MACAlgorithm" in self._dataset: + del self._dataset.MACAlgorithm + else: + self._dataset.MACAlgorithm = value + + @property + def DataElementsSigned(self) -> Optional[List[int]]: + if "DataElementsSigned" in self._dataset: + return self._dataset.DataElementsSigned + return None + + @DataElementsSigned.setter + def DataElementsSigned(self, value: Optional[List[int]]): + if value is None: + if "DataElementsSigned" in self._dataset: + del self._dataset.DataElementsSigned + else: + self._dataset.DataElementsSigned = value diff --git a/tdwii_plus_examples/domain_model/macular_grid_thickness_and_volume_report.py b/tdwii_plus_examples/domain_model/macular_grid_thickness_and_volume_report.py new file mode 100644 index 0000000..4865ec2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/macular_grid_thickness_and_volume_report.py @@ -0,0 +1,4561 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class MacularGridThicknessAndVolumeReport: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/major_ticks_sequence_item.py b/tdwii_plus_examples/domain_model/major_ticks_sequence_item.py new file mode 100644 index 0000000..8a0a3c2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/major_ticks_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MajorTicksSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TickPosition(self) -> Optional[float]: + if "TickPosition" in self._dataset: + return self._dataset.TickPosition + return None + + @TickPosition.setter + def TickPosition(self, value: Optional[float]): + if value is None: + if "TickPosition" in self._dataset: + del self._dataset.TickPosition + else: + self._dataset.TickPosition = value + + @property + def TickLabel(self) -> Optional[str]: + if "TickLabel" in self._dataset: + return self._dataset.TickLabel + return None + + @TickLabel.setter + def TickLabel(self, value: Optional[str]): + if value is None: + if "TickLabel" in self._dataset: + del self._dataset.TickLabel + else: + self._dataset.TickLabel = value diff --git a/tdwii_plus_examples/domain_model/mammography_cad_sr.py b/tdwii_plus_examples/domain_model/mammography_cad_sr.py new file mode 100644 index 0000000..5bb4133 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mammography_cad_sr.py @@ -0,0 +1,4505 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class MammographyCadSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/mapping_resource_identification_sequence_item.py b/tdwii_plus_examples/domain_model/mapping_resource_identification_sequence_item.py new file mode 100644 index 0000000..bdbf282 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mapping_resource_identification_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MappingResourceIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/mask_subtraction_sequence_item.py b/tdwii_plus_examples/domain_model/mask_subtraction_sequence_item.py new file mode 100644 index 0000000..18cffb1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mask_subtraction_sequence_item.py @@ -0,0 +1,192 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .pixel_shift_sequence_item import PixelShiftSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class MaskSubtractionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._PixelShiftSequence: List[PixelShiftSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def MaskOperation(self) -> Optional[str]: + if "MaskOperation" in self._dataset: + return self._dataset.MaskOperation + return None + + @MaskOperation.setter + def MaskOperation(self, value: Optional[str]): + if value is None: + if "MaskOperation" in self._dataset: + del self._dataset.MaskOperation + else: + self._dataset.MaskOperation = value + + @property + def ApplicableFrameRange(self) -> Optional[List[int]]: + if "ApplicableFrameRange" in self._dataset: + return self._dataset.ApplicableFrameRange + return None + + @ApplicableFrameRange.setter + def ApplicableFrameRange(self, value: Optional[List[int]]): + if value is None: + if "ApplicableFrameRange" in self._dataset: + del self._dataset.ApplicableFrameRange + else: + self._dataset.ApplicableFrameRange = value + + @property + def MaskFrameNumbers(self) -> Optional[List[int]]: + if "MaskFrameNumbers" in self._dataset: + return self._dataset.MaskFrameNumbers + return None + + @MaskFrameNumbers.setter + def MaskFrameNumbers(self, value: Optional[List[int]]): + if value is None: + if "MaskFrameNumbers" in self._dataset: + del self._dataset.MaskFrameNumbers + else: + self._dataset.MaskFrameNumbers = value + + @property + def ContrastFrameAveraging(self) -> Optional[int]: + if "ContrastFrameAveraging" in self._dataset: + return self._dataset.ContrastFrameAveraging + return None + + @ContrastFrameAveraging.setter + def ContrastFrameAveraging(self, value: Optional[int]): + if value is None: + if "ContrastFrameAveraging" in self._dataset: + del self._dataset.ContrastFrameAveraging + else: + self._dataset.ContrastFrameAveraging = value + + @property + def TIDOffset(self) -> Optional[int]: + if "TIDOffset" in self._dataset: + return self._dataset.TIDOffset + return None + + @TIDOffset.setter + def TIDOffset(self, value: Optional[int]): + if value is None: + if "TIDOffset" in self._dataset: + del self._dataset.TIDOffset + else: + self._dataset.TIDOffset = value + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def PixelShiftSequence(self) -> Optional[List[PixelShiftSequenceItem]]: + if "PixelShiftSequence" in self._dataset: + if len(self._PixelShiftSequence) == len(self._dataset.PixelShiftSequence): + return self._PixelShiftSequence + else: + return [PixelShiftSequenceItem(x) for x in self._dataset.PixelShiftSequence] + return None + + @PixelShiftSequence.setter + def PixelShiftSequence(self, value: Optional[List[PixelShiftSequenceItem]]): + if value is None: + self._PixelShiftSequence = [] + if "PixelShiftSequence" in self._dataset: + del self._dataset.PixelShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelShiftSequenceItem) for item in value): + raise ValueError("PixelShiftSequence must be a list of PixelShiftSequenceItem objects") + else: + self._PixelShiftSequence = value + if "PixelShiftSequence" not in self._dataset: + self._dataset.PixelShiftSequence = pydicom.Sequence() + self._dataset.PixelShiftSequence.clear() + self._dataset.PixelShiftSequence.extend([item.to_dataset() for item in value]) + + def add_PixelShift(self, item: PixelShiftSequenceItem): + if not isinstance(item, PixelShiftSequenceItem): + raise ValueError("Item must be an instance of PixelShiftSequenceItem") + self._PixelShiftSequence.append(item) + if "PixelShiftSequence" not in self._dataset: + self._dataset.PixelShiftSequence = pydicom.Sequence() + self._dataset.PixelShiftSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/material_attenuation_sequence_item.py b/tdwii_plus_examples/domain_model/material_attenuation_sequence_item.py new file mode 100644 index 0000000..46bb9d9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/material_attenuation_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MaterialAttenuationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PhotonEnergy(self) -> Optional[Decimal]: + if "PhotonEnergy" in self._dataset: + return self._dataset.PhotonEnergy + return None + + @PhotonEnergy.setter + def PhotonEnergy(self, value: Optional[Decimal]): + if value is None: + if "PhotonEnergy" in self._dataset: + del self._dataset.PhotonEnergy + else: + self._dataset.PhotonEnergy = value + + @property + def XRayMassAttenuationCoefficient(self) -> Optional[Decimal]: + if "XRayMassAttenuationCoefficient" in self._dataset: + return self._dataset.XRayMassAttenuationCoefficient + return None + + @XRayMassAttenuationCoefficient.setter + def XRayMassAttenuationCoefficient(self, value: Optional[Decimal]): + if value is None: + if "XRayMassAttenuationCoefficient" in self._dataset: + del self._dataset.XRayMassAttenuationCoefficient + else: + self._dataset.XRayMassAttenuationCoefficient = value diff --git a/tdwii_plus_examples/domain_model/matrix_registration_sequence_item.py b/tdwii_plus_examples/domain_model/matrix_registration_sequence_item.py new file mode 100644 index 0000000..fd7f08f --- /dev/null +++ b/tdwii_plus_examples/domain_model/matrix_registration_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .matrix_sequence_item import MatrixSequenceItem + + +class MatrixRegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MatrixSequence: List[MatrixSequenceItem] = [] + self._RegistrationTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MatrixSequence(self) -> Optional[List[MatrixSequenceItem]]: + if "MatrixSequence" in self._dataset: + if len(self._MatrixSequence) == len(self._dataset.MatrixSequence): + return self._MatrixSequence + else: + return [MatrixSequenceItem(x) for x in self._dataset.MatrixSequence] + return None + + @MatrixSequence.setter + def MatrixSequence(self, value: Optional[List[MatrixSequenceItem]]): + if value is None: + self._MatrixSequence = [] + if "MatrixSequence" in self._dataset: + del self._dataset.MatrixSequence + elif not isinstance(value, list) or not all(isinstance(item, MatrixSequenceItem) for item in value): + raise ValueError("MatrixSequence must be a list of MatrixSequenceItem objects") + else: + self._MatrixSequence = value + if "MatrixSequence" not in self._dataset: + self._dataset.MatrixSequence = pydicom.Sequence() + self._dataset.MatrixSequence.clear() + self._dataset.MatrixSequence.extend([item.to_dataset() for item in value]) + + def add_Matrix(self, item: MatrixSequenceItem): + if not isinstance(item, MatrixSequenceItem): + raise ValueError("Item must be an instance of MatrixSequenceItem") + self._MatrixSequence.append(item) + if "MatrixSequence" not in self._dataset: + self._dataset.MatrixSequence = pydicom.Sequence() + self._dataset.MatrixSequence.append(item.to_dataset()) + + @property + def RegistrationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RegistrationTypeCodeSequence" in self._dataset: + if len(self._RegistrationTypeCodeSequence) == len(self._dataset.RegistrationTypeCodeSequence): + return self._RegistrationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RegistrationTypeCodeSequence] + return None + + @RegistrationTypeCodeSequence.setter + def RegistrationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RegistrationTypeCodeSequence = [] + if "RegistrationTypeCodeSequence" in self._dataset: + del self._dataset.RegistrationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RegistrationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RegistrationTypeCodeSequence = value + if "RegistrationTypeCodeSequence" not in self._dataset: + self._dataset.RegistrationTypeCodeSequence = pydicom.Sequence() + self._dataset.RegistrationTypeCodeSequence.clear() + self._dataset.RegistrationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RegistrationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RegistrationTypeCodeSequence.append(item) + if "RegistrationTypeCodeSequence" not in self._dataset: + self._dataset.RegistrationTypeCodeSequence = pydicom.Sequence() + self._dataset.RegistrationTypeCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceTransformationComment(self) -> Optional[str]: + if "FrameOfReferenceTransformationComment" in self._dataset: + return self._dataset.FrameOfReferenceTransformationComment + return None + + @FrameOfReferenceTransformationComment.setter + def FrameOfReferenceTransformationComment(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationComment" in self._dataset: + del self._dataset.FrameOfReferenceTransformationComment + else: + self._dataset.FrameOfReferenceTransformationComment = value diff --git a/tdwii_plus_examples/domain_model/matrix_sequence_item.py b/tdwii_plus_examples/domain_model/matrix_sequence_item.py new file mode 100644 index 0000000..9989525 --- /dev/null +++ b/tdwii_plus_examples/domain_model/matrix_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MatrixSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameOfReferenceTransformationMatrixType(self) -> Optional[str]: + if "FrameOfReferenceTransformationMatrixType" in self._dataset: + return self._dataset.FrameOfReferenceTransformationMatrixType + return None + + @FrameOfReferenceTransformationMatrixType.setter + def FrameOfReferenceTransformationMatrixType(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationMatrixType" in self._dataset: + del self._dataset.FrameOfReferenceTransformationMatrixType + else: + self._dataset.FrameOfReferenceTransformationMatrixType = value + + @property + def FrameOfReferenceTransformationMatrix(self) -> Optional[List[Decimal]]: + if "FrameOfReferenceTransformationMatrix" in self._dataset: + return self._dataset.FrameOfReferenceTransformationMatrix + return None + + @FrameOfReferenceTransformationMatrix.setter + def FrameOfReferenceTransformationMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameOfReferenceTransformationMatrix" in self._dataset: + del self._dataset.FrameOfReferenceTransformationMatrix + else: + self._dataset.FrameOfReferenceTransformationMatrix = value diff --git a/tdwii_plus_examples/domain_model/maximum_corneal_curvature_sequence_item.py b/tdwii_plus_examples/domain_model/maximum_corneal_curvature_sequence_item.py new file mode 100644 index 0000000..4e90dc7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/maximum_corneal_curvature_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MaximumCornealCurvatureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaximumCornealCurvature(self) -> Optional[float]: + if "MaximumCornealCurvature" in self._dataset: + return self._dataset.MaximumCornealCurvature + return None + + @MaximumCornealCurvature.setter + def MaximumCornealCurvature(self, value: Optional[float]): + if value is None: + if "MaximumCornealCurvature" in self._dataset: + del self._dataset.MaximumCornealCurvature + else: + self._dataset.MaximumCornealCurvature = value + + @property + def MaximumCornealCurvatureLocation(self) -> Optional[List[float]]: + if "MaximumCornealCurvatureLocation" in self._dataset: + return self._dataset.MaximumCornealCurvatureLocation + return None + + @MaximumCornealCurvatureLocation.setter + def MaximumCornealCurvatureLocation(self, value: Optional[List[float]]): + if value is None: + if "MaximumCornealCurvatureLocation" in self._dataset: + del self._dataset.MaximumCornealCurvatureLocation + else: + self._dataset.MaximumCornealCurvatureLocation = value diff --git a/tdwii_plus_examples/domain_model/measured_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/measured_dose_reference_sequence_item.py new file mode 100644 index 0000000..7e58eed --- /dev/null +++ b/tdwii_plus_examples/domain_model/measured_dose_reference_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MeasuredDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DoseUnits(self) -> Optional[str]: + if "DoseUnits" in self._dataset: + return self._dataset.DoseUnits + return None + + @DoseUnits.setter + def DoseUnits(self, value: Optional[str]): + if value is None: + if "DoseUnits" in self._dataset: + del self._dataset.DoseUnits + else: + self._dataset.DoseUnits = value + + @property + def MeasuredDoseDescription(self) -> Optional[str]: + if "MeasuredDoseDescription" in self._dataset: + return self._dataset.MeasuredDoseDescription + return None + + @MeasuredDoseDescription.setter + def MeasuredDoseDescription(self, value: Optional[str]): + if value is None: + if "MeasuredDoseDescription" in self._dataset: + del self._dataset.MeasuredDoseDescription + else: + self._dataset.MeasuredDoseDescription = value + + @property + def MeasuredDoseType(self) -> Optional[str]: + if "MeasuredDoseType" in self._dataset: + return self._dataset.MeasuredDoseType + return None + + @MeasuredDoseType.setter + def MeasuredDoseType(self, value: Optional[str]): + if value is None: + if "MeasuredDoseType" in self._dataset: + del self._dataset.MeasuredDoseType + else: + self._dataset.MeasuredDoseType = value + + @property + def MeasuredDoseValue(self) -> Optional[Decimal]: + if "MeasuredDoseValue" in self._dataset: + return self._dataset.MeasuredDoseValue + return None + + @MeasuredDoseValue.setter + def MeasuredDoseValue(self, value: Optional[Decimal]): + if value is None: + if "MeasuredDoseValue" in self._dataset: + del self._dataset.MeasuredDoseValue + else: + self._dataset.MeasuredDoseValue = value + + @property + def MeasuredDoseReferenceNumber(self) -> Optional[int]: + if "MeasuredDoseReferenceNumber" in self._dataset: + return self._dataset.MeasuredDoseReferenceNumber + return None + + @MeasuredDoseReferenceNumber.setter + def MeasuredDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "MeasuredDoseReferenceNumber" in self._dataset: + del self._dataset.MeasuredDoseReferenceNumber + else: + self._dataset.MeasuredDoseReferenceNumber = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/measured_meterset_to_dose_mapping_sequence_item.py b/tdwii_plus_examples/domain_model/measured_meterset_to_dose_mapping_sequence_item.py new file mode 100644 index 0000000..3487c7d --- /dev/null +++ b/tdwii_plus_examples/domain_model/measured_meterset_to_dose_mapping_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class MeasuredMetersetToDoseMappingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DoseMeasurementDeviceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasuredDoseDescription(self) -> Optional[str]: + if "MeasuredDoseDescription" in self._dataset: + return self._dataset.MeasuredDoseDescription + return None + + @MeasuredDoseDescription.setter + def MeasuredDoseDescription(self, value: Optional[str]): + if value is None: + if "MeasuredDoseDescription" in self._dataset: + del self._dataset.MeasuredDoseDescription + else: + self._dataset.MeasuredDoseDescription = value + + @property + def RadiationDoseValue(self) -> Optional[float]: + if "RadiationDoseValue" in self._dataset: + return self._dataset.RadiationDoseValue + return None + + @RadiationDoseValue.setter + def RadiationDoseValue(self, value: Optional[float]): + if value is None: + if "RadiationDoseValue" in self._dataset: + del self._dataset.RadiationDoseValue + else: + self._dataset.RadiationDoseValue = value + + @property + def CumulativeMeterset(self) -> Optional[float]: + if "CumulativeMeterset" in self._dataset: + return self._dataset.CumulativeMeterset + return None + + @CumulativeMeterset.setter + def CumulativeMeterset(self, value: Optional[float]): + if value is None: + if "CumulativeMeterset" in self._dataset: + del self._dataset.CumulativeMeterset + else: + self._dataset.CumulativeMeterset = value + + @property + def ReferencedExpectedInVivoMeasurementValueIndex(self) -> Optional[int]: + if "ReferencedExpectedInVivoMeasurementValueIndex" in self._dataset: + return self._dataset.ReferencedExpectedInVivoMeasurementValueIndex + return None + + @ReferencedExpectedInVivoMeasurementValueIndex.setter + def ReferencedExpectedInVivoMeasurementValueIndex(self, value: Optional[int]): + if value is None: + if "ReferencedExpectedInVivoMeasurementValueIndex" in self._dataset: + del self._dataset.ReferencedExpectedInVivoMeasurementValueIndex + else: + self._dataset.ReferencedExpectedInVivoMeasurementValueIndex = value + + @property + def DoseMeasurementDeviceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DoseMeasurementDeviceCodeSequence" in self._dataset: + if len(self._DoseMeasurementDeviceCodeSequence) == len(self._dataset.DoseMeasurementDeviceCodeSequence): + return self._DoseMeasurementDeviceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DoseMeasurementDeviceCodeSequence] + return None + + @DoseMeasurementDeviceCodeSequence.setter + def DoseMeasurementDeviceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DoseMeasurementDeviceCodeSequence = [] + if "DoseMeasurementDeviceCodeSequence" in self._dataset: + del self._dataset.DoseMeasurementDeviceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DoseMeasurementDeviceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DoseMeasurementDeviceCodeSequence = value + if "DoseMeasurementDeviceCodeSequence" not in self._dataset: + self._dataset.DoseMeasurementDeviceCodeSequence = pydicom.Sequence() + self._dataset.DoseMeasurementDeviceCodeSequence.clear() + self._dataset.DoseMeasurementDeviceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DoseMeasurementDeviceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DoseMeasurementDeviceCodeSequence.append(item) + if "DoseMeasurementDeviceCodeSequence" not in self._dataset: + self._dataset.DoseMeasurementDeviceCodeSequence = pydicom.Sequence() + self._dataset.DoseMeasurementDeviceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/measured_value_sequence_item.py b/tdwii_plus_examples/domain_model/measured_value_sequence_item.py new file mode 100644 index 0000000..1f80af4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/measured_value_sequence_item.py @@ -0,0 +1,103 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class MeasuredValueSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/measurement_values_sequence_item.py b/tdwii_plus_examples/domain_model/measurement_values_sequence_item.py new file mode 100644 index 0000000..b15ae26 --- /dev/null +++ b/tdwii_plus_examples/domain_model/measurement_values_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MeasurementValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FloatingPointValues(self) -> Optional[bytes]: + if "FloatingPointValues" in self._dataset: + return self._dataset.FloatingPointValues + return None + + @FloatingPointValues.setter + def FloatingPointValues(self, value: Optional[bytes]): + if value is None: + if "FloatingPointValues" in self._dataset: + del self._dataset.FloatingPointValues + else: + self._dataset.FloatingPointValues = value + + @property + def AnnotationIndexList(self) -> Optional[bytes]: + if "AnnotationIndexList" in self._dataset: + return self._dataset.AnnotationIndexList + return None + + @AnnotationIndexList.setter + def AnnotationIndexList(self, value: Optional[bytes]): + if value is None: + if "AnnotationIndexList" in self._dataset: + del self._dataset.AnnotationIndexList + else: + self._dataset.AnnotationIndexList = value diff --git a/tdwii_plus_examples/domain_model/measurement_values_sequence_item_1.py b/tdwii_plus_examples/domain_model/measurement_values_sequence_item_1.py new file mode 100644 index 0000000..d2f92f6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/measurement_values_sequence_item_1.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MeasurementValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FloatingPointValues(self) -> Optional[bytes]: + if "FloatingPointValues" in self._dataset: + return self._dataset.FloatingPointValues + return None + + @FloatingPointValues.setter + def FloatingPointValues(self, value: Optional[bytes]): + if value is None: + if "FloatingPointValues" in self._dataset: + del self._dataset.FloatingPointValues + else: + self._dataset.FloatingPointValues = value + + @property + def TrackPointIndexList(self) -> Optional[bytes]: + if "TrackPointIndexList" in self._dataset: + return self._dataset.TrackPointIndexList + return None + + @TrackPointIndexList.setter + def TrackPointIndexList(self, value: Optional[bytes]): + if value is None: + if "TrackPointIndexList" in self._dataset: + del self._dataset.TrackPointIndexList + else: + self._dataset.TrackPointIndexList = value diff --git a/tdwii_plus_examples/domain_model/measurements_sequence_item.py b/tdwii_plus_examples/domain_model/measurements_sequence_item.py new file mode 100644 index 0000000..be3d737 --- /dev/null +++ b/tdwii_plus_examples/domain_model/measurements_sequence_item.py @@ -0,0 +1,113 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .measurement_values_sequence_item import MeasurementValuesSequenceItem + + +class MeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._MeasurementValuesSequence: List[MeasurementValuesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def MeasurementValuesSequence(self) -> Optional[List[MeasurementValuesSequenceItem]]: + if "MeasurementValuesSequence" in self._dataset: + if len(self._MeasurementValuesSequence) == len(self._dataset.MeasurementValuesSequence): + return self._MeasurementValuesSequence + else: + return [MeasurementValuesSequenceItem(x) for x in self._dataset.MeasurementValuesSequence] + return None + + @MeasurementValuesSequence.setter + def MeasurementValuesSequence(self, value: Optional[List[MeasurementValuesSequenceItem]]): + if value is None: + self._MeasurementValuesSequence = [] + if "MeasurementValuesSequence" in self._dataset: + del self._dataset.MeasurementValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasurementValuesSequenceItem) for item in value): + raise ValueError("MeasurementValuesSequence must be a list of MeasurementValuesSequenceItem objects") + else: + self._MeasurementValuesSequence = value + if "MeasurementValuesSequence" not in self._dataset: + self._dataset.MeasurementValuesSequence = pydicom.Sequence() + self._dataset.MeasurementValuesSequence.clear() + self._dataset.MeasurementValuesSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementValues(self, item: MeasurementValuesSequenceItem): + if not isinstance(item, MeasurementValuesSequenceItem): + raise ValueError("Item must be an instance of MeasurementValuesSequenceItem") + self._MeasurementValuesSequence.append(item) + if "MeasurementValuesSequence" not in self._dataset: + self._dataset.MeasurementValuesSequence = pydicom.Sequence() + self._dataset.MeasurementValuesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/meterset_to_dose_mapping_sequence_item.py b/tdwii_plus_examples/domain_model/meterset_to_dose_mapping_sequence_item.py new file mode 100644 index 0000000..726e544 --- /dev/null +++ b/tdwii_plus_examples/domain_model/meterset_to_dose_mapping_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MetersetToDoseMappingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiationDoseValue(self) -> Optional[float]: + if "RadiationDoseValue" in self._dataset: + return self._dataset.RadiationDoseValue + return None + + @RadiationDoseValue.setter + def RadiationDoseValue(self, value: Optional[float]): + if value is None: + if "RadiationDoseValue" in self._dataset: + del self._dataset.RadiationDoseValue + else: + self._dataset.RadiationDoseValue = value + + @property + def CumulativeMeterset(self) -> Optional[float]: + if "CumulativeMeterset" in self._dataset: + return self._dataset.CumulativeMeterset + return None + + @CumulativeMeterset.setter + def CumulativeMeterset(self, value: Optional[float]): + if value is None: + if "CumulativeMeterset" in self._dataset: + del self._dataset.CumulativeMeterset + else: + self._dataset.CumulativeMeterset = value diff --git a/tdwii_plus_examples/domain_model/microscopy_bulk_simple_annotations.py b/tdwii_plus_examples/domain_model/microscopy_bulk_simple_annotations.py new file mode 100644 index 0000000..db012ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/microscopy_bulk_simple_annotations.py @@ -0,0 +1,4639 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .annotation_group_sequence_item import AnnotationGroupSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class MicroscopyBulkSimpleAnnotations: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._AnnotationGroupSequence: List[AnnotationGroupSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def AnnotationCoordinateType(self) -> Optional[str]: + if "AnnotationCoordinateType" in self._dataset: + return self._dataset.AnnotationCoordinateType + return None + + @AnnotationCoordinateType.setter + def AnnotationCoordinateType(self, value: Optional[str]): + if value is None: + if "AnnotationCoordinateType" in self._dataset: + del self._dataset.AnnotationCoordinateType + else: + self._dataset.AnnotationCoordinateType = value + + @property + def AnnotationGroupSequence(self) -> Optional[List[AnnotationGroupSequenceItem]]: + if "AnnotationGroupSequence" in self._dataset: + if len(self._AnnotationGroupSequence) == len(self._dataset.AnnotationGroupSequence): + return self._AnnotationGroupSequence + else: + return [AnnotationGroupSequenceItem(x) for x in self._dataset.AnnotationGroupSequence] + return None + + @AnnotationGroupSequence.setter + def AnnotationGroupSequence(self, value: Optional[List[AnnotationGroupSequenceItem]]): + if value is None: + self._AnnotationGroupSequence = [] + if "AnnotationGroupSequence" in self._dataset: + del self._dataset.AnnotationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, AnnotationGroupSequenceItem) for item in value): + raise ValueError("AnnotationGroupSequence must be a list of AnnotationGroupSequenceItem objects") + else: + self._AnnotationGroupSequence = value + if "AnnotationGroupSequence" not in self._dataset: + self._dataset.AnnotationGroupSequence = pydicom.Sequence() + self._dataset.AnnotationGroupSequence.clear() + self._dataset.AnnotationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_AnnotationGroup(self, item: AnnotationGroupSequenceItem): + if not isinstance(item, AnnotationGroupSequenceItem): + raise ValueError("Item must be an instance of AnnotationGroupSequenceItem") + self._AnnotationGroupSequence.append(item) + if "AnnotationGroupSequence" not in self._dataset: + self._dataset.AnnotationGroupSequence = pydicom.Sequence() + self._dataset.AnnotationGroupSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/minimum_keratometric_sequence_item.py b/tdwii_plus_examples/domain_model/minimum_keratometric_sequence_item.py new file mode 100644 index 0000000..8cc35e1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/minimum_keratometric_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MinimumKeratometricSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiusOfCurvature(self) -> Optional[float]: + if "RadiusOfCurvature" in self._dataset: + return self._dataset.RadiusOfCurvature + return None + + @RadiusOfCurvature.setter + def RadiusOfCurvature(self, value: Optional[float]): + if value is None: + if "RadiusOfCurvature" in self._dataset: + del self._dataset.RadiusOfCurvature + else: + self._dataset.RadiusOfCurvature = value + + @property + def KeratometricPower(self) -> Optional[float]: + if "KeratometricPower" in self._dataset: + return self._dataset.KeratometricPower + return None + + @KeratometricPower.setter + def KeratometricPower(self, value: Optional[float]): + if value is None: + if "KeratometricPower" in self._dataset: + del self._dataset.KeratometricPower + else: + self._dataset.KeratometricPower = value + + @property + def KeratometricAxis(self) -> Optional[float]: + if "KeratometricAxis" in self._dataset: + return self._dataset.KeratometricAxis + return None + + @KeratometricAxis.setter + def KeratometricAxis(self, value: Optional[float]): + if value is None: + if "KeratometricAxis" in self._dataset: + del self._dataset.KeratometricAxis + else: + self._dataset.KeratometricAxis = value diff --git a/tdwii_plus_examples/domain_model/modality_lut_sequence_item.py b/tdwii_plus_examples/domain_model/modality_lut_sequence_item.py new file mode 100644 index 0000000..6fde308 --- /dev/null +++ b/tdwii_plus_examples/domain_model/modality_lut_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ModalityLUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LUTDescriptor(self) -> Optional[List[int]]: + if "LUTDescriptor" in self._dataset: + return self._dataset.LUTDescriptor + return None + + @LUTDescriptor.setter + def LUTDescriptor(self, value: Optional[List[int]]): + if value is None: + if "LUTDescriptor" in self._dataset: + del self._dataset.LUTDescriptor + else: + self._dataset.LUTDescriptor = value + + @property + def LUTExplanation(self) -> Optional[str]: + if "LUTExplanation" in self._dataset: + return self._dataset.LUTExplanation + return None + + @LUTExplanation.setter + def LUTExplanation(self, value: Optional[str]): + if value is None: + if "LUTExplanation" in self._dataset: + del self._dataset.LUTExplanation + else: + self._dataset.LUTExplanation = value + + @property + def ModalityLUTType(self) -> Optional[str]: + if "ModalityLUTType" in self._dataset: + return self._dataset.ModalityLUTType + return None + + @ModalityLUTType.setter + def ModalityLUTType(self, value: Optional[str]): + if value is None: + if "ModalityLUTType" in self._dataset: + del self._dataset.ModalityLUTType + else: + self._dataset.ModalityLUTType = value + + @property + def LUTData(self) -> Optional[List[int | bytes]]: + if "LUTData" in self._dataset: + return self._dataset.LUTData + return None + + @LUTData.setter + def LUTData(self, value: Optional[List[int | bytes]]): + if value is None: + if "LUTData" in self._dataset: + del self._dataset.LUTData + else: + self._dataset.LUTData = value diff --git a/tdwii_plus_examples/domain_model/mode_of_percutaneous_access_sequence_item.py b/tdwii_plus_examples/domain_model/mode_of_percutaneous_access_sequence_item.py new file mode 100644 index 0000000..788fecc --- /dev/null +++ b/tdwii_plus_examples/domain_model/mode_of_percutaneous_access_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ModeOfPercutaneousAccessSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/modified_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/modified_attributes_sequence_item.py new file mode 100644 index 0000000..856e818 --- /dev/null +++ b/tdwii_plus_examples/domain_model/modified_attributes_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ModifiedAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/motion_synchronization_sequence_item.py b/tdwii_plus_examples/domain_model/motion_synchronization_sequence_item.py new file mode 100644 index 0000000..e7d5ce4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/motion_synchronization_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MotionSynchronizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryMotionCompensationTechniqueDescription(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechniqueDescription" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechniqueDescription + return None + + @RespiratoryMotionCompensationTechniqueDescription.setter + def RespiratoryMotionCompensationTechniqueDescription(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechniqueDescription" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechniqueDescription + else: + self._dataset.RespiratoryMotionCompensationTechniqueDescription = value + + @property + def RespiratorySignalSourceID(self) -> Optional[str]: + if "RespiratorySignalSourceID" in self._dataset: + return self._dataset.RespiratorySignalSourceID + return None + + @RespiratorySignalSourceID.setter + def RespiratorySignalSourceID(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSourceID" in self._dataset: + del self._dataset.RespiratorySignalSourceID + else: + self._dataset.RespiratorySignalSourceID = value diff --git a/tdwii_plus_examples/domain_model/mr_arterial_spin_labeling_sequence_item.py b/tdwii_plus_examples/domain_model/mr_arterial_spin_labeling_sequence_item.py new file mode 100644 index 0000000..4ed7395 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_arterial_spin_labeling_sequence_item.py @@ -0,0 +1,164 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .asl_bolus_cutoff_timing_sequence_item import ASLBolusCutoffTimingSequenceItem +from .asl_slab_sequence_item import ASLSlabSequenceItem + + +class MRArterialSpinLabelingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ASLBolusCutoffTimingSequence: List[ASLBolusCutoffTimingSequenceItem] = [] + self._ASLSlabSequence: List[ASLSlabSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ASLTechniqueDescription(self) -> Optional[str]: + if "ASLTechniqueDescription" in self._dataset: + return self._dataset.ASLTechniqueDescription + return None + + @ASLTechniqueDescription.setter + def ASLTechniqueDescription(self, value: Optional[str]): + if value is None: + if "ASLTechniqueDescription" in self._dataset: + del self._dataset.ASLTechniqueDescription + else: + self._dataset.ASLTechniqueDescription = value + + @property + def ASLContext(self) -> Optional[str]: + if "ASLContext" in self._dataset: + return self._dataset.ASLContext + return None + + @ASLContext.setter + def ASLContext(self, value: Optional[str]): + if value is None: + if "ASLContext" in self._dataset: + del self._dataset.ASLContext + else: + self._dataset.ASLContext = value + + @property + def ASLCrusherFlag(self) -> Optional[str]: + if "ASLCrusherFlag" in self._dataset: + return self._dataset.ASLCrusherFlag + return None + + @ASLCrusherFlag.setter + def ASLCrusherFlag(self, value: Optional[str]): + if value is None: + if "ASLCrusherFlag" in self._dataset: + del self._dataset.ASLCrusherFlag + else: + self._dataset.ASLCrusherFlag = value + + @property + def ASLCrusherFlowLimit(self) -> Optional[float]: + if "ASLCrusherFlowLimit" in self._dataset: + return self._dataset.ASLCrusherFlowLimit + return None + + @ASLCrusherFlowLimit.setter + def ASLCrusherFlowLimit(self, value: Optional[float]): + if value is None: + if "ASLCrusherFlowLimit" in self._dataset: + del self._dataset.ASLCrusherFlowLimit + else: + self._dataset.ASLCrusherFlowLimit = value + + @property + def ASLCrusherDescription(self) -> Optional[str]: + if "ASLCrusherDescription" in self._dataset: + return self._dataset.ASLCrusherDescription + return None + + @ASLCrusherDescription.setter + def ASLCrusherDescription(self, value: Optional[str]): + if value is None: + if "ASLCrusherDescription" in self._dataset: + del self._dataset.ASLCrusherDescription + else: + self._dataset.ASLCrusherDescription = value + + @property + def ASLBolusCutoffFlag(self) -> Optional[str]: + if "ASLBolusCutoffFlag" in self._dataset: + return self._dataset.ASLBolusCutoffFlag + return None + + @ASLBolusCutoffFlag.setter + def ASLBolusCutoffFlag(self, value: Optional[str]): + if value is None: + if "ASLBolusCutoffFlag" in self._dataset: + del self._dataset.ASLBolusCutoffFlag + else: + self._dataset.ASLBolusCutoffFlag = value + + @property + def ASLBolusCutoffTimingSequence(self) -> Optional[List[ASLBolusCutoffTimingSequenceItem]]: + if "ASLBolusCutoffTimingSequence" in self._dataset: + if len(self._ASLBolusCutoffTimingSequence) == len(self._dataset.ASLBolusCutoffTimingSequence): + return self._ASLBolusCutoffTimingSequence + else: + return [ASLBolusCutoffTimingSequenceItem(x) for x in self._dataset.ASLBolusCutoffTimingSequence] + return None + + @ASLBolusCutoffTimingSequence.setter + def ASLBolusCutoffTimingSequence(self, value: Optional[List[ASLBolusCutoffTimingSequenceItem]]): + if value is None: + self._ASLBolusCutoffTimingSequence = [] + if "ASLBolusCutoffTimingSequence" in self._dataset: + del self._dataset.ASLBolusCutoffTimingSequence + elif not isinstance(value, list) or not all(isinstance(item, ASLBolusCutoffTimingSequenceItem) for item in value): + raise ValueError("ASLBolusCutoffTimingSequence must be a list of ASLBolusCutoffTimingSequenceItem objects") + else: + self._ASLBolusCutoffTimingSequence = value + if "ASLBolusCutoffTimingSequence" not in self._dataset: + self._dataset.ASLBolusCutoffTimingSequence = pydicom.Sequence() + self._dataset.ASLBolusCutoffTimingSequence.clear() + self._dataset.ASLBolusCutoffTimingSequence.extend([item.to_dataset() for item in value]) + + def add_ASLBolusCutoffTiming(self, item: ASLBolusCutoffTimingSequenceItem): + if not isinstance(item, ASLBolusCutoffTimingSequenceItem): + raise ValueError("Item must be an instance of ASLBolusCutoffTimingSequenceItem") + self._ASLBolusCutoffTimingSequence.append(item) + if "ASLBolusCutoffTimingSequence" not in self._dataset: + self._dataset.ASLBolusCutoffTimingSequence = pydicom.Sequence() + self._dataset.ASLBolusCutoffTimingSequence.append(item.to_dataset()) + + @property + def ASLSlabSequence(self) -> Optional[List[ASLSlabSequenceItem]]: + if "ASLSlabSequence" in self._dataset: + if len(self._ASLSlabSequence) == len(self._dataset.ASLSlabSequence): + return self._ASLSlabSequence + else: + return [ASLSlabSequenceItem(x) for x in self._dataset.ASLSlabSequence] + return None + + @ASLSlabSequence.setter + def ASLSlabSequence(self, value: Optional[List[ASLSlabSequenceItem]]): + if value is None: + self._ASLSlabSequence = [] + if "ASLSlabSequence" in self._dataset: + del self._dataset.ASLSlabSequence + elif not isinstance(value, list) or not all(isinstance(item, ASLSlabSequenceItem) for item in value): + raise ValueError("ASLSlabSequence must be a list of ASLSlabSequenceItem objects") + else: + self._ASLSlabSequence = value + if "ASLSlabSequence" not in self._dataset: + self._dataset.ASLSlabSequence = pydicom.Sequence() + self._dataset.ASLSlabSequence.clear() + self._dataset.ASLSlabSequence.extend([item.to_dataset() for item in value]) + + def add_ASLSlab(self, item: ASLSlabSequenceItem): + if not isinstance(item, ASLSlabSequenceItem): + raise ValueError("Item must be an instance of ASLSlabSequenceItem") + self._ASLSlabSequence.append(item) + if "ASLSlabSequence" not in self._dataset: + self._dataset.ASLSlabSequence = pydicom.Sequence() + self._dataset.ASLSlabSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/mr_averages_sequence_item.py b/tdwii_plus_examples/domain_model/mr_averages_sequence_item.py new file mode 100644 index 0000000..4b707a5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_averages_sequence_item.py @@ -0,0 +1,26 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRAveragesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfAverages(self) -> Optional[Decimal]: + if "NumberOfAverages" in self._dataset: + return self._dataset.NumberOfAverages + return None + + @NumberOfAverages.setter + def NumberOfAverages(self, value: Optional[Decimal]): + if value is None: + if "NumberOfAverages" in self._dataset: + del self._dataset.NumberOfAverages + else: + self._dataset.NumberOfAverages = value diff --git a/tdwii_plus_examples/domain_model/mr_diffusion_sequence_item.py b/tdwii_plus_examples/domain_model/mr_diffusion_sequence_item.py new file mode 100644 index 0000000..9b57c54 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_diffusion_sequence_item.py @@ -0,0 +1,128 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .diffusion_b_matrix_sequence_item import DiffusionBMatrixSequenceItem +from .diffusion_gradient_direction_sequence_item import ( + DiffusionGradientDirectionSequenceItem, +) + + +class MRDiffusionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DiffusionGradientDirectionSequence: List[DiffusionGradientDirectionSequenceItem] = [] + self._DiffusionBMatrixSequence: List[DiffusionBMatrixSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DiffusionDirectionality(self) -> Optional[str]: + if "DiffusionDirectionality" in self._dataset: + return self._dataset.DiffusionDirectionality + return None + + @DiffusionDirectionality.setter + def DiffusionDirectionality(self, value: Optional[str]): + if value is None: + if "DiffusionDirectionality" in self._dataset: + del self._dataset.DiffusionDirectionality + else: + self._dataset.DiffusionDirectionality = value + + @property + def DiffusionGradientDirectionSequence(self) -> Optional[List[DiffusionGradientDirectionSequenceItem]]: + if "DiffusionGradientDirectionSequence" in self._dataset: + if len(self._DiffusionGradientDirectionSequence) == len(self._dataset.DiffusionGradientDirectionSequence): + return self._DiffusionGradientDirectionSequence + else: + return [DiffusionGradientDirectionSequenceItem(x) for x in self._dataset.DiffusionGradientDirectionSequence] + return None + + @DiffusionGradientDirectionSequence.setter + def DiffusionGradientDirectionSequence(self, value: Optional[List[DiffusionGradientDirectionSequenceItem]]): + if value is None: + self._DiffusionGradientDirectionSequence = [] + if "DiffusionGradientDirectionSequence" in self._dataset: + del self._dataset.DiffusionGradientDirectionSequence + elif not isinstance(value, list) or not all( + isinstance(item, DiffusionGradientDirectionSequenceItem) for item in value + ): + raise ValueError( + "DiffusionGradientDirectionSequence must be a list of DiffusionGradientDirectionSequenceItem objects" + ) + else: + self._DiffusionGradientDirectionSequence = value + if "DiffusionGradientDirectionSequence" not in self._dataset: + self._dataset.DiffusionGradientDirectionSequence = pydicom.Sequence() + self._dataset.DiffusionGradientDirectionSequence.clear() + self._dataset.DiffusionGradientDirectionSequence.extend([item.to_dataset() for item in value]) + + def add_DiffusionGradientDirection(self, item: DiffusionGradientDirectionSequenceItem): + if not isinstance(item, DiffusionGradientDirectionSequenceItem): + raise ValueError("Item must be an instance of DiffusionGradientDirectionSequenceItem") + self._DiffusionGradientDirectionSequence.append(item) + if "DiffusionGradientDirectionSequence" not in self._dataset: + self._dataset.DiffusionGradientDirectionSequence = pydicom.Sequence() + self._dataset.DiffusionGradientDirectionSequence.append(item.to_dataset()) + + @property + def DiffusionBValue(self) -> Optional[float]: + if "DiffusionBValue" in self._dataset: + return self._dataset.DiffusionBValue + return None + + @DiffusionBValue.setter + def DiffusionBValue(self, value: Optional[float]): + if value is None: + if "DiffusionBValue" in self._dataset: + del self._dataset.DiffusionBValue + else: + self._dataset.DiffusionBValue = value + + @property + def DiffusionAnisotropyType(self) -> Optional[str]: + if "DiffusionAnisotropyType" in self._dataset: + return self._dataset.DiffusionAnisotropyType + return None + + @DiffusionAnisotropyType.setter + def DiffusionAnisotropyType(self, value: Optional[str]): + if value is None: + if "DiffusionAnisotropyType" in self._dataset: + del self._dataset.DiffusionAnisotropyType + else: + self._dataset.DiffusionAnisotropyType = value + + @property + def DiffusionBMatrixSequence(self) -> Optional[List[DiffusionBMatrixSequenceItem]]: + if "DiffusionBMatrixSequence" in self._dataset: + if len(self._DiffusionBMatrixSequence) == len(self._dataset.DiffusionBMatrixSequence): + return self._DiffusionBMatrixSequence + else: + return [DiffusionBMatrixSequenceItem(x) for x in self._dataset.DiffusionBMatrixSequence] + return None + + @DiffusionBMatrixSequence.setter + def DiffusionBMatrixSequence(self, value: Optional[List[DiffusionBMatrixSequenceItem]]): + if value is None: + self._DiffusionBMatrixSequence = [] + if "DiffusionBMatrixSequence" in self._dataset: + del self._dataset.DiffusionBMatrixSequence + elif not isinstance(value, list) or not all(isinstance(item, DiffusionBMatrixSequenceItem) for item in value): + raise ValueError("DiffusionBMatrixSequence must be a list of DiffusionBMatrixSequenceItem objects") + else: + self._DiffusionBMatrixSequence = value + if "DiffusionBMatrixSequence" not in self._dataset: + self._dataset.DiffusionBMatrixSequence = pydicom.Sequence() + self._dataset.DiffusionBMatrixSequence.clear() + self._dataset.DiffusionBMatrixSequence.extend([item.to_dataset() for item in value]) + + def add_DiffusionBMatrix(self, item: DiffusionBMatrixSequenceItem): + if not isinstance(item, DiffusionBMatrixSequenceItem): + raise ValueError("Item must be an instance of DiffusionBMatrixSequenceItem") + self._DiffusionBMatrixSequence.append(item) + if "DiffusionBMatrixSequence" not in self._dataset: + self._dataset.DiffusionBMatrixSequence = pydicom.Sequence() + self._dataset.DiffusionBMatrixSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/mr_echo_sequence_item.py b/tdwii_plus_examples/domain_model/mr_echo_sequence_item.py new file mode 100644 index 0000000..241edd5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_echo_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MREchoSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EffectiveEchoTime(self) -> Optional[float]: + if "EffectiveEchoTime" in self._dataset: + return self._dataset.EffectiveEchoTime + return None + + @EffectiveEchoTime.setter + def EffectiveEchoTime(self, value: Optional[float]): + if value is None: + if "EffectiveEchoTime" in self._dataset: + del self._dataset.EffectiveEchoTime + else: + self._dataset.EffectiveEchoTime = value diff --git a/tdwii_plus_examples/domain_model/mr_image.py b/tdwii_plus_examples/domain_model/mr_image.py new file mode 100644 index 0000000..4db4101 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_image.py @@ -0,0 +1,6623 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .scanning_sequence_item import ScanningSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class MrImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ScanningSequence: List[ScanningSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def SliceLocation(self) -> Optional[Decimal]: + if "SliceLocation" in self._dataset: + return self._dataset.SliceLocation + return None + + @SliceLocation.setter + def SliceLocation(self, value: Optional[Decimal]): + if value is None: + if "SliceLocation" in self._dataset: + del self._dataset.SliceLocation + else: + self._dataset.SliceLocation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def ScanningSequence(self) -> Optional[List[ScanningSequenceItem]]: + if "ScanningSequence" in self._dataset: + if len(self._ScanningSequence) == len(self._dataset.ScanningSequence): + return self._ScanningSequence + else: + return [ScanningSequenceItem(x) for x in self._dataset.ScanningSequence] + return None + + @ScanningSequence.setter + def ScanningSequence(self, value: Optional[List[ScanningSequenceItem]]): + if value is None: + self._ScanningSequence = [] + if "ScanningSequence" in self._dataset: + del self._dataset.ScanningSequence + elif not isinstance(value, list) or not all(isinstance(item, ScanningSequenceItem) for item in value): + raise ValueError("ScanningSequence must be a list of ScanningSequenceItem objects") + else: + self._ScanningSequence = value + if "ScanningSequence" not in self._dataset: + self._dataset.ScanningSequence = pydicom.Sequence() + self._dataset.ScanningSequence.clear() + self._dataset.ScanningSequence.extend([item.to_dataset() for item in value]) + + def add_Scanning(self, item: ScanningSequenceItem): + if not isinstance(item, ScanningSequenceItem): + raise ValueError("Item must be an instance of ScanningSequenceItem") + self._ScanningSequence.append(item) + if "ScanningSequence" not in self._dataset: + self._dataset.ScanningSequence = pydicom.Sequence() + self._dataset.ScanningSequence.append(item.to_dataset()) + + @property + def SequenceVariant(self) -> Optional[List[str]]: + if "SequenceVariant" in self._dataset: + return self._dataset.SequenceVariant + return None + + @SequenceVariant.setter + def SequenceVariant(self, value: Optional[List[str]]): + if value is None: + if "SequenceVariant" in self._dataset: + del self._dataset.SequenceVariant + else: + self._dataset.SequenceVariant = value + + @property + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def MRAcquisitionType(self) -> Optional[str]: + if "MRAcquisitionType" in self._dataset: + return self._dataset.MRAcquisitionType + return None + + @MRAcquisitionType.setter + def MRAcquisitionType(self, value: Optional[str]): + if value is None: + if "MRAcquisitionType" in self._dataset: + del self._dataset.MRAcquisitionType + else: + self._dataset.MRAcquisitionType = value + + @property + def SequenceName(self) -> Optional[str]: + if "SequenceName" in self._dataset: + return self._dataset.SequenceName + return None + + @SequenceName.setter + def SequenceName(self, value: Optional[str]): + if value is None: + if "SequenceName" in self._dataset: + del self._dataset.SequenceName + else: + self._dataset.SequenceName = value + + @property + def AngioFlag(self) -> Optional[str]: + if "AngioFlag" in self._dataset: + return self._dataset.AngioFlag + return None + + @AngioFlag.setter + def AngioFlag(self, value: Optional[str]): + if value is None: + if "AngioFlag" in self._dataset: + del self._dataset.AngioFlag + else: + self._dataset.AngioFlag = value + + @property + def RepetitionTime(self) -> Optional[Decimal]: + if "RepetitionTime" in self._dataset: + return self._dataset.RepetitionTime + return None + + @RepetitionTime.setter + def RepetitionTime(self, value: Optional[Decimal]): + if value is None: + if "RepetitionTime" in self._dataset: + del self._dataset.RepetitionTime + else: + self._dataset.RepetitionTime = value + + @property + def EchoTime(self) -> Optional[Decimal]: + if "EchoTime" in self._dataset: + return self._dataset.EchoTime + return None + + @EchoTime.setter + def EchoTime(self, value: Optional[Decimal]): + if value is None: + if "EchoTime" in self._dataset: + del self._dataset.EchoTime + else: + self._dataset.EchoTime = value + + @property + def InversionTime(self) -> Optional[Decimal]: + if "InversionTime" in self._dataset: + return self._dataset.InversionTime + return None + + @InversionTime.setter + def InversionTime(self, value: Optional[Decimal]): + if value is None: + if "InversionTime" in self._dataset: + del self._dataset.InversionTime + else: + self._dataset.InversionTime = value + + @property + def NumberOfAverages(self) -> Optional[Decimal]: + if "NumberOfAverages" in self._dataset: + return self._dataset.NumberOfAverages + return None + + @NumberOfAverages.setter + def NumberOfAverages(self, value: Optional[Decimal]): + if value is None: + if "NumberOfAverages" in self._dataset: + del self._dataset.NumberOfAverages + else: + self._dataset.NumberOfAverages = value + + @property + def ImagingFrequency(self) -> Optional[Decimal]: + if "ImagingFrequency" in self._dataset: + return self._dataset.ImagingFrequency + return None + + @ImagingFrequency.setter + def ImagingFrequency(self, value: Optional[Decimal]): + if value is None: + if "ImagingFrequency" in self._dataset: + del self._dataset.ImagingFrequency + else: + self._dataset.ImagingFrequency = value + + @property + def ImagedNucleus(self) -> Optional[str]: + if "ImagedNucleus" in self._dataset: + return self._dataset.ImagedNucleus + return None + + @ImagedNucleus.setter + def ImagedNucleus(self, value: Optional[str]): + if value is None: + if "ImagedNucleus" in self._dataset: + del self._dataset.ImagedNucleus + else: + self._dataset.ImagedNucleus = value + + @property + def EchoNumbers(self) -> Optional[List[int]]: + if "EchoNumbers" in self._dataset: + return self._dataset.EchoNumbers + return None + + @EchoNumbers.setter + def EchoNumbers(self, value: Optional[List[int]]): + if value is None: + if "EchoNumbers" in self._dataset: + del self._dataset.EchoNumbers + else: + self._dataset.EchoNumbers = value + + @property + def MagneticFieldStrength(self) -> Optional[Decimal]: + if "MagneticFieldStrength" in self._dataset: + return self._dataset.MagneticFieldStrength + return None + + @MagneticFieldStrength.setter + def MagneticFieldStrength(self, value: Optional[Decimal]): + if value is None: + if "MagneticFieldStrength" in self._dataset: + del self._dataset.MagneticFieldStrength + else: + self._dataset.MagneticFieldStrength = value + + @property + def NumberOfPhaseEncodingSteps(self) -> Optional[int]: + if "NumberOfPhaseEncodingSteps" in self._dataset: + return self._dataset.NumberOfPhaseEncodingSteps + return None + + @NumberOfPhaseEncodingSteps.setter + def NumberOfPhaseEncodingSteps(self, value: Optional[int]): + if value is None: + if "NumberOfPhaseEncodingSteps" in self._dataset: + del self._dataset.NumberOfPhaseEncodingSteps + else: + self._dataset.NumberOfPhaseEncodingSteps = value + + @property + def EchoTrainLength(self) -> Optional[int]: + if "EchoTrainLength" in self._dataset: + return self._dataset.EchoTrainLength + return None + + @EchoTrainLength.setter + def EchoTrainLength(self, value: Optional[int]): + if value is None: + if "EchoTrainLength" in self._dataset: + del self._dataset.EchoTrainLength + else: + self._dataset.EchoTrainLength = value + + @property + def PercentSampling(self) -> Optional[Decimal]: + if "PercentSampling" in self._dataset: + return self._dataset.PercentSampling + return None + + @PercentSampling.setter + def PercentSampling(self, value: Optional[Decimal]): + if value is None: + if "PercentSampling" in self._dataset: + del self._dataset.PercentSampling + else: + self._dataset.PercentSampling = value + + @property + def PercentPhaseFieldOfView(self) -> Optional[Decimal]: + if "PercentPhaseFieldOfView" in self._dataset: + return self._dataset.PercentPhaseFieldOfView + return None + + @PercentPhaseFieldOfView.setter + def PercentPhaseFieldOfView(self, value: Optional[Decimal]): + if value is None: + if "PercentPhaseFieldOfView" in self._dataset: + del self._dataset.PercentPhaseFieldOfView + else: + self._dataset.PercentPhaseFieldOfView = value + + @property + def PixelBandwidth(self) -> Optional[Decimal]: + if "PixelBandwidth" in self._dataset: + return self._dataset.PixelBandwidth + return None + + @PixelBandwidth.setter + def PixelBandwidth(self, value: Optional[Decimal]): + if value is None: + if "PixelBandwidth" in self._dataset: + del self._dataset.PixelBandwidth + else: + self._dataset.PixelBandwidth = value + + @property + def TriggerTime(self) -> Optional[Decimal]: + if "TriggerTime" in self._dataset: + return self._dataset.TriggerTime + return None + + @TriggerTime.setter + def TriggerTime(self, value: Optional[Decimal]): + if value is None: + if "TriggerTime" in self._dataset: + del self._dataset.TriggerTime + else: + self._dataset.TriggerTime = value + + @property + def NominalInterval(self) -> Optional[int]: + if "NominalInterval" in self._dataset: + return self._dataset.NominalInterval + return None + + @NominalInterval.setter + def NominalInterval(self, value: Optional[int]): + if value is None: + if "NominalInterval" in self._dataset: + del self._dataset.NominalInterval + else: + self._dataset.NominalInterval = value + + @property + def BeatRejectionFlag(self) -> Optional[str]: + if "BeatRejectionFlag" in self._dataset: + return self._dataset.BeatRejectionFlag + return None + + @BeatRejectionFlag.setter + def BeatRejectionFlag(self, value: Optional[str]): + if value is None: + if "BeatRejectionFlag" in self._dataset: + del self._dataset.BeatRejectionFlag + else: + self._dataset.BeatRejectionFlag = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def PVCRejection(self) -> Optional[str]: + if "PVCRejection" in self._dataset: + return self._dataset.PVCRejection + return None + + @PVCRejection.setter + def PVCRejection(self, value: Optional[str]): + if value is None: + if "PVCRejection" in self._dataset: + del self._dataset.PVCRejection + else: + self._dataset.PVCRejection = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def HeartRate(self) -> Optional[int]: + if "HeartRate" in self._dataset: + return self._dataset.HeartRate + return None + + @HeartRate.setter + def HeartRate(self, value: Optional[int]): + if value is None: + if "HeartRate" in self._dataset: + del self._dataset.HeartRate + else: + self._dataset.HeartRate = value + + @property + def CardiacNumberOfImages(self) -> Optional[int]: + if "CardiacNumberOfImages" in self._dataset: + return self._dataset.CardiacNumberOfImages + return None + + @CardiacNumberOfImages.setter + def CardiacNumberOfImages(self, value: Optional[int]): + if value is None: + if "CardiacNumberOfImages" in self._dataset: + del self._dataset.CardiacNumberOfImages + else: + self._dataset.CardiacNumberOfImages = value + + @property + def TriggerWindow(self) -> Optional[int]: + if "TriggerWindow" in self._dataset: + return self._dataset.TriggerWindow + return None + + @TriggerWindow.setter + def TriggerWindow(self, value: Optional[int]): + if value is None: + if "TriggerWindow" in self._dataset: + del self._dataset.TriggerWindow + else: + self._dataset.TriggerWindow = value + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def ReceiveCoilName(self) -> Optional[str]: + if "ReceiveCoilName" in self._dataset: + return self._dataset.ReceiveCoilName + return None + + @ReceiveCoilName.setter + def ReceiveCoilName(self, value: Optional[str]): + if value is None: + if "ReceiveCoilName" in self._dataset: + del self._dataset.ReceiveCoilName + else: + self._dataset.ReceiveCoilName = value + + @property + def TransmitCoilName(self) -> Optional[str]: + if "TransmitCoilName" in self._dataset: + return self._dataset.TransmitCoilName + return None + + @TransmitCoilName.setter + def TransmitCoilName(self, value: Optional[str]): + if value is None: + if "TransmitCoilName" in self._dataset: + del self._dataset.TransmitCoilName + else: + self._dataset.TransmitCoilName = value + + @property + def AcquisitionMatrix(self) -> Optional[List[int]]: + if "AcquisitionMatrix" in self._dataset: + return self._dataset.AcquisitionMatrix + return None + + @AcquisitionMatrix.setter + def AcquisitionMatrix(self, value: Optional[List[int]]): + if value is None: + if "AcquisitionMatrix" in self._dataset: + del self._dataset.AcquisitionMatrix + else: + self._dataset.AcquisitionMatrix = value + + @property + def InPlanePhaseEncodingDirection(self) -> Optional[str]: + if "InPlanePhaseEncodingDirection" in self._dataset: + return self._dataset.InPlanePhaseEncodingDirection + return None + + @InPlanePhaseEncodingDirection.setter + def InPlanePhaseEncodingDirection(self, value: Optional[str]): + if value is None: + if "InPlanePhaseEncodingDirection" in self._dataset: + del self._dataset.InPlanePhaseEncodingDirection + else: + self._dataset.InPlanePhaseEncodingDirection = value + + @property + def FlipAngle(self) -> Optional[Decimal]: + if "FlipAngle" in self._dataset: + return self._dataset.FlipAngle + return None + + @FlipAngle.setter + def FlipAngle(self, value: Optional[Decimal]): + if value is None: + if "FlipAngle" in self._dataset: + del self._dataset.FlipAngle + else: + self._dataset.FlipAngle = value + + @property + def VariableFlipAngleFlag(self) -> Optional[str]: + if "VariableFlipAngleFlag" in self._dataset: + return self._dataset.VariableFlipAngleFlag + return None + + @VariableFlipAngleFlag.setter + def VariableFlipAngleFlag(self, value: Optional[str]): + if value is None: + if "VariableFlipAngleFlag" in self._dataset: + del self._dataset.VariableFlipAngleFlag + else: + self._dataset.VariableFlipAngleFlag = value + + @property + def SAR(self) -> Optional[Decimal]: + if "SAR" in self._dataset: + return self._dataset.SAR + return None + + @SAR.setter + def SAR(self, value: Optional[Decimal]): + if value is None: + if "SAR" in self._dataset: + del self._dataset.SAR + else: + self._dataset.SAR = value + + @property + def dBdt(self) -> Optional[Decimal]: + if "dBdt" in self._dataset: + return self._dataset.dBdt + return None + + @dBdt.setter + def dBdt(self, value: Optional[Decimal]): + if value is None: + if "dBdt" in self._dataset: + del self._dataset.dBdt + else: + self._dataset.dBdt = value + + @property + def B1rms(self) -> Optional[float]: + if "B1rms" in self._dataset: + return self._dataset.B1rms + return None + + @B1rms.setter + def B1rms(self, value: Optional[float]): + if value is None: + if "B1rms" in self._dataset: + del self._dataset.B1rms + else: + self._dataset.B1rms = value + + @property + def TemporalPositionIdentifier(self) -> Optional[int]: + if "TemporalPositionIdentifier" in self._dataset: + return self._dataset.TemporalPositionIdentifier + return None + + @TemporalPositionIdentifier.setter + def TemporalPositionIdentifier(self, value: Optional[int]): + if value is None: + if "TemporalPositionIdentifier" in self._dataset: + del self._dataset.TemporalPositionIdentifier + else: + self._dataset.TemporalPositionIdentifier = value + + @property + def NumberOfTemporalPositions(self) -> Optional[int]: + if "NumberOfTemporalPositions" in self._dataset: + return self._dataset.NumberOfTemporalPositions + return None + + @NumberOfTemporalPositions.setter + def NumberOfTemporalPositions(self, value: Optional[int]): + if value is None: + if "NumberOfTemporalPositions" in self._dataset: + del self._dataset.NumberOfTemporalPositions + else: + self._dataset.NumberOfTemporalPositions = value + + @property + def TemporalResolution(self) -> Optional[Decimal]: + if "TemporalResolution" in self._dataset: + return self._dataset.TemporalResolution + return None + + @TemporalResolution.setter + def TemporalResolution(self, value: Optional[Decimal]): + if value is None: + if "TemporalResolution" in self._dataset: + del self._dataset.TemporalResolution + else: + self._dataset.TemporalResolution = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/mr_image_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/mr_image_frame_type_sequence_item.py new file mode 100644 index 0000000..21e1830 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_image_frame_type_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRImageFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ComplexImageComponent(self) -> Optional[str]: + if "ComplexImageComponent" in self._dataset: + return self._dataset.ComplexImageComponent + return None + + @ComplexImageComponent.setter + def ComplexImageComponent(self, value: Optional[str]): + if value is None: + if "ComplexImageComponent" in self._dataset: + del self._dataset.ComplexImageComponent + else: + self._dataset.ComplexImageComponent = value + + @property + def AcquisitionContrast(self) -> Optional[str]: + if "AcquisitionContrast" in self._dataset: + return self._dataset.AcquisitionContrast + return None + + @AcquisitionContrast.setter + def AcquisitionContrast(self, value: Optional[str]): + if value is None: + if "AcquisitionContrast" in self._dataset: + del self._dataset.AcquisitionContrast + else: + self._dataset.AcquisitionContrast = value + + @property + def FunctionalSettlingPhaseFramesPresent(self) -> Optional[str]: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + return self._dataset.FunctionalSettlingPhaseFramesPresent + return None + + @FunctionalSettlingPhaseFramesPresent.setter + def FunctionalSettlingPhaseFramesPresent(self, value: Optional[str]): + if value is None: + if "FunctionalSettlingPhaseFramesPresent" in self._dataset: + del self._dataset.FunctionalSettlingPhaseFramesPresent + else: + self._dataset.FunctionalSettlingPhaseFramesPresent = value diff --git a/tdwii_plus_examples/domain_model/mr_imaging_modifier_sequence_item.py b/tdwii_plus_examples/domain_model/mr_imaging_modifier_sequence_item.py new file mode 100644 index 0000000..bec8653 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_imaging_modifier_sequence_item.py @@ -0,0 +1,166 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRImagingModifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PixelBandwidth(self) -> Optional[Decimal]: + if "PixelBandwidth" in self._dataset: + return self._dataset.PixelBandwidth + return None + + @PixelBandwidth.setter + def PixelBandwidth(self, value: Optional[Decimal]): + if value is None: + if "PixelBandwidth" in self._dataset: + del self._dataset.PixelBandwidth + else: + self._dataset.PixelBandwidth = value + + @property + def TagAngleFirstAxis(self) -> Optional[float]: + if "TagAngleFirstAxis" in self._dataset: + return self._dataset.TagAngleFirstAxis + return None + + @TagAngleFirstAxis.setter + def TagAngleFirstAxis(self, value: Optional[float]): + if value is None: + if "TagAngleFirstAxis" in self._dataset: + del self._dataset.TagAngleFirstAxis + else: + self._dataset.TagAngleFirstAxis = value + + @property + def MagnetizationTransfer(self) -> Optional[str]: + if "MagnetizationTransfer" in self._dataset: + return self._dataset.MagnetizationTransfer + return None + + @MagnetizationTransfer.setter + def MagnetizationTransfer(self, value: Optional[str]): + if value is None: + if "MagnetizationTransfer" in self._dataset: + del self._dataset.MagnetizationTransfer + else: + self._dataset.MagnetizationTransfer = value + + @property + def BloodSignalNulling(self) -> Optional[str]: + if "BloodSignalNulling" in self._dataset: + return self._dataset.BloodSignalNulling + return None + + @BloodSignalNulling.setter + def BloodSignalNulling(self, value: Optional[str]): + if value is None: + if "BloodSignalNulling" in self._dataset: + del self._dataset.BloodSignalNulling + else: + self._dataset.BloodSignalNulling = value + + @property + def Tagging(self) -> Optional[str]: + if "Tagging" in self._dataset: + return self._dataset.Tagging + return None + + @Tagging.setter + def Tagging(self, value: Optional[str]): + if value is None: + if "Tagging" in self._dataset: + del self._dataset.Tagging + else: + self._dataset.Tagging = value + + @property + def TagSpacingFirstDimension(self) -> Optional[float]: + if "TagSpacingFirstDimension" in self._dataset: + return self._dataset.TagSpacingFirstDimension + return None + + @TagSpacingFirstDimension.setter + def TagSpacingFirstDimension(self, value: Optional[float]): + if value is None: + if "TagSpacingFirstDimension" in self._dataset: + del self._dataset.TagSpacingFirstDimension + else: + self._dataset.TagSpacingFirstDimension = value + + @property + def TagThickness(self) -> Optional[float]: + if "TagThickness" in self._dataset: + return self._dataset.TagThickness + return None + + @TagThickness.setter + def TagThickness(self, value: Optional[float]): + if value is None: + if "TagThickness" in self._dataset: + del self._dataset.TagThickness + else: + self._dataset.TagThickness = value + + @property + def TransmitterFrequency(self) -> Optional[List[float]]: + if "TransmitterFrequency" in self._dataset: + return self._dataset.TransmitterFrequency + return None + + @TransmitterFrequency.setter + def TransmitterFrequency(self, value: Optional[List[float]]): + if value is None: + if "TransmitterFrequency" in self._dataset: + del self._dataset.TransmitterFrequency + else: + self._dataset.TransmitterFrequency = value + + @property + def TaggingDelay(self) -> Optional[float]: + if "TaggingDelay" in self._dataset: + return self._dataset.TaggingDelay + return None + + @TaggingDelay.setter + def TaggingDelay(self, value: Optional[float]): + if value is None: + if "TaggingDelay" in self._dataset: + del self._dataset.TaggingDelay + else: + self._dataset.TaggingDelay = value + + @property + def TagSpacingSecondDimension(self) -> Optional[float]: + if "TagSpacingSecondDimension" in self._dataset: + return self._dataset.TagSpacingSecondDimension + return None + + @TagSpacingSecondDimension.setter + def TagSpacingSecondDimension(self, value: Optional[float]): + if value is None: + if "TagSpacingSecondDimension" in self._dataset: + del self._dataset.TagSpacingSecondDimension + else: + self._dataset.TagSpacingSecondDimension = value + + @property + def TagAngleSecondAxis(self) -> Optional[int]: + if "TagAngleSecondAxis" in self._dataset: + return self._dataset.TagAngleSecondAxis + return None + + @TagAngleSecondAxis.setter + def TagAngleSecondAxis(self, value: Optional[int]): + if value is None: + if "TagAngleSecondAxis" in self._dataset: + del self._dataset.TagAngleSecondAxis + else: + self._dataset.TagAngleSecondAxis = value diff --git a/tdwii_plus_examples/domain_model/mr_metabolite_map_sequence_item.py b/tdwii_plus_examples/domain_model/mr_metabolite_map_sequence_item.py new file mode 100644 index 0000000..02b1f62 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_metabolite_map_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .chemical_shift_sequence_item import ChemicalShiftSequenceItem +from .code_sequence_item import CodeSequenceItem + + +class MRMetaboliteMapSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MetaboliteMapCodeSequence: List[CodeSequenceItem] = [] + self._ChemicalShiftSequence: List[ChemicalShiftSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MetaboliteMapDescription(self) -> Optional[str]: + if "MetaboliteMapDescription" in self._dataset: + return self._dataset.MetaboliteMapDescription + return None + + @MetaboliteMapDescription.setter + def MetaboliteMapDescription(self, value: Optional[str]): + if value is None: + if "MetaboliteMapDescription" in self._dataset: + del self._dataset.MetaboliteMapDescription + else: + self._dataset.MetaboliteMapDescription = value + + @property + def MetaboliteMapCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MetaboliteMapCodeSequence" in self._dataset: + if len(self._MetaboliteMapCodeSequence) == len(self._dataset.MetaboliteMapCodeSequence): + return self._MetaboliteMapCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MetaboliteMapCodeSequence] + return None + + @MetaboliteMapCodeSequence.setter + def MetaboliteMapCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MetaboliteMapCodeSequence = [] + if "MetaboliteMapCodeSequence" in self._dataset: + del self._dataset.MetaboliteMapCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MetaboliteMapCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MetaboliteMapCodeSequence = value + if "MetaboliteMapCodeSequence" not in self._dataset: + self._dataset.MetaboliteMapCodeSequence = pydicom.Sequence() + self._dataset.MetaboliteMapCodeSequence.clear() + self._dataset.MetaboliteMapCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MetaboliteMapCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MetaboliteMapCodeSequence.append(item) + if "MetaboliteMapCodeSequence" not in self._dataset: + self._dataset.MetaboliteMapCodeSequence = pydicom.Sequence() + self._dataset.MetaboliteMapCodeSequence.append(item.to_dataset()) + + @property + def ChemicalShiftSequence(self) -> Optional[List[ChemicalShiftSequenceItem]]: + if "ChemicalShiftSequence" in self._dataset: + if len(self._ChemicalShiftSequence) == len(self._dataset.ChemicalShiftSequence): + return self._ChemicalShiftSequence + else: + return [ChemicalShiftSequenceItem(x) for x in self._dataset.ChemicalShiftSequence] + return None + + @ChemicalShiftSequence.setter + def ChemicalShiftSequence(self, value: Optional[List[ChemicalShiftSequenceItem]]): + if value is None: + self._ChemicalShiftSequence = [] + if "ChemicalShiftSequence" in self._dataset: + del self._dataset.ChemicalShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, ChemicalShiftSequenceItem) for item in value): + raise ValueError("ChemicalShiftSequence must be a list of ChemicalShiftSequenceItem objects") + else: + self._ChemicalShiftSequence = value + if "ChemicalShiftSequence" not in self._dataset: + self._dataset.ChemicalShiftSequence = pydicom.Sequence() + self._dataset.ChemicalShiftSequence.clear() + self._dataset.ChemicalShiftSequence.extend([item.to_dataset() for item in value]) + + def add_ChemicalShift(self, item: ChemicalShiftSequenceItem): + if not isinstance(item, ChemicalShiftSequenceItem): + raise ValueError("Item must be an instance of ChemicalShiftSequenceItem") + self._ChemicalShiftSequence.append(item) + if "ChemicalShiftSequence" not in self._dataset: + self._dataset.ChemicalShiftSequence = pydicom.Sequence() + self._dataset.ChemicalShiftSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/mr_modifier_sequence_item.py b/tdwii_plus_examples/domain_model/mr_modifier_sequence_item.py new file mode 100644 index 0000000..6210882 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_modifier_sequence_item.py @@ -0,0 +1,221 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRModifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InversionRecovery(self) -> Optional[str]: + if "InversionRecovery" in self._dataset: + return self._dataset.InversionRecovery + return None + + @InversionRecovery.setter + def InversionRecovery(self, value: Optional[str]): + if value is None: + if "InversionRecovery" in self._dataset: + del self._dataset.InversionRecovery + else: + self._dataset.InversionRecovery = value + + @property + def FlowCompensation(self) -> Optional[str]: + if "FlowCompensation" in self._dataset: + return self._dataset.FlowCompensation + return None + + @FlowCompensation.setter + def FlowCompensation(self, value: Optional[str]): + if value is None: + if "FlowCompensation" in self._dataset: + del self._dataset.FlowCompensation + else: + self._dataset.FlowCompensation = value + + @property + def Spoiling(self) -> Optional[str]: + if "Spoiling" in self._dataset: + return self._dataset.Spoiling + return None + + @Spoiling.setter + def Spoiling(self, value: Optional[str]): + if value is None: + if "Spoiling" in self._dataset: + del self._dataset.Spoiling + else: + self._dataset.Spoiling = value + + @property + def T2Preparation(self) -> Optional[str]: + if "T2Preparation" in self._dataset: + return self._dataset.T2Preparation + return None + + @T2Preparation.setter + def T2Preparation(self, value: Optional[str]): + if value is None: + if "T2Preparation" in self._dataset: + del self._dataset.T2Preparation + else: + self._dataset.T2Preparation = value + + @property + def SpectrallySelectedExcitation(self) -> Optional[str]: + if "SpectrallySelectedExcitation" in self._dataset: + return self._dataset.SpectrallySelectedExcitation + return None + + @SpectrallySelectedExcitation.setter + def SpectrallySelectedExcitation(self, value: Optional[str]): + if value is None: + if "SpectrallySelectedExcitation" in self._dataset: + del self._dataset.SpectrallySelectedExcitation + else: + self._dataset.SpectrallySelectedExcitation = value + + @property + def SpatialPresaturation(self) -> Optional[str]: + if "SpatialPresaturation" in self._dataset: + return self._dataset.SpatialPresaturation + return None + + @SpatialPresaturation.setter + def SpatialPresaturation(self, value: Optional[str]): + if value is None: + if "SpatialPresaturation" in self._dataset: + del self._dataset.SpatialPresaturation + else: + self._dataset.SpatialPresaturation = value + + @property + def PartialFourierDirection(self) -> Optional[str]: + if "PartialFourierDirection" in self._dataset: + return self._dataset.PartialFourierDirection + return None + + @PartialFourierDirection.setter + def PartialFourierDirection(self, value: Optional[str]): + if value is None: + if "PartialFourierDirection" in self._dataset: + del self._dataset.PartialFourierDirection + else: + self._dataset.PartialFourierDirection = value + + @property + def ParallelReductionFactorInPlane(self) -> Optional[float]: + if "ParallelReductionFactorInPlane" in self._dataset: + return self._dataset.ParallelReductionFactorInPlane + return None + + @ParallelReductionFactorInPlane.setter + def ParallelReductionFactorInPlane(self, value: Optional[float]): + if value is None: + if "ParallelReductionFactorInPlane" in self._dataset: + del self._dataset.ParallelReductionFactorInPlane + else: + self._dataset.ParallelReductionFactorInPlane = value + + @property + def ParallelAcquisition(self) -> Optional[str]: + if "ParallelAcquisition" in self._dataset: + return self._dataset.ParallelAcquisition + return None + + @ParallelAcquisition.setter + def ParallelAcquisition(self, value: Optional[str]): + if value is None: + if "ParallelAcquisition" in self._dataset: + del self._dataset.ParallelAcquisition + else: + self._dataset.ParallelAcquisition = value + + @property + def ParallelAcquisitionTechnique(self) -> Optional[str]: + if "ParallelAcquisitionTechnique" in self._dataset: + return self._dataset.ParallelAcquisitionTechnique + return None + + @ParallelAcquisitionTechnique.setter + def ParallelAcquisitionTechnique(self, value: Optional[str]): + if value is None: + if "ParallelAcquisitionTechnique" in self._dataset: + del self._dataset.ParallelAcquisitionTechnique + else: + self._dataset.ParallelAcquisitionTechnique = value + + @property + def InversionTimes(self) -> Optional[List[float]]: + if "InversionTimes" in self._dataset: + return self._dataset.InversionTimes + return None + + @InversionTimes.setter + def InversionTimes(self, value: Optional[List[float]]): + if value is None: + if "InversionTimes" in self._dataset: + del self._dataset.InversionTimes + else: + self._dataset.InversionTimes = value + + @property + def PartialFourier(self) -> Optional[str]: + if "PartialFourier" in self._dataset: + return self._dataset.PartialFourier + return None + + @PartialFourier.setter + def PartialFourier(self, value: Optional[str]): + if value is None: + if "PartialFourier" in self._dataset: + del self._dataset.PartialFourier + else: + self._dataset.PartialFourier = value + + @property + def ParallelReductionFactorOutOfPlane(self) -> Optional[float]: + if "ParallelReductionFactorOutOfPlane" in self._dataset: + return self._dataset.ParallelReductionFactorOutOfPlane + return None + + @ParallelReductionFactorOutOfPlane.setter + def ParallelReductionFactorOutOfPlane(self, value: Optional[float]): + if value is None: + if "ParallelReductionFactorOutOfPlane" in self._dataset: + del self._dataset.ParallelReductionFactorOutOfPlane + else: + self._dataset.ParallelReductionFactorOutOfPlane = value + + @property + def ParallelReductionFactorSecondInPlane(self) -> Optional[float]: + if "ParallelReductionFactorSecondInPlane" in self._dataset: + return self._dataset.ParallelReductionFactorSecondInPlane + return None + + @ParallelReductionFactorSecondInPlane.setter + def ParallelReductionFactorSecondInPlane(self, value: Optional[float]): + if value is None: + if "ParallelReductionFactorSecondInPlane" in self._dataset: + del self._dataset.ParallelReductionFactorSecondInPlane + else: + self._dataset.ParallelReductionFactorSecondInPlane = value + + @property + def FlowCompensationDirection(self) -> Optional[str]: + if "FlowCompensationDirection" in self._dataset: + return self._dataset.FlowCompensationDirection + return None + + @FlowCompensationDirection.setter + def FlowCompensationDirection(self, value: Optional[str]): + if value is None: + if "FlowCompensationDirection" in self._dataset: + del self._dataset.FlowCompensationDirection + else: + self._dataset.FlowCompensationDirection = value diff --git a/tdwii_plus_examples/domain_model/mr_receive_coil_sequence_item.py b/tdwii_plus_examples/domain_model/mr_receive_coil_sequence_item.py new file mode 100644 index 0000000..d4a6839 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_receive_coil_sequence_item.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .multi_coil_definition_sequence_item import MultiCoilDefinitionSequenceItem + + +class MRReceiveCoilSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MultiCoilDefinitionSequence: List[MultiCoilDefinitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReceiveCoilName(self) -> Optional[str]: + if "ReceiveCoilName" in self._dataset: + return self._dataset.ReceiveCoilName + return None + + @ReceiveCoilName.setter + def ReceiveCoilName(self, value: Optional[str]): + if value is None: + if "ReceiveCoilName" in self._dataset: + del self._dataset.ReceiveCoilName + else: + self._dataset.ReceiveCoilName = value + + @property + def ReceiveCoilManufacturerName(self) -> Optional[str]: + if "ReceiveCoilManufacturerName" in self._dataset: + return self._dataset.ReceiveCoilManufacturerName + return None + + @ReceiveCoilManufacturerName.setter + def ReceiveCoilManufacturerName(self, value: Optional[str]): + if value is None: + if "ReceiveCoilManufacturerName" in self._dataset: + del self._dataset.ReceiveCoilManufacturerName + else: + self._dataset.ReceiveCoilManufacturerName = value + + @property + def ReceiveCoilType(self) -> Optional[str]: + if "ReceiveCoilType" in self._dataset: + return self._dataset.ReceiveCoilType + return None + + @ReceiveCoilType.setter + def ReceiveCoilType(self, value: Optional[str]): + if value is None: + if "ReceiveCoilType" in self._dataset: + del self._dataset.ReceiveCoilType + else: + self._dataset.ReceiveCoilType = value + + @property + def QuadratureReceiveCoil(self) -> Optional[str]: + if "QuadratureReceiveCoil" in self._dataset: + return self._dataset.QuadratureReceiveCoil + return None + + @QuadratureReceiveCoil.setter + def QuadratureReceiveCoil(self, value: Optional[str]): + if value is None: + if "QuadratureReceiveCoil" in self._dataset: + del self._dataset.QuadratureReceiveCoil + else: + self._dataset.QuadratureReceiveCoil = value + + @property + def MultiCoilDefinitionSequence(self) -> Optional[List[MultiCoilDefinitionSequenceItem]]: + if "MultiCoilDefinitionSequence" in self._dataset: + if len(self._MultiCoilDefinitionSequence) == len(self._dataset.MultiCoilDefinitionSequence): + return self._MultiCoilDefinitionSequence + else: + return [MultiCoilDefinitionSequenceItem(x) for x in self._dataset.MultiCoilDefinitionSequence] + return None + + @MultiCoilDefinitionSequence.setter + def MultiCoilDefinitionSequence(self, value: Optional[List[MultiCoilDefinitionSequenceItem]]): + if value is None: + self._MultiCoilDefinitionSequence = [] + if "MultiCoilDefinitionSequence" in self._dataset: + del self._dataset.MultiCoilDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, MultiCoilDefinitionSequenceItem) for item in value): + raise ValueError("MultiCoilDefinitionSequence must be a list of MultiCoilDefinitionSequenceItem objects") + else: + self._MultiCoilDefinitionSequence = value + if "MultiCoilDefinitionSequence" not in self._dataset: + self._dataset.MultiCoilDefinitionSequence = pydicom.Sequence() + self._dataset.MultiCoilDefinitionSequence.clear() + self._dataset.MultiCoilDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_MultiCoilDefinition(self, item: MultiCoilDefinitionSequenceItem): + if not isinstance(item, MultiCoilDefinitionSequenceItem): + raise ValueError("Item must be an instance of MultiCoilDefinitionSequenceItem") + self._MultiCoilDefinitionSequence.append(item) + if "MultiCoilDefinitionSequence" not in self._dataset: + self._dataset.MultiCoilDefinitionSequence = pydicom.Sequence() + self._dataset.MultiCoilDefinitionSequence.append(item.to_dataset()) + + @property + def MultiCoilConfiguration(self) -> Optional[str]: + if "MultiCoilConfiguration" in self._dataset: + return self._dataset.MultiCoilConfiguration + return None + + @MultiCoilConfiguration.setter + def MultiCoilConfiguration(self, value: Optional[str]): + if value is None: + if "MultiCoilConfiguration" in self._dataset: + del self._dataset.MultiCoilConfiguration + else: + self._dataset.MultiCoilConfiguration = value diff --git a/tdwii_plus_examples/domain_model/mr_spatial_saturation_sequence_item.py b/tdwii_plus_examples/domain_model/mr_spatial_saturation_sequence_item.py new file mode 100644 index 0000000..2592aad --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_spatial_saturation_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRSpatialSaturationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SlabThickness(self) -> Optional[float]: + if "SlabThickness" in self._dataset: + return self._dataset.SlabThickness + return None + + @SlabThickness.setter + def SlabThickness(self, value: Optional[float]): + if value is None: + if "SlabThickness" in self._dataset: + del self._dataset.SlabThickness + else: + self._dataset.SlabThickness = value + + @property + def SlabOrientation(self) -> Optional[List[float]]: + if "SlabOrientation" in self._dataset: + return self._dataset.SlabOrientation + return None + + @SlabOrientation.setter + def SlabOrientation(self, value: Optional[List[float]]): + if value is None: + if "SlabOrientation" in self._dataset: + del self._dataset.SlabOrientation + else: + self._dataset.SlabOrientation = value + + @property + def MidSlabPosition(self) -> Optional[List[float]]: + if "MidSlabPosition" in self._dataset: + return self._dataset.MidSlabPosition + return None + + @MidSlabPosition.setter + def MidSlabPosition(self, value: Optional[List[float]]): + if value is None: + if "MidSlabPosition" in self._dataset: + del self._dataset.MidSlabPosition + else: + self._dataset.MidSlabPosition = value diff --git a/tdwii_plus_examples/domain_model/mr_spectroscopy.py b/tdwii_plus_examples/domain_model/mr_spectroscopy.py new file mode 100644 index 0000000..fbce8ea --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_spectroscopy.py @@ -0,0 +1,6169 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .echo_planar_pulse_sequence_item import EchoPlanarPulseSequenceItem +from .echo_pulse_sequence_item import EchoPulseSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_raw_data_sequence_item import ReferencedRawDataSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_waveform_sequence_item import ReferencedWaveformSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_evidence_sequence_item import SourceImageEvidenceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .steady_state_pulse_sequence_item import SteadyStatePulseSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .volume_localization_sequence_item import VolumeLocalizationSequenceItem + + +class MrSpectroscopy: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._EchoPulseSequence: List[EchoPulseSequenceItem] = [] + self._SteadyStatePulseSequence: List[SteadyStatePulseSequenceItem] = [] + self._EchoPlanarPulseSequence: List[EchoPlanarPulseSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedWaveformSequence: List[ReferencedWaveformSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedRawDataSequence: List[ReferencedRawDataSequenceItem] = [] + self._SourceImageEvidenceSequence: List[SourceImageEvidenceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._VolumeLocalizationSequence: List[VolumeLocalizationSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def BulkMotionCompensationTechnique(self) -> Optional[str]: + if "BulkMotionCompensationTechnique" in self._dataset: + return self._dataset.BulkMotionCompensationTechnique + return None + + @BulkMotionCompensationTechnique.setter + def BulkMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "BulkMotionCompensationTechnique" in self._dataset: + del self._dataset.BulkMotionCompensationTechnique + else: + self._dataset.BulkMotionCompensationTechnique = value + + @property + def BulkMotionSignalSource(self) -> Optional[str]: + if "BulkMotionSignalSource" in self._dataset: + return self._dataset.BulkMotionSignalSource + return None + + @BulkMotionSignalSource.setter + def BulkMotionSignalSource(self, value: Optional[str]): + if value is None: + if "BulkMotionSignalSource" in self._dataset: + del self._dataset.BulkMotionSignalSource + else: + self._dataset.BulkMotionSignalSource = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def DataPointRows(self) -> Optional[int]: + if "DataPointRows" in self._dataset: + return self._dataset.DataPointRows + return None + + @DataPointRows.setter + def DataPointRows(self, value: Optional[int]): + if value is None: + if "DataPointRows" in self._dataset: + del self._dataset.DataPointRows + else: + self._dataset.DataPointRows = value + + @property + def DataPointColumns(self) -> Optional[int]: + if "DataPointColumns" in self._dataset: + return self._dataset.DataPointColumns + return None + + @DataPointColumns.setter + def DataPointColumns(self, value: Optional[int]): + if value is None: + if "DataPointColumns" in self._dataset: + del self._dataset.DataPointColumns + else: + self._dataset.DataPointColumns = value + + @property + def SignalDomainColumns(self) -> Optional[str]: + if "SignalDomainColumns" in self._dataset: + return self._dataset.SignalDomainColumns + return None + + @SignalDomainColumns.setter + def SignalDomainColumns(self, value: Optional[str]): + if value is None: + if "SignalDomainColumns" in self._dataset: + del self._dataset.SignalDomainColumns + else: + self._dataset.SignalDomainColumns = value + + @property + def DataRepresentation(self) -> Optional[str]: + if "DataRepresentation" in self._dataset: + return self._dataset.DataRepresentation + return None + + @DataRepresentation.setter + def DataRepresentation(self, value: Optional[str]): + if value is None: + if "DataRepresentation" in self._dataset: + del self._dataset.DataRepresentation + else: + self._dataset.DataRepresentation = value + + @property + def SignalDomainRows(self) -> Optional[str]: + if "SignalDomainRows" in self._dataset: + return self._dataset.SignalDomainRows + return None + + @SignalDomainRows.setter + def SignalDomainRows(self, value: Optional[str]): + if value is None: + if "SignalDomainRows" in self._dataset: + del self._dataset.SignalDomainRows + else: + self._dataset.SignalDomainRows = value + + @property + def FirstOrderPhaseCorrectionAngle(self) -> Optional[bytes]: + if "FirstOrderPhaseCorrectionAngle" in self._dataset: + return self._dataset.FirstOrderPhaseCorrectionAngle + return None + + @FirstOrderPhaseCorrectionAngle.setter + def FirstOrderPhaseCorrectionAngle(self, value: Optional[bytes]): + if value is None: + if "FirstOrderPhaseCorrectionAngle" in self._dataset: + del self._dataset.FirstOrderPhaseCorrectionAngle + else: + self._dataset.FirstOrderPhaseCorrectionAngle = value + + @property + def SpectroscopyData(self) -> Optional[bytes]: + if "SpectroscopyData" in self._dataset: + return self._dataset.SpectroscopyData + return None + + @SpectroscopyData.setter + def SpectroscopyData(self, value: Optional[bytes]): + if value is None: + if "SpectroscopyData" in self._dataset: + del self._dataset.SpectroscopyData + else: + self._dataset.SpectroscopyData = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def PulseSequenceName(self) -> Optional[str]: + if "PulseSequenceName" in self._dataset: + return self._dataset.PulseSequenceName + return None + + @PulseSequenceName.setter + def PulseSequenceName(self, value: Optional[str]): + if value is None: + if "PulseSequenceName" in self._dataset: + del self._dataset.PulseSequenceName + else: + self._dataset.PulseSequenceName = value + + @property + def EchoPulseSequence(self) -> Optional[List[EchoPulseSequenceItem]]: + if "EchoPulseSequence" in self._dataset: + if len(self._EchoPulseSequence) == len(self._dataset.EchoPulseSequence): + return self._EchoPulseSequence + else: + return [EchoPulseSequenceItem(x) for x in self._dataset.EchoPulseSequence] + return None + + @EchoPulseSequence.setter + def EchoPulseSequence(self, value: Optional[List[EchoPulseSequenceItem]]): + if value is None: + self._EchoPulseSequence = [] + if "EchoPulseSequence" in self._dataset: + del self._dataset.EchoPulseSequence + elif not isinstance(value, list) or not all(isinstance(item, EchoPulseSequenceItem) for item in value): + raise ValueError("EchoPulseSequence must be a list of EchoPulseSequenceItem objects") + else: + self._EchoPulseSequence = value + if "EchoPulseSequence" not in self._dataset: + self._dataset.EchoPulseSequence = pydicom.Sequence() + self._dataset.EchoPulseSequence.clear() + self._dataset.EchoPulseSequence.extend([item.to_dataset() for item in value]) + + def add_EchoPulse(self, item: EchoPulseSequenceItem): + if not isinstance(item, EchoPulseSequenceItem): + raise ValueError("Item must be an instance of EchoPulseSequenceItem") + self._EchoPulseSequence.append(item) + if "EchoPulseSequence" not in self._dataset: + self._dataset.EchoPulseSequence = pydicom.Sequence() + self._dataset.EchoPulseSequence.append(item.to_dataset()) + + @property + def MultipleSpinEcho(self) -> Optional[str]: + if "MultipleSpinEcho" in self._dataset: + return self._dataset.MultipleSpinEcho + return None + + @MultipleSpinEcho.setter + def MultipleSpinEcho(self, value: Optional[str]): + if value is None: + if "MultipleSpinEcho" in self._dataset: + del self._dataset.MultipleSpinEcho + else: + self._dataset.MultipleSpinEcho = value + + @property + def MultiPlanarExcitation(self) -> Optional[str]: + if "MultiPlanarExcitation" in self._dataset: + return self._dataset.MultiPlanarExcitation + return None + + @MultiPlanarExcitation.setter + def MultiPlanarExcitation(self, value: Optional[str]): + if value is None: + if "MultiPlanarExcitation" in self._dataset: + del self._dataset.MultiPlanarExcitation + else: + self._dataset.MultiPlanarExcitation = value + + @property + def SteadyStatePulseSequence(self) -> Optional[List[SteadyStatePulseSequenceItem]]: + if "SteadyStatePulseSequence" in self._dataset: + if len(self._SteadyStatePulseSequence) == len(self._dataset.SteadyStatePulseSequence): + return self._SteadyStatePulseSequence + else: + return [SteadyStatePulseSequenceItem(x) for x in self._dataset.SteadyStatePulseSequence] + return None + + @SteadyStatePulseSequence.setter + def SteadyStatePulseSequence(self, value: Optional[List[SteadyStatePulseSequenceItem]]): + if value is None: + self._SteadyStatePulseSequence = [] + if "SteadyStatePulseSequence" in self._dataset: + del self._dataset.SteadyStatePulseSequence + elif not isinstance(value, list) or not all(isinstance(item, SteadyStatePulseSequenceItem) for item in value): + raise ValueError("SteadyStatePulseSequence must be a list of SteadyStatePulseSequenceItem objects") + else: + self._SteadyStatePulseSequence = value + if "SteadyStatePulseSequence" not in self._dataset: + self._dataset.SteadyStatePulseSequence = pydicom.Sequence() + self._dataset.SteadyStatePulseSequence.clear() + self._dataset.SteadyStatePulseSequence.extend([item.to_dataset() for item in value]) + + def add_SteadyStatePulse(self, item: SteadyStatePulseSequenceItem): + if not isinstance(item, SteadyStatePulseSequenceItem): + raise ValueError("Item must be an instance of SteadyStatePulseSequenceItem") + self._SteadyStatePulseSequence.append(item) + if "SteadyStatePulseSequence" not in self._dataset: + self._dataset.SteadyStatePulseSequence = pydicom.Sequence() + self._dataset.SteadyStatePulseSequence.append(item.to_dataset()) + + @property + def EchoPlanarPulseSequence(self) -> Optional[List[EchoPlanarPulseSequenceItem]]: + if "EchoPlanarPulseSequence" in self._dataset: + if len(self._EchoPlanarPulseSequence) == len(self._dataset.EchoPlanarPulseSequence): + return self._EchoPlanarPulseSequence + else: + return [EchoPlanarPulseSequenceItem(x) for x in self._dataset.EchoPlanarPulseSequence] + return None + + @EchoPlanarPulseSequence.setter + def EchoPlanarPulseSequence(self, value: Optional[List[EchoPlanarPulseSequenceItem]]): + if value is None: + self._EchoPlanarPulseSequence = [] + if "EchoPlanarPulseSequence" in self._dataset: + del self._dataset.EchoPlanarPulseSequence + elif not isinstance(value, list) or not all(isinstance(item, EchoPlanarPulseSequenceItem) for item in value): + raise ValueError("EchoPlanarPulseSequence must be a list of EchoPlanarPulseSequenceItem objects") + else: + self._EchoPlanarPulseSequence = value + if "EchoPlanarPulseSequence" not in self._dataset: + self._dataset.EchoPlanarPulseSequence = pydicom.Sequence() + self._dataset.EchoPlanarPulseSequence.clear() + self._dataset.EchoPlanarPulseSequence.extend([item.to_dataset() for item in value]) + + def add_EchoPlanarPulse(self, item: EchoPlanarPulseSequenceItem): + if not isinstance(item, EchoPlanarPulseSequenceItem): + raise ValueError("Item must be an instance of EchoPlanarPulseSequenceItem") + self._EchoPlanarPulseSequence.append(item) + if "EchoPlanarPulseSequence" not in self._dataset: + self._dataset.EchoPlanarPulseSequence = pydicom.Sequence() + self._dataset.EchoPlanarPulseSequence.append(item.to_dataset()) + + @property + def SpectrallySelectedSuppression(self) -> Optional[str]: + if "SpectrallySelectedSuppression" in self._dataset: + return self._dataset.SpectrallySelectedSuppression + return None + + @SpectrallySelectedSuppression.setter + def SpectrallySelectedSuppression(self, value: Optional[str]): + if value is None: + if "SpectrallySelectedSuppression" in self._dataset: + del self._dataset.SpectrallySelectedSuppression + else: + self._dataset.SpectrallySelectedSuppression = value + + @property + def GeometryOfKSpaceTraversal(self) -> Optional[str]: + if "GeometryOfKSpaceTraversal" in self._dataset: + return self._dataset.GeometryOfKSpaceTraversal + return None + + @GeometryOfKSpaceTraversal.setter + def GeometryOfKSpaceTraversal(self, value: Optional[str]): + if value is None: + if "GeometryOfKSpaceTraversal" in self._dataset: + del self._dataset.GeometryOfKSpaceTraversal + else: + self._dataset.GeometryOfKSpaceTraversal = value + + @property + def SegmentedKSpaceTraversal(self) -> Optional[str]: + if "SegmentedKSpaceTraversal" in self._dataset: + return self._dataset.SegmentedKSpaceTraversal + return None + + @SegmentedKSpaceTraversal.setter + def SegmentedKSpaceTraversal(self, value: Optional[str]): + if value is None: + if "SegmentedKSpaceTraversal" in self._dataset: + del self._dataset.SegmentedKSpaceTraversal + else: + self._dataset.SegmentedKSpaceTraversal = value + + @property + def RectilinearPhaseEncodeReordering(self) -> Optional[str]: + if "RectilinearPhaseEncodeReordering" in self._dataset: + return self._dataset.RectilinearPhaseEncodeReordering + return None + + @RectilinearPhaseEncodeReordering.setter + def RectilinearPhaseEncodeReordering(self, value: Optional[str]): + if value is None: + if "RectilinearPhaseEncodeReordering" in self._dataset: + del self._dataset.RectilinearPhaseEncodeReordering + else: + self._dataset.RectilinearPhaseEncodeReordering = value + + @property + def NumberOfKSpaceTrajectories(self) -> Optional[int]: + if "NumberOfKSpaceTrajectories" in self._dataset: + return self._dataset.NumberOfKSpaceTrajectories + return None + + @NumberOfKSpaceTrajectories.setter + def NumberOfKSpaceTrajectories(self, value: Optional[int]): + if value is None: + if "NumberOfKSpaceTrajectories" in self._dataset: + del self._dataset.NumberOfKSpaceTrajectories + else: + self._dataset.NumberOfKSpaceTrajectories = value + + @property + def CoverageOfKSpace(self) -> Optional[str]: + if "CoverageOfKSpace" in self._dataset: + return self._dataset.CoverageOfKSpace + return None + + @CoverageOfKSpace.setter + def CoverageOfKSpace(self, value: Optional[str]): + if value is None: + if "CoverageOfKSpace" in self._dataset: + del self._dataset.CoverageOfKSpace + else: + self._dataset.CoverageOfKSpace = value + + @property + def MRSpectroscopyAcquisitionType(self) -> Optional[str]: + if "MRSpectroscopyAcquisitionType" in self._dataset: + return self._dataset.MRSpectroscopyAcquisitionType + return None + + @MRSpectroscopyAcquisitionType.setter + def MRSpectroscopyAcquisitionType(self, value: Optional[str]): + if value is None: + if "MRSpectroscopyAcquisitionType" in self._dataset: + del self._dataset.MRSpectroscopyAcquisitionType + else: + self._dataset.MRSpectroscopyAcquisitionType = value + + @property + def EchoPeakPosition(self) -> Optional[int]: + if "EchoPeakPosition" in self._dataset: + return self._dataset.EchoPeakPosition + return None + + @EchoPeakPosition.setter + def EchoPeakPosition(self, value: Optional[int]): + if value is None: + if "EchoPeakPosition" in self._dataset: + del self._dataset.EchoPeakPosition + else: + self._dataset.EchoPeakPosition = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ReferencedWaveformSequence(self) -> Optional[List[ReferencedWaveformSequenceItem]]: + if "ReferencedWaveformSequence" in self._dataset: + if len(self._ReferencedWaveformSequence) == len(self._dataset.ReferencedWaveformSequence): + return self._ReferencedWaveformSequence + else: + return [ReferencedWaveformSequenceItem(x) for x in self._dataset.ReferencedWaveformSequence] + return None + + @ReferencedWaveformSequence.setter + def ReferencedWaveformSequence(self, value: Optional[List[ReferencedWaveformSequenceItem]]): + if value is None: + self._ReferencedWaveformSequence = [] + if "ReferencedWaveformSequence" in self._dataset: + del self._dataset.ReferencedWaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedWaveformSequenceItem) for item in value): + raise ValueError("ReferencedWaveformSequence must be a list of ReferencedWaveformSequenceItem objects") + else: + self._ReferencedWaveformSequence = value + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.clear() + self._dataset.ReferencedWaveformSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedWaveform(self, item: ReferencedWaveformSequenceItem): + if not isinstance(item, ReferencedWaveformSequenceItem): + raise ValueError("Item must be an instance of ReferencedWaveformSequenceItem") + self._ReferencedWaveformSequence.append(item) + if "ReferencedWaveformSequence" not in self._dataset: + self._dataset.ReferencedWaveformSequence = pydicom.Sequence() + self._dataset.ReferencedWaveformSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def ReferencedRawDataSequence(self) -> Optional[List[ReferencedRawDataSequenceItem]]: + if "ReferencedRawDataSequence" in self._dataset: + if len(self._ReferencedRawDataSequence) == len(self._dataset.ReferencedRawDataSequence): + return self._ReferencedRawDataSequence + else: + return [ReferencedRawDataSequenceItem(x) for x in self._dataset.ReferencedRawDataSequence] + return None + + @ReferencedRawDataSequence.setter + def ReferencedRawDataSequence(self, value: Optional[List[ReferencedRawDataSequenceItem]]): + if value is None: + self._ReferencedRawDataSequence = [] + if "ReferencedRawDataSequence" in self._dataset: + del self._dataset.ReferencedRawDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRawDataSequenceItem) for item in value): + raise ValueError("ReferencedRawDataSequence must be a list of ReferencedRawDataSequenceItem objects") + else: + self._ReferencedRawDataSequence = value + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.clear() + self._dataset.ReferencedRawDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRawData(self, item: ReferencedRawDataSequenceItem): + if not isinstance(item, ReferencedRawDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedRawDataSequenceItem") + self._ReferencedRawDataSequence.append(item) + if "ReferencedRawDataSequence" not in self._dataset: + self._dataset.ReferencedRawDataSequence = pydicom.Sequence() + self._dataset.ReferencedRawDataSequence.append(item.to_dataset()) + + @property + def SourceImageEvidenceSequence(self) -> Optional[List[SourceImageEvidenceSequenceItem]]: + if "SourceImageEvidenceSequence" in self._dataset: + if len(self._SourceImageEvidenceSequence) == len(self._dataset.SourceImageEvidenceSequence): + return self._SourceImageEvidenceSequence + else: + return [SourceImageEvidenceSequenceItem(x) for x in self._dataset.SourceImageEvidenceSequence] + return None + + @SourceImageEvidenceSequence.setter + def SourceImageEvidenceSequence(self, value: Optional[List[SourceImageEvidenceSequenceItem]]): + if value is None: + self._SourceImageEvidenceSequence = [] + if "SourceImageEvidenceSequence" in self._dataset: + del self._dataset.SourceImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageEvidenceSequenceItem) for item in value): + raise ValueError("SourceImageEvidenceSequence must be a list of SourceImageEvidenceSequenceItem objects") + else: + self._SourceImageEvidenceSequence = value + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.clear() + self._dataset.SourceImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImageEvidence(self, item: SourceImageEvidenceSequenceItem): + if not isinstance(item, SourceImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of SourceImageEvidenceSequenceItem") + self._SourceImageEvidenceSequence.append(item) + if "SourceImageEvidenceSequence" not in self._dataset: + self._dataset.SourceImageEvidenceSequence = pydicom.Sequence() + self._dataset.SourceImageEvidenceSequence.append(item.to_dataset()) + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ComplexImageComponent(self) -> Optional[str]: + if "ComplexImageComponent" in self._dataset: + return self._dataset.ComplexImageComponent + return None + + @ComplexImageComponent.setter + def ComplexImageComponent(self, value: Optional[str]): + if value is None: + if "ComplexImageComponent" in self._dataset: + del self._dataset.ComplexImageComponent + else: + self._dataset.ComplexImageComponent = value + + @property + def AcquisitionContrast(self) -> Optional[str]: + if "AcquisitionContrast" in self._dataset: + return self._dataset.AcquisitionContrast + return None + + @AcquisitionContrast.setter + def AcquisitionContrast(self, value: Optional[str]): + if value is None: + if "AcquisitionContrast" in self._dataset: + del self._dataset.AcquisitionContrast + else: + self._dataset.AcquisitionContrast = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def MagneticFieldStrength(self) -> Optional[Decimal]: + if "MagneticFieldStrength" in self._dataset: + return self._dataset.MagneticFieldStrength + return None + + @MagneticFieldStrength.setter + def MagneticFieldStrength(self, value: Optional[Decimal]): + if value is None: + if "MagneticFieldStrength" in self._dataset: + del self._dataset.MagneticFieldStrength + else: + self._dataset.MagneticFieldStrength = value + + @property + def B1rms(self) -> Optional[float]: + if "B1rms" in self._dataset: + return self._dataset.B1rms + return None + + @B1rms.setter + def B1rms(self, value: Optional[float]): + if value is None: + if "B1rms" in self._dataset: + del self._dataset.B1rms + else: + self._dataset.B1rms = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def SpectralWidth(self) -> Optional[List[float]]: + if "SpectralWidth" in self._dataset: + return self._dataset.SpectralWidth + return None + + @SpectralWidth.setter + def SpectralWidth(self, value: Optional[List[float]]): + if value is None: + if "SpectralWidth" in self._dataset: + del self._dataset.SpectralWidth + else: + self._dataset.SpectralWidth = value + + @property + def ChemicalShiftReference(self) -> Optional[List[float]]: + if "ChemicalShiftReference" in self._dataset: + return self._dataset.ChemicalShiftReference + return None + + @ChemicalShiftReference.setter + def ChemicalShiftReference(self, value: Optional[List[float]]): + if value is None: + if "ChemicalShiftReference" in self._dataset: + del self._dataset.ChemicalShiftReference + else: + self._dataset.ChemicalShiftReference = value + + @property + def VolumeLocalizationTechnique(self) -> Optional[str]: + if "VolumeLocalizationTechnique" in self._dataset: + return self._dataset.VolumeLocalizationTechnique + return None + + @VolumeLocalizationTechnique.setter + def VolumeLocalizationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeLocalizationTechnique" in self._dataset: + del self._dataset.VolumeLocalizationTechnique + else: + self._dataset.VolumeLocalizationTechnique = value + + @property + def Decoupling(self) -> Optional[str]: + if "Decoupling" in self._dataset: + return self._dataset.Decoupling + return None + + @Decoupling.setter + def Decoupling(self, value: Optional[str]): + if value is None: + if "Decoupling" in self._dataset: + del self._dataset.Decoupling + else: + self._dataset.Decoupling = value + + @property + def DecoupledNucleus(self) -> Optional[List[str]]: + if "DecoupledNucleus" in self._dataset: + return self._dataset.DecoupledNucleus + return None + + @DecoupledNucleus.setter + def DecoupledNucleus(self, value: Optional[List[str]]): + if value is None: + if "DecoupledNucleus" in self._dataset: + del self._dataset.DecoupledNucleus + else: + self._dataset.DecoupledNucleus = value + + @property + def DecouplingFrequency(self) -> Optional[List[float]]: + if "DecouplingFrequency" in self._dataset: + return self._dataset.DecouplingFrequency + return None + + @DecouplingFrequency.setter + def DecouplingFrequency(self, value: Optional[List[float]]): + if value is None: + if "DecouplingFrequency" in self._dataset: + del self._dataset.DecouplingFrequency + else: + self._dataset.DecouplingFrequency = value + + @property + def DecouplingMethod(self) -> Optional[str]: + if "DecouplingMethod" in self._dataset: + return self._dataset.DecouplingMethod + return None + + @DecouplingMethod.setter + def DecouplingMethod(self, value: Optional[str]): + if value is None: + if "DecouplingMethod" in self._dataset: + del self._dataset.DecouplingMethod + else: + self._dataset.DecouplingMethod = value + + @property + def DecouplingChemicalShiftReference(self) -> Optional[List[float]]: + if "DecouplingChemicalShiftReference" in self._dataset: + return self._dataset.DecouplingChemicalShiftReference + return None + + @DecouplingChemicalShiftReference.setter + def DecouplingChemicalShiftReference(self, value: Optional[List[float]]): + if value is None: + if "DecouplingChemicalShiftReference" in self._dataset: + del self._dataset.DecouplingChemicalShiftReference + else: + self._dataset.DecouplingChemicalShiftReference = value + + @property + def KSpaceFiltering(self) -> Optional[str]: + if "KSpaceFiltering" in self._dataset: + return self._dataset.KSpaceFiltering + return None + + @KSpaceFiltering.setter + def KSpaceFiltering(self, value: Optional[str]): + if value is None: + if "KSpaceFiltering" in self._dataset: + del self._dataset.KSpaceFiltering + else: + self._dataset.KSpaceFiltering = value + + @property + def TimeDomainFiltering(self) -> Optional[List[str]]: + if "TimeDomainFiltering" in self._dataset: + return self._dataset.TimeDomainFiltering + return None + + @TimeDomainFiltering.setter + def TimeDomainFiltering(self, value: Optional[List[str]]): + if value is None: + if "TimeDomainFiltering" in self._dataset: + del self._dataset.TimeDomainFiltering + else: + self._dataset.TimeDomainFiltering = value + + @property + def NumberOfZeroFills(self) -> Optional[List[int]]: + if "NumberOfZeroFills" in self._dataset: + return self._dataset.NumberOfZeroFills + return None + + @NumberOfZeroFills.setter + def NumberOfZeroFills(self, value: Optional[List[int]]): + if value is None: + if "NumberOfZeroFills" in self._dataset: + del self._dataset.NumberOfZeroFills + else: + self._dataset.NumberOfZeroFills = value + + @property + def BaselineCorrection(self) -> Optional[str]: + if "BaselineCorrection" in self._dataset: + return self._dataset.BaselineCorrection + return None + + @BaselineCorrection.setter + def BaselineCorrection(self, value: Optional[str]): + if value is None: + if "BaselineCorrection" in self._dataset: + del self._dataset.BaselineCorrection + else: + self._dataset.BaselineCorrection = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def TransmitterFrequency(self) -> Optional[List[float]]: + if "TransmitterFrequency" in self._dataset: + return self._dataset.TransmitterFrequency + return None + + @TransmitterFrequency.setter + def TransmitterFrequency(self, value: Optional[List[float]]): + if value is None: + if "TransmitterFrequency" in self._dataset: + del self._dataset.TransmitterFrequency + else: + self._dataset.TransmitterFrequency = value + + @property + def ResonantNucleus(self) -> Optional[List[str]]: + if "ResonantNucleus" in self._dataset: + return self._dataset.ResonantNucleus + return None + + @ResonantNucleus.setter + def ResonantNucleus(self, value: Optional[List[str]]): + if value is None: + if "ResonantNucleus" in self._dataset: + del self._dataset.ResonantNucleus + else: + self._dataset.ResonantNucleus = value + + @property + def FrequencyCorrection(self) -> Optional[str]: + if "FrequencyCorrection" in self._dataset: + return self._dataset.FrequencyCorrection + return None + + @FrequencyCorrection.setter + def FrequencyCorrection(self, value: Optional[str]): + if value is None: + if "FrequencyCorrection" in self._dataset: + del self._dataset.FrequencyCorrection + else: + self._dataset.FrequencyCorrection = value + + @property + def VolumeLocalizationSequence(self) -> Optional[List[VolumeLocalizationSequenceItem]]: + if "VolumeLocalizationSequence" in self._dataset: + if len(self._VolumeLocalizationSequence) == len(self._dataset.VolumeLocalizationSequence): + return self._VolumeLocalizationSequence + else: + return [VolumeLocalizationSequenceItem(x) for x in self._dataset.VolumeLocalizationSequence] + return None + + @VolumeLocalizationSequence.setter + def VolumeLocalizationSequence(self, value: Optional[List[VolumeLocalizationSequenceItem]]): + if value is None: + self._VolumeLocalizationSequence = [] + if "VolumeLocalizationSequence" in self._dataset: + del self._dataset.VolumeLocalizationSequence + elif not isinstance(value, list) or not all(isinstance(item, VolumeLocalizationSequenceItem) for item in value): + raise ValueError("VolumeLocalizationSequence must be a list of VolumeLocalizationSequenceItem objects") + else: + self._VolumeLocalizationSequence = value + if "VolumeLocalizationSequence" not in self._dataset: + self._dataset.VolumeLocalizationSequence = pydicom.Sequence() + self._dataset.VolumeLocalizationSequence.clear() + self._dataset.VolumeLocalizationSequence.extend([item.to_dataset() for item in value]) + + def add_VolumeLocalization(self, item: VolumeLocalizationSequenceItem): + if not isinstance(item, VolumeLocalizationSequenceItem): + raise ValueError("Item must be an instance of VolumeLocalizationSequenceItem") + self._VolumeLocalizationSequence.append(item) + if "VolumeLocalizationSequence" not in self._dataset: + self._dataset.VolumeLocalizationSequence = pydicom.Sequence() + self._dataset.VolumeLocalizationSequence.append(item.to_dataset()) + + @property + def ApplicableSafetyStandardAgency(self) -> Optional[str]: + if "ApplicableSafetyStandardAgency" in self._dataset: + return self._dataset.ApplicableSafetyStandardAgency + return None + + @ApplicableSafetyStandardAgency.setter + def ApplicableSafetyStandardAgency(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardAgency" in self._dataset: + del self._dataset.ApplicableSafetyStandardAgency + else: + self._dataset.ApplicableSafetyStandardAgency = value + + @property + def ApplicableSafetyStandardDescription(self) -> Optional[str]: + if "ApplicableSafetyStandardDescription" in self._dataset: + return self._dataset.ApplicableSafetyStandardDescription + return None + + @ApplicableSafetyStandardDescription.setter + def ApplicableSafetyStandardDescription(self, value: Optional[str]): + if value is None: + if "ApplicableSafetyStandardDescription" in self._dataset: + del self._dataset.ApplicableSafetyStandardDescription + else: + self._dataset.ApplicableSafetyStandardDescription = value + + @property + def FirstOrderPhaseCorrection(self) -> Optional[str]: + if "FirstOrderPhaseCorrection" in self._dataset: + return self._dataset.FirstOrderPhaseCorrection + return None + + @FirstOrderPhaseCorrection.setter + def FirstOrderPhaseCorrection(self, value: Optional[str]): + if value is None: + if "FirstOrderPhaseCorrection" in self._dataset: + del self._dataset.FirstOrderPhaseCorrection + else: + self._dataset.FirstOrderPhaseCorrection = value + + @property + def WaterReferencedPhaseCorrection(self) -> Optional[str]: + if "WaterReferencedPhaseCorrection" in self._dataset: + return self._dataset.WaterReferencedPhaseCorrection + return None + + @WaterReferencedPhaseCorrection.setter + def WaterReferencedPhaseCorrection(self, value: Optional[str]): + if value is None: + if "WaterReferencedPhaseCorrection" in self._dataset: + del self._dataset.WaterReferencedPhaseCorrection + else: + self._dataset.WaterReferencedPhaseCorrection = value + + @property + def WaterReferenceAcquisition(self) -> Optional[str]: + if "WaterReferenceAcquisition" in self._dataset: + return self._dataset.WaterReferenceAcquisition + return None + + @WaterReferenceAcquisition.setter + def WaterReferenceAcquisition(self, value: Optional[str]): + if value is None: + if "WaterReferenceAcquisition" in self._dataset: + del self._dataset.WaterReferenceAcquisition + else: + self._dataset.WaterReferenceAcquisition = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/mr_spectroscopy_fov_geometry_sequence_item.py b/tdwii_plus_examples/domain_model/mr_spectroscopy_fov_geometry_sequence_item.py new file mode 100644 index 0000000..3f39a24 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_spectroscopy_fov_geometry_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRSpectroscopyFOVGeometrySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PercentSampling(self) -> Optional[Decimal]: + if "PercentSampling" in self._dataset: + return self._dataset.PercentSampling + return None + + @PercentSampling.setter + def PercentSampling(self, value: Optional[Decimal]): + if value is None: + if "PercentSampling" in self._dataset: + del self._dataset.PercentSampling + else: + self._dataset.PercentSampling = value + + @property + def PercentPhaseFieldOfView(self) -> Optional[Decimal]: + if "PercentPhaseFieldOfView" in self._dataset: + return self._dataset.PercentPhaseFieldOfView + return None + + @PercentPhaseFieldOfView.setter + def PercentPhaseFieldOfView(self, value: Optional[Decimal]): + if value is None: + if "PercentPhaseFieldOfView" in self._dataset: + del self._dataset.PercentPhaseFieldOfView + else: + self._dataset.PercentPhaseFieldOfView = value + + @property + def SpectroscopyAcquisitionPhaseRows(self) -> Optional[int]: + if "SpectroscopyAcquisitionPhaseRows" in self._dataset: + return self._dataset.SpectroscopyAcquisitionPhaseRows + return None + + @SpectroscopyAcquisitionPhaseRows.setter + def SpectroscopyAcquisitionPhaseRows(self, value: Optional[int]): + if value is None: + if "SpectroscopyAcquisitionPhaseRows" in self._dataset: + del self._dataset.SpectroscopyAcquisitionPhaseRows + else: + self._dataset.SpectroscopyAcquisitionPhaseRows = value + + @property + def SpectroscopyAcquisitionDataColumns(self) -> Optional[int]: + if "SpectroscopyAcquisitionDataColumns" in self._dataset: + return self._dataset.SpectroscopyAcquisitionDataColumns + return None + + @SpectroscopyAcquisitionDataColumns.setter + def SpectroscopyAcquisitionDataColumns(self, value: Optional[int]): + if value is None: + if "SpectroscopyAcquisitionDataColumns" in self._dataset: + del self._dataset.SpectroscopyAcquisitionDataColumns + else: + self._dataset.SpectroscopyAcquisitionDataColumns = value + + @property + def SpectroscopyAcquisitionOutOfPlanePhaseSteps(self) -> Optional[int]: + if "SpectroscopyAcquisitionOutOfPlanePhaseSteps" in self._dataset: + return self._dataset.SpectroscopyAcquisitionOutOfPlanePhaseSteps + return None + + @SpectroscopyAcquisitionOutOfPlanePhaseSteps.setter + def SpectroscopyAcquisitionOutOfPlanePhaseSteps(self, value: Optional[int]): + if value is None: + if "SpectroscopyAcquisitionOutOfPlanePhaseSteps" in self._dataset: + del self._dataset.SpectroscopyAcquisitionOutOfPlanePhaseSteps + else: + self._dataset.SpectroscopyAcquisitionOutOfPlanePhaseSteps = value + + @property + def SpectroscopyAcquisitionPhaseColumns(self) -> Optional[int]: + if "SpectroscopyAcquisitionPhaseColumns" in self._dataset: + return self._dataset.SpectroscopyAcquisitionPhaseColumns + return None + + @SpectroscopyAcquisitionPhaseColumns.setter + def SpectroscopyAcquisitionPhaseColumns(self, value: Optional[int]): + if value is None: + if "SpectroscopyAcquisitionPhaseColumns" in self._dataset: + del self._dataset.SpectroscopyAcquisitionPhaseColumns + else: + self._dataset.SpectroscopyAcquisitionPhaseColumns = value diff --git a/tdwii_plus_examples/domain_model/mr_spectroscopy_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/mr_spectroscopy_frame_type_sequence_item.py new file mode 100644 index 0000000..77a49ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_spectroscopy_frame_type_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRSpectroscopyFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ComplexImageComponent(self) -> Optional[str]: + if "ComplexImageComponent" in self._dataset: + return self._dataset.ComplexImageComponent + return None + + @ComplexImageComponent.setter + def ComplexImageComponent(self, value: Optional[str]): + if value is None: + if "ComplexImageComponent" in self._dataset: + del self._dataset.ComplexImageComponent + else: + self._dataset.ComplexImageComponent = value + + @property + def AcquisitionContrast(self) -> Optional[str]: + if "AcquisitionContrast" in self._dataset: + return self._dataset.AcquisitionContrast + return None + + @AcquisitionContrast.setter + def AcquisitionContrast(self, value: Optional[str]): + if value is None: + if "AcquisitionContrast" in self._dataset: + del self._dataset.AcquisitionContrast + else: + self._dataset.AcquisitionContrast = value diff --git a/tdwii_plus_examples/domain_model/mr_timing_and_related_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/mr_timing_and_related_parameters_sequence_item.py new file mode 100644 index 0000000..d9e4f81 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_timing_and_related_parameters_sequence_item.py @@ -0,0 +1,179 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .operating_mode_sequence_item import OperatingModeSequenceItem +from .specific_absorption_rate_sequence_item import SpecificAbsorptionRateSequenceItem + + +class MRTimingAndRelatedParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OperatingModeSequence: List[OperatingModeSequenceItem] = [] + self._SpecificAbsorptionRateSequence: List[SpecificAbsorptionRateSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RepetitionTime(self) -> Optional[Decimal]: + if "RepetitionTime" in self._dataset: + return self._dataset.RepetitionTime + return None + + @RepetitionTime.setter + def RepetitionTime(self, value: Optional[Decimal]): + if value is None: + if "RepetitionTime" in self._dataset: + del self._dataset.RepetitionTime + else: + self._dataset.RepetitionTime = value + + @property + def EchoTrainLength(self) -> Optional[int]: + if "EchoTrainLength" in self._dataset: + return self._dataset.EchoTrainLength + return None + + @EchoTrainLength.setter + def EchoTrainLength(self, value: Optional[int]): + if value is None: + if "EchoTrainLength" in self._dataset: + del self._dataset.EchoTrainLength + else: + self._dataset.EchoTrainLength = value + + @property + def FlipAngle(self) -> Optional[Decimal]: + if "FlipAngle" in self._dataset: + return self._dataset.FlipAngle + return None + + @FlipAngle.setter + def FlipAngle(self, value: Optional[Decimal]): + if value is None: + if "FlipAngle" in self._dataset: + del self._dataset.FlipAngle + else: + self._dataset.FlipAngle = value + + @property + def OperatingModeSequence(self) -> Optional[List[OperatingModeSequenceItem]]: + if "OperatingModeSequence" in self._dataset: + if len(self._OperatingModeSequence) == len(self._dataset.OperatingModeSequence): + return self._OperatingModeSequence + else: + return [OperatingModeSequenceItem(x) for x in self._dataset.OperatingModeSequence] + return None + + @OperatingModeSequence.setter + def OperatingModeSequence(self, value: Optional[List[OperatingModeSequenceItem]]): + if value is None: + self._OperatingModeSequence = [] + if "OperatingModeSequence" in self._dataset: + del self._dataset.OperatingModeSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatingModeSequenceItem) for item in value): + raise ValueError("OperatingModeSequence must be a list of OperatingModeSequenceItem objects") + else: + self._OperatingModeSequence = value + if "OperatingModeSequence" not in self._dataset: + self._dataset.OperatingModeSequence = pydicom.Sequence() + self._dataset.OperatingModeSequence.clear() + self._dataset.OperatingModeSequence.extend([item.to_dataset() for item in value]) + + def add_OperatingMode(self, item: OperatingModeSequenceItem): + if not isinstance(item, OperatingModeSequenceItem): + raise ValueError("Item must be an instance of OperatingModeSequenceItem") + self._OperatingModeSequence.append(item) + if "OperatingModeSequence" not in self._dataset: + self._dataset.OperatingModeSequence = pydicom.Sequence() + self._dataset.OperatingModeSequence.append(item.to_dataset()) + + @property + def GradientOutputType(self) -> Optional[str]: + if "GradientOutputType" in self._dataset: + return self._dataset.GradientOutputType + return None + + @GradientOutputType.setter + def GradientOutputType(self, value: Optional[str]): + if value is None: + if "GradientOutputType" in self._dataset: + del self._dataset.GradientOutputType + else: + self._dataset.GradientOutputType = value + + @property + def GradientOutput(self) -> Optional[float]: + if "GradientOutput" in self._dataset: + return self._dataset.GradientOutput + return None + + @GradientOutput.setter + def GradientOutput(self, value: Optional[float]): + if value is None: + if "GradientOutput" in self._dataset: + del self._dataset.GradientOutput + else: + self._dataset.GradientOutput = value + + @property + def SpecificAbsorptionRateSequence(self) -> Optional[List[SpecificAbsorptionRateSequenceItem]]: + if "SpecificAbsorptionRateSequence" in self._dataset: + if len(self._SpecificAbsorptionRateSequence) == len(self._dataset.SpecificAbsorptionRateSequence): + return self._SpecificAbsorptionRateSequence + else: + return [SpecificAbsorptionRateSequenceItem(x) for x in self._dataset.SpecificAbsorptionRateSequence] + return None + + @SpecificAbsorptionRateSequence.setter + def SpecificAbsorptionRateSequence(self, value: Optional[List[SpecificAbsorptionRateSequenceItem]]): + if value is None: + self._SpecificAbsorptionRateSequence = [] + if "SpecificAbsorptionRateSequence" in self._dataset: + del self._dataset.SpecificAbsorptionRateSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecificAbsorptionRateSequenceItem) for item in value): + raise ValueError("SpecificAbsorptionRateSequence must be a list of SpecificAbsorptionRateSequenceItem objects") + else: + self._SpecificAbsorptionRateSequence = value + if "SpecificAbsorptionRateSequence" not in self._dataset: + self._dataset.SpecificAbsorptionRateSequence = pydicom.Sequence() + self._dataset.SpecificAbsorptionRateSequence.clear() + self._dataset.SpecificAbsorptionRateSequence.extend([item.to_dataset() for item in value]) + + def add_SpecificAbsorptionRate(self, item: SpecificAbsorptionRateSequenceItem): + if not isinstance(item, SpecificAbsorptionRateSequenceItem): + raise ValueError("Item must be an instance of SpecificAbsorptionRateSequenceItem") + self._SpecificAbsorptionRateSequence.append(item) + if "SpecificAbsorptionRateSequence" not in self._dataset: + self._dataset.SpecificAbsorptionRateSequence = pydicom.Sequence() + self._dataset.SpecificAbsorptionRateSequence.append(item.to_dataset()) + + @property + def RFEchoTrainLength(self) -> Optional[int]: + if "RFEchoTrainLength" in self._dataset: + return self._dataset.RFEchoTrainLength + return None + + @RFEchoTrainLength.setter + def RFEchoTrainLength(self, value: Optional[int]): + if value is None: + if "RFEchoTrainLength" in self._dataset: + del self._dataset.RFEchoTrainLength + else: + self._dataset.RFEchoTrainLength = value + + @property + def GradientEchoTrainLength(self) -> Optional[int]: + if "GradientEchoTrainLength" in self._dataset: + return self._dataset.GradientEchoTrainLength + return None + + @GradientEchoTrainLength.setter + def GradientEchoTrainLength(self, value: Optional[int]): + if value is None: + if "GradientEchoTrainLength" in self._dataset: + del self._dataset.GradientEchoTrainLength + else: + self._dataset.GradientEchoTrainLength = value diff --git a/tdwii_plus_examples/domain_model/mr_transmit_coil_sequence_item.py b/tdwii_plus_examples/domain_model/mr_transmit_coil_sequence_item.py new file mode 100644 index 0000000..77620b9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_transmit_coil_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRTransmitCoilSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TransmitCoilName(self) -> Optional[str]: + if "TransmitCoilName" in self._dataset: + return self._dataset.TransmitCoilName + return None + + @TransmitCoilName.setter + def TransmitCoilName(self, value: Optional[str]): + if value is None: + if "TransmitCoilName" in self._dataset: + del self._dataset.TransmitCoilName + else: + self._dataset.TransmitCoilName = value + + @property + def TransmitCoilManufacturerName(self) -> Optional[str]: + if "TransmitCoilManufacturerName" in self._dataset: + return self._dataset.TransmitCoilManufacturerName + return None + + @TransmitCoilManufacturerName.setter + def TransmitCoilManufacturerName(self, value: Optional[str]): + if value is None: + if "TransmitCoilManufacturerName" in self._dataset: + del self._dataset.TransmitCoilManufacturerName + else: + self._dataset.TransmitCoilManufacturerName = value + + @property + def TransmitCoilType(self) -> Optional[str]: + if "TransmitCoilType" in self._dataset: + return self._dataset.TransmitCoilType + return None + + @TransmitCoilType.setter + def TransmitCoilType(self, value: Optional[str]): + if value is None: + if "TransmitCoilType" in self._dataset: + del self._dataset.TransmitCoilType + else: + self._dataset.TransmitCoilType = value diff --git a/tdwii_plus_examples/domain_model/mr_velocity_encoding_sequence_item.py b/tdwii_plus_examples/domain_model/mr_velocity_encoding_sequence_item.py new file mode 100644 index 0000000..5411e03 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mr_velocity_encoding_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRVelocityEncodingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VelocityEncodingDirection(self) -> Optional[List[float]]: + if "VelocityEncodingDirection" in self._dataset: + return self._dataset.VelocityEncodingDirection + return None + + @VelocityEncodingDirection.setter + def VelocityEncodingDirection(self, value: Optional[List[float]]): + if value is None: + if "VelocityEncodingDirection" in self._dataset: + del self._dataset.VelocityEncodingDirection + else: + self._dataset.VelocityEncodingDirection = value + + @property + def VelocityEncodingMinimumValue(self) -> Optional[float]: + if "VelocityEncodingMinimumValue" in self._dataset: + return self._dataset.VelocityEncodingMinimumValue + return None + + @VelocityEncodingMinimumValue.setter + def VelocityEncodingMinimumValue(self, value: Optional[float]): + if value is None: + if "VelocityEncodingMinimumValue" in self._dataset: + del self._dataset.VelocityEncodingMinimumValue + else: + self._dataset.VelocityEncodingMinimumValue = value + + @property + def VelocityEncodingMaximumValue(self) -> Optional[float]: + if "VelocityEncodingMaximumValue" in self._dataset: + return self._dataset.VelocityEncodingMaximumValue + return None + + @VelocityEncodingMaximumValue.setter + def VelocityEncodingMaximumValue(self, value: Optional[float]): + if value is None: + if "VelocityEncodingMaximumValue" in self._dataset: + del self._dataset.VelocityEncodingMaximumValue + else: + self._dataset.VelocityEncodingMaximumValue = value diff --git a/tdwii_plus_examples/domain_model/mrfov_geometry_sequence_item.py b/tdwii_plus_examples/domain_model/mrfov_geometry_sequence_item.py new file mode 100644 index 0000000..8c9c91c --- /dev/null +++ b/tdwii_plus_examples/domain_model/mrfov_geometry_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MRFOVGeometrySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PercentSampling(self) -> Optional[Decimal]: + if "PercentSampling" in self._dataset: + return self._dataset.PercentSampling + return None + + @PercentSampling.setter + def PercentSampling(self, value: Optional[Decimal]): + if value is None: + if "PercentSampling" in self._dataset: + del self._dataset.PercentSampling + else: + self._dataset.PercentSampling = value + + @property + def PercentPhaseFieldOfView(self) -> Optional[Decimal]: + if "PercentPhaseFieldOfView" in self._dataset: + return self._dataset.PercentPhaseFieldOfView + return None + + @PercentPhaseFieldOfView.setter + def PercentPhaseFieldOfView(self, value: Optional[Decimal]): + if value is None: + if "PercentPhaseFieldOfView" in self._dataset: + del self._dataset.PercentPhaseFieldOfView + else: + self._dataset.PercentPhaseFieldOfView = value + + @property + def InPlanePhaseEncodingDirection(self) -> Optional[str]: + if "InPlanePhaseEncodingDirection" in self._dataset: + return self._dataset.InPlanePhaseEncodingDirection + return None + + @InPlanePhaseEncodingDirection.setter + def InPlanePhaseEncodingDirection(self, value: Optional[str]): + if value is None: + if "InPlanePhaseEncodingDirection" in self._dataset: + del self._dataset.InPlanePhaseEncodingDirection + else: + self._dataset.InPlanePhaseEncodingDirection = value + + @property + def MRAcquisitionFrequencyEncodingSteps(self) -> Optional[int]: + if "MRAcquisitionFrequencyEncodingSteps" in self._dataset: + return self._dataset.MRAcquisitionFrequencyEncodingSteps + return None + + @MRAcquisitionFrequencyEncodingSteps.setter + def MRAcquisitionFrequencyEncodingSteps(self, value: Optional[int]): + if value is None: + if "MRAcquisitionFrequencyEncodingSteps" in self._dataset: + del self._dataset.MRAcquisitionFrequencyEncodingSteps + else: + self._dataset.MRAcquisitionFrequencyEncodingSteps = value + + @property + def MRAcquisitionPhaseEncodingStepsInPlane(self) -> Optional[int]: + if "MRAcquisitionPhaseEncodingStepsInPlane" in self._dataset: + return self._dataset.MRAcquisitionPhaseEncodingStepsInPlane + return None + + @MRAcquisitionPhaseEncodingStepsInPlane.setter + def MRAcquisitionPhaseEncodingStepsInPlane(self, value: Optional[int]): + if value is None: + if "MRAcquisitionPhaseEncodingStepsInPlane" in self._dataset: + del self._dataset.MRAcquisitionPhaseEncodingStepsInPlane + else: + self._dataset.MRAcquisitionPhaseEncodingStepsInPlane = value + + @property + def MRAcquisitionPhaseEncodingStepsOutOfPlane(self) -> Optional[int]: + if "MRAcquisitionPhaseEncodingStepsOutOfPlane" in self._dataset: + return self._dataset.MRAcquisitionPhaseEncodingStepsOutOfPlane + return None + + @MRAcquisitionPhaseEncodingStepsOutOfPlane.setter + def MRAcquisitionPhaseEncodingStepsOutOfPlane(self, value: Optional[int]): + if value is None: + if "MRAcquisitionPhaseEncodingStepsOutOfPlane" in self._dataset: + del self._dataset.MRAcquisitionPhaseEncodingStepsOutOfPlane + else: + self._dataset.MRAcquisitionPhaseEncodingStepsOutOfPlane = value diff --git a/tdwii_plus_examples/domain_model/multi_channel_respiratory_waveform.py b/tdwii_plus_examples/domain_model/multi_channel_respiratory_waveform.py new file mode 100644 index 0000000..33d9b94 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_channel_respiratory_waveform.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class MultiChannelRespiratoryWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/multi_coil_definition_sequence_item.py b/tdwii_plus_examples/domain_model/multi_coil_definition_sequence_item.py new file mode 100644 index 0000000..d172649 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_coil_definition_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MultiCoilDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MultiCoilElementName(self) -> Optional[str]: + if "MultiCoilElementName" in self._dataset: + return self._dataset.MultiCoilElementName + return None + + @MultiCoilElementName.setter + def MultiCoilElementName(self, value: Optional[str]): + if value is None: + if "MultiCoilElementName" in self._dataset: + del self._dataset.MultiCoilElementName + else: + self._dataset.MultiCoilElementName = value + + @property + def MultiCoilElementUsed(self) -> Optional[str]: + if "MultiCoilElementUsed" in self._dataset: + return self._dataset.MultiCoilElementUsed + return None + + @MultiCoilElementUsed.setter + def MultiCoilElementUsed(self, value: Optional[str]): + if value is None: + if "MultiCoilElementUsed" in self._dataset: + del self._dataset.MultiCoilElementUsed + else: + self._dataset.MultiCoilElementUsed = value diff --git a/tdwii_plus_examples/domain_model/multi_frame_grayscale_byte_secondary_capture_image.py b/tdwii_plus_examples/domain_model/multi_frame_grayscale_byte_secondary_capture_image.py new file mode 100644 index 0000000..3eb9179 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_frame_grayscale_byte_secondary_capture_image.py @@ -0,0 +1,6659 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class MultiFrameGrayscaleByteSecondaryCaptureImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def PageNumberVector(self) -> Optional[List[int]]: + if "PageNumberVector" in self._dataset: + return self._dataset.PageNumberVector + return None + + @PageNumberVector.setter + def PageNumberVector(self, value: Optional[List[int]]): + if value is None: + if "PageNumberVector" in self._dataset: + del self._dataset.PageNumberVector + else: + self._dataset.PageNumberVector = value + + @property + def FrameLabelVector(self) -> Optional[List[str]]: + if "FrameLabelVector" in self._dataset: + return self._dataset.FrameLabelVector + return None + + @FrameLabelVector.setter + def FrameLabelVector(self, value: Optional[List[str]]): + if value is None: + if "FrameLabelVector" in self._dataset: + del self._dataset.FrameLabelVector + else: + self._dataset.FrameLabelVector = value + + @property + def FramePrimaryAngleVector(self) -> Optional[List[Decimal]]: + if "FramePrimaryAngleVector" in self._dataset: + return self._dataset.FramePrimaryAngleVector + return None + + @FramePrimaryAngleVector.setter + def FramePrimaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FramePrimaryAngleVector" in self._dataset: + del self._dataset.FramePrimaryAngleVector + else: + self._dataset.FramePrimaryAngleVector = value + + @property + def FrameSecondaryAngleVector(self) -> Optional[List[Decimal]]: + if "FrameSecondaryAngleVector" in self._dataset: + return self._dataset.FrameSecondaryAngleVector + return None + + @FrameSecondaryAngleVector.setter + def FrameSecondaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameSecondaryAngleVector" in self._dataset: + del self._dataset.FrameSecondaryAngleVector + else: + self._dataset.FrameSecondaryAngleVector = value + + @property + def SliceLocationVector(self) -> Optional[List[Decimal]]: + if "SliceLocationVector" in self._dataset: + return self._dataset.SliceLocationVector + return None + + @SliceLocationVector.setter + def SliceLocationVector(self, value: Optional[List[Decimal]]): + if value is None: + if "SliceLocationVector" in self._dataset: + del self._dataset.SliceLocationVector + else: + self._dataset.SliceLocationVector = value + + @property + def DisplayWindowLabelVector(self) -> Optional[List[str]]: + if "DisplayWindowLabelVector" in self._dataset: + return self._dataset.DisplayWindowLabelVector + return None + + @DisplayWindowLabelVector.setter + def DisplayWindowLabelVector(self, value: Optional[List[str]]): + if value is None: + if "DisplayWindowLabelVector" in self._dataset: + del self._dataset.DisplayWindowLabelVector + else: + self._dataset.DisplayWindowLabelVector = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def DateOfSecondaryCapture(self) -> Optional[str]: + if "DateOfSecondaryCapture" in self._dataset: + return self._dataset.DateOfSecondaryCapture + return None + + @DateOfSecondaryCapture.setter + def DateOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "DateOfSecondaryCapture" in self._dataset: + del self._dataset.DateOfSecondaryCapture + else: + self._dataset.DateOfSecondaryCapture = value + + @property + def TimeOfSecondaryCapture(self) -> Optional[str]: + if "TimeOfSecondaryCapture" in self._dataset: + return self._dataset.TimeOfSecondaryCapture + return None + + @TimeOfSecondaryCapture.setter + def TimeOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "TimeOfSecondaryCapture" in self._dataset: + del self._dataset.TimeOfSecondaryCapture + else: + self._dataset.TimeOfSecondaryCapture = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def DigitizingDeviceTransportDirection(self) -> Optional[str]: + if "DigitizingDeviceTransportDirection" in self._dataset: + return self._dataset.DigitizingDeviceTransportDirection + return None + + @DigitizingDeviceTransportDirection.setter + def DigitizingDeviceTransportDirection(self, value: Optional[str]): + if value is None: + if "DigitizingDeviceTransportDirection" in self._dataset: + del self._dataset.DigitizingDeviceTransportDirection + else: + self._dataset.DigitizingDeviceTransportDirection = value + + @property + def RotationOfScannedFilm(self) -> Optional[Decimal]: + if "RotationOfScannedFilm" in self._dataset: + return self._dataset.RotationOfScannedFilm + return None + + @RotationOfScannedFilm.setter + def RotationOfScannedFilm(self, value: Optional[Decimal]): + if value is None: + if "RotationOfScannedFilm" in self._dataset: + del self._dataset.RotationOfScannedFilm + else: + self._dataset.RotationOfScannedFilm = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def Illumination(self) -> Optional[int]: + if "Illumination" in self._dataset: + return self._dataset.Illumination + return None + + @Illumination.setter + def Illumination(self, value: Optional[int]): + if value is None: + if "Illumination" in self._dataset: + del self._dataset.Illumination + else: + self._dataset.Illumination = value + + @property + def ReflectedAmbientLight(self) -> Optional[int]: + if "ReflectedAmbientLight" in self._dataset: + return self._dataset.ReflectedAmbientLight + return None + + @ReflectedAmbientLight.setter + def ReflectedAmbientLight(self, value: Optional[int]): + if value is None: + if "ReflectedAmbientLight" in self._dataset: + del self._dataset.ReflectedAmbientLight + else: + self._dataset.ReflectedAmbientLight = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/multi_frame_grayscale_word_secondary_capture_image.py b/tdwii_plus_examples/domain_model/multi_frame_grayscale_word_secondary_capture_image.py new file mode 100644 index 0000000..03f33bb --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_frame_grayscale_word_secondary_capture_image.py @@ -0,0 +1,6659 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class MultiFrameGrayscaleWordSecondaryCaptureImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def PageNumberVector(self) -> Optional[List[int]]: + if "PageNumberVector" in self._dataset: + return self._dataset.PageNumberVector + return None + + @PageNumberVector.setter + def PageNumberVector(self, value: Optional[List[int]]): + if value is None: + if "PageNumberVector" in self._dataset: + del self._dataset.PageNumberVector + else: + self._dataset.PageNumberVector = value + + @property + def FrameLabelVector(self) -> Optional[List[str]]: + if "FrameLabelVector" in self._dataset: + return self._dataset.FrameLabelVector + return None + + @FrameLabelVector.setter + def FrameLabelVector(self, value: Optional[List[str]]): + if value is None: + if "FrameLabelVector" in self._dataset: + del self._dataset.FrameLabelVector + else: + self._dataset.FrameLabelVector = value + + @property + def FramePrimaryAngleVector(self) -> Optional[List[Decimal]]: + if "FramePrimaryAngleVector" in self._dataset: + return self._dataset.FramePrimaryAngleVector + return None + + @FramePrimaryAngleVector.setter + def FramePrimaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FramePrimaryAngleVector" in self._dataset: + del self._dataset.FramePrimaryAngleVector + else: + self._dataset.FramePrimaryAngleVector = value + + @property + def FrameSecondaryAngleVector(self) -> Optional[List[Decimal]]: + if "FrameSecondaryAngleVector" in self._dataset: + return self._dataset.FrameSecondaryAngleVector + return None + + @FrameSecondaryAngleVector.setter + def FrameSecondaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameSecondaryAngleVector" in self._dataset: + del self._dataset.FrameSecondaryAngleVector + else: + self._dataset.FrameSecondaryAngleVector = value + + @property + def SliceLocationVector(self) -> Optional[List[Decimal]]: + if "SliceLocationVector" in self._dataset: + return self._dataset.SliceLocationVector + return None + + @SliceLocationVector.setter + def SliceLocationVector(self, value: Optional[List[Decimal]]): + if value is None: + if "SliceLocationVector" in self._dataset: + del self._dataset.SliceLocationVector + else: + self._dataset.SliceLocationVector = value + + @property + def DisplayWindowLabelVector(self) -> Optional[List[str]]: + if "DisplayWindowLabelVector" in self._dataset: + return self._dataset.DisplayWindowLabelVector + return None + + @DisplayWindowLabelVector.setter + def DisplayWindowLabelVector(self, value: Optional[List[str]]): + if value is None: + if "DisplayWindowLabelVector" in self._dataset: + del self._dataset.DisplayWindowLabelVector + else: + self._dataset.DisplayWindowLabelVector = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def DateOfSecondaryCapture(self) -> Optional[str]: + if "DateOfSecondaryCapture" in self._dataset: + return self._dataset.DateOfSecondaryCapture + return None + + @DateOfSecondaryCapture.setter + def DateOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "DateOfSecondaryCapture" in self._dataset: + del self._dataset.DateOfSecondaryCapture + else: + self._dataset.DateOfSecondaryCapture = value + + @property + def TimeOfSecondaryCapture(self) -> Optional[str]: + if "TimeOfSecondaryCapture" in self._dataset: + return self._dataset.TimeOfSecondaryCapture + return None + + @TimeOfSecondaryCapture.setter + def TimeOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "TimeOfSecondaryCapture" in self._dataset: + del self._dataset.TimeOfSecondaryCapture + else: + self._dataset.TimeOfSecondaryCapture = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def DigitizingDeviceTransportDirection(self) -> Optional[str]: + if "DigitizingDeviceTransportDirection" in self._dataset: + return self._dataset.DigitizingDeviceTransportDirection + return None + + @DigitizingDeviceTransportDirection.setter + def DigitizingDeviceTransportDirection(self, value: Optional[str]): + if value is None: + if "DigitizingDeviceTransportDirection" in self._dataset: + del self._dataset.DigitizingDeviceTransportDirection + else: + self._dataset.DigitizingDeviceTransportDirection = value + + @property + def RotationOfScannedFilm(self) -> Optional[Decimal]: + if "RotationOfScannedFilm" in self._dataset: + return self._dataset.RotationOfScannedFilm + return None + + @RotationOfScannedFilm.setter + def RotationOfScannedFilm(self, value: Optional[Decimal]): + if value is None: + if "RotationOfScannedFilm" in self._dataset: + del self._dataset.RotationOfScannedFilm + else: + self._dataset.RotationOfScannedFilm = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def Illumination(self) -> Optional[int]: + if "Illumination" in self._dataset: + return self._dataset.Illumination + return None + + @Illumination.setter + def Illumination(self, value: Optional[int]): + if value is None: + if "Illumination" in self._dataset: + del self._dataset.Illumination + else: + self._dataset.Illumination = value + + @property + def ReflectedAmbientLight(self) -> Optional[int]: + if "ReflectedAmbientLight" in self._dataset: + return self._dataset.ReflectedAmbientLight + return None + + @ReflectedAmbientLight.setter + def ReflectedAmbientLight(self, value: Optional[int]): + if value is None: + if "ReflectedAmbientLight" in self._dataset: + del self._dataset.ReflectedAmbientLight + else: + self._dataset.ReflectedAmbientLight = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/multi_frame_presentation_sequence_item.py b/tdwii_plus_examples/domain_model/multi_frame_presentation_sequence_item.py new file mode 100644 index 0000000..14a8b19 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_frame_presentation_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .frame_display_sequence_item import FrameDisplaySequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class MultiFramePresentationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._FrameDisplaySequence: List[FrameDisplaySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def FrameDisplaySequence(self) -> Optional[List[FrameDisplaySequenceItem]]: + if "FrameDisplaySequence" in self._dataset: + if len(self._FrameDisplaySequence) == len(self._dataset.FrameDisplaySequence): + return self._FrameDisplaySequence + else: + return [FrameDisplaySequenceItem(x) for x in self._dataset.FrameDisplaySequence] + return None + + @FrameDisplaySequence.setter + def FrameDisplaySequence(self, value: Optional[List[FrameDisplaySequenceItem]]): + if value is None: + self._FrameDisplaySequence = [] + if "FrameDisplaySequence" in self._dataset: + del self._dataset.FrameDisplaySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplaySequenceItem) for item in value): + raise ValueError("FrameDisplaySequence must be a list of FrameDisplaySequenceItem objects") + else: + self._FrameDisplaySequence = value + if "FrameDisplaySequence" not in self._dataset: + self._dataset.FrameDisplaySequence = pydicom.Sequence() + self._dataset.FrameDisplaySequence.clear() + self._dataset.FrameDisplaySequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplay(self, item: FrameDisplaySequenceItem): + if not isinstance(item, FrameDisplaySequenceItem): + raise ValueError("Item must be an instance of FrameDisplaySequenceItem") + self._FrameDisplaySequence.append(item) + if "FrameDisplaySequence" not in self._dataset: + self._dataset.FrameDisplaySequence = pydicom.Sequence() + self._dataset.FrameDisplaySequence.append(item.to_dataset()) + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value diff --git a/tdwii_plus_examples/domain_model/multi_frame_single_bit_secondary_capture_image.py b/tdwii_plus_examples/domain_model/multi_frame_single_bit_secondary_capture_image.py new file mode 100644 index 0000000..1dcc551 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_frame_single_bit_secondary_capture_image.py @@ -0,0 +1,6109 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class MultiFrameSingleBitSecondaryCaptureImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def PageNumberVector(self) -> Optional[List[int]]: + if "PageNumberVector" in self._dataset: + return self._dataset.PageNumberVector + return None + + @PageNumberVector.setter + def PageNumberVector(self, value: Optional[List[int]]): + if value is None: + if "PageNumberVector" in self._dataset: + del self._dataset.PageNumberVector + else: + self._dataset.PageNumberVector = value + + @property + def FrameLabelVector(self) -> Optional[List[str]]: + if "FrameLabelVector" in self._dataset: + return self._dataset.FrameLabelVector + return None + + @FrameLabelVector.setter + def FrameLabelVector(self, value: Optional[List[str]]): + if value is None: + if "FrameLabelVector" in self._dataset: + del self._dataset.FrameLabelVector + else: + self._dataset.FrameLabelVector = value + + @property + def FramePrimaryAngleVector(self) -> Optional[List[Decimal]]: + if "FramePrimaryAngleVector" in self._dataset: + return self._dataset.FramePrimaryAngleVector + return None + + @FramePrimaryAngleVector.setter + def FramePrimaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FramePrimaryAngleVector" in self._dataset: + del self._dataset.FramePrimaryAngleVector + else: + self._dataset.FramePrimaryAngleVector = value + + @property + def FrameSecondaryAngleVector(self) -> Optional[List[Decimal]]: + if "FrameSecondaryAngleVector" in self._dataset: + return self._dataset.FrameSecondaryAngleVector + return None + + @FrameSecondaryAngleVector.setter + def FrameSecondaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameSecondaryAngleVector" in self._dataset: + del self._dataset.FrameSecondaryAngleVector + else: + self._dataset.FrameSecondaryAngleVector = value + + @property + def SliceLocationVector(self) -> Optional[List[Decimal]]: + if "SliceLocationVector" in self._dataset: + return self._dataset.SliceLocationVector + return None + + @SliceLocationVector.setter + def SliceLocationVector(self, value: Optional[List[Decimal]]): + if value is None: + if "SliceLocationVector" in self._dataset: + del self._dataset.SliceLocationVector + else: + self._dataset.SliceLocationVector = value + + @property + def DisplayWindowLabelVector(self) -> Optional[List[str]]: + if "DisplayWindowLabelVector" in self._dataset: + return self._dataset.DisplayWindowLabelVector + return None + + @DisplayWindowLabelVector.setter + def DisplayWindowLabelVector(self, value: Optional[List[str]]): + if value is None: + if "DisplayWindowLabelVector" in self._dataset: + del self._dataset.DisplayWindowLabelVector + else: + self._dataset.DisplayWindowLabelVector = value + + @property + def DateOfSecondaryCapture(self) -> Optional[str]: + if "DateOfSecondaryCapture" in self._dataset: + return self._dataset.DateOfSecondaryCapture + return None + + @DateOfSecondaryCapture.setter + def DateOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "DateOfSecondaryCapture" in self._dataset: + del self._dataset.DateOfSecondaryCapture + else: + self._dataset.DateOfSecondaryCapture = value + + @property + def TimeOfSecondaryCapture(self) -> Optional[str]: + if "TimeOfSecondaryCapture" in self._dataset: + return self._dataset.TimeOfSecondaryCapture + return None + + @TimeOfSecondaryCapture.setter + def TimeOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "TimeOfSecondaryCapture" in self._dataset: + del self._dataset.TimeOfSecondaryCapture + else: + self._dataset.TimeOfSecondaryCapture = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def DigitizingDeviceTransportDirection(self) -> Optional[str]: + if "DigitizingDeviceTransportDirection" in self._dataset: + return self._dataset.DigitizingDeviceTransportDirection + return None + + @DigitizingDeviceTransportDirection.setter + def DigitizingDeviceTransportDirection(self, value: Optional[str]): + if value is None: + if "DigitizingDeviceTransportDirection" in self._dataset: + del self._dataset.DigitizingDeviceTransportDirection + else: + self._dataset.DigitizingDeviceTransportDirection = value + + @property + def RotationOfScannedFilm(self) -> Optional[Decimal]: + if "RotationOfScannedFilm" in self._dataset: + return self._dataset.RotationOfScannedFilm + return None + + @RotationOfScannedFilm.setter + def RotationOfScannedFilm(self, value: Optional[Decimal]): + if value is None: + if "RotationOfScannedFilm" in self._dataset: + del self._dataset.RotationOfScannedFilm + else: + self._dataset.RotationOfScannedFilm = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def Illumination(self) -> Optional[int]: + if "Illumination" in self._dataset: + return self._dataset.Illumination + return None + + @Illumination.setter + def Illumination(self, value: Optional[int]): + if value is None: + if "Illumination" in self._dataset: + del self._dataset.Illumination + else: + self._dataset.Illumination = value + + @property + def ReflectedAmbientLight(self) -> Optional[int]: + if "ReflectedAmbientLight" in self._dataset: + return self._dataset.ReflectedAmbientLight + return None + + @ReflectedAmbientLight.setter + def ReflectedAmbientLight(self, value: Optional[int]): + if value is None: + if "ReflectedAmbientLight" in self._dataset: + del self._dataset.ReflectedAmbientLight + else: + self._dataset.ReflectedAmbientLight = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/multi_frame_true_color_secondary_capture_image.py b/tdwii_plus_examples/domain_model/multi_frame_true_color_secondary_capture_image.py new file mode 100644 index 0000000..7b16bd1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multi_frame_true_color_secondary_capture_image.py @@ -0,0 +1,6597 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class MultiFrameTrueColorSecondaryCaptureImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def PageNumberVector(self) -> Optional[List[int]]: + if "PageNumberVector" in self._dataset: + return self._dataset.PageNumberVector + return None + + @PageNumberVector.setter + def PageNumberVector(self, value: Optional[List[int]]): + if value is None: + if "PageNumberVector" in self._dataset: + del self._dataset.PageNumberVector + else: + self._dataset.PageNumberVector = value + + @property + def FrameLabelVector(self) -> Optional[List[str]]: + if "FrameLabelVector" in self._dataset: + return self._dataset.FrameLabelVector + return None + + @FrameLabelVector.setter + def FrameLabelVector(self, value: Optional[List[str]]): + if value is None: + if "FrameLabelVector" in self._dataset: + del self._dataset.FrameLabelVector + else: + self._dataset.FrameLabelVector = value + + @property + def FramePrimaryAngleVector(self) -> Optional[List[Decimal]]: + if "FramePrimaryAngleVector" in self._dataset: + return self._dataset.FramePrimaryAngleVector + return None + + @FramePrimaryAngleVector.setter + def FramePrimaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FramePrimaryAngleVector" in self._dataset: + del self._dataset.FramePrimaryAngleVector + else: + self._dataset.FramePrimaryAngleVector = value + + @property + def FrameSecondaryAngleVector(self) -> Optional[List[Decimal]]: + if "FrameSecondaryAngleVector" in self._dataset: + return self._dataset.FrameSecondaryAngleVector + return None + + @FrameSecondaryAngleVector.setter + def FrameSecondaryAngleVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameSecondaryAngleVector" in self._dataset: + del self._dataset.FrameSecondaryAngleVector + else: + self._dataset.FrameSecondaryAngleVector = value + + @property + def SliceLocationVector(self) -> Optional[List[Decimal]]: + if "SliceLocationVector" in self._dataset: + return self._dataset.SliceLocationVector + return None + + @SliceLocationVector.setter + def SliceLocationVector(self, value: Optional[List[Decimal]]): + if value is None: + if "SliceLocationVector" in self._dataset: + del self._dataset.SliceLocationVector + else: + self._dataset.SliceLocationVector = value + + @property + def DisplayWindowLabelVector(self) -> Optional[List[str]]: + if "DisplayWindowLabelVector" in self._dataset: + return self._dataset.DisplayWindowLabelVector + return None + + @DisplayWindowLabelVector.setter + def DisplayWindowLabelVector(self, value: Optional[List[str]]): + if value is None: + if "DisplayWindowLabelVector" in self._dataset: + del self._dataset.DisplayWindowLabelVector + else: + self._dataset.DisplayWindowLabelVector = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def DateOfSecondaryCapture(self) -> Optional[str]: + if "DateOfSecondaryCapture" in self._dataset: + return self._dataset.DateOfSecondaryCapture + return None + + @DateOfSecondaryCapture.setter + def DateOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "DateOfSecondaryCapture" in self._dataset: + del self._dataset.DateOfSecondaryCapture + else: + self._dataset.DateOfSecondaryCapture = value + + @property + def TimeOfSecondaryCapture(self) -> Optional[str]: + if "TimeOfSecondaryCapture" in self._dataset: + return self._dataset.TimeOfSecondaryCapture + return None + + @TimeOfSecondaryCapture.setter + def TimeOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "TimeOfSecondaryCapture" in self._dataset: + del self._dataset.TimeOfSecondaryCapture + else: + self._dataset.TimeOfSecondaryCapture = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def DigitizingDeviceTransportDirection(self) -> Optional[str]: + if "DigitizingDeviceTransportDirection" in self._dataset: + return self._dataset.DigitizingDeviceTransportDirection + return None + + @DigitizingDeviceTransportDirection.setter + def DigitizingDeviceTransportDirection(self, value: Optional[str]): + if value is None: + if "DigitizingDeviceTransportDirection" in self._dataset: + del self._dataset.DigitizingDeviceTransportDirection + else: + self._dataset.DigitizingDeviceTransportDirection = value + + @property + def RotationOfScannedFilm(self) -> Optional[Decimal]: + if "RotationOfScannedFilm" in self._dataset: + return self._dataset.RotationOfScannedFilm + return None + + @RotationOfScannedFilm.setter + def RotationOfScannedFilm(self, value: Optional[Decimal]): + if value is None: + if "RotationOfScannedFilm" in self._dataset: + del self._dataset.RotationOfScannedFilm + else: + self._dataset.RotationOfScannedFilm = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def Illumination(self) -> Optional[int]: + if "Illumination" in self._dataset: + return self._dataset.Illumination + return None + + @Illumination.setter + def Illumination(self, value: Optional[int]): + if value is None: + if "Illumination" in self._dataset: + del self._dataset.Illumination + else: + self._dataset.Illumination = value + + @property + def ReflectedAmbientLight(self) -> Optional[int]: + if "ReflectedAmbientLight" in self._dataset: + return self._dataset.ReflectedAmbientLight + return None + + @ReflectedAmbientLight.setter + def ReflectedAmbientLight(self, value: Optional[int]): + if value is None: + if "ReflectedAmbientLight" in self._dataset: + del self._dataset.ReflectedAmbientLight + else: + self._dataset.ReflectedAmbientLight = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/multienergy_ct_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/multienergy_ct_acquisition_sequence_item.py new file mode 100644 index 0000000..655742a --- /dev/null +++ b/tdwii_plus_examples/domain_model/multienergy_ct_acquisition_sequence_item.py @@ -0,0 +1,270 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .ct_acquisition_details_sequence_item import CTAcquisitionDetailsSequenceItem +from .ct_exposure_sequence_item import CTExposureSequenceItem +from .ct_geometry_sequence_item import CTGeometrySequenceItem +from .ctx_ray_details_sequence_item import CTXRayDetailsSequenceItem +from .multienergy_ct_path_sequence_item import MultienergyCTPathSequenceItem +from .multienergy_ctx_ray_detector_sequence_item import ( + MultienergyCTXRayDetectorSequenceItem, +) +from .multienergy_ctx_ray_source_sequence_item import ( + MultienergyCTXRaySourceSequenceItem, +) + + +class MultienergyCTAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CTAcquisitionDetailsSequence: List[CTAcquisitionDetailsSequenceItem] = [] + self._CTGeometrySequence: List[CTGeometrySequenceItem] = [] + self._CTExposureSequence: List[CTExposureSequenceItem] = [] + self._CTXRayDetailsSequence: List[CTXRayDetailsSequenceItem] = [] + self._MultienergyCTXRaySourceSequence: List[MultienergyCTXRaySourceSequenceItem] = [] + self._MultienergyCTXRayDetectorSequence: List[MultienergyCTXRayDetectorSequenceItem] = [] + self._MultienergyCTPathSequence: List[MultienergyCTPathSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CTAcquisitionDetailsSequence(self) -> Optional[List[CTAcquisitionDetailsSequenceItem]]: + if "CTAcquisitionDetailsSequence" in self._dataset: + if len(self._CTAcquisitionDetailsSequence) == len(self._dataset.CTAcquisitionDetailsSequence): + return self._CTAcquisitionDetailsSequence + else: + return [CTAcquisitionDetailsSequenceItem(x) for x in self._dataset.CTAcquisitionDetailsSequence] + return None + + @CTAcquisitionDetailsSequence.setter + def CTAcquisitionDetailsSequence(self, value: Optional[List[CTAcquisitionDetailsSequenceItem]]): + if value is None: + self._CTAcquisitionDetailsSequence = [] + if "CTAcquisitionDetailsSequence" in self._dataset: + del self._dataset.CTAcquisitionDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAcquisitionDetailsSequenceItem) for item in value): + raise ValueError("CTAcquisitionDetailsSequence must be a list of CTAcquisitionDetailsSequenceItem objects") + else: + self._CTAcquisitionDetailsSequence = value + if "CTAcquisitionDetailsSequence" not in self._dataset: + self._dataset.CTAcquisitionDetailsSequence = pydicom.Sequence() + self._dataset.CTAcquisitionDetailsSequence.clear() + self._dataset.CTAcquisitionDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTAcquisitionDetails(self, item: CTAcquisitionDetailsSequenceItem): + if not isinstance(item, CTAcquisitionDetailsSequenceItem): + raise ValueError("Item must be an instance of CTAcquisitionDetailsSequenceItem") + self._CTAcquisitionDetailsSequence.append(item) + if "CTAcquisitionDetailsSequence" not in self._dataset: + self._dataset.CTAcquisitionDetailsSequence = pydicom.Sequence() + self._dataset.CTAcquisitionDetailsSequence.append(item.to_dataset()) + + @property + def CTGeometrySequence(self) -> Optional[List[CTGeometrySequenceItem]]: + if "CTGeometrySequence" in self._dataset: + if len(self._CTGeometrySequence) == len(self._dataset.CTGeometrySequence): + return self._CTGeometrySequence + else: + return [CTGeometrySequenceItem(x) for x in self._dataset.CTGeometrySequence] + return None + + @CTGeometrySequence.setter + def CTGeometrySequence(self, value: Optional[List[CTGeometrySequenceItem]]): + if value is None: + self._CTGeometrySequence = [] + if "CTGeometrySequence" in self._dataset: + del self._dataset.CTGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, CTGeometrySequenceItem) for item in value): + raise ValueError("CTGeometrySequence must be a list of CTGeometrySequenceItem objects") + else: + self._CTGeometrySequence = value + if "CTGeometrySequence" not in self._dataset: + self._dataset.CTGeometrySequence = pydicom.Sequence() + self._dataset.CTGeometrySequence.clear() + self._dataset.CTGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_CTGeometry(self, item: CTGeometrySequenceItem): + if not isinstance(item, CTGeometrySequenceItem): + raise ValueError("Item must be an instance of CTGeometrySequenceItem") + self._CTGeometrySequence.append(item) + if "CTGeometrySequence" not in self._dataset: + self._dataset.CTGeometrySequence = pydicom.Sequence() + self._dataset.CTGeometrySequence.append(item.to_dataset()) + + @property + def CTExposureSequence(self) -> Optional[List[CTExposureSequenceItem]]: + if "CTExposureSequence" in self._dataset: + if len(self._CTExposureSequence) == len(self._dataset.CTExposureSequence): + return self._CTExposureSequence + else: + return [CTExposureSequenceItem(x) for x in self._dataset.CTExposureSequence] + return None + + @CTExposureSequence.setter + def CTExposureSequence(self, value: Optional[List[CTExposureSequenceItem]]): + if value is None: + self._CTExposureSequence = [] + if "CTExposureSequence" in self._dataset: + del self._dataset.CTExposureSequence + elif not isinstance(value, list) or not all(isinstance(item, CTExposureSequenceItem) for item in value): + raise ValueError("CTExposureSequence must be a list of CTExposureSequenceItem objects") + else: + self._CTExposureSequence = value + if "CTExposureSequence" not in self._dataset: + self._dataset.CTExposureSequence = pydicom.Sequence() + self._dataset.CTExposureSequence.clear() + self._dataset.CTExposureSequence.extend([item.to_dataset() for item in value]) + + def add_CTExposure(self, item: CTExposureSequenceItem): + if not isinstance(item, CTExposureSequenceItem): + raise ValueError("Item must be an instance of CTExposureSequenceItem") + self._CTExposureSequence.append(item) + if "CTExposureSequence" not in self._dataset: + self._dataset.CTExposureSequence = pydicom.Sequence() + self._dataset.CTExposureSequence.append(item.to_dataset()) + + @property + def CTXRayDetailsSequence(self) -> Optional[List[CTXRayDetailsSequenceItem]]: + if "CTXRayDetailsSequence" in self._dataset: + if len(self._CTXRayDetailsSequence) == len(self._dataset.CTXRayDetailsSequence): + return self._CTXRayDetailsSequence + else: + return [CTXRayDetailsSequenceItem(x) for x in self._dataset.CTXRayDetailsSequence] + return None + + @CTXRayDetailsSequence.setter + def CTXRayDetailsSequence(self, value: Optional[List[CTXRayDetailsSequenceItem]]): + if value is None: + self._CTXRayDetailsSequence = [] + if "CTXRayDetailsSequence" in self._dataset: + del self._dataset.CTXRayDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTXRayDetailsSequenceItem) for item in value): + raise ValueError("CTXRayDetailsSequence must be a list of CTXRayDetailsSequenceItem objects") + else: + self._CTXRayDetailsSequence = value + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.clear() + self._dataset.CTXRayDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTXRayDetails(self, item: CTXRayDetailsSequenceItem): + if not isinstance(item, CTXRayDetailsSequenceItem): + raise ValueError("Item must be an instance of CTXRayDetailsSequenceItem") + self._CTXRayDetailsSequence.append(item) + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.append(item.to_dataset()) + + @property + def MultienergyCTXRaySourceSequence(self) -> Optional[List[MultienergyCTXRaySourceSequenceItem]]: + if "MultienergyCTXRaySourceSequence" in self._dataset: + if len(self._MultienergyCTXRaySourceSequence) == len(self._dataset.MultienergyCTXRaySourceSequence): + return self._MultienergyCTXRaySourceSequence + else: + return [MultienergyCTXRaySourceSequenceItem(x) for x in self._dataset.MultienergyCTXRaySourceSequence] + return None + + @MultienergyCTXRaySourceSequence.setter + def MultienergyCTXRaySourceSequence(self, value: Optional[List[MultienergyCTXRaySourceSequenceItem]]): + if value is None: + self._MultienergyCTXRaySourceSequence = [] + if "MultienergyCTXRaySourceSequence" in self._dataset: + del self._dataset.MultienergyCTXRaySourceSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTXRaySourceSequenceItem) for item in value): + raise ValueError("MultienergyCTXRaySourceSequence must be a list of MultienergyCTXRaySourceSequenceItem objects") + else: + self._MultienergyCTXRaySourceSequence = value + if "MultienergyCTXRaySourceSequence" not in self._dataset: + self._dataset.MultienergyCTXRaySourceSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRaySourceSequence.clear() + self._dataset.MultienergyCTXRaySourceSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTXRaySource(self, item: MultienergyCTXRaySourceSequenceItem): + if not isinstance(item, MultienergyCTXRaySourceSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTXRaySourceSequenceItem") + self._MultienergyCTXRaySourceSequence.append(item) + if "MultienergyCTXRaySourceSequence" not in self._dataset: + self._dataset.MultienergyCTXRaySourceSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRaySourceSequence.append(item.to_dataset()) + + @property + def MultienergyCTXRayDetectorSequence(self) -> Optional[List[MultienergyCTXRayDetectorSequenceItem]]: + if "MultienergyCTXRayDetectorSequence" in self._dataset: + if len(self._MultienergyCTXRayDetectorSequence) == len(self._dataset.MultienergyCTXRayDetectorSequence): + return self._MultienergyCTXRayDetectorSequence + else: + return [MultienergyCTXRayDetectorSequenceItem(x) for x in self._dataset.MultienergyCTXRayDetectorSequence] + return None + + @MultienergyCTXRayDetectorSequence.setter + def MultienergyCTXRayDetectorSequence(self, value: Optional[List[MultienergyCTXRayDetectorSequenceItem]]): + if value is None: + self._MultienergyCTXRayDetectorSequence = [] + if "MultienergyCTXRayDetectorSequence" in self._dataset: + del self._dataset.MultienergyCTXRayDetectorSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTXRayDetectorSequenceItem) for item in value): + raise ValueError( + "MultienergyCTXRayDetectorSequence must be a list of MultienergyCTXRayDetectorSequenceItem objects" + ) + else: + self._MultienergyCTXRayDetectorSequence = value + if "MultienergyCTXRayDetectorSequence" not in self._dataset: + self._dataset.MultienergyCTXRayDetectorSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRayDetectorSequence.clear() + self._dataset.MultienergyCTXRayDetectorSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTXRayDetector(self, item: MultienergyCTXRayDetectorSequenceItem): + if not isinstance(item, MultienergyCTXRayDetectorSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTXRayDetectorSequenceItem") + self._MultienergyCTXRayDetectorSequence.append(item) + if "MultienergyCTXRayDetectorSequence" not in self._dataset: + self._dataset.MultienergyCTXRayDetectorSequence = pydicom.Sequence() + self._dataset.MultienergyCTXRayDetectorSequence.append(item.to_dataset()) + + @property + def MultienergyCTPathSequence(self) -> Optional[List[MultienergyCTPathSequenceItem]]: + if "MultienergyCTPathSequence" in self._dataset: + if len(self._MultienergyCTPathSequence) == len(self._dataset.MultienergyCTPathSequence): + return self._MultienergyCTPathSequence + else: + return [MultienergyCTPathSequenceItem(x) for x in self._dataset.MultienergyCTPathSequence] + return None + + @MultienergyCTPathSequence.setter + def MultienergyCTPathSequence(self, value: Optional[List[MultienergyCTPathSequenceItem]]): + if value is None: + self._MultienergyCTPathSequence = [] + if "MultienergyCTPathSequence" in self._dataset: + del self._dataset.MultienergyCTPathSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTPathSequenceItem) for item in value): + raise ValueError("MultienergyCTPathSequence must be a list of MultienergyCTPathSequenceItem objects") + else: + self._MultienergyCTPathSequence = value + if "MultienergyCTPathSequence" not in self._dataset: + self._dataset.MultienergyCTPathSequence = pydicom.Sequence() + self._dataset.MultienergyCTPathSequence.clear() + self._dataset.MultienergyCTPathSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTPath(self, item: MultienergyCTPathSequenceItem): + if not isinstance(item, MultienergyCTPathSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTPathSequenceItem") + self._MultienergyCTPathSequence.append(item) + if "MultienergyCTPathSequence" not in self._dataset: + self._dataset.MultienergyCTPathSequence = pydicom.Sequence() + self._dataset.MultienergyCTPathSequence.append(item.to_dataset()) + + @property + def MultienergyAcquisitionDescription(self) -> Optional[str]: + if "MultienergyAcquisitionDescription" in self._dataset: + return self._dataset.MultienergyAcquisitionDescription + return None + + @MultienergyAcquisitionDescription.setter + def MultienergyAcquisitionDescription(self, value: Optional[str]): + if value is None: + if "MultienergyAcquisitionDescription" in self._dataset: + del self._dataset.MultienergyAcquisitionDescription + else: + self._dataset.MultienergyAcquisitionDescription = value diff --git a/tdwii_plus_examples/domain_model/multienergy_ct_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/multienergy_ct_characteristics_sequence_item.py new file mode 100644 index 0000000..25573b4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multienergy_ct_characteristics_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_algorithm_sequence_item import DerivationAlgorithmSequenceItem +from .performed_processing_parameters_sequence_item import ( + PerformedProcessingParametersSequenceItem, +) + + +class MultienergyCTCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationAlgorithmSequence: List[DerivationAlgorithmSequenceItem] = [] + self._PerformedProcessingParametersSequence: List[PerformedProcessingParametersSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MonoenergeticEnergyEquivalent(self) -> Optional[float]: + if "MonoenergeticEnergyEquivalent" in self._dataset: + return self._dataset.MonoenergeticEnergyEquivalent + return None + + @MonoenergeticEnergyEquivalent.setter + def MonoenergeticEnergyEquivalent(self, value: Optional[float]): + if value is None: + if "MonoenergeticEnergyEquivalent" in self._dataset: + del self._dataset.MonoenergeticEnergyEquivalent + else: + self._dataset.MonoenergeticEnergyEquivalent = value + + @property + def DerivationAlgorithmSequence(self) -> Optional[List[DerivationAlgorithmSequenceItem]]: + if "DerivationAlgorithmSequence" in self._dataset: + if len(self._DerivationAlgorithmSequence) == len(self._dataset.DerivationAlgorithmSequence): + return self._DerivationAlgorithmSequence + else: + return [DerivationAlgorithmSequenceItem(x) for x in self._dataset.DerivationAlgorithmSequence] + return None + + @DerivationAlgorithmSequence.setter + def DerivationAlgorithmSequence(self, value: Optional[List[DerivationAlgorithmSequenceItem]]): + if value is None: + self._DerivationAlgorithmSequence = [] + if "DerivationAlgorithmSequence" in self._dataset: + del self._dataset.DerivationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationAlgorithmSequenceItem) for item in value): + raise ValueError("DerivationAlgorithmSequence must be a list of DerivationAlgorithmSequenceItem objects") + else: + self._DerivationAlgorithmSequence = value + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.clear() + self._dataset.DerivationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationAlgorithm(self, item: DerivationAlgorithmSequenceItem): + if not isinstance(item, DerivationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of DerivationAlgorithmSequenceItem") + self._DerivationAlgorithmSequence.append(item) + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.append(item.to_dataset()) + + @property + def PerformedProcessingParametersSequence(self) -> Optional[List[PerformedProcessingParametersSequenceItem]]: + if "PerformedProcessingParametersSequence" in self._dataset: + if len(self._PerformedProcessingParametersSequence) == len(self._dataset.PerformedProcessingParametersSequence): + return self._PerformedProcessingParametersSequence + else: + return [ + PerformedProcessingParametersSequenceItem(x) for x in self._dataset.PerformedProcessingParametersSequence + ] + return None + + @PerformedProcessingParametersSequence.setter + def PerformedProcessingParametersSequence(self, value: Optional[List[PerformedProcessingParametersSequenceItem]]): + if value is None: + self._PerformedProcessingParametersSequence = [] + if "PerformedProcessingParametersSequence" in self._dataset: + del self._dataset.PerformedProcessingParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformedProcessingParametersSequenceItem) for item in value + ): + raise ValueError( + "PerformedProcessingParametersSequence must be a list of PerformedProcessingParametersSequenceItem objects" + ) + else: + self._PerformedProcessingParametersSequence = value + if "PerformedProcessingParametersSequence" not in self._dataset: + self._dataset.PerformedProcessingParametersSequence = pydicom.Sequence() + self._dataset.PerformedProcessingParametersSequence.clear() + self._dataset.PerformedProcessingParametersSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcessingParameters(self, item: PerformedProcessingParametersSequenceItem): + if not isinstance(item, PerformedProcessingParametersSequenceItem): + raise ValueError("Item must be an instance of PerformedProcessingParametersSequenceItem") + self._PerformedProcessingParametersSequence.append(item) + if "PerformedProcessingParametersSequence" not in self._dataset: + self._dataset.PerformedProcessingParametersSequence = pydicom.Sequence() + self._dataset.PerformedProcessingParametersSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/multienergy_ct_path_sequence_item.py b/tdwii_plus_examples/domain_model/multienergy_ct_path_sequence_item.py new file mode 100644 index 0000000..87840c1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/multienergy_ct_path_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class MultienergyCTPathSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedXRayDetectorIndex(self) -> Optional[List[int]]: + if "ReferencedXRayDetectorIndex" in self._dataset: + return self._dataset.ReferencedXRayDetectorIndex + return None + + @ReferencedXRayDetectorIndex.setter + def ReferencedXRayDetectorIndex(self, value: Optional[List[int]]): + if value is None: + if "ReferencedXRayDetectorIndex" in self._dataset: + del self._dataset.ReferencedXRayDetectorIndex + else: + self._dataset.ReferencedXRayDetectorIndex = value + + @property + def ReferencedXRaySourceIndex(self) -> Optional[List[int]]: + if "ReferencedXRaySourceIndex" in self._dataset: + return self._dataset.ReferencedXRaySourceIndex + return None + + @ReferencedXRaySourceIndex.setter + def ReferencedXRaySourceIndex(self, value: Optional[List[int]]): + if value is None: + if "ReferencedXRaySourceIndex" in self._dataset: + del self._dataset.ReferencedXRaySourceIndex + else: + self._dataset.ReferencedXRaySourceIndex = value + + @property + def MultienergyCTPathIndex(self) -> Optional[int]: + if "MultienergyCTPathIndex" in self._dataset: + return self._dataset.MultienergyCTPathIndex + return None + + @MultienergyCTPathIndex.setter + def MultienergyCTPathIndex(self, value: Optional[int]): + if value is None: + if "MultienergyCTPathIndex" in self._dataset: + del self._dataset.MultienergyCTPathIndex + else: + self._dataset.MultienergyCTPathIndex = value diff --git a/tdwii_plus_examples/domain_model/multienergy_ct_processing_sequence_item.py b/tdwii_plus_examples/domain_model/multienergy_ct_processing_sequence_item.py new file mode 100644 index 0000000..f2947ad --- /dev/null +++ b/tdwii_plus_examples/domain_model/multienergy_ct_processing_sequence_item.py @@ -0,0 +1,122 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .decomposition_algorithm_identification_sequence_item import ( + DecompositionAlgorithmIdentificationSequenceItem, +) +from .decomposition_material_sequence_item import DecompositionMaterialSequenceItem + + +class MultienergyCTProcessingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DecompositionAlgorithmIdentificationSequence: List[DecompositionAlgorithmIdentificationSequenceItem] = [] + self._DecompositionMaterialSequence: List[DecompositionMaterialSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DecompositionMethod(self) -> Optional[str]: + if "DecompositionMethod" in self._dataset: + return self._dataset.DecompositionMethod + return None + + @DecompositionMethod.setter + def DecompositionMethod(self, value: Optional[str]): + if value is None: + if "DecompositionMethod" in self._dataset: + del self._dataset.DecompositionMethod + else: + self._dataset.DecompositionMethod = value + + @property + def DecompositionDescription(self) -> Optional[str]: + if "DecompositionDescription" in self._dataset: + return self._dataset.DecompositionDescription + return None + + @DecompositionDescription.setter + def DecompositionDescription(self, value: Optional[str]): + if value is None: + if "DecompositionDescription" in self._dataset: + del self._dataset.DecompositionDescription + else: + self._dataset.DecompositionDescription = value + + @property + def DecompositionAlgorithmIdentificationSequence(self) -> Optional[List[DecompositionAlgorithmIdentificationSequenceItem]]: + if "DecompositionAlgorithmIdentificationSequence" in self._dataset: + if len(self._DecompositionAlgorithmIdentificationSequence) == len( + self._dataset.DecompositionAlgorithmIdentificationSequence + ): + return self._DecompositionAlgorithmIdentificationSequence + else: + return [ + DecompositionAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.DecompositionAlgorithmIdentificationSequence + ] + return None + + @DecompositionAlgorithmIdentificationSequence.setter + def DecompositionAlgorithmIdentificationSequence( + self, value: Optional[List[DecompositionAlgorithmIdentificationSequenceItem]] + ): + if value is None: + self._DecompositionAlgorithmIdentificationSequence = [] + if "DecompositionAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.DecompositionAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, DecompositionAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "DecompositionAlgorithmIdentificationSequence must be a list of" + " DecompositionAlgorithmIdentificationSequenceItem objects" + ) + else: + self._DecompositionAlgorithmIdentificationSequence = value + if "DecompositionAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.DecompositionAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.DecompositionAlgorithmIdentificationSequence.clear() + self._dataset.DecompositionAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_DecompositionAlgorithmIdentification(self, item: DecompositionAlgorithmIdentificationSequenceItem): + if not isinstance(item, DecompositionAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of DecompositionAlgorithmIdentificationSequenceItem") + self._DecompositionAlgorithmIdentificationSequence.append(item) + if "DecompositionAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.DecompositionAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.DecompositionAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def DecompositionMaterialSequence(self) -> Optional[List[DecompositionMaterialSequenceItem]]: + if "DecompositionMaterialSequence" in self._dataset: + if len(self._DecompositionMaterialSequence) == len(self._dataset.DecompositionMaterialSequence): + return self._DecompositionMaterialSequence + else: + return [DecompositionMaterialSequenceItem(x) for x in self._dataset.DecompositionMaterialSequence] + return None + + @DecompositionMaterialSequence.setter + def DecompositionMaterialSequence(self, value: Optional[List[DecompositionMaterialSequenceItem]]): + if value is None: + self._DecompositionMaterialSequence = [] + if "DecompositionMaterialSequence" in self._dataset: + del self._dataset.DecompositionMaterialSequence + elif not isinstance(value, list) or not all(isinstance(item, DecompositionMaterialSequenceItem) for item in value): + raise ValueError("DecompositionMaterialSequence must be a list of DecompositionMaterialSequenceItem objects") + else: + self._DecompositionMaterialSequence = value + if "DecompositionMaterialSequence" not in self._dataset: + self._dataset.DecompositionMaterialSequence = pydicom.Sequence() + self._dataset.DecompositionMaterialSequence.clear() + self._dataset.DecompositionMaterialSequence.extend([item.to_dataset() for item in value]) + + def add_DecompositionMaterial(self, item: DecompositionMaterialSequenceItem): + if not isinstance(item, DecompositionMaterialSequenceItem): + raise ValueError("Item must be an instance of DecompositionMaterialSequenceItem") + self._DecompositionMaterialSequence.append(item) + if "DecompositionMaterialSequence" not in self._dataset: + self._dataset.DecompositionMaterialSequence = pydicom.Sequence() + self._dataset.DecompositionMaterialSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/multienergy_ctx_ray_detector_sequence_item.py b/tdwii_plus_examples/domain_model/multienergy_ctx_ray_detector_sequence_item.py new file mode 100644 index 0000000..4bac94a --- /dev/null +++ b/tdwii_plus_examples/domain_model/multienergy_ctx_ray_detector_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MultienergyCTXRayDetectorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EffectiveBinEnergy(self) -> Optional[Decimal]: + if "EffectiveBinEnergy" in self._dataset: + return self._dataset.EffectiveBinEnergy + return None + + @EffectiveBinEnergy.setter + def EffectiveBinEnergy(self, value: Optional[Decimal]): + if value is None: + if "EffectiveBinEnergy" in self._dataset: + del self._dataset.EffectiveBinEnergy + else: + self._dataset.EffectiveBinEnergy = value + + @property + def XRayDetectorIndex(self) -> Optional[int]: + if "XRayDetectorIndex" in self._dataset: + return self._dataset.XRayDetectorIndex + return None + + @XRayDetectorIndex.setter + def XRayDetectorIndex(self, value: Optional[int]): + if value is None: + if "XRayDetectorIndex" in self._dataset: + del self._dataset.XRayDetectorIndex + else: + self._dataset.XRayDetectorIndex = value + + @property + def XRayDetectorID(self) -> Optional[str]: + if "XRayDetectorID" in self._dataset: + return self._dataset.XRayDetectorID + return None + + @XRayDetectorID.setter + def XRayDetectorID(self, value: Optional[str]): + if value is None: + if "XRayDetectorID" in self._dataset: + del self._dataset.XRayDetectorID + else: + self._dataset.XRayDetectorID = value + + @property + def MultienergyDetectorType(self) -> Optional[str]: + if "MultienergyDetectorType" in self._dataset: + return self._dataset.MultienergyDetectorType + return None + + @MultienergyDetectorType.setter + def MultienergyDetectorType(self, value: Optional[str]): + if value is None: + if "MultienergyDetectorType" in self._dataset: + del self._dataset.MultienergyDetectorType + else: + self._dataset.MultienergyDetectorType = value + + @property + def XRayDetectorLabel(self) -> Optional[str]: + if "XRayDetectorLabel" in self._dataset: + return self._dataset.XRayDetectorLabel + return None + + @XRayDetectorLabel.setter + def XRayDetectorLabel(self, value: Optional[str]): + if value is None: + if "XRayDetectorLabel" in self._dataset: + del self._dataset.XRayDetectorLabel + else: + self._dataset.XRayDetectorLabel = value + + @property + def NominalMaxEnergy(self) -> Optional[Decimal]: + if "NominalMaxEnergy" in self._dataset: + return self._dataset.NominalMaxEnergy + return None + + @NominalMaxEnergy.setter + def NominalMaxEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalMaxEnergy" in self._dataset: + del self._dataset.NominalMaxEnergy + else: + self._dataset.NominalMaxEnergy = value + + @property + def NominalMinEnergy(self) -> Optional[Decimal]: + if "NominalMinEnergy" in self._dataset: + return self._dataset.NominalMinEnergy + return None + + @NominalMinEnergy.setter + def NominalMinEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalMinEnergy" in self._dataset: + del self._dataset.NominalMinEnergy + else: + self._dataset.NominalMinEnergy = value diff --git a/tdwii_plus_examples/domain_model/multienergy_ctx_ray_source_sequence_item.py b/tdwii_plus_examples/domain_model/multienergy_ctx_ray_source_sequence_item.py new file mode 100644 index 0000000..249a99c --- /dev/null +++ b/tdwii_plus_examples/domain_model/multienergy_ctx_ray_source_sequence_item.py @@ -0,0 +1,138 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class MultienergyCTXRaySourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GeneratorPower(self) -> Optional[int]: + if "GeneratorPower" in self._dataset: + return self._dataset.GeneratorPower + return None + + @GeneratorPower.setter + def GeneratorPower(self, value: Optional[int]): + if value is None: + if "GeneratorPower" in self._dataset: + del self._dataset.GeneratorPower + else: + self._dataset.GeneratorPower = value + + @property + def XRaySourceIndex(self) -> Optional[int]: + if "XRaySourceIndex" in self._dataset: + return self._dataset.XRaySourceIndex + return None + + @XRaySourceIndex.setter + def XRaySourceIndex(self, value: Optional[int]): + if value is None: + if "XRaySourceIndex" in self._dataset: + del self._dataset.XRaySourceIndex + else: + self._dataset.XRaySourceIndex = value + + @property + def XRaySourceID(self) -> Optional[str]: + if "XRaySourceID" in self._dataset: + return self._dataset.XRaySourceID + return None + + @XRaySourceID.setter + def XRaySourceID(self, value: Optional[str]): + if value is None: + if "XRaySourceID" in self._dataset: + del self._dataset.XRaySourceID + else: + self._dataset.XRaySourceID = value + + @property + def MultienergySourceTechnique(self) -> Optional[str]: + if "MultienergySourceTechnique" in self._dataset: + return self._dataset.MultienergySourceTechnique + return None + + @MultienergySourceTechnique.setter + def MultienergySourceTechnique(self, value: Optional[str]): + if value is None: + if "MultienergySourceTechnique" in self._dataset: + del self._dataset.MultienergySourceTechnique + else: + self._dataset.MultienergySourceTechnique = value + + @property + def SourceStartDateTime(self) -> Optional[str]: + if "SourceStartDateTime" in self._dataset: + return self._dataset.SourceStartDateTime + return None + + @SourceStartDateTime.setter + def SourceStartDateTime(self, value: Optional[str]): + if value is None: + if "SourceStartDateTime" in self._dataset: + del self._dataset.SourceStartDateTime + else: + self._dataset.SourceStartDateTime = value + + @property + def SourceEndDateTime(self) -> Optional[str]: + if "SourceEndDateTime" in self._dataset: + return self._dataset.SourceEndDateTime + return None + + @SourceEndDateTime.setter + def SourceEndDateTime(self, value: Optional[str]): + if value is None: + if "SourceEndDateTime" in self._dataset: + del self._dataset.SourceEndDateTime + else: + self._dataset.SourceEndDateTime = value + + @property + def SwitchingPhaseNumber(self) -> Optional[int]: + if "SwitchingPhaseNumber" in self._dataset: + return self._dataset.SwitchingPhaseNumber + return None + + @SwitchingPhaseNumber.setter + def SwitchingPhaseNumber(self, value: Optional[int]): + if value is None: + if "SwitchingPhaseNumber" in self._dataset: + del self._dataset.SwitchingPhaseNumber + else: + self._dataset.SwitchingPhaseNumber = value + + @property + def SwitchingPhaseNominalDuration(self) -> Optional[Decimal]: + if "SwitchingPhaseNominalDuration" in self._dataset: + return self._dataset.SwitchingPhaseNominalDuration + return None + + @SwitchingPhaseNominalDuration.setter + def SwitchingPhaseNominalDuration(self, value: Optional[Decimal]): + if value is None: + if "SwitchingPhaseNominalDuration" in self._dataset: + del self._dataset.SwitchingPhaseNominalDuration + else: + self._dataset.SwitchingPhaseNominalDuration = value + + @property + def SwitchingPhaseTransitionDuration(self) -> Optional[Decimal]: + if "SwitchingPhaseTransitionDuration" in self._dataset: + return self._dataset.SwitchingPhaseTransitionDuration + return None + + @SwitchingPhaseTransitionDuration.setter + def SwitchingPhaseTransitionDuration(self, value: Optional[Decimal]): + if value is None: + if "SwitchingPhaseTransitionDuration" in self._dataset: + del self._dataset.SwitchingPhaseTransitionDuration + else: + self._dataset.SwitchingPhaseTransitionDuration = value diff --git a/tdwii_plus_examples/domain_model/mv_imaging_generation_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/mv_imaging_generation_parameters_sequence_item.py new file mode 100644 index 0000000..fd95fc3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mv_imaging_generation_parameters_sequence_item.py @@ -0,0 +1,176 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .delivery_rate_unit_sequence_item import DeliveryRateUnitSequenceItem +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem + + +class MVImagingGenerationParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EnergyDerivationCodeSequence: List[CodeSequenceItem] = [] + self._DeliveryRateUnitSequence: List[DeliveryRateUnitSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EnergyDerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EnergyDerivationCodeSequence" in self._dataset: + if len(self._EnergyDerivationCodeSequence) == len(self._dataset.EnergyDerivationCodeSequence): + return self._EnergyDerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EnergyDerivationCodeSequence] + return None + + @EnergyDerivationCodeSequence.setter + def EnergyDerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EnergyDerivationCodeSequence = [] + if "EnergyDerivationCodeSequence" in self._dataset: + del self._dataset.EnergyDerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EnergyDerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EnergyDerivationCodeSequence = value + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.clear() + self._dataset.EnergyDerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyDerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EnergyDerivationCodeSequence.append(item) + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.append(item.to_dataset()) + + @property + def MaximumCumulativeMetersetExposure(self) -> Optional[float]: + if "MaximumCumulativeMetersetExposure" in self._dataset: + return self._dataset.MaximumCumulativeMetersetExposure + return None + + @MaximumCumulativeMetersetExposure.setter + def MaximumCumulativeMetersetExposure(self, value: Optional[float]): + if value is None: + if "MaximumCumulativeMetersetExposure" in self._dataset: + del self._dataset.MaximumCumulativeMetersetExposure + else: + self._dataset.MaximumCumulativeMetersetExposure = value + + @property + def DeliveryRate(self) -> Optional[float]: + if "DeliveryRate" in self._dataset: + return self._dataset.DeliveryRate + return None + + @DeliveryRate.setter + def DeliveryRate(self, value: Optional[float]): + if value is None: + if "DeliveryRate" in self._dataset: + del self._dataset.DeliveryRate + else: + self._dataset.DeliveryRate = value + + @property + def DeliveryRateUnitSequence(self) -> Optional[List[DeliveryRateUnitSequenceItem]]: + if "DeliveryRateUnitSequence" in self._dataset: + if len(self._DeliveryRateUnitSequence) == len(self._dataset.DeliveryRateUnitSequence): + return self._DeliveryRateUnitSequence + else: + return [DeliveryRateUnitSequenceItem(x) for x in self._dataset.DeliveryRateUnitSequence] + return None + + @DeliveryRateUnitSequence.setter + def DeliveryRateUnitSequence(self, value: Optional[List[DeliveryRateUnitSequenceItem]]): + if value is None: + self._DeliveryRateUnitSequence = [] + if "DeliveryRateUnitSequence" in self._dataset: + del self._dataset.DeliveryRateUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, DeliveryRateUnitSequenceItem) for item in value): + raise ValueError("DeliveryRateUnitSequence must be a list of DeliveryRateUnitSequenceItem objects") + else: + self._DeliveryRateUnitSequence = value + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.clear() + self._dataset.DeliveryRateUnitSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryRateUnit(self, item: DeliveryRateUnitSequenceItem): + if not isinstance(item, DeliveryRateUnitSequenceItem): + raise ValueError("Item must be an instance of DeliveryRateUnitSequenceItem") + self._DeliveryRateUnitSequence.append(item) + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/mydriatic_agent_concentration_units_sequence_item.py b/tdwii_plus_examples/domain_model/mydriatic_agent_concentration_units_sequence_item.py new file mode 100644 index 0000000..16bfd97 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mydriatic_agent_concentration_units_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class MydriaticAgentConcentrationUnitsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/mydriatic_agent_sequence_item.py b/tdwii_plus_examples/domain_model/mydriatic_agent_sequence_item.py new file mode 100644 index 0000000..ef48ed1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/mydriatic_agent_sequence_item.py @@ -0,0 +1,107 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .mydriatic_agent_concentration_units_sequence_item import ( + MydriaticAgentConcentrationUnitsSequenceItem, +) + + +class MydriaticAgentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MydriaticAgentCodeSequence: List[CodeSequenceItem] = [] + self._MydriaticAgentConcentrationUnitsSequence: List[MydriaticAgentConcentrationUnitsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MydriaticAgentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MydriaticAgentCodeSequence" in self._dataset: + if len(self._MydriaticAgentCodeSequence) == len(self._dataset.MydriaticAgentCodeSequence): + return self._MydriaticAgentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MydriaticAgentCodeSequence] + return None + + @MydriaticAgentCodeSequence.setter + def MydriaticAgentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MydriaticAgentCodeSequence = [] + if "MydriaticAgentCodeSequence" in self._dataset: + del self._dataset.MydriaticAgentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MydriaticAgentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MydriaticAgentCodeSequence = value + if "MydriaticAgentCodeSequence" not in self._dataset: + self._dataset.MydriaticAgentCodeSequence = pydicom.Sequence() + self._dataset.MydriaticAgentCodeSequence.clear() + self._dataset.MydriaticAgentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MydriaticAgentCodeSequence.append(item) + if "MydriaticAgentCodeSequence" not in self._dataset: + self._dataset.MydriaticAgentCodeSequence = pydicom.Sequence() + self._dataset.MydriaticAgentCodeSequence.append(item.to_dataset()) + + @property + def MydriaticAgentConcentrationUnitsSequence(self) -> Optional[List[MydriaticAgentConcentrationUnitsSequenceItem]]: + if "MydriaticAgentConcentrationUnitsSequence" in self._dataset: + if len(self._MydriaticAgentConcentrationUnitsSequence) == len( + self._dataset.MydriaticAgentConcentrationUnitsSequence + ): + return self._MydriaticAgentConcentrationUnitsSequence + else: + return [ + MydriaticAgentConcentrationUnitsSequenceItem(x) + for x in self._dataset.MydriaticAgentConcentrationUnitsSequence + ] + return None + + @MydriaticAgentConcentrationUnitsSequence.setter + def MydriaticAgentConcentrationUnitsSequence(self, value: Optional[List[MydriaticAgentConcentrationUnitsSequenceItem]]): + if value is None: + self._MydriaticAgentConcentrationUnitsSequence = [] + if "MydriaticAgentConcentrationUnitsSequence" in self._dataset: + del self._dataset.MydriaticAgentConcentrationUnitsSequence + elif not isinstance(value, list) or not all( + isinstance(item, MydriaticAgentConcentrationUnitsSequenceItem) for item in value + ): + raise ValueError( + "MydriaticAgentConcentrationUnitsSequence must be a list of MydriaticAgentConcentrationUnitsSequenceItem" + " objects" + ) + else: + self._MydriaticAgentConcentrationUnitsSequence = value + if "MydriaticAgentConcentrationUnitsSequence" not in self._dataset: + self._dataset.MydriaticAgentConcentrationUnitsSequence = pydicom.Sequence() + self._dataset.MydriaticAgentConcentrationUnitsSequence.clear() + self._dataset.MydriaticAgentConcentrationUnitsSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgentConcentrationUnits(self, item: MydriaticAgentConcentrationUnitsSequenceItem): + if not isinstance(item, MydriaticAgentConcentrationUnitsSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentConcentrationUnitsSequenceItem") + self._MydriaticAgentConcentrationUnitsSequence.append(item) + if "MydriaticAgentConcentrationUnitsSequence" not in self._dataset: + self._dataset.MydriaticAgentConcentrationUnitsSequence = pydicom.Sequence() + self._dataset.MydriaticAgentConcentrationUnitsSequence.append(item.to_dataset()) + + @property + def MydriaticAgentConcentration(self) -> Optional[Decimal]: + if "MydriaticAgentConcentration" in self._dataset: + return self._dataset.MydriaticAgentConcentration + return None + + @MydriaticAgentConcentration.setter + def MydriaticAgentConcentration(self, value: Optional[Decimal]): + if value is None: + if "MydriaticAgentConcentration" in self._dataset: + del self._dataset.MydriaticAgentConcentration + else: + self._dataset.MydriaticAgentConcentration = value diff --git a/tdwii_plus_examples/domain_model/nominal_screen_definition_sequence_item.py b/tdwii_plus_examples/domain_model/nominal_screen_definition_sequence_item.py new file mode 100644 index 0000000..d246c8b --- /dev/null +++ b/tdwii_plus_examples/domain_model/nominal_screen_definition_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class NominalScreenDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfVerticalPixels(self) -> Optional[int]: + if "NumberOfVerticalPixels" in self._dataset: + return self._dataset.NumberOfVerticalPixels + return None + + @NumberOfVerticalPixels.setter + def NumberOfVerticalPixels(self, value: Optional[int]): + if value is None: + if "NumberOfVerticalPixels" in self._dataset: + del self._dataset.NumberOfVerticalPixels + else: + self._dataset.NumberOfVerticalPixels = value + + @property + def NumberOfHorizontalPixels(self) -> Optional[int]: + if "NumberOfHorizontalPixels" in self._dataset: + return self._dataset.NumberOfHorizontalPixels + return None + + @NumberOfHorizontalPixels.setter + def NumberOfHorizontalPixels(self, value: Optional[int]): + if value is None: + if "NumberOfHorizontalPixels" in self._dataset: + del self._dataset.NumberOfHorizontalPixels + else: + self._dataset.NumberOfHorizontalPixels = value + + @property + def DisplayEnvironmentSpatialPosition(self) -> Optional[List[float]]: + if "DisplayEnvironmentSpatialPosition" in self._dataset: + return self._dataset.DisplayEnvironmentSpatialPosition + return None + + @DisplayEnvironmentSpatialPosition.setter + def DisplayEnvironmentSpatialPosition(self, value: Optional[List[float]]): + if value is None: + if "DisplayEnvironmentSpatialPosition" in self._dataset: + del self._dataset.DisplayEnvironmentSpatialPosition + else: + self._dataset.DisplayEnvironmentSpatialPosition = value + + @property + def ScreenMinimumGrayscaleBitDepth(self) -> Optional[int]: + if "ScreenMinimumGrayscaleBitDepth" in self._dataset: + return self._dataset.ScreenMinimumGrayscaleBitDepth + return None + + @ScreenMinimumGrayscaleBitDepth.setter + def ScreenMinimumGrayscaleBitDepth(self, value: Optional[int]): + if value is None: + if "ScreenMinimumGrayscaleBitDepth" in self._dataset: + del self._dataset.ScreenMinimumGrayscaleBitDepth + else: + self._dataset.ScreenMinimumGrayscaleBitDepth = value + + @property + def ScreenMinimumColorBitDepth(self) -> Optional[int]: + if "ScreenMinimumColorBitDepth" in self._dataset: + return self._dataset.ScreenMinimumColorBitDepth + return None + + @ScreenMinimumColorBitDepth.setter + def ScreenMinimumColorBitDepth(self, value: Optional[int]): + if value is None: + if "ScreenMinimumColorBitDepth" in self._dataset: + del self._dataset.ScreenMinimumColorBitDepth + else: + self._dataset.ScreenMinimumColorBitDepth = value + + @property + def ApplicationMaximumRepaintTime(self) -> Optional[int]: + if "ApplicationMaximumRepaintTime" in self._dataset: + return self._dataset.ApplicationMaximumRepaintTime + return None + + @ApplicationMaximumRepaintTime.setter + def ApplicationMaximumRepaintTime(self, value: Optional[int]): + if value is None: + if "ApplicationMaximumRepaintTime" in self._dataset: + del self._dataset.ApplicationMaximumRepaintTime + else: + self._dataset.ApplicationMaximumRepaintTime = value diff --git a/tdwii_plus_examples/domain_model/nonconforming_modified_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/nonconforming_modified_attributes_sequence_item.py new file mode 100644 index 0000000..22487a2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/nonconforming_modified_attributes_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class NonconformingModifiedAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectorAttribute(self) -> Optional[int]: + if "SelectorAttribute" in self._dataset: + return self._dataset.SelectorAttribute + return None + + @SelectorAttribute.setter + def SelectorAttribute(self, value: Optional[int]): + if value is None: + if "SelectorAttribute" in self._dataset: + del self._dataset.SelectorAttribute + else: + self._dataset.SelectorAttribute = value + + @property + def SelectorValueNumber(self) -> Optional[int]: + if "SelectorValueNumber" in self._dataset: + return self._dataset.SelectorValueNumber + return None + + @SelectorValueNumber.setter + def SelectorValueNumber(self, value: Optional[int]): + if value is None: + if "SelectorValueNumber" in self._dataset: + del self._dataset.SelectorValueNumber + else: + self._dataset.SelectorValueNumber = value + + @property + def SelectorSequencePointer(self) -> Optional[List[int]]: + if "SelectorSequencePointer" in self._dataset: + return self._dataset.SelectorSequencePointer + return None + + @SelectorSequencePointer.setter + def SelectorSequencePointer(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointer" in self._dataset: + del self._dataset.SelectorSequencePointer + else: + self._dataset.SelectorSequencePointer = value + + @property + def SelectorSequencePointerPrivateCreator(self) -> Optional[List[str]]: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + return self._dataset.SelectorSequencePointerPrivateCreator + return None + + @SelectorSequencePointerPrivateCreator.setter + def SelectorSequencePointerPrivateCreator(self, value: Optional[List[str]]): + if value is None: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + del self._dataset.SelectorSequencePointerPrivateCreator + else: + self._dataset.SelectorSequencePointerPrivateCreator = value + + @property + def SelectorAttributePrivateCreator(self) -> Optional[str]: + if "SelectorAttributePrivateCreator" in self._dataset: + return self._dataset.SelectorAttributePrivateCreator + return None + + @SelectorAttributePrivateCreator.setter + def SelectorAttributePrivateCreator(self, value: Optional[str]): + if value is None: + if "SelectorAttributePrivateCreator" in self._dataset: + del self._dataset.SelectorAttributePrivateCreator + else: + self._dataset.SelectorAttributePrivateCreator = value + + @property + def SelectorSequencePointerItems(self) -> Optional[List[int]]: + if "SelectorSequencePointerItems" in self._dataset: + return self._dataset.SelectorSequencePointerItems + return None + + @SelectorSequencePointerItems.setter + def SelectorSequencePointerItems(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointerItems" in self._dataset: + del self._dataset.SelectorSequencePointerItems + else: + self._dataset.SelectorSequencePointerItems = value + + @property + def NonconformingDataElementValue(self) -> Optional[bytes]: + if "NonconformingDataElementValue" in self._dataset: + return self._dataset.NonconformingDataElementValue + return None + + @NonconformingDataElementValue.setter + def NonconformingDataElementValue(self, value: Optional[bytes]): + if value is None: + if "NonconformingDataElementValue" in self._dataset: + del self._dataset.NonconformingDataElementValue + else: + self._dataset.NonconformingDataElementValue = value diff --git a/tdwii_plus_examples/domain_model/notch_filter_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/notch_filter_characteristics_sequence_item.py new file mode 100644 index 0000000..1622346 --- /dev/null +++ b/tdwii_plus_examples/domain_model/notch_filter_characteristics_sequence_item.py @@ -0,0 +1,213 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .analog_filter_characteristics_sequence_item import ( + AnalogFilterCharacteristicsSequenceItem, +) +from .digital_filter_characteristics_sequence_item import ( + DigitalFilterCharacteristicsSequenceItem, +) +from .filter_lookup_table_sequence_item import FilterLookupTableSequenceItem + + +class NotchFilterCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnalogFilterCharacteristicsSequence: List[AnalogFilterCharacteristicsSequenceItem] = [] + self._DigitalFilterCharacteristicsSequence: List[DigitalFilterCharacteristicsSequenceItem] = [] + self._FilterLookupTableSequence: List[FilterLookupTableSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FilterLowFrequency(self) -> Optional[Decimal]: + if "FilterLowFrequency" in self._dataset: + return self._dataset.FilterLowFrequency + return None + + @FilterLowFrequency.setter + def FilterLowFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterLowFrequency" in self._dataset: + del self._dataset.FilterLowFrequency + else: + self._dataset.FilterLowFrequency = value + + @property + def FilterHighFrequency(self) -> Optional[Decimal]: + if "FilterHighFrequency" in self._dataset: + return self._dataset.FilterHighFrequency + return None + + @FilterHighFrequency.setter + def FilterHighFrequency(self, value: Optional[Decimal]): + if value is None: + if "FilterHighFrequency" in self._dataset: + del self._dataset.FilterHighFrequency + else: + self._dataset.FilterHighFrequency = value + + @property + def NotchFilterFrequency(self) -> Optional[Decimal]: + if "NotchFilterFrequency" in self._dataset: + return self._dataset.NotchFilterFrequency + return None + + @NotchFilterFrequency.setter + def NotchFilterFrequency(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterFrequency" in self._dataset: + del self._dataset.NotchFilterFrequency + else: + self._dataset.NotchFilterFrequency = value + + @property + def NotchFilterBandwidth(self) -> Optional[Decimal]: + if "NotchFilterBandwidth" in self._dataset: + return self._dataset.NotchFilterBandwidth + return None + + @NotchFilterBandwidth.setter + def NotchFilterBandwidth(self, value: Optional[Decimal]): + if value is None: + if "NotchFilterBandwidth" in self._dataset: + del self._dataset.NotchFilterBandwidth + else: + self._dataset.NotchFilterBandwidth = value + + @property + def WaveformFilterType(self) -> Optional[str]: + if "WaveformFilterType" in self._dataset: + return self._dataset.WaveformFilterType + return None + + @WaveformFilterType.setter + def WaveformFilterType(self, value: Optional[str]): + if value is None: + if "WaveformFilterType" in self._dataset: + del self._dataset.WaveformFilterType + else: + self._dataset.WaveformFilterType = value + + @property + def AnalogFilterCharacteristicsSequence(self) -> Optional[List[AnalogFilterCharacteristicsSequenceItem]]: + if "AnalogFilterCharacteristicsSequence" in self._dataset: + if len(self._AnalogFilterCharacteristicsSequence) == len(self._dataset.AnalogFilterCharacteristicsSequence): + return self._AnalogFilterCharacteristicsSequence + else: + return [AnalogFilterCharacteristicsSequenceItem(x) for x in self._dataset.AnalogFilterCharacteristicsSequence] + return None + + @AnalogFilterCharacteristicsSequence.setter + def AnalogFilterCharacteristicsSequence(self, value: Optional[List[AnalogFilterCharacteristicsSequenceItem]]): + if value is None: + self._AnalogFilterCharacteristicsSequence = [] + if "AnalogFilterCharacteristicsSequence" in self._dataset: + del self._dataset.AnalogFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, AnalogFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "AnalogFilterCharacteristicsSequence must be a list of AnalogFilterCharacteristicsSequenceItem objects" + ) + else: + self._AnalogFilterCharacteristicsSequence = value + if "AnalogFilterCharacteristicsSequence" not in self._dataset: + self._dataset.AnalogFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.AnalogFilterCharacteristicsSequence.clear() + self._dataset.AnalogFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_AnalogFilterCharacteristics(self, item: AnalogFilterCharacteristicsSequenceItem): + if not isinstance(item, AnalogFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of AnalogFilterCharacteristicsSequenceItem") + self._AnalogFilterCharacteristicsSequence.append(item) + if "AnalogFilterCharacteristicsSequence" not in self._dataset: + self._dataset.AnalogFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.AnalogFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def DigitalFilterCharacteristicsSequence(self) -> Optional[List[DigitalFilterCharacteristicsSequenceItem]]: + if "DigitalFilterCharacteristicsSequence" in self._dataset: + if len(self._DigitalFilterCharacteristicsSequence) == len(self._dataset.DigitalFilterCharacteristicsSequence): + return self._DigitalFilterCharacteristicsSequence + else: + return [ + DigitalFilterCharacteristicsSequenceItem(x) for x in self._dataset.DigitalFilterCharacteristicsSequence + ] + return None + + @DigitalFilterCharacteristicsSequence.setter + def DigitalFilterCharacteristicsSequence(self, value: Optional[List[DigitalFilterCharacteristicsSequenceItem]]): + if value is None: + self._DigitalFilterCharacteristicsSequence = [] + if "DigitalFilterCharacteristicsSequence" in self._dataset: + del self._dataset.DigitalFilterCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, DigitalFilterCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "DigitalFilterCharacteristicsSequence must be a list of DigitalFilterCharacteristicsSequenceItem objects" + ) + else: + self._DigitalFilterCharacteristicsSequence = value + if "DigitalFilterCharacteristicsSequence" not in self._dataset: + self._dataset.DigitalFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.DigitalFilterCharacteristicsSequence.clear() + self._dataset.DigitalFilterCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalFilterCharacteristics(self, item: DigitalFilterCharacteristicsSequenceItem): + if not isinstance(item, DigitalFilterCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of DigitalFilterCharacteristicsSequenceItem") + self._DigitalFilterCharacteristicsSequence.append(item) + if "DigitalFilterCharacteristicsSequence" not in self._dataset: + self._dataset.DigitalFilterCharacteristicsSequence = pydicom.Sequence() + self._dataset.DigitalFilterCharacteristicsSequence.append(item.to_dataset()) + + @property + def WaveformFilterDescription(self) -> Optional[str]: + if "WaveformFilterDescription" in self._dataset: + return self._dataset.WaveformFilterDescription + return None + + @WaveformFilterDescription.setter + def WaveformFilterDescription(self, value: Optional[str]): + if value is None: + if "WaveformFilterDescription" in self._dataset: + del self._dataset.WaveformFilterDescription + else: + self._dataset.WaveformFilterDescription = value + + @property + def FilterLookupTableSequence(self) -> Optional[List[FilterLookupTableSequenceItem]]: + if "FilterLookupTableSequence" in self._dataset: + if len(self._FilterLookupTableSequence) == len(self._dataset.FilterLookupTableSequence): + return self._FilterLookupTableSequence + else: + return [FilterLookupTableSequenceItem(x) for x in self._dataset.FilterLookupTableSequence] + return None + + @FilterLookupTableSequence.setter + def FilterLookupTableSequence(self, value: Optional[List[FilterLookupTableSequenceItem]]): + if value is None: + self._FilterLookupTableSequence = [] + if "FilterLookupTableSequence" in self._dataset: + del self._dataset.FilterLookupTableSequence + elif not isinstance(value, list) or not all(isinstance(item, FilterLookupTableSequenceItem) for item in value): + raise ValueError("FilterLookupTableSequence must be a list of FilterLookupTableSequenceItem objects") + else: + self._FilterLookupTableSequence = value + if "FilterLookupTableSequence" not in self._dataset: + self._dataset.FilterLookupTableSequence = pydicom.Sequence() + self._dataset.FilterLookupTableSequence.clear() + self._dataset.FilterLookupTableSequence.extend([item.to_dataset() for item in value]) + + def add_FilterLookupTable(self, item: FilterLookupTableSequenceItem): + if not isinstance(item, FilterLookupTableSequenceItem): + raise ValueError("Item must be an instance of FilterLookupTableSequenceItem") + self._FilterLookupTableSequence.append(item) + if "FilterLookupTableSequence" not in self._dataset: + self._dataset.FilterLookupTableSequence = pydicom.Sequence() + self._dataset.FilterLookupTableSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/nuclear_medicine_image.py b/tdwii_plus_examples/domain_model/nuclear_medicine_image.py new file mode 100644 index 0000000..e7108d6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/nuclear_medicine_image.py @@ -0,0 +1,6886 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .detector_information_sequence_item import DetectorInformationSequenceItem +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .energy_window_information_sequence_item import EnergyWindowInformationSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .gated_information_sequence_item import GatedInformationSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_drug_information_sequence_item import ( + InterventionDrugInformationSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .phase_information_sequence_item import PhaseInformationSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiopharmaceutical_information_sequence_item import ( + RadiopharmaceuticalInformationSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rotation_information_sequence_item import RotationInformationSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class NuclearMedicineImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._DetectorInformationSequence: List[DetectorInformationSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhaseInformationSequence: List[PhaseInformationSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._GatedInformationSequence: List[GatedInformationSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._RotationInformationSequence: List[RotationInformationSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._InterventionDrugInformationSequence: List[InterventionDrugInformationSequenceItem] = [] + self._EnergyWindowInformationSequence: List[EnergyWindowInformationSequenceItem] = [] + self._RadiopharmaceuticalInformationSequence: List[RadiopharmaceuticalInformationSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def DetectorInformationSequence(self) -> Optional[List[DetectorInformationSequenceItem]]: + if "DetectorInformationSequence" in self._dataset: + if len(self._DetectorInformationSequence) == len(self._dataset.DetectorInformationSequence): + return self._DetectorInformationSequence + else: + return [DetectorInformationSequenceItem(x) for x in self._dataset.DetectorInformationSequence] + return None + + @DetectorInformationSequence.setter + def DetectorInformationSequence(self, value: Optional[List[DetectorInformationSequenceItem]]): + if value is None: + self._DetectorInformationSequence = [] + if "DetectorInformationSequence" in self._dataset: + del self._dataset.DetectorInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, DetectorInformationSequenceItem) for item in value): + raise ValueError("DetectorInformationSequence must be a list of DetectorInformationSequenceItem objects") + else: + self._DetectorInformationSequence = value + if "DetectorInformationSequence" not in self._dataset: + self._dataset.DetectorInformationSequence = pydicom.Sequence() + self._dataset.DetectorInformationSequence.clear() + self._dataset.DetectorInformationSequence.extend([item.to_dataset() for item in value]) + + def add_DetectorInformation(self, item: DetectorInformationSequenceItem): + if not isinstance(item, DetectorInformationSequenceItem): + raise ValueError("Item must be an instance of DetectorInformationSequenceItem") + self._DetectorInformationSequence.append(item) + if "DetectorInformationSequence" not in self._dataset: + self._dataset.DetectorInformationSequence = pydicom.Sequence() + self._dataset.DetectorInformationSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def PhaseInformationSequence(self) -> Optional[List[PhaseInformationSequenceItem]]: + if "PhaseInformationSequence" in self._dataset: + if len(self._PhaseInformationSequence) == len(self._dataset.PhaseInformationSequence): + return self._PhaseInformationSequence + else: + return [PhaseInformationSequenceItem(x) for x in self._dataset.PhaseInformationSequence] + return None + + @PhaseInformationSequence.setter + def PhaseInformationSequence(self, value: Optional[List[PhaseInformationSequenceItem]]): + if value is None: + self._PhaseInformationSequence = [] + if "PhaseInformationSequence" in self._dataset: + del self._dataset.PhaseInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PhaseInformationSequenceItem) for item in value): + raise ValueError("PhaseInformationSequence must be a list of PhaseInformationSequenceItem objects") + else: + self._PhaseInformationSequence = value + if "PhaseInformationSequence" not in self._dataset: + self._dataset.PhaseInformationSequence = pydicom.Sequence() + self._dataset.PhaseInformationSequence.clear() + self._dataset.PhaseInformationSequence.extend([item.to_dataset() for item in value]) + + def add_PhaseInformation(self, item: PhaseInformationSequenceItem): + if not isinstance(item, PhaseInformationSequenceItem): + raise ValueError("Item must be an instance of PhaseInformationSequenceItem") + self._PhaseInformationSequence.append(item) + if "PhaseInformationSequence" not in self._dataset: + self._dataset.PhaseInformationSequence = pydicom.Sequence() + self._dataset.PhaseInformationSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def SliceLocation(self) -> Optional[Decimal]: + if "SliceLocation" in self._dataset: + return self._dataset.SliceLocation + return None + + @SliceLocation.setter + def SliceLocation(self, value: Optional[Decimal]): + if value is None: + if "SliceLocation" in self._dataset: + del self._dataset.SliceLocation + else: + self._dataset.SliceLocation = value + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EnergyWindowVector(self) -> Optional[List[int]]: + if "EnergyWindowVector" in self._dataset: + return self._dataset.EnergyWindowVector + return None + + @EnergyWindowVector.setter + def EnergyWindowVector(self, value: Optional[List[int]]): + if value is None: + if "EnergyWindowVector" in self._dataset: + del self._dataset.EnergyWindowVector + else: + self._dataset.EnergyWindowVector = value + + @property + def NumberOfEnergyWindows(self) -> Optional[int]: + if "NumberOfEnergyWindows" in self._dataset: + return self._dataset.NumberOfEnergyWindows + return None + + @NumberOfEnergyWindows.setter + def NumberOfEnergyWindows(self, value: Optional[int]): + if value is None: + if "NumberOfEnergyWindows" in self._dataset: + del self._dataset.NumberOfEnergyWindows + else: + self._dataset.NumberOfEnergyWindows = value + + @property + def DetectorVector(self) -> Optional[List[int]]: + if "DetectorVector" in self._dataset: + return self._dataset.DetectorVector + return None + + @DetectorVector.setter + def DetectorVector(self, value: Optional[List[int]]): + if value is None: + if "DetectorVector" in self._dataset: + del self._dataset.DetectorVector + else: + self._dataset.DetectorVector = value + + @property + def NumberOfDetectors(self) -> Optional[int]: + if "NumberOfDetectors" in self._dataset: + return self._dataset.NumberOfDetectors + return None + + @NumberOfDetectors.setter + def NumberOfDetectors(self, value: Optional[int]): + if value is None: + if "NumberOfDetectors" in self._dataset: + del self._dataset.NumberOfDetectors + else: + self._dataset.NumberOfDetectors = value + + @property + def PhaseVector(self) -> Optional[List[int]]: + if "PhaseVector" in self._dataset: + return self._dataset.PhaseVector + return None + + @PhaseVector.setter + def PhaseVector(self, value: Optional[List[int]]): + if value is None: + if "PhaseVector" in self._dataset: + del self._dataset.PhaseVector + else: + self._dataset.PhaseVector = value + + @property + def NumberOfPhases(self) -> Optional[int]: + if "NumberOfPhases" in self._dataset: + return self._dataset.NumberOfPhases + return None + + @NumberOfPhases.setter + def NumberOfPhases(self, value: Optional[int]): + if value is None: + if "NumberOfPhases" in self._dataset: + del self._dataset.NumberOfPhases + else: + self._dataset.NumberOfPhases = value + + @property + def RotationVector(self) -> Optional[List[int]]: + if "RotationVector" in self._dataset: + return self._dataset.RotationVector + return None + + @RotationVector.setter + def RotationVector(self, value: Optional[List[int]]): + if value is None: + if "RotationVector" in self._dataset: + del self._dataset.RotationVector + else: + self._dataset.RotationVector = value + + @property + def NumberOfRotations(self) -> Optional[int]: + if "NumberOfRotations" in self._dataset: + return self._dataset.NumberOfRotations + return None + + @NumberOfRotations.setter + def NumberOfRotations(self, value: Optional[int]): + if value is None: + if "NumberOfRotations" in self._dataset: + del self._dataset.NumberOfRotations + else: + self._dataset.NumberOfRotations = value + + @property + def RRIntervalVector(self) -> Optional[List[int]]: + if "RRIntervalVector" in self._dataset: + return self._dataset.RRIntervalVector + return None + + @RRIntervalVector.setter + def RRIntervalVector(self, value: Optional[List[int]]): + if value is None: + if "RRIntervalVector" in self._dataset: + del self._dataset.RRIntervalVector + else: + self._dataset.RRIntervalVector = value + + @property + def NumberOfRRIntervals(self) -> Optional[int]: + if "NumberOfRRIntervals" in self._dataset: + return self._dataset.NumberOfRRIntervals + return None + + @NumberOfRRIntervals.setter + def NumberOfRRIntervals(self, value: Optional[int]): + if value is None: + if "NumberOfRRIntervals" in self._dataset: + del self._dataset.NumberOfRRIntervals + else: + self._dataset.NumberOfRRIntervals = value + + @property + def TimeSlotVector(self) -> Optional[List[int]]: + if "TimeSlotVector" in self._dataset: + return self._dataset.TimeSlotVector + return None + + @TimeSlotVector.setter + def TimeSlotVector(self, value: Optional[List[int]]): + if value is None: + if "TimeSlotVector" in self._dataset: + del self._dataset.TimeSlotVector + else: + self._dataset.TimeSlotVector = value + + @property + def NumberOfTimeSlots(self) -> Optional[int]: + if "NumberOfTimeSlots" in self._dataset: + return self._dataset.NumberOfTimeSlots + return None + + @NumberOfTimeSlots.setter + def NumberOfTimeSlots(self, value: Optional[int]): + if value is None: + if "NumberOfTimeSlots" in self._dataset: + del self._dataset.NumberOfTimeSlots + else: + self._dataset.NumberOfTimeSlots = value + + @property + def SliceVector(self) -> Optional[List[int]]: + if "SliceVector" in self._dataset: + return self._dataset.SliceVector + return None + + @SliceVector.setter + def SliceVector(self, value: Optional[List[int]]): + if value is None: + if "SliceVector" in self._dataset: + del self._dataset.SliceVector + else: + self._dataset.SliceVector = value + + @property + def NumberOfSlices(self) -> Optional[int]: + if "NumberOfSlices" in self._dataset: + return self._dataset.NumberOfSlices + return None + + @NumberOfSlices.setter + def NumberOfSlices(self, value: Optional[int]): + if value is None: + if "NumberOfSlices" in self._dataset: + del self._dataset.NumberOfSlices + else: + self._dataset.NumberOfSlices = value + + @property + def AngularViewVector(self) -> Optional[List[int]]: + if "AngularViewVector" in self._dataset: + return self._dataset.AngularViewVector + return None + + @AngularViewVector.setter + def AngularViewVector(self, value: Optional[List[int]]): + if value is None: + if "AngularViewVector" in self._dataset: + del self._dataset.AngularViewVector + else: + self._dataset.AngularViewVector = value + + @property + def TimeSliceVector(self) -> Optional[List[int]]: + if "TimeSliceVector" in self._dataset: + return self._dataset.TimeSliceVector + return None + + @TimeSliceVector.setter + def TimeSliceVector(self, value: Optional[List[int]]): + if value is None: + if "TimeSliceVector" in self._dataset: + del self._dataset.TimeSliceVector + else: + self._dataset.TimeSliceVector = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def BeatRejectionFlag(self) -> Optional[str]: + if "BeatRejectionFlag" in self._dataset: + return self._dataset.BeatRejectionFlag + return None + + @BeatRejectionFlag.setter + def BeatRejectionFlag(self, value: Optional[str]): + if value is None: + if "BeatRejectionFlag" in self._dataset: + del self._dataset.BeatRejectionFlag + else: + self._dataset.BeatRejectionFlag = value + + @property + def PVCRejection(self) -> Optional[str]: + if "PVCRejection" in self._dataset: + return self._dataset.PVCRejection + return None + + @PVCRejection.setter + def PVCRejection(self, value: Optional[str]): + if value is None: + if "PVCRejection" in self._dataset: + del self._dataset.PVCRejection + else: + self._dataset.PVCRejection = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def HeartRate(self) -> Optional[int]: + if "HeartRate" in self._dataset: + return self._dataset.HeartRate + return None + + @HeartRate.setter + def HeartRate(self, value: Optional[int]): + if value is None: + if "HeartRate" in self._dataset: + del self._dataset.HeartRate + else: + self._dataset.HeartRate = value + + @property + def GatedInformationSequence(self) -> Optional[List[GatedInformationSequenceItem]]: + if "GatedInformationSequence" in self._dataset: + if len(self._GatedInformationSequence) == len(self._dataset.GatedInformationSequence): + return self._GatedInformationSequence + else: + return [GatedInformationSequenceItem(x) for x in self._dataset.GatedInformationSequence] + return None + + @GatedInformationSequence.setter + def GatedInformationSequence(self, value: Optional[List[GatedInformationSequenceItem]]): + if value is None: + self._GatedInformationSequence = [] + if "GatedInformationSequence" in self._dataset: + del self._dataset.GatedInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, GatedInformationSequenceItem) for item in value): + raise ValueError("GatedInformationSequence must be a list of GatedInformationSequenceItem objects") + else: + self._GatedInformationSequence = value + if "GatedInformationSequence" not in self._dataset: + self._dataset.GatedInformationSequence = pydicom.Sequence() + self._dataset.GatedInformationSequence.clear() + self._dataset.GatedInformationSequence.extend([item.to_dataset() for item in value]) + + def add_GatedInformation(self, item: GatedInformationSequenceItem): + if not isinstance(item, GatedInformationSequenceItem): + raise ValueError("Item must be an instance of GatedInformationSequenceItem") + self._GatedInformationSequence.append(item) + if "GatedInformationSequence" not in self._dataset: + self._dataset.GatedInformationSequence = pydicom.Sequence() + self._dataset.GatedInformationSequence.append(item.to_dataset()) + + @property + def NumberOfFramesInOverlay(self) -> Optional[int]: + if "NumberOfFramesInOverlay" in self._dataset: + return self._dataset.NumberOfFramesInOverlay + return None + + @NumberOfFramesInOverlay.setter + def NumberOfFramesInOverlay(self, value: Optional[int]): + if value is None: + if "NumberOfFramesInOverlay" in self._dataset: + del self._dataset.NumberOfFramesInOverlay + else: + self._dataset.NumberOfFramesInOverlay = value + + @property + def ImageFrameOrigin(self) -> Optional[int]: + if "ImageFrameOrigin" in self._dataset: + return self._dataset.ImageFrameOrigin + return None + + @ImageFrameOrigin.setter + def ImageFrameOrigin(self, value: Optional[int]): + if value is None: + if "ImageFrameOrigin" in self._dataset: + del self._dataset.ImageFrameOrigin + else: + self._dataset.ImageFrameOrigin = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def RotationInformationSequence(self) -> Optional[List[RotationInformationSequenceItem]]: + if "RotationInformationSequence" in self._dataset: + if len(self._RotationInformationSequence) == len(self._dataset.RotationInformationSequence): + return self._RotationInformationSequence + else: + return [RotationInformationSequenceItem(x) for x in self._dataset.RotationInformationSequence] + return None + + @RotationInformationSequence.setter + def RotationInformationSequence(self, value: Optional[List[RotationInformationSequenceItem]]): + if value is None: + self._RotationInformationSequence = [] + if "RotationInformationSequence" in self._dataset: + del self._dataset.RotationInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, RotationInformationSequenceItem) for item in value): + raise ValueError("RotationInformationSequence must be a list of RotationInformationSequenceItem objects") + else: + self._RotationInformationSequence = value + if "RotationInformationSequence" not in self._dataset: + self._dataset.RotationInformationSequence = pydicom.Sequence() + self._dataset.RotationInformationSequence.clear() + self._dataset.RotationInformationSequence.extend([item.to_dataset() for item in value]) + + def add_RotationInformation(self, item: RotationInformationSequenceItem): + if not isinstance(item, RotationInformationSequenceItem): + raise ValueError("Item must be an instance of RotationInformationSequenceItem") + self._RotationInformationSequence.append(item) + if "RotationInformationSequence" not in self._dataset: + self._dataset.RotationInformationSequence = pydicom.Sequence() + self._dataset.RotationInformationSequence.append(item.to_dataset()) + + @property + def TypeOfDetectorMotion(self) -> Optional[str]: + if "TypeOfDetectorMotion" in self._dataset: + return self._dataset.TypeOfDetectorMotion + return None + + @TypeOfDetectorMotion.setter + def TypeOfDetectorMotion(self, value: Optional[str]): + if value is None: + if "TypeOfDetectorMotion" in self._dataset: + del self._dataset.TypeOfDetectorMotion + else: + self._dataset.TypeOfDetectorMotion = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def InterventionDrugInformationSequence(self) -> Optional[List[InterventionDrugInformationSequenceItem]]: + if "InterventionDrugInformationSequence" in self._dataset: + if len(self._InterventionDrugInformationSequence) == len(self._dataset.InterventionDrugInformationSequence): + return self._InterventionDrugInformationSequence + else: + return [InterventionDrugInformationSequenceItem(x) for x in self._dataset.InterventionDrugInformationSequence] + return None + + @InterventionDrugInformationSequence.setter + def InterventionDrugInformationSequence(self, value: Optional[List[InterventionDrugInformationSequenceItem]]): + if value is None: + self._InterventionDrugInformationSequence = [] + if "InterventionDrugInformationSequence" in self._dataset: + del self._dataset.InterventionDrugInformationSequence + elif not isinstance(value, list) or not all( + isinstance(item, InterventionDrugInformationSequenceItem) for item in value + ): + raise ValueError( + "InterventionDrugInformationSequence must be a list of InterventionDrugInformationSequenceItem objects" + ) + else: + self._InterventionDrugInformationSequence = value + if "InterventionDrugInformationSequence" not in self._dataset: + self._dataset.InterventionDrugInformationSequence = pydicom.Sequence() + self._dataset.InterventionDrugInformationSequence.clear() + self._dataset.InterventionDrugInformationSequence.extend([item.to_dataset() for item in value]) + + def add_InterventionDrugInformation(self, item: InterventionDrugInformationSequenceItem): + if not isinstance(item, InterventionDrugInformationSequenceItem): + raise ValueError("Item must be an instance of InterventionDrugInformationSequenceItem") + self._InterventionDrugInformationSequence.append(item) + if "InterventionDrugInformationSequence" not in self._dataset: + self._dataset.InterventionDrugInformationSequence = pydicom.Sequence() + self._dataset.InterventionDrugInformationSequence.append(item.to_dataset()) + + @property + def EnergyWindowInformationSequence(self) -> Optional[List[EnergyWindowInformationSequenceItem]]: + if "EnergyWindowInformationSequence" in self._dataset: + if len(self._EnergyWindowInformationSequence) == len(self._dataset.EnergyWindowInformationSequence): + return self._EnergyWindowInformationSequence + else: + return [EnergyWindowInformationSequenceItem(x) for x in self._dataset.EnergyWindowInformationSequence] + return None + + @EnergyWindowInformationSequence.setter + def EnergyWindowInformationSequence(self, value: Optional[List[EnergyWindowInformationSequenceItem]]): + if value is None: + self._EnergyWindowInformationSequence = [] + if "EnergyWindowInformationSequence" in self._dataset: + del self._dataset.EnergyWindowInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, EnergyWindowInformationSequenceItem) for item in value): + raise ValueError("EnergyWindowInformationSequence must be a list of EnergyWindowInformationSequenceItem objects") + else: + self._EnergyWindowInformationSequence = value + if "EnergyWindowInformationSequence" not in self._dataset: + self._dataset.EnergyWindowInformationSequence = pydicom.Sequence() + self._dataset.EnergyWindowInformationSequence.clear() + self._dataset.EnergyWindowInformationSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyWindowInformation(self, item: EnergyWindowInformationSequenceItem): + if not isinstance(item, EnergyWindowInformationSequenceItem): + raise ValueError("Item must be an instance of EnergyWindowInformationSequenceItem") + self._EnergyWindowInformationSequence.append(item) + if "EnergyWindowInformationSequence" not in self._dataset: + self._dataset.EnergyWindowInformationSequence = pydicom.Sequence() + self._dataset.EnergyWindowInformationSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalInformationSequence(self) -> Optional[List[RadiopharmaceuticalInformationSequenceItem]]: + if "RadiopharmaceuticalInformationSequence" in self._dataset: + if len(self._RadiopharmaceuticalInformationSequence) == len(self._dataset.RadiopharmaceuticalInformationSequence): + return self._RadiopharmaceuticalInformationSequence + else: + return [ + RadiopharmaceuticalInformationSequenceItem(x) for x in self._dataset.RadiopharmaceuticalInformationSequence + ] + return None + + @RadiopharmaceuticalInformationSequence.setter + def RadiopharmaceuticalInformationSequence(self, value: Optional[List[RadiopharmaceuticalInformationSequenceItem]]): + if value is None: + self._RadiopharmaceuticalInformationSequence = [] + if "RadiopharmaceuticalInformationSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalInformationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiopharmaceuticalInformationSequenceItem) for item in value + ): + raise ValueError( + "RadiopharmaceuticalInformationSequence must be a list of RadiopharmaceuticalInformationSequenceItem objects" + ) + else: + self._RadiopharmaceuticalInformationSequence = value + if "RadiopharmaceuticalInformationSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalInformationSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalInformationSequence.clear() + self._dataset.RadiopharmaceuticalInformationSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalInformation(self, item: RadiopharmaceuticalInformationSequenceItem): + if not isinstance(item, RadiopharmaceuticalInformationSequenceItem): + raise ValueError("Item must be an instance of RadiopharmaceuticalInformationSequenceItem") + self._RadiopharmaceuticalInformationSequence.append(item) + if "RadiopharmaceuticalInformationSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalInformationSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalInformationSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def CountsAccumulated(self) -> Optional[int]: + if "CountsAccumulated" in self._dataset: + return self._dataset.CountsAccumulated + return None + + @CountsAccumulated.setter + def CountsAccumulated(self, value: Optional[int]): + if value is None: + if "CountsAccumulated" in self._dataset: + del self._dataset.CountsAccumulated + else: + self._dataset.CountsAccumulated = value + + @property + def AcquisitionTerminationCondition(self) -> Optional[str]: + if "AcquisitionTerminationCondition" in self._dataset: + return self._dataset.AcquisitionTerminationCondition + return None + + @AcquisitionTerminationCondition.setter + def AcquisitionTerminationCondition(self, value: Optional[str]): + if value is None: + if "AcquisitionTerminationCondition" in self._dataset: + del self._dataset.AcquisitionTerminationCondition + else: + self._dataset.AcquisitionTerminationCondition = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value + + @property + def TableTraverse(self) -> Optional[Decimal]: + if "TableTraverse" in self._dataset: + return self._dataset.TableTraverse + return None + + @TableTraverse.setter + def TableTraverse(self, value: Optional[Decimal]): + if value is None: + if "TableTraverse" in self._dataset: + del self._dataset.TableTraverse + else: + self._dataset.TableTraverse = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def CountRate(self) -> Optional[int]: + if "CountRate" in self._dataset: + return self._dataset.CountRate + return None + + @CountRate.setter + def CountRate(self, value: Optional[int]): + if value is None: + if "CountRate" in self._dataset: + del self._dataset.CountRate + else: + self._dataset.CountRate = value + + @property + def ScanVelocity(self) -> Optional[Decimal]: + if "ScanVelocity" in self._dataset: + return self._dataset.ScanVelocity + return None + + @ScanVelocity.setter + def ScanVelocity(self, value: Optional[Decimal]): + if value is None: + if "ScanVelocity" in self._dataset: + del self._dataset.ScanVelocity + else: + self._dataset.ScanVelocity = value + + @property + def WholeBodyTechnique(self) -> Optional[List[str]]: + if "WholeBodyTechnique" in self._dataset: + return self._dataset.WholeBodyTechnique + return None + + @WholeBodyTechnique.setter + def WholeBodyTechnique(self, value: Optional[List[str]]): + if value is None: + if "WholeBodyTechnique" in self._dataset: + del self._dataset.WholeBodyTechnique + else: + self._dataset.WholeBodyTechnique = value + + @property + def ScanLength(self) -> Optional[int]: + if "ScanLength" in self._dataset: + return self._dataset.ScanLength + return None + + @ScanLength.setter + def ScanLength(self, value: Optional[int]): + if value is None: + if "ScanLength" in self._dataset: + del self._dataset.ScanLength + else: + self._dataset.ScanLength = value + + @property + def ProcessingFunction(self) -> Optional[str]: + if "ProcessingFunction" in self._dataset: + return self._dataset.ProcessingFunction + return None + + @ProcessingFunction.setter + def ProcessingFunction(self, value: Optional[str]): + if value is None: + if "ProcessingFunction" in self._dataset: + del self._dataset.ProcessingFunction + else: + self._dataset.ProcessingFunction = value + + @property + def CorrectedImage(self) -> Optional[List[str]]: + if "CorrectedImage" in self._dataset: + return self._dataset.CorrectedImage + return None + + @CorrectedImage.setter + def CorrectedImage(self, value: Optional[List[str]]): + if value is None: + if "CorrectedImage" in self._dataset: + del self._dataset.CorrectedImage + else: + self._dataset.CorrectedImage = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def ImageID(self) -> Optional[str]: + if "ImageID" in self._dataset: + return self._dataset.ImageID + return None + + @ImageID.setter + def ImageID(self, value: Optional[str]): + if value is None: + if "ImageID" in self._dataset: + del self._dataset.ImageID + else: + self._dataset.ImageID = value + + @property + def ScanProgressionDirection(self) -> Optional[str]: + if "ScanProgressionDirection" in self._dataset: + return self._dataset.ScanProgressionDirection + return None + + @ScanProgressionDirection.setter + def ScanProgressionDirection(self, value: Optional[str]): + if value is None: + if "ScanProgressionDirection" in self._dataset: + del self._dataset.ScanProgressionDirection + else: + self._dataset.ScanProgressionDirection = value diff --git a/tdwii_plus_examples/domain_model/object_thickness_sequence_item.py b/tdwii_plus_examples/domain_model/object_thickness_sequence_item.py new file mode 100644 index 0000000..8eb0f34 --- /dev/null +++ b/tdwii_plus_examples/domain_model/object_thickness_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ObjectThicknessSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CalculatedAnatomyThickness(self) -> Optional[float]: + if "CalculatedAnatomyThickness" in self._dataset: + return self._dataset.CalculatedAnatomyThickness + return None + + @CalculatedAnatomyThickness.setter + def CalculatedAnatomyThickness(self, value: Optional[float]): + if value is None: + if "CalculatedAnatomyThickness" in self._dataset: + del self._dataset.CalculatedAnatomyThickness + else: + self._dataset.CalculatedAnatomyThickness = value diff --git a/tdwii_plus_examples/domain_model/oblique_cropping_plane_sequence_item.py b/tdwii_plus_examples/domain_model/oblique_cropping_plane_sequence_item.py new file mode 100644 index 0000000..3c48be9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/oblique_cropping_plane_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ObliqueCroppingPlaneSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Plane(self) -> Optional[List[float]]: + if "Plane" in self._dataset: + return self._dataset.Plane + return None + + @Plane.setter + def Plane(self, value: Optional[List[float]]): + if value is None: + if "Plane" in self._dataset: + del self._dataset.Plane + else: + self._dataset.Plane = value + + @property + def PlaneNormal(self) -> Optional[List[float]]: + if "PlaneNormal" in self._dataset: + return self._dataset.PlaneNormal + return None + + @PlaneNormal.setter + def PlaneNormal(self, value: Optional[List[float]]): + if value is None: + if "PlaneNormal" in self._dataset: + del self._dataset.PlaneNormal + else: + self._dataset.PlaneNormal = value diff --git a/tdwii_plus_examples/domain_model/oct_bscan_analysis_acquisition_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/oct_bscan_analysis_acquisition_parameters_sequence_item.py new file mode 100644 index 0000000..e4d5d58 --- /dev/null +++ b/tdwii_plus_examples/domain_model/oct_bscan_analysis_acquisition_parameters_sequence_item.py @@ -0,0 +1,144 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OCTBscanAnalysisAcquisitionParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ScanPatternTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ScanPatternTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ScanPatternTypeCodeSequence" in self._dataset: + if len(self._ScanPatternTypeCodeSequence) == len(self._dataset.ScanPatternTypeCodeSequence): + return self._ScanPatternTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ScanPatternTypeCodeSequence] + return None + + @ScanPatternTypeCodeSequence.setter + def ScanPatternTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ScanPatternTypeCodeSequence = [] + if "ScanPatternTypeCodeSequence" in self._dataset: + del self._dataset.ScanPatternTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ScanPatternTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ScanPatternTypeCodeSequence = value + if "ScanPatternTypeCodeSequence" not in self._dataset: + self._dataset.ScanPatternTypeCodeSequence = pydicom.Sequence() + self._dataset.ScanPatternTypeCodeSequence.clear() + self._dataset.ScanPatternTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ScanPatternTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ScanPatternTypeCodeSequence.append(item) + if "ScanPatternTypeCodeSequence" not in self._dataset: + self._dataset.ScanPatternTypeCodeSequence = pydicom.Sequence() + self._dataset.ScanPatternTypeCodeSequence.append(item.to_dataset()) + + @property + def NumberOfBscansPerFrame(self) -> Optional[int]: + if "NumberOfBscansPerFrame" in self._dataset: + return self._dataset.NumberOfBscansPerFrame + return None + + @NumberOfBscansPerFrame.setter + def NumberOfBscansPerFrame(self, value: Optional[int]): + if value is None: + if "NumberOfBscansPerFrame" in self._dataset: + del self._dataset.NumberOfBscansPerFrame + else: + self._dataset.NumberOfBscansPerFrame = value + + @property + def BscanSlabThickness(self) -> Optional[float]: + if "BscanSlabThickness" in self._dataset: + return self._dataset.BscanSlabThickness + return None + + @BscanSlabThickness.setter + def BscanSlabThickness(self, value: Optional[float]): + if value is None: + if "BscanSlabThickness" in self._dataset: + del self._dataset.BscanSlabThickness + else: + self._dataset.BscanSlabThickness = value + + @property + def DistanceBetweenBscanSlabs(self) -> Optional[float]: + if "DistanceBetweenBscanSlabs" in self._dataset: + return self._dataset.DistanceBetweenBscanSlabs + return None + + @DistanceBetweenBscanSlabs.setter + def DistanceBetweenBscanSlabs(self, value: Optional[float]): + if value is None: + if "DistanceBetweenBscanSlabs" in self._dataset: + del self._dataset.DistanceBetweenBscanSlabs + else: + self._dataset.DistanceBetweenBscanSlabs = value + + @property + def BscanCycleTime(self) -> Optional[float]: + if "BscanCycleTime" in self._dataset: + return self._dataset.BscanCycleTime + return None + + @BscanCycleTime.setter + def BscanCycleTime(self, value: Optional[float]): + if value is None: + if "BscanCycleTime" in self._dataset: + del self._dataset.BscanCycleTime + else: + self._dataset.BscanCycleTime = value + + @property + def BscanCycleTimeVector(self) -> Optional[List[float]]: + if "BscanCycleTimeVector" in self._dataset: + return self._dataset.BscanCycleTimeVector + return None + + @BscanCycleTimeVector.setter + def BscanCycleTimeVector(self, value: Optional[List[float]]): + if value is None: + if "BscanCycleTimeVector" in self._dataset: + del self._dataset.BscanCycleTimeVector + else: + self._dataset.BscanCycleTimeVector = value + + @property + def AscanRate(self) -> Optional[float]: + if "AscanRate" in self._dataset: + return self._dataset.AscanRate + return None + + @AscanRate.setter + def AscanRate(self, value: Optional[float]): + if value is None: + if "AscanRate" in self._dataset: + del self._dataset.AscanRate + else: + self._dataset.AscanRate = value + + @property + def BscanRate(self) -> Optional[float]: + if "BscanRate" in self._dataset: + return self._dataset.BscanRate + return None + + @BscanRate.setter + def BscanRate(self, value: Optional[float]): + if value is None: + if "BscanRate" in self._dataset: + del self._dataset.BscanRate + else: + self._dataset.BscanRate = value diff --git a/tdwii_plus_examples/domain_model/omitted_application_setup_sequence_item.py b/tdwii_plus_examples/domain_model/omitted_application_setup_sequence_item.py new file mode 100644 index 0000000..a9e6cc2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/omitted_application_setup_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .omitted_channel_sequence_item import OmittedChannelSequenceItem + + +class OmittedApplicationSetupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OmittedChannelSequence: List[OmittedChannelSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OmittedChannelSequence(self) -> Optional[List[OmittedChannelSequenceItem]]: + if "OmittedChannelSequence" in self._dataset: + if len(self._OmittedChannelSequence) == len(self._dataset.OmittedChannelSequence): + return self._OmittedChannelSequence + else: + return [OmittedChannelSequenceItem(x) for x in self._dataset.OmittedChannelSequence] + return None + + @OmittedChannelSequence.setter + def OmittedChannelSequence(self, value: Optional[List[OmittedChannelSequenceItem]]): + if value is None: + self._OmittedChannelSequence = [] + if "OmittedChannelSequence" in self._dataset: + del self._dataset.OmittedChannelSequence + elif not isinstance(value, list) or not all(isinstance(item, OmittedChannelSequenceItem) for item in value): + raise ValueError("OmittedChannelSequence must be a list of OmittedChannelSequenceItem objects") + else: + self._OmittedChannelSequence = value + if "OmittedChannelSequence" not in self._dataset: + self._dataset.OmittedChannelSequence = pydicom.Sequence() + self._dataset.OmittedChannelSequence.clear() + self._dataset.OmittedChannelSequence.extend([item.to_dataset() for item in value]) + + def add_OmittedChannel(self, item: OmittedChannelSequenceItem): + if not isinstance(item, OmittedChannelSequenceItem): + raise ValueError("Item must be an instance of OmittedChannelSequenceItem") + self._OmittedChannelSequence.append(item) + if "OmittedChannelSequence" not in self._dataset: + self._dataset.OmittedChannelSequence = pydicom.Sequence() + self._dataset.OmittedChannelSequence.append(item.to_dataset()) + + @property + def ReferencedBrachyApplicationSetupNumber(self) -> Optional[int]: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + return self._dataset.ReferencedBrachyApplicationSetupNumber + return None + + @ReferencedBrachyApplicationSetupNumber.setter + def ReferencedBrachyApplicationSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupNumber + else: + self._dataset.ReferencedBrachyApplicationSetupNumber = value diff --git a/tdwii_plus_examples/domain_model/omitted_beam_task_sequence_item.py b/tdwii_plus_examples/domain_model/omitted_beam_task_sequence_item.py new file mode 100644 index 0000000..6ecc187 --- /dev/null +++ b/tdwii_plus_examples/domain_model/omitted_beam_task_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OmittedBeamTaskSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def ReasonForOmission(self) -> Optional[str]: + if "ReasonForOmission" in self._dataset: + return self._dataset.ReasonForOmission + return None + + @ReasonForOmission.setter + def ReasonForOmission(self, value: Optional[str]): + if value is None: + if "ReasonForOmission" in self._dataset: + del self._dataset.ReasonForOmission + else: + self._dataset.ReasonForOmission = value + + @property + def ReasonForOmissionDescription(self) -> Optional[str]: + if "ReasonForOmissionDescription" in self._dataset: + return self._dataset.ReasonForOmissionDescription + return None + + @ReasonForOmissionDescription.setter + def ReasonForOmissionDescription(self, value: Optional[str]): + if value is None: + if "ReasonForOmissionDescription" in self._dataset: + del self._dataset.ReasonForOmissionDescription + else: + self._dataset.ReasonForOmissionDescription = value diff --git a/tdwii_plus_examples/domain_model/omitted_channel_sequence_item.py b/tdwii_plus_examples/domain_model/omitted_channel_sequence_item.py new file mode 100644 index 0000000..4172bf1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/omitted_channel_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OmittedChannelSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedChannelNumber(self) -> Optional[int]: + if "ReferencedChannelNumber" in self._dataset: + return self._dataset.ReferencedChannelNumber + return None + + @ReferencedChannelNumber.setter + def ReferencedChannelNumber(self, value: Optional[int]): + if value is None: + if "ReferencedChannelNumber" in self._dataset: + del self._dataset.ReferencedChannelNumber + else: + self._dataset.ReferencedChannelNumber = value + + @property + def ReasonForChannelOmission(self) -> Optional[str]: + if "ReasonForChannelOmission" in self._dataset: + return self._dataset.ReasonForChannelOmission + return None + + @ReasonForChannelOmission.setter + def ReasonForChannelOmission(self, value: Optional[str]): + if value is None: + if "ReasonForChannelOmission" in self._dataset: + del self._dataset.ReasonForChannelOmission + else: + self._dataset.ReasonForChannelOmission = value + + @property + def ReasonForChannelOmissionDescription(self) -> Optional[str]: + if "ReasonForChannelOmissionDescription" in self._dataset: + return self._dataset.ReasonForChannelOmissionDescription + return None + + @ReasonForChannelOmissionDescription.setter + def ReasonForChannelOmissionDescription(self, value: Optional[str]): + if value is None: + if "ReasonForChannelOmissionDescription" in self._dataset: + del self._dataset.ReasonForChannelOmissionDescription + else: + self._dataset.ReasonForChannelOmissionDescription = value diff --git a/tdwii_plus_examples/domain_model/omitted_radiation_sequence_item.py b/tdwii_plus_examples/domain_model/omitted_radiation_sequence_item.py new file mode 100644 index 0000000..3943aa9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/omitted_radiation_sequence_item.py @@ -0,0 +1,128 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .asserter_identification_sequence_item import AsserterIdentificationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem + + +class OmittedRadiationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AsserterIdentificationSequence: List[AsserterIdentificationSequenceItem] = [] + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + self._ReasonForOmissionCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AsserterIdentificationSequence(self) -> Optional[List[AsserterIdentificationSequenceItem]]: + if "AsserterIdentificationSequence" in self._dataset: + if len(self._AsserterIdentificationSequence) == len(self._dataset.AsserterIdentificationSequence): + return self._AsserterIdentificationSequence + else: + return [AsserterIdentificationSequenceItem(x) for x in self._dataset.AsserterIdentificationSequence] + return None + + @AsserterIdentificationSequence.setter + def AsserterIdentificationSequence(self, value: Optional[List[AsserterIdentificationSequenceItem]]): + if value is None: + self._AsserterIdentificationSequence = [] + if "AsserterIdentificationSequence" in self._dataset: + del self._dataset.AsserterIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AsserterIdentificationSequenceItem) for item in value): + raise ValueError("AsserterIdentificationSequence must be a list of AsserterIdentificationSequenceItem objects") + else: + self._AsserterIdentificationSequence = value + if "AsserterIdentificationSequence" not in self._dataset: + self._dataset.AsserterIdentificationSequence = pydicom.Sequence() + self._dataset.AsserterIdentificationSequence.clear() + self._dataset.AsserterIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AsserterIdentification(self, item: AsserterIdentificationSequenceItem): + if not isinstance(item, AsserterIdentificationSequenceItem): + raise ValueError("Item must be an instance of AsserterIdentificationSequenceItem") + self._AsserterIdentificationSequence.append(item) + if "AsserterIdentificationSequence" not in self._dataset: + self._dataset.AsserterIdentificationSequence = pydicom.Sequence() + self._dataset.AsserterIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) + + @property + def ReasonForOmissionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForOmissionCodeSequence" in self._dataset: + if len(self._ReasonForOmissionCodeSequence) == len(self._dataset.ReasonForOmissionCodeSequence): + return self._ReasonForOmissionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForOmissionCodeSequence] + return None + + @ReasonForOmissionCodeSequence.setter + def ReasonForOmissionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForOmissionCodeSequence = [] + if "ReasonForOmissionCodeSequence" in self._dataset: + del self._dataset.ReasonForOmissionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForOmissionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForOmissionCodeSequence = value + if "ReasonForOmissionCodeSequence" not in self._dataset: + self._dataset.ReasonForOmissionCodeSequence = pydicom.Sequence() + self._dataset.ReasonForOmissionCodeSequence.clear() + self._dataset.ReasonForOmissionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForOmissionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForOmissionCodeSequence.append(item) + if "ReasonForOmissionCodeSequence" not in self._dataset: + self._dataset.ReasonForOmissionCodeSequence = pydicom.Sequence() + self._dataset.ReasonForOmissionCodeSequence.append(item.to_dataset()) + + @property + def ReasonForOmissionDescription(self) -> Optional[str]: + if "ReasonForOmissionDescription" in self._dataset: + return self._dataset.ReasonForOmissionDescription + return None + + @ReasonForOmissionDescription.setter + def ReasonForOmissionDescription(self, value: Optional[str]): + if value is None: + if "ReasonForOmissionDescription" in self._dataset: + del self._dataset.ReasonForOmissionDescription + else: + self._dataset.ReasonForOmissionDescription = value diff --git a/tdwii_plus_examples/domain_model/operating_mode_sequence_item.py b/tdwii_plus_examples/domain_model/operating_mode_sequence_item.py new file mode 100644 index 0000000..702ea3c --- /dev/null +++ b/tdwii_plus_examples/domain_model/operating_mode_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OperatingModeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OperatingModeType(self) -> Optional[str]: + if "OperatingModeType" in self._dataset: + return self._dataset.OperatingModeType + return None + + @OperatingModeType.setter + def OperatingModeType(self, value: Optional[str]): + if value is None: + if "OperatingModeType" in self._dataset: + del self._dataset.OperatingModeType + else: + self._dataset.OperatingModeType = value + + @property + def OperatingMode(self) -> Optional[str]: + if "OperatingMode" in self._dataset: + return self._dataset.OperatingMode + return None + + @OperatingMode.setter + def OperatingMode(self, value: Optional[str]): + if value is None: + if "OperatingMode" in self._dataset: + del self._dataset.OperatingMode + else: + self._dataset.OperatingMode = value diff --git a/tdwii_plus_examples/domain_model/operator_identification_sequence_item.py b/tdwii_plus_examples/domain_model/operator_identification_sequence_item.py new file mode 100644 index 0000000..169cc68 --- /dev/null +++ b/tdwii_plus_examples/domain_model/operator_identification_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OperatorIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_length_summation_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_length_summation_sequence_item.py new file mode 100644 index 0000000..b0da817 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_length_summation_sequence_item.py @@ -0,0 +1,152 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .ophthalmic_axial_length_measurements_segmental_length_sequence_item import ( + OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem, +) +from .referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item import ( + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem, +) + + +class OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence: List[ + OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem + ] = [] + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence: List[ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthMeasurementModified(self) -> Optional[str]: + if "OphthalmicAxialLengthMeasurementModified" in self._dataset: + return self._dataset.OphthalmicAxialLengthMeasurementModified + return None + + @OphthalmicAxialLengthMeasurementModified.setter + def OphthalmicAxialLengthMeasurementModified(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMeasurementModified" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementModified + else: + self._dataset.OphthalmicAxialLengthMeasurementModified = value + + @property + def OphthalmicAxialLengthMeasurementsSegmentalLengthSequence( + self, + ) -> Optional[List[OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + ): + return self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + else: + return [ + OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + ] + return None + + @OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.setter + def OphthalmicAxialLengthMeasurementsSegmentalLengthSequence( + self, value: Optional[List[OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem]] + ): + if value is None: + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = [] + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence must be a list of" + " OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = value + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_OphthalmicAxialLengthMeasurementsSegmentalLength( + self, item: OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem + ): + if not isinstance(item, OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem") + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.append(item) + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.append(item.to_dataset()) + + @property + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, + ) -> Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]]: + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + if len(self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence) == len( + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ): + return self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + else: + return [ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem(x) + for x in self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ] + return None + + @ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.setter + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, value: Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]] + ): + if value is None: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = [] + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + del self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence must be a list of" + " ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem objects" + ) + else: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = value + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.clear() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ReferencedOphthalmicAxialLengthMeasurementQCImage( + self, item: ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ): + if not isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem") + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item) + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_segmental_length_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_segmental_length_sequence_item.py new file mode 100644 index 0000000..452deb7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_segmental_length_sequence_item.py @@ -0,0 +1,182 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .optical_ophthalmic_axial_length_measurements_sequence_item import ( + OpticalOphthalmicAxialLengthMeasurementsSequenceItem, +) +from .ultrasound_ophthalmic_axial_length_measurements_sequence_item import ( + UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem, +) + + +class OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence: List[CodeSequenceItem] = [] + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence: List[ + UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem + ] = [] + self._OpticalOphthalmicAxialLengthMeasurementsSequence: List[OpticalOphthalmicAxialLengthMeasurementsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence + ): + return self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence] + return None + + @OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.setter + def OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = [] + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError( + "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence must be a list of CodeSequenceItem objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = value + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_OphthalmicAxialLengthMeasurementsSegmentNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.append(item) + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMeasurementModified(self) -> Optional[str]: + if "OphthalmicAxialLengthMeasurementModified" in self._dataset: + return self._dataset.OphthalmicAxialLengthMeasurementModified + return None + + @OphthalmicAxialLengthMeasurementModified.setter + def OphthalmicAxialLengthMeasurementModified(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMeasurementModified" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementModified + else: + self._dataset.OphthalmicAxialLengthMeasurementModified = value + + @property + def UltrasoundOphthalmicAxialLengthMeasurementsSequence( + self, + ) -> Optional[List[UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem]]: + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + if len(self._UltrasoundOphthalmicAxialLengthMeasurementsSequence) == len( + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence + ): + return self._UltrasoundOphthalmicAxialLengthMeasurementsSequence + else: + return [ + UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem(x) + for x in self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence + ] + return None + + @UltrasoundOphthalmicAxialLengthMeasurementsSequence.setter + def UltrasoundOphthalmicAxialLengthMeasurementsSequence( + self, value: Optional[List[UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem]] + ): + if value is None: + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence = [] + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + del self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "UltrasoundOphthalmicAxialLengthMeasurementsSequence must be a list of" + " UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem objects" + ) + else: + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence = value + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence.clear() + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_UltrasoundOphthalmicAxialLengthMeasurements(self, item: UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem): + if not isinstance(item, UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem): + raise ValueError("Item must be an instance of UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem") + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence.append(item) + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence.append(item.to_dataset()) + + @property + def OpticalOphthalmicAxialLengthMeasurementsSequence( + self, + ) -> Optional[List[OpticalOphthalmicAxialLengthMeasurementsSequenceItem]]: + if "OpticalOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + if len(self._OpticalOphthalmicAxialLengthMeasurementsSequence) == len( + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence + ): + return self._OpticalOphthalmicAxialLengthMeasurementsSequence + else: + return [ + OpticalOphthalmicAxialLengthMeasurementsSequenceItem(x) + for x in self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence + ] + return None + + @OpticalOphthalmicAxialLengthMeasurementsSequence.setter + def OpticalOphthalmicAxialLengthMeasurementsSequence( + self, value: Optional[List[OpticalOphthalmicAxialLengthMeasurementsSequenceItem]] + ): + if value is None: + self._OpticalOphthalmicAxialLengthMeasurementsSequence = [] + if "OpticalOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + del self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OpticalOphthalmicAxialLengthMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "OpticalOphthalmicAxialLengthMeasurementsSequence must be a list of" + " OpticalOphthalmicAxialLengthMeasurementsSequenceItem objects" + ) + else: + self._OpticalOphthalmicAxialLengthMeasurementsSequence = value + if "OpticalOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence.clear() + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalOphthalmicAxialLengthMeasurements(self, item: OpticalOphthalmicAxialLengthMeasurementsSequenceItem): + if not isinstance(item, OpticalOphthalmicAxialLengthMeasurementsSequenceItem): + raise ValueError("Item must be an instance of OpticalOphthalmicAxialLengthMeasurementsSequenceItem") + self._OpticalOphthalmicAxialLengthMeasurementsSequence.append(item) + if "OpticalOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_sequence_item.py new file mode 100644 index 0000000..4b6d0c2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_sequence_item.py @@ -0,0 +1,190 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .ophthalmic_axial_length_measurements_length_summation_sequence_item import ( + OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem, +) +from .ophthalmic_axial_length_measurements_segmental_length_sequence_item import ( + OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem, +) +from .ophthalmic_axial_length_measurements_total_length_sequence_item import ( + OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem, +) + + +class OphthalmicAxialLengthMeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthMeasurementsTotalLengthSequence: List[ + OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem + ] = [] + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence: List[ + OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem + ] = [] + self._OphthalmicAxialLengthMeasurementsLengthSummationSequence: List[ + OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLengthMeasurementsType(self) -> Optional[str]: + if "OphthalmicAxialLengthMeasurementsType" in self._dataset: + return self._dataset.OphthalmicAxialLengthMeasurementsType + return None + + @OphthalmicAxialLengthMeasurementsType.setter + def OphthalmicAxialLengthMeasurementsType(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMeasurementsType" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsType + else: + self._dataset.OphthalmicAxialLengthMeasurementsType = value + + @property + def OphthalmicAxialLengthMeasurementsTotalLengthSequence( + self, + ) -> Optional[List[OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsTotalLengthSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsTotalLengthSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence + ): + return self._OphthalmicAxialLengthMeasurementsTotalLengthSequence + else: + return [ + OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence + ] + return None + + @OphthalmicAxialLengthMeasurementsTotalLengthSequence.setter + def OphthalmicAxialLengthMeasurementsTotalLengthSequence( + self, value: Optional[List[OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem]] + ): + if value is None: + self._OphthalmicAxialLengthMeasurementsTotalLengthSequence = [] + if "OphthalmicAxialLengthMeasurementsTotalLengthSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthMeasurementsTotalLengthSequence must be a list of" + " OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsTotalLengthSequence = value + if "OphthalmicAxialLengthMeasurementsTotalLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthMeasurementsTotalLength(self, item: OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem): + if not isinstance(item, OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem") + self._OphthalmicAxialLengthMeasurementsTotalLengthSequence.append(item) + if "OphthalmicAxialLengthMeasurementsTotalLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsTotalLengthSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMeasurementsSegmentalLengthSequence( + self, + ) -> Optional[List[OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + ): + return self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + else: + return [ + OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + ] + return None + + @OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.setter + def OphthalmicAxialLengthMeasurementsSegmentalLengthSequence( + self, value: Optional[List[OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem]] + ): + if value is None: + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = [] + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence must be a list of" + " OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = value + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_OphthalmicAxialLengthMeasurementsSegmentalLength( + self, item: OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem + ): + if not isinstance(item, OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthMeasurementsSegmentalLengthSequenceItem") + self._OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.append(item) + if "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentalLengthSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMeasurementsLengthSummationSequence( + self, + ) -> Optional[List[OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsLengthSummationSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsLengthSummationSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence + ): + return self._OphthalmicAxialLengthMeasurementsLengthSummationSequence + else: + return [ + OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence + ] + return None + + @OphthalmicAxialLengthMeasurementsLengthSummationSequence.setter + def OphthalmicAxialLengthMeasurementsLengthSummationSequence( + self, value: Optional[List[OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem]] + ): + if value is None: + self._OphthalmicAxialLengthMeasurementsLengthSummationSequence = [] + if "OphthalmicAxialLengthMeasurementsLengthSummationSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthMeasurementsLengthSummationSequence must be a list of" + " OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsLengthSummationSequence = value + if "OphthalmicAxialLengthMeasurementsLengthSummationSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_OphthalmicAxialLengthMeasurementsLengthSummation( + self, item: OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem + ): + if not isinstance(item, OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthMeasurementsLengthSummationSequenceItem") + self._OphthalmicAxialLengthMeasurementsLengthSummationSequence.append(item) + if "OphthalmicAxialLengthMeasurementsLengthSummationSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsLengthSummationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_total_length_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_total_length_sequence_item.py new file mode 100644 index 0000000..1524bed --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_measurements_total_length_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .optical_ophthalmic_axial_length_measurements_sequence_item import ( + OpticalOphthalmicAxialLengthMeasurementsSequenceItem, +) +from .referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item import ( + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem, +) +from .ultrasound_ophthalmic_axial_length_measurements_sequence_item import ( + UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem, +) + + +class OphthalmicAxialLengthMeasurementsTotalLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence: List[ + UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem + ] = [] + self._OpticalOphthalmicAxialLengthMeasurementsSequence: List[OpticalOphthalmicAxialLengthMeasurementsSequenceItem] = [] + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence: List[ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthMeasurementModified(self) -> Optional[str]: + if "OphthalmicAxialLengthMeasurementModified" in self._dataset: + return self._dataset.OphthalmicAxialLengthMeasurementModified + return None + + @OphthalmicAxialLengthMeasurementModified.setter + def OphthalmicAxialLengthMeasurementModified(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMeasurementModified" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementModified + else: + self._dataset.OphthalmicAxialLengthMeasurementModified = value + + @property + def UltrasoundOphthalmicAxialLengthMeasurementsSequence( + self, + ) -> Optional[List[UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem]]: + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + if len(self._UltrasoundOphthalmicAxialLengthMeasurementsSequence) == len( + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence + ): + return self._UltrasoundOphthalmicAxialLengthMeasurementsSequence + else: + return [ + UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem(x) + for x in self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence + ] + return None + + @UltrasoundOphthalmicAxialLengthMeasurementsSequence.setter + def UltrasoundOphthalmicAxialLengthMeasurementsSequence( + self, value: Optional[List[UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem]] + ): + if value is None: + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence = [] + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + del self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "UltrasoundOphthalmicAxialLengthMeasurementsSequence must be a list of" + " UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem objects" + ) + else: + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence = value + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence.clear() + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_UltrasoundOphthalmicAxialLengthMeasurements(self, item: UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem): + if not isinstance(item, UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem): + raise ValueError("Item must be an instance of UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem") + self._UltrasoundOphthalmicAxialLengthMeasurementsSequence.append(item) + if "UltrasoundOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.UltrasoundOphthalmicAxialLengthMeasurementsSequence.append(item.to_dataset()) + + @property + def OpticalOphthalmicAxialLengthMeasurementsSequence( + self, + ) -> Optional[List[OpticalOphthalmicAxialLengthMeasurementsSequenceItem]]: + if "OpticalOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + if len(self._OpticalOphthalmicAxialLengthMeasurementsSequence) == len( + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence + ): + return self._OpticalOphthalmicAxialLengthMeasurementsSequence + else: + return [ + OpticalOphthalmicAxialLengthMeasurementsSequenceItem(x) + for x in self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence + ] + return None + + @OpticalOphthalmicAxialLengthMeasurementsSequence.setter + def OpticalOphthalmicAxialLengthMeasurementsSequence( + self, value: Optional[List[OpticalOphthalmicAxialLengthMeasurementsSequenceItem]] + ): + if value is None: + self._OpticalOphthalmicAxialLengthMeasurementsSequence = [] + if "OpticalOphthalmicAxialLengthMeasurementsSequence" in self._dataset: + del self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OpticalOphthalmicAxialLengthMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "OpticalOphthalmicAxialLengthMeasurementsSequence must be a list of" + " OpticalOphthalmicAxialLengthMeasurementsSequenceItem objects" + ) + else: + self._OpticalOphthalmicAxialLengthMeasurementsSequence = value + if "OpticalOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence.clear() + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalOphthalmicAxialLengthMeasurements(self, item: OpticalOphthalmicAxialLengthMeasurementsSequenceItem): + if not isinstance(item, OpticalOphthalmicAxialLengthMeasurementsSequenceItem): + raise ValueError("Item must be an instance of OpticalOphthalmicAxialLengthMeasurementsSequenceItem") + self._OpticalOphthalmicAxialLengthMeasurementsSequence.append(item) + if "OpticalOphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OpticalOphthalmicAxialLengthMeasurementsSequence.append(item.to_dataset()) + + @property + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, + ) -> Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]]: + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + if len(self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence) == len( + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ): + return self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + else: + return [ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem(x) + for x in self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ] + return None + + @ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.setter + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, value: Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]] + ): + if value is None: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = [] + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + del self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence must be a list of" + " ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem objects" + ) + else: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = value + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.clear() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ReferencedOphthalmicAxialLengthMeasurementQCImage( + self, item: ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ): + if not isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem") + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item) + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_length_quality_metric_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_quality_metric_sequence_item.py new file mode 100644 index 0000000..e82f9e8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_quality_metric_sequence_item.py @@ -0,0 +1,94 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OphthalmicAxialLengthQualityMetricSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_length_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_sequence_item.py new file mode 100644 index 0000000..d959b93 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_length_sequence_item.py @@ -0,0 +1,164 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class OphthalmicAxialLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._SourceOfOphthalmicAxialLengthCodeSequence: List[CodeSequenceItem] = [] + self._OphthalmicUltrasoundMethodCodeSequence: List[CodeSequenceItem] = [] + self._OphthalmicAxialLengthSelectionMethodCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def SourceOfOphthalmicAxialLengthCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SourceOfOphthalmicAxialLengthCodeSequence" in self._dataset: + if len(self._SourceOfOphthalmicAxialLengthCodeSequence) == len( + self._dataset.SourceOfOphthalmicAxialLengthCodeSequence + ): + return self._SourceOfOphthalmicAxialLengthCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SourceOfOphthalmicAxialLengthCodeSequence] + return None + + @SourceOfOphthalmicAxialLengthCodeSequence.setter + def SourceOfOphthalmicAxialLengthCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SourceOfOphthalmicAxialLengthCodeSequence = [] + if "SourceOfOphthalmicAxialLengthCodeSequence" in self._dataset: + del self._dataset.SourceOfOphthalmicAxialLengthCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SourceOfOphthalmicAxialLengthCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SourceOfOphthalmicAxialLengthCodeSequence = value + if "SourceOfOphthalmicAxialLengthCodeSequence" not in self._dataset: + self._dataset.SourceOfOphthalmicAxialLengthCodeSequence = pydicom.Sequence() + self._dataset.SourceOfOphthalmicAxialLengthCodeSequence.clear() + self._dataset.SourceOfOphthalmicAxialLengthCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceOfOphthalmicAxialLengthCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SourceOfOphthalmicAxialLengthCodeSequence.append(item) + if "SourceOfOphthalmicAxialLengthCodeSequence" not in self._dataset: + self._dataset.SourceOfOphthalmicAxialLengthCodeSequence = pydicom.Sequence() + self._dataset.SourceOfOphthalmicAxialLengthCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicUltrasoundMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicUltrasoundMethodCodeSequence" in self._dataset: + if len(self._OphthalmicUltrasoundMethodCodeSequence) == len(self._dataset.OphthalmicUltrasoundMethodCodeSequence): + return self._OphthalmicUltrasoundMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicUltrasoundMethodCodeSequence] + return None + + @OphthalmicUltrasoundMethodCodeSequence.setter + def OphthalmicUltrasoundMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicUltrasoundMethodCodeSequence = [] + if "OphthalmicUltrasoundMethodCodeSequence" in self._dataset: + del self._dataset.OphthalmicUltrasoundMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicUltrasoundMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicUltrasoundMethodCodeSequence = value + if "OphthalmicUltrasoundMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicUltrasoundMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicUltrasoundMethodCodeSequence.clear() + self._dataset.OphthalmicUltrasoundMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicUltrasoundMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicUltrasoundMethodCodeSequence.append(item) + if "OphthalmicUltrasoundMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicUltrasoundMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicUltrasoundMethodCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthSelectionMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicAxialLengthSelectionMethodCodeSequence" in self._dataset: + if len(self._OphthalmicAxialLengthSelectionMethodCodeSequence) == len( + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence + ): + return self._OphthalmicAxialLengthSelectionMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence] + return None + + @OphthalmicAxialLengthSelectionMethodCodeSequence.setter + def OphthalmicAxialLengthSelectionMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthSelectionMethodCodeSequence = [] + if "OphthalmicAxialLengthSelectionMethodCodeSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicAxialLengthSelectionMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicAxialLengthSelectionMethodCodeSequence = value + if "OphthalmicAxialLengthSelectionMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence.clear() + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthSelectionMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicAxialLengthSelectionMethodCodeSequence.append(item) + if "OphthalmicAxialLengthSelectionMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements.py new file mode 100644 index 0000000..3d1cb1a --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements.py @@ -0,0 +1,4276 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .ophthalmic_axial_measurements_left_eye_sequence_item import ( + OphthalmicAxialMeasurementsLeftEyeSequenceItem, +) +from .ophthalmic_axial_measurements_right_eye_sequence_item import ( + OphthalmicAxialMeasurementsRightEyeSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicAxialMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialMeasurementsRightEyeSequence: List[OphthalmicAxialMeasurementsRightEyeSequenceItem] = [] + self._OphthalmicAxialMeasurementsLeftEyeSequence: List[OphthalmicAxialMeasurementsLeftEyeSequenceItem] = [] + self._OphthalmicUltrasoundMethodCodeSequence: List[CodeSequenceItem] = [] + self._AnteriorChamberDepthDefinitionCodeSequence: List[CodeSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def OphthalmicAxialMeasurementsRightEyeSequence(self) -> Optional[List[OphthalmicAxialMeasurementsRightEyeSequenceItem]]: + if "OphthalmicAxialMeasurementsRightEyeSequence" in self._dataset: + if len(self._OphthalmicAxialMeasurementsRightEyeSequence) == len( + self._dataset.OphthalmicAxialMeasurementsRightEyeSequence + ): + return self._OphthalmicAxialMeasurementsRightEyeSequence + else: + return [ + OphthalmicAxialMeasurementsRightEyeSequenceItem(x) + for x in self._dataset.OphthalmicAxialMeasurementsRightEyeSequence + ] + return None + + @OphthalmicAxialMeasurementsRightEyeSequence.setter + def OphthalmicAxialMeasurementsRightEyeSequence( + self, value: Optional[List[OphthalmicAxialMeasurementsRightEyeSequenceItem]] + ): + if value is None: + self._OphthalmicAxialMeasurementsRightEyeSequence = [] + if "OphthalmicAxialMeasurementsRightEyeSequence" in self._dataset: + del self._dataset.OphthalmicAxialMeasurementsRightEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialMeasurementsRightEyeSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialMeasurementsRightEyeSequence must be a list of OphthalmicAxialMeasurementsRightEyeSequenceItem" + " objects" + ) + else: + self._OphthalmicAxialMeasurementsRightEyeSequence = value + if "OphthalmicAxialMeasurementsRightEyeSequence" not in self._dataset: + self._dataset.OphthalmicAxialMeasurementsRightEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialMeasurementsRightEyeSequence.clear() + self._dataset.OphthalmicAxialMeasurementsRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialMeasurementsRightEye(self, item: OphthalmicAxialMeasurementsRightEyeSequenceItem): + if not isinstance(item, OphthalmicAxialMeasurementsRightEyeSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialMeasurementsRightEyeSequenceItem") + self._OphthalmicAxialMeasurementsRightEyeSequence.append(item) + if "OphthalmicAxialMeasurementsRightEyeSequence" not in self._dataset: + self._dataset.OphthalmicAxialMeasurementsRightEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialMeasurementsRightEyeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialMeasurementsLeftEyeSequence(self) -> Optional[List[OphthalmicAxialMeasurementsLeftEyeSequenceItem]]: + if "OphthalmicAxialMeasurementsLeftEyeSequence" in self._dataset: + if len(self._OphthalmicAxialMeasurementsLeftEyeSequence) == len( + self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence + ): + return self._OphthalmicAxialMeasurementsLeftEyeSequence + else: + return [ + OphthalmicAxialMeasurementsLeftEyeSequenceItem(x) + for x in self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence + ] + return None + + @OphthalmicAxialMeasurementsLeftEyeSequence.setter + def OphthalmicAxialMeasurementsLeftEyeSequence( + self, value: Optional[List[OphthalmicAxialMeasurementsLeftEyeSequenceItem]] + ): + if value is None: + self._OphthalmicAxialMeasurementsLeftEyeSequence = [] + if "OphthalmicAxialMeasurementsLeftEyeSequence" in self._dataset: + del self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialMeasurementsLeftEyeSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialMeasurementsLeftEyeSequence must be a list of OphthalmicAxialMeasurementsLeftEyeSequenceItem" + " objects" + ) + else: + self._OphthalmicAxialMeasurementsLeftEyeSequence = value + if "OphthalmicAxialMeasurementsLeftEyeSequence" not in self._dataset: + self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence.clear() + self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialMeasurementsLeftEye(self, item: OphthalmicAxialMeasurementsLeftEyeSequenceItem): + if not isinstance(item, OphthalmicAxialMeasurementsLeftEyeSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialMeasurementsLeftEyeSequenceItem") + self._OphthalmicAxialMeasurementsLeftEyeSequence.append(item) + if "OphthalmicAxialMeasurementsLeftEyeSequence" not in self._dataset: + self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialMeasurementsLeftEyeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialMeasurementsDeviceType(self) -> Optional[str]: + if "OphthalmicAxialMeasurementsDeviceType" in self._dataset: + return self._dataset.OphthalmicAxialMeasurementsDeviceType + return None + + @OphthalmicAxialMeasurementsDeviceType.setter + def OphthalmicAxialMeasurementsDeviceType(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialMeasurementsDeviceType" in self._dataset: + del self._dataset.OphthalmicAxialMeasurementsDeviceType + else: + self._dataset.OphthalmicAxialMeasurementsDeviceType = value + + @property + def OphthalmicUltrasoundMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicUltrasoundMethodCodeSequence" in self._dataset: + if len(self._OphthalmicUltrasoundMethodCodeSequence) == len(self._dataset.OphthalmicUltrasoundMethodCodeSequence): + return self._OphthalmicUltrasoundMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicUltrasoundMethodCodeSequence] + return None + + @OphthalmicUltrasoundMethodCodeSequence.setter + def OphthalmicUltrasoundMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicUltrasoundMethodCodeSequence = [] + if "OphthalmicUltrasoundMethodCodeSequence" in self._dataset: + del self._dataset.OphthalmicUltrasoundMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicUltrasoundMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicUltrasoundMethodCodeSequence = value + if "OphthalmicUltrasoundMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicUltrasoundMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicUltrasoundMethodCodeSequence.clear() + self._dataset.OphthalmicUltrasoundMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicUltrasoundMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicUltrasoundMethodCodeSequence.append(item) + if "OphthalmicUltrasoundMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicUltrasoundMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicUltrasoundMethodCodeSequence.append(item.to_dataset()) + + @property + def AnteriorChamberDepthDefinitionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AnteriorChamberDepthDefinitionCodeSequence" in self._dataset: + if len(self._AnteriorChamberDepthDefinitionCodeSequence) == len( + self._dataset.AnteriorChamberDepthDefinitionCodeSequence + ): + return self._AnteriorChamberDepthDefinitionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AnteriorChamberDepthDefinitionCodeSequence] + return None + + @AnteriorChamberDepthDefinitionCodeSequence.setter + def AnteriorChamberDepthDefinitionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AnteriorChamberDepthDefinitionCodeSequence = [] + if "AnteriorChamberDepthDefinitionCodeSequence" in self._dataset: + del self._dataset.AnteriorChamberDepthDefinitionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AnteriorChamberDepthDefinitionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AnteriorChamberDepthDefinitionCodeSequence = value + if "AnteriorChamberDepthDefinitionCodeSequence" not in self._dataset: + self._dataset.AnteriorChamberDepthDefinitionCodeSequence = pydicom.Sequence() + self._dataset.AnteriorChamberDepthDefinitionCodeSequence.clear() + self._dataset.AnteriorChamberDepthDefinitionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AnteriorChamberDepthDefinitionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AnteriorChamberDepthDefinitionCodeSequence.append(item) + if "AnteriorChamberDepthDefinitionCodeSequence" not in self._dataset: + self._dataset.AnteriorChamberDepthDefinitionCodeSequence = pydicom.Sequence() + self._dataset.AnteriorChamberDepthDefinitionCodeSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_left_eye_sequence_item.py new file mode 100644 index 0000000..b4225e5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_left_eye_sequence_item.py @@ -0,0 +1,313 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .ophthalmic_axial_length_measurements_sequence_item import ( + OphthalmicAxialLengthMeasurementsSequenceItem, +) +from .optical_selected_ophthalmic_axial_length_sequence_item import ( + OpticalSelectedOphthalmicAxialLengthSequenceItem, +) +from .ultrasound_selected_ophthalmic_axial_length_sequence_item import ( + UltrasoundSelectedOphthalmicAxialLengthSequenceItem, +) + + +class OphthalmicAxialMeasurementsLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._LensStatusCodeSequence: List[CodeSequenceItem] = [] + self._VitreousStatusCodeSequence: List[CodeSequenceItem] = [] + self._OphthalmicAxialLengthMeasurementsSequence: List[OphthalmicAxialLengthMeasurementsSequenceItem] = [] + self._UltrasoundSelectedOphthalmicAxialLengthSequence: List[UltrasoundSelectedOphthalmicAxialLengthSequenceItem] = [] + self._OpticalSelectedOphthalmicAxialLengthSequence: List[OpticalSelectedOphthalmicAxialLengthSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def LensStatusCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensStatusCodeSequence" in self._dataset: + if len(self._LensStatusCodeSequence) == len(self._dataset.LensStatusCodeSequence): + return self._LensStatusCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensStatusCodeSequence] + return None + + @LensStatusCodeSequence.setter + def LensStatusCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensStatusCodeSequence = [] + if "LensStatusCodeSequence" in self._dataset: + del self._dataset.LensStatusCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensStatusCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensStatusCodeSequence = value + if "LensStatusCodeSequence" not in self._dataset: + self._dataset.LensStatusCodeSequence = pydicom.Sequence() + self._dataset.LensStatusCodeSequence.clear() + self._dataset.LensStatusCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensStatusCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensStatusCodeSequence.append(item) + if "LensStatusCodeSequence" not in self._dataset: + self._dataset.LensStatusCodeSequence = pydicom.Sequence() + self._dataset.LensStatusCodeSequence.append(item.to_dataset()) + + @property + def VitreousStatusCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "VitreousStatusCodeSequence" in self._dataset: + if len(self._VitreousStatusCodeSequence) == len(self._dataset.VitreousStatusCodeSequence): + return self._VitreousStatusCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.VitreousStatusCodeSequence] + return None + + @VitreousStatusCodeSequence.setter + def VitreousStatusCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._VitreousStatusCodeSequence = [] + if "VitreousStatusCodeSequence" in self._dataset: + del self._dataset.VitreousStatusCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("VitreousStatusCodeSequence must be a list of CodeSequenceItem objects") + else: + self._VitreousStatusCodeSequence = value + if "VitreousStatusCodeSequence" not in self._dataset: + self._dataset.VitreousStatusCodeSequence = pydicom.Sequence() + self._dataset.VitreousStatusCodeSequence.clear() + self._dataset.VitreousStatusCodeSequence.extend([item.to_dataset() for item in value]) + + def add_VitreousStatusCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._VitreousStatusCodeSequence.append(item) + if "VitreousStatusCodeSequence" not in self._dataset: + self._dataset.VitreousStatusCodeSequence = pydicom.Sequence() + self._dataset.VitreousStatusCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMeasurementsSequence(self) -> Optional[List[OphthalmicAxialLengthMeasurementsSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsSequence + ): + return self._OphthalmicAxialLengthMeasurementsSequence + else: + return [ + OphthalmicAxialLengthMeasurementsSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthMeasurementsSequence + ] + return None + + @OphthalmicAxialLengthMeasurementsSequence.setter + def OphthalmicAxialLengthMeasurementsSequence(self, value: Optional[List[OphthalmicAxialLengthMeasurementsSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthMeasurementsSequence = [] + if "OphthalmicAxialLengthMeasurementsSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthMeasurementsSequence must be a list of OphthalmicAxialLengthMeasurementsSequenceItem" + " objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsSequence = value + if "OphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthMeasurements(self, item: OphthalmicAxialLengthMeasurementsSequenceItem): + if not isinstance(item, OphthalmicAxialLengthMeasurementsSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthMeasurementsSequenceItem") + self._OphthalmicAxialLengthMeasurementsSequence.append(item) + if "OphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSequence.append(item.to_dataset()) + + @property + def LensStatusDescription(self) -> Optional[str]: + if "LensStatusDescription" in self._dataset: + return self._dataset.LensStatusDescription + return None + + @LensStatusDescription.setter + def LensStatusDescription(self, value: Optional[str]): + if value is None: + if "LensStatusDescription" in self._dataset: + del self._dataset.LensStatusDescription + else: + self._dataset.LensStatusDescription = value + + @property + def VitreousStatusDescription(self) -> Optional[str]: + if "VitreousStatusDescription" in self._dataset: + return self._dataset.VitreousStatusDescription + return None + + @VitreousStatusDescription.setter + def VitreousStatusDescription(self, value: Optional[str]): + if value is None: + if "VitreousStatusDescription" in self._dataset: + del self._dataset.VitreousStatusDescription + else: + self._dataset.VitreousStatusDescription = value + + @property + def UltrasoundSelectedOphthalmicAxialLengthSequence( + self, + ) -> Optional[List[UltrasoundSelectedOphthalmicAxialLengthSequenceItem]]: + if "UltrasoundSelectedOphthalmicAxialLengthSequence" in self._dataset: + if len(self._UltrasoundSelectedOphthalmicAxialLengthSequence) == len( + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence + ): + return self._UltrasoundSelectedOphthalmicAxialLengthSequence + else: + return [ + UltrasoundSelectedOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence + ] + return None + + @UltrasoundSelectedOphthalmicAxialLengthSequence.setter + def UltrasoundSelectedOphthalmicAxialLengthSequence( + self, value: Optional[List[UltrasoundSelectedOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._UltrasoundSelectedOphthalmicAxialLengthSequence = [] + if "UltrasoundSelectedOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, UltrasoundSelectedOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "UltrasoundSelectedOphthalmicAxialLengthSequence must be a list of" + " UltrasoundSelectedOphthalmicAxialLengthSequenceItem objects" + ) + else: + self._UltrasoundSelectedOphthalmicAxialLengthSequence = value + if "UltrasoundSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence.clear() + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_UltrasoundSelectedOphthalmicAxialLength(self, item: UltrasoundSelectedOphthalmicAxialLengthSequenceItem): + if not isinstance(item, UltrasoundSelectedOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of UltrasoundSelectedOphthalmicAxialLengthSequenceItem") + self._UltrasoundSelectedOphthalmicAxialLengthSequence.append(item) + if "UltrasoundSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence.append(item.to_dataset()) + + @property + def OpticalSelectedOphthalmicAxialLengthSequence(self) -> Optional[List[OpticalSelectedOphthalmicAxialLengthSequenceItem]]: + if "OpticalSelectedOphthalmicAxialLengthSequence" in self._dataset: + if len(self._OpticalSelectedOphthalmicAxialLengthSequence) == len( + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence + ): + return self._OpticalSelectedOphthalmicAxialLengthSequence + else: + return [ + OpticalSelectedOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.OpticalSelectedOphthalmicAxialLengthSequence + ] + return None + + @OpticalSelectedOphthalmicAxialLengthSequence.setter + def OpticalSelectedOphthalmicAxialLengthSequence( + self, value: Optional[List[OpticalSelectedOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._OpticalSelectedOphthalmicAxialLengthSequence = [] + if "OpticalSelectedOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.OpticalSelectedOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, OpticalSelectedOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "OpticalSelectedOphthalmicAxialLengthSequence must be a list of" + " OpticalSelectedOphthalmicAxialLengthSequenceItem objects" + ) + else: + self._OpticalSelectedOphthalmicAxialLengthSequence = value + if "OpticalSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence.clear() + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalSelectedOphthalmicAxialLength(self, item: OpticalSelectedOphthalmicAxialLengthSequenceItem): + if not isinstance(item, OpticalSelectedOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of OpticalSelectedOphthalmicAxialLengthSequenceItem") + self._OpticalSelectedOphthalmicAxialLengthSequence.append(item) + if "OpticalSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_right_eye_sequence_item.py new file mode 100644 index 0000000..1089863 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_axial_measurements_right_eye_sequence_item.py @@ -0,0 +1,313 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .ophthalmic_axial_length_measurements_sequence_item import ( + OphthalmicAxialLengthMeasurementsSequenceItem, +) +from .optical_selected_ophthalmic_axial_length_sequence_item import ( + OpticalSelectedOphthalmicAxialLengthSequenceItem, +) +from .ultrasound_selected_ophthalmic_axial_length_sequence_item import ( + UltrasoundSelectedOphthalmicAxialLengthSequenceItem, +) + + +class OphthalmicAxialMeasurementsRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._LensStatusCodeSequence: List[CodeSequenceItem] = [] + self._VitreousStatusCodeSequence: List[CodeSequenceItem] = [] + self._OphthalmicAxialLengthMeasurementsSequence: List[OphthalmicAxialLengthMeasurementsSequenceItem] = [] + self._UltrasoundSelectedOphthalmicAxialLengthSequence: List[UltrasoundSelectedOphthalmicAxialLengthSequenceItem] = [] + self._OpticalSelectedOphthalmicAxialLengthSequence: List[OpticalSelectedOphthalmicAxialLengthSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def LensStatusCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensStatusCodeSequence" in self._dataset: + if len(self._LensStatusCodeSequence) == len(self._dataset.LensStatusCodeSequence): + return self._LensStatusCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensStatusCodeSequence] + return None + + @LensStatusCodeSequence.setter + def LensStatusCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensStatusCodeSequence = [] + if "LensStatusCodeSequence" in self._dataset: + del self._dataset.LensStatusCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensStatusCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensStatusCodeSequence = value + if "LensStatusCodeSequence" not in self._dataset: + self._dataset.LensStatusCodeSequence = pydicom.Sequence() + self._dataset.LensStatusCodeSequence.clear() + self._dataset.LensStatusCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensStatusCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensStatusCodeSequence.append(item) + if "LensStatusCodeSequence" not in self._dataset: + self._dataset.LensStatusCodeSequence = pydicom.Sequence() + self._dataset.LensStatusCodeSequence.append(item.to_dataset()) + + @property + def VitreousStatusCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "VitreousStatusCodeSequence" in self._dataset: + if len(self._VitreousStatusCodeSequence) == len(self._dataset.VitreousStatusCodeSequence): + return self._VitreousStatusCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.VitreousStatusCodeSequence] + return None + + @VitreousStatusCodeSequence.setter + def VitreousStatusCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._VitreousStatusCodeSequence = [] + if "VitreousStatusCodeSequence" in self._dataset: + del self._dataset.VitreousStatusCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("VitreousStatusCodeSequence must be a list of CodeSequenceItem objects") + else: + self._VitreousStatusCodeSequence = value + if "VitreousStatusCodeSequence" not in self._dataset: + self._dataset.VitreousStatusCodeSequence = pydicom.Sequence() + self._dataset.VitreousStatusCodeSequence.clear() + self._dataset.VitreousStatusCodeSequence.extend([item.to_dataset() for item in value]) + + def add_VitreousStatusCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._VitreousStatusCodeSequence.append(item) + if "VitreousStatusCodeSequence" not in self._dataset: + self._dataset.VitreousStatusCodeSequence = pydicom.Sequence() + self._dataset.VitreousStatusCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMeasurementsSequence(self) -> Optional[List[OphthalmicAxialLengthMeasurementsSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsSequence + ): + return self._OphthalmicAxialLengthMeasurementsSequence + else: + return [ + OphthalmicAxialLengthMeasurementsSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthMeasurementsSequence + ] + return None + + @OphthalmicAxialLengthMeasurementsSequence.setter + def OphthalmicAxialLengthMeasurementsSequence(self, value: Optional[List[OphthalmicAxialLengthMeasurementsSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthMeasurementsSequence = [] + if "OphthalmicAxialLengthMeasurementsSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthMeasurementsSequence must be a list of OphthalmicAxialLengthMeasurementsSequenceItem" + " objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsSequence = value + if "OphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthMeasurements(self, item: OphthalmicAxialLengthMeasurementsSequenceItem): + if not isinstance(item, OphthalmicAxialLengthMeasurementsSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthMeasurementsSequenceItem") + self._OphthalmicAxialLengthMeasurementsSequence.append(item) + if "OphthalmicAxialLengthMeasurementsSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSequence.append(item.to_dataset()) + + @property + def LensStatusDescription(self) -> Optional[str]: + if "LensStatusDescription" in self._dataset: + return self._dataset.LensStatusDescription + return None + + @LensStatusDescription.setter + def LensStatusDescription(self, value: Optional[str]): + if value is None: + if "LensStatusDescription" in self._dataset: + del self._dataset.LensStatusDescription + else: + self._dataset.LensStatusDescription = value + + @property + def VitreousStatusDescription(self) -> Optional[str]: + if "VitreousStatusDescription" in self._dataset: + return self._dataset.VitreousStatusDescription + return None + + @VitreousStatusDescription.setter + def VitreousStatusDescription(self, value: Optional[str]): + if value is None: + if "VitreousStatusDescription" in self._dataset: + del self._dataset.VitreousStatusDescription + else: + self._dataset.VitreousStatusDescription = value + + @property + def UltrasoundSelectedOphthalmicAxialLengthSequence( + self, + ) -> Optional[List[UltrasoundSelectedOphthalmicAxialLengthSequenceItem]]: + if "UltrasoundSelectedOphthalmicAxialLengthSequence" in self._dataset: + if len(self._UltrasoundSelectedOphthalmicAxialLengthSequence) == len( + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence + ): + return self._UltrasoundSelectedOphthalmicAxialLengthSequence + else: + return [ + UltrasoundSelectedOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence + ] + return None + + @UltrasoundSelectedOphthalmicAxialLengthSequence.setter + def UltrasoundSelectedOphthalmicAxialLengthSequence( + self, value: Optional[List[UltrasoundSelectedOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._UltrasoundSelectedOphthalmicAxialLengthSequence = [] + if "UltrasoundSelectedOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, UltrasoundSelectedOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "UltrasoundSelectedOphthalmicAxialLengthSequence must be a list of" + " UltrasoundSelectedOphthalmicAxialLengthSequenceItem objects" + ) + else: + self._UltrasoundSelectedOphthalmicAxialLengthSequence = value + if "UltrasoundSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence.clear() + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_UltrasoundSelectedOphthalmicAxialLength(self, item: UltrasoundSelectedOphthalmicAxialLengthSequenceItem): + if not isinstance(item, UltrasoundSelectedOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of UltrasoundSelectedOphthalmicAxialLengthSequenceItem") + self._UltrasoundSelectedOphthalmicAxialLengthSequence.append(item) + if "UltrasoundSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.UltrasoundSelectedOphthalmicAxialLengthSequence.append(item.to_dataset()) + + @property + def OpticalSelectedOphthalmicAxialLengthSequence(self) -> Optional[List[OpticalSelectedOphthalmicAxialLengthSequenceItem]]: + if "OpticalSelectedOphthalmicAxialLengthSequence" in self._dataset: + if len(self._OpticalSelectedOphthalmicAxialLengthSequence) == len( + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence + ): + return self._OpticalSelectedOphthalmicAxialLengthSequence + else: + return [ + OpticalSelectedOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.OpticalSelectedOphthalmicAxialLengthSequence + ] + return None + + @OpticalSelectedOphthalmicAxialLengthSequence.setter + def OpticalSelectedOphthalmicAxialLengthSequence( + self, value: Optional[List[OpticalSelectedOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._OpticalSelectedOphthalmicAxialLengthSequence = [] + if "OpticalSelectedOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.OpticalSelectedOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, OpticalSelectedOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "OpticalSelectedOphthalmicAxialLengthSequence must be a list of" + " OpticalSelectedOphthalmicAxialLengthSequenceItem objects" + ) + else: + self._OpticalSelectedOphthalmicAxialLengthSequence = value + if "OpticalSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence.clear() + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalSelectedOphthalmicAxialLength(self, item: OpticalSelectedOphthalmicAxialLengthSequenceItem): + if not isinstance(item, OpticalSelectedOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of OpticalSelectedOphthalmicAxialLengthSequenceItem") + self._OpticalSelectedOphthalmicAxialLengthSequence.append(item) + if "OpticalSelectedOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.OpticalSelectedOphthalmicAxialLengthSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_en_face_image_quality_rating_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_en_face_image_quality_rating_sequence_item.py new file mode 100644 index 0000000..5ed976e --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_en_face_image_quality_rating_sequence_item.py @@ -0,0 +1,230 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OphthalmicEnFaceImageQualityRatingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def QualityThreshold(self) -> Optional[Decimal]: + if "QualityThreshold" in self._dataset: + return self._dataset.QualityThreshold + return None + + @QualityThreshold.setter + def QualityThreshold(self, value: Optional[Decimal]): + if value is None: + if "QualityThreshold" in self._dataset: + del self._dataset.QualityThreshold + else: + self._dataset.QualityThreshold = value + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_frame_location_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_frame_location_sequence_item.py new file mode 100644 index 0000000..ef30925 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_frame_location_sequence_item.py @@ -0,0 +1,144 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OphthalmicFrameLocationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferenceCoordinates(self) -> Optional[List[float]]: + if "ReferenceCoordinates" in self._dataset: + return self._dataset.ReferenceCoordinates + return None + + @ReferenceCoordinates.setter + def ReferenceCoordinates(self, value: Optional[List[float]]): + if value is None: + if "ReferenceCoordinates" in self._dataset: + del self._dataset.ReferenceCoordinates + else: + self._dataset.ReferenceCoordinates = value + + @property + def OphthalmicImageOrientation(self) -> Optional[str]: + if "OphthalmicImageOrientation" in self._dataset: + return self._dataset.OphthalmicImageOrientation + return None + + @OphthalmicImageOrientation.setter + def OphthalmicImageOrientation(self, value: Optional[str]): + if value is None: + if "OphthalmicImageOrientation" in self._dataset: + del self._dataset.OphthalmicImageOrientation + else: + self._dataset.OphthalmicImageOrientation = value + + @property + def DepthOfTransverseImage(self) -> Optional[float]: + if "DepthOfTransverseImage" in self._dataset: + return self._dataset.DepthOfTransverseImage + return None + + @DepthOfTransverseImage.setter + def DepthOfTransverseImage(self, value: Optional[float]): + if value is None: + if "DepthOfTransverseImage" in self._dataset: + del self._dataset.DepthOfTransverseImage + else: + self._dataset.DepthOfTransverseImage = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_b_scan_volume_analysis.py b/tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_b_scan_volume_analysis.py new file mode 100644 index 0000000..a512926 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_b_scan_volume_analysis.py @@ -0,0 +1,5184 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_method_algorithm_sequence_item import ( + AcquisitionMethodAlgorithmSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .oct_bscan_analysis_acquisition_parameters_sequence_item import ( + OCTBscanAnalysisAcquisitionParametersSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicOpticalCoherenceTomographyBScanVolumeAnalysis: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._AcquisitionMethodAlgorithmSequence: List[AcquisitionMethodAlgorithmSequenceItem] = [] + self._OCTBscanAnalysisAcquisitionParametersSequence: List[OCTBscanAnalysisAcquisitionParametersSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def AcquisitionMethodAlgorithmSequence(self) -> Optional[List[AcquisitionMethodAlgorithmSequenceItem]]: + if "AcquisitionMethodAlgorithmSequence" in self._dataset: + if len(self._AcquisitionMethodAlgorithmSequence) == len(self._dataset.AcquisitionMethodAlgorithmSequence): + return self._AcquisitionMethodAlgorithmSequence + else: + return [AcquisitionMethodAlgorithmSequenceItem(x) for x in self._dataset.AcquisitionMethodAlgorithmSequence] + return None + + @AcquisitionMethodAlgorithmSequence.setter + def AcquisitionMethodAlgorithmSequence(self, value: Optional[List[AcquisitionMethodAlgorithmSequenceItem]]): + if value is None: + self._AcquisitionMethodAlgorithmSequence = [] + if "AcquisitionMethodAlgorithmSequence" in self._dataset: + del self._dataset.AcquisitionMethodAlgorithmSequence + elif not isinstance(value, list) or not all( + isinstance(item, AcquisitionMethodAlgorithmSequenceItem) for item in value + ): + raise ValueError( + "AcquisitionMethodAlgorithmSequence must be a list of AcquisitionMethodAlgorithmSequenceItem objects" + ) + else: + self._AcquisitionMethodAlgorithmSequence = value + if "AcquisitionMethodAlgorithmSequence" not in self._dataset: + self._dataset.AcquisitionMethodAlgorithmSequence = pydicom.Sequence() + self._dataset.AcquisitionMethodAlgorithmSequence.clear() + self._dataset.AcquisitionMethodAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionMethodAlgorithm(self, item: AcquisitionMethodAlgorithmSequenceItem): + if not isinstance(item, AcquisitionMethodAlgorithmSequenceItem): + raise ValueError("Item must be an instance of AcquisitionMethodAlgorithmSequenceItem") + self._AcquisitionMethodAlgorithmSequence.append(item) + if "AcquisitionMethodAlgorithmSequence" not in self._dataset: + self._dataset.AcquisitionMethodAlgorithmSequence = pydicom.Sequence() + self._dataset.AcquisitionMethodAlgorithmSequence.append(item.to_dataset()) + + @property + def OCTBscanAnalysisAcquisitionParametersSequence( + self, + ) -> Optional[List[OCTBscanAnalysisAcquisitionParametersSequenceItem]]: + if "OCTBscanAnalysisAcquisitionParametersSequence" in self._dataset: + if len(self._OCTBscanAnalysisAcquisitionParametersSequence) == len( + self._dataset.OCTBscanAnalysisAcquisitionParametersSequence + ): + return self._OCTBscanAnalysisAcquisitionParametersSequence + else: + return [ + OCTBscanAnalysisAcquisitionParametersSequenceItem(x) + for x in self._dataset.OCTBscanAnalysisAcquisitionParametersSequence + ] + return None + + @OCTBscanAnalysisAcquisitionParametersSequence.setter + def OCTBscanAnalysisAcquisitionParametersSequence( + self, value: Optional[List[OCTBscanAnalysisAcquisitionParametersSequenceItem]] + ): + if value is None: + self._OCTBscanAnalysisAcquisitionParametersSequence = [] + if "OCTBscanAnalysisAcquisitionParametersSequence" in self._dataset: + del self._dataset.OCTBscanAnalysisAcquisitionParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, OCTBscanAnalysisAcquisitionParametersSequenceItem) for item in value + ): + raise ValueError( + "OCTBscanAnalysisAcquisitionParametersSequence must be a list of" + " OCTBscanAnalysisAcquisitionParametersSequenceItem objects" + ) + else: + self._OCTBscanAnalysisAcquisitionParametersSequence = value + if "OCTBscanAnalysisAcquisitionParametersSequence" not in self._dataset: + self._dataset.OCTBscanAnalysisAcquisitionParametersSequence = pydicom.Sequence() + self._dataset.OCTBscanAnalysisAcquisitionParametersSequence.clear() + self._dataset.OCTBscanAnalysisAcquisitionParametersSequence.extend([item.to_dataset() for item in value]) + + def add_OCTBscanAnalysisAcquisitionParameters(self, item: OCTBscanAnalysisAcquisitionParametersSequenceItem): + if not isinstance(item, OCTBscanAnalysisAcquisitionParametersSequenceItem): + raise ValueError("Item must be an instance of OCTBscanAnalysisAcquisitionParametersSequenceItem") + self._OCTBscanAnalysisAcquisitionParametersSequence.append(item) + if "OCTBscanAnalysisAcquisitionParametersSequence" not in self._dataset: + self._dataset.OCTBscanAnalysisAcquisitionParametersSequence = pydicom.Sequence() + self._dataset.OCTBscanAnalysisAcquisitionParametersSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_en_face_image.py b/tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_en_face_image.py new file mode 100644 index 0000000..6450fec --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_optical_coherence_tomography_en_face_image.py @@ -0,0 +1,5730 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_algorithm_sequence_item import DerivationAlgorithmSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .ophthalmic_en_face_image_quality_rating_sequence_item import ( + OphthalmicEnFaceImageQualityRatingSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_surface_mesh_identification_sequence_item import ( + ReferencedSurfaceMeshIdentificationSequenceItem, +) +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicOpticalCoherenceTomographyEnFaceImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicEnFaceImageQualityRatingSequence: List[OphthalmicEnFaceImageQualityRatingSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationAlgorithmSequence: List[DerivationAlgorithmSequenceItem] = [] + self._OphthalmicImageTypeCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSurfaceMeshIdentificationSequence: List[ReferencedSurfaceMeshIdentificationSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicEnFaceImageQualityRatingSequence(self) -> Optional[List[OphthalmicEnFaceImageQualityRatingSequenceItem]]: + if "OphthalmicEnFaceImageQualityRatingSequence" in self._dataset: + if len(self._OphthalmicEnFaceImageQualityRatingSequence) == len( + self._dataset.OphthalmicEnFaceImageQualityRatingSequence + ): + return self._OphthalmicEnFaceImageQualityRatingSequence + else: + return [ + OphthalmicEnFaceImageQualityRatingSequenceItem(x) + for x in self._dataset.OphthalmicEnFaceImageQualityRatingSequence + ] + return None + + @OphthalmicEnFaceImageQualityRatingSequence.setter + def OphthalmicEnFaceImageQualityRatingSequence( + self, value: Optional[List[OphthalmicEnFaceImageQualityRatingSequenceItem]] + ): + if value is None: + self._OphthalmicEnFaceImageQualityRatingSequence = [] + if "OphthalmicEnFaceImageQualityRatingSequence" in self._dataset: + del self._dataset.OphthalmicEnFaceImageQualityRatingSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicEnFaceImageQualityRatingSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicEnFaceImageQualityRatingSequence must be a list of OphthalmicEnFaceImageQualityRatingSequenceItem" + " objects" + ) + else: + self._OphthalmicEnFaceImageQualityRatingSequence = value + if "OphthalmicEnFaceImageQualityRatingSequence" not in self._dataset: + self._dataset.OphthalmicEnFaceImageQualityRatingSequence = pydicom.Sequence() + self._dataset.OphthalmicEnFaceImageQualityRatingSequence.clear() + self._dataset.OphthalmicEnFaceImageQualityRatingSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicEnFaceImageQualityRating(self, item: OphthalmicEnFaceImageQualityRatingSequenceItem): + if not isinstance(item, OphthalmicEnFaceImageQualityRatingSequenceItem): + raise ValueError("Item must be an instance of OphthalmicEnFaceImageQualityRatingSequenceItem") + self._OphthalmicEnFaceImageQualityRatingSequence.append(item) + if "OphthalmicEnFaceImageQualityRatingSequence" not in self._dataset: + self._dataset.OphthalmicEnFaceImageQualityRatingSequence = pydicom.Sequence() + self._dataset.OphthalmicEnFaceImageQualityRatingSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthMethod(self) -> Optional[str]: + if "OphthalmicAxialLengthMethod" in self._dataset: + return self._dataset.OphthalmicAxialLengthMethod + return None + + @OphthalmicAxialLengthMethod.setter + def OphthalmicAxialLengthMethod(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMethod" in self._dataset: + del self._dataset.OphthalmicAxialLengthMethod + else: + self._dataset.OphthalmicAxialLengthMethod = value + + @property + def OphthalmicFOV(self) -> Optional[float]: + if "OphthalmicFOV" in self._dataset: + return self._dataset.OphthalmicFOV + return None + + @OphthalmicFOV.setter + def OphthalmicFOV(self, value: Optional[float]): + if value is None: + if "OphthalmicFOV" in self._dataset: + del self._dataset.OphthalmicFOV + else: + self._dataset.OphthalmicFOV = value + + @property + def DerivationAlgorithmSequence(self) -> Optional[List[DerivationAlgorithmSequenceItem]]: + if "DerivationAlgorithmSequence" in self._dataset: + if len(self._DerivationAlgorithmSequence) == len(self._dataset.DerivationAlgorithmSequence): + return self._DerivationAlgorithmSequence + else: + return [DerivationAlgorithmSequenceItem(x) for x in self._dataset.DerivationAlgorithmSequence] + return None + + @DerivationAlgorithmSequence.setter + def DerivationAlgorithmSequence(self, value: Optional[List[DerivationAlgorithmSequenceItem]]): + if value is None: + self._DerivationAlgorithmSequence = [] + if "DerivationAlgorithmSequence" in self._dataset: + del self._dataset.DerivationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationAlgorithmSequenceItem) for item in value): + raise ValueError("DerivationAlgorithmSequence must be a list of DerivationAlgorithmSequenceItem objects") + else: + self._DerivationAlgorithmSequence = value + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.clear() + self._dataset.DerivationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationAlgorithm(self, item: DerivationAlgorithmSequenceItem): + if not isinstance(item, DerivationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of DerivationAlgorithmSequenceItem") + self._DerivationAlgorithmSequence.append(item) + if "DerivationAlgorithmSequence" not in self._dataset: + self._dataset.DerivationAlgorithmSequence = pydicom.Sequence() + self._dataset.DerivationAlgorithmSequence.append(item.to_dataset()) + + @property + def OphthalmicImageTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicImageTypeCodeSequence" in self._dataset: + if len(self._OphthalmicImageTypeCodeSequence) == len(self._dataset.OphthalmicImageTypeCodeSequence): + return self._OphthalmicImageTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicImageTypeCodeSequence] + return None + + @OphthalmicImageTypeCodeSequence.setter + def OphthalmicImageTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicImageTypeCodeSequence = [] + if "OphthalmicImageTypeCodeSequence" in self._dataset: + del self._dataset.OphthalmicImageTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicImageTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicImageTypeCodeSequence = value + if "OphthalmicImageTypeCodeSequence" not in self._dataset: + self._dataset.OphthalmicImageTypeCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicImageTypeCodeSequence.clear() + self._dataset.OphthalmicImageTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicImageTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicImageTypeCodeSequence.append(item) + if "OphthalmicImageTypeCodeSequence" not in self._dataset: + self._dataset.OphthalmicImageTypeCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicImageTypeCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicImageTypeDescription(self) -> Optional[str]: + if "OphthalmicImageTypeDescription" in self._dataset: + return self._dataset.OphthalmicImageTypeDescription + return None + + @OphthalmicImageTypeDescription.setter + def OphthalmicImageTypeDescription(self, value: Optional[str]): + if value is None: + if "OphthalmicImageTypeDescription" in self._dataset: + del self._dataset.OphthalmicImageTypeDescription + else: + self._dataset.OphthalmicImageTypeDescription = value + + @property + def ReferencedSurfaceMeshIdentificationSequence(self) -> Optional[List[ReferencedSurfaceMeshIdentificationSequenceItem]]: + if "ReferencedSurfaceMeshIdentificationSequence" in self._dataset: + if len(self._ReferencedSurfaceMeshIdentificationSequence) == len( + self._dataset.ReferencedSurfaceMeshIdentificationSequence + ): + return self._ReferencedSurfaceMeshIdentificationSequence + else: + return [ + ReferencedSurfaceMeshIdentificationSequenceItem(x) + for x in self._dataset.ReferencedSurfaceMeshIdentificationSequence + ] + return None + + @ReferencedSurfaceMeshIdentificationSequence.setter + def ReferencedSurfaceMeshIdentificationSequence( + self, value: Optional[List[ReferencedSurfaceMeshIdentificationSequenceItem]] + ): + if value is None: + self._ReferencedSurfaceMeshIdentificationSequence = [] + if "ReferencedSurfaceMeshIdentificationSequence" in self._dataset: + del self._dataset.ReferencedSurfaceMeshIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedSurfaceMeshIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedSurfaceMeshIdentificationSequence must be a list of ReferencedSurfaceMeshIdentificationSequenceItem" + " objects" + ) + else: + self._ReferencedSurfaceMeshIdentificationSequence = value + if "ReferencedSurfaceMeshIdentificationSequence" not in self._dataset: + self._dataset.ReferencedSurfaceMeshIdentificationSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceMeshIdentificationSequence.clear() + self._dataset.ReferencedSurfaceMeshIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSurfaceMeshIdentification(self, item: ReferencedSurfaceMeshIdentificationSequenceItem): + if not isinstance(item, ReferencedSurfaceMeshIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferencedSurfaceMeshIdentificationSequenceItem") + self._ReferencedSurfaceMeshIdentificationSequence.append(item) + if "ReferencedSurfaceMeshIdentificationSequence" not in self._dataset: + self._dataset.ReferencedSurfaceMeshIdentificationSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceMeshIdentificationSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAnatomicReferencePointXCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointXCoordinate + return None + + @OphthalmicAnatomicReferencePointXCoordinate.setter + def OphthalmicAnatomicReferencePointXCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointXCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointXCoordinate = value + + @property + def OphthalmicAnatomicReferencePointYCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointYCoordinate + return None + + @OphthalmicAnatomicReferencePointYCoordinate.setter + def OphthalmicAnatomicReferencePointYCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointYCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointYCoordinate = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_left_eye_sequence_item.py new file mode 100644 index 0000000..18a824a --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_left_eye_sequence_item.py @@ -0,0 +1,134 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .refractive_parameters_used_on_patient_sequence_item import ( + RefractiveParametersUsedOnPatientSequenceItem, +) +from .visual_acuity_measurement_sequence_item import VisualAcuityMeasurementSequenceItem + + +class OphthalmicPatientClinicalInformationLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VisualAcuityMeasurementSequence: List[VisualAcuityMeasurementSequenceItem] = [] + self._RefractiveParametersUsedOnPatientSequence: List[RefractiveParametersUsedOnPatientSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def VisualAcuityMeasurementSequence(self) -> Optional[List[VisualAcuityMeasurementSequenceItem]]: + if "VisualAcuityMeasurementSequence" in self._dataset: + if len(self._VisualAcuityMeasurementSequence) == len(self._dataset.VisualAcuityMeasurementSequence): + return self._VisualAcuityMeasurementSequence + else: + return [VisualAcuityMeasurementSequenceItem(x) for x in self._dataset.VisualAcuityMeasurementSequence] + return None + + @VisualAcuityMeasurementSequence.setter + def VisualAcuityMeasurementSequence(self, value: Optional[List[VisualAcuityMeasurementSequenceItem]]): + if value is None: + self._VisualAcuityMeasurementSequence = [] + if "VisualAcuityMeasurementSequence" in self._dataset: + del self._dataset.VisualAcuityMeasurementSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualAcuityMeasurementSequenceItem) for item in value): + raise ValueError("VisualAcuityMeasurementSequence must be a list of VisualAcuityMeasurementSequenceItem objects") + else: + self._VisualAcuityMeasurementSequence = value + if "VisualAcuityMeasurementSequence" not in self._dataset: + self._dataset.VisualAcuityMeasurementSequence = pydicom.Sequence() + self._dataset.VisualAcuityMeasurementSequence.clear() + self._dataset.VisualAcuityMeasurementSequence.extend([item.to_dataset() for item in value]) + + def add_VisualAcuityMeasurement(self, item: VisualAcuityMeasurementSequenceItem): + if not isinstance(item, VisualAcuityMeasurementSequenceItem): + raise ValueError("Item must be an instance of VisualAcuityMeasurementSequenceItem") + self._VisualAcuityMeasurementSequence.append(item) + if "VisualAcuityMeasurementSequence" not in self._dataset: + self._dataset.VisualAcuityMeasurementSequence = pydicom.Sequence() + self._dataset.VisualAcuityMeasurementSequence.append(item.to_dataset()) + + @property + def RefractiveParametersUsedOnPatientSequence(self) -> Optional[List[RefractiveParametersUsedOnPatientSequenceItem]]: + if "RefractiveParametersUsedOnPatientSequence" in self._dataset: + if len(self._RefractiveParametersUsedOnPatientSequence) == len( + self._dataset.RefractiveParametersUsedOnPatientSequence + ): + return self._RefractiveParametersUsedOnPatientSequence + else: + return [ + RefractiveParametersUsedOnPatientSequenceItem(x) + for x in self._dataset.RefractiveParametersUsedOnPatientSequence + ] + return None + + @RefractiveParametersUsedOnPatientSequence.setter + def RefractiveParametersUsedOnPatientSequence(self, value: Optional[List[RefractiveParametersUsedOnPatientSequenceItem]]): + if value is None: + self._RefractiveParametersUsedOnPatientSequence = [] + if "RefractiveParametersUsedOnPatientSequence" in self._dataset: + del self._dataset.RefractiveParametersUsedOnPatientSequence + elif not isinstance(value, list) or not all( + isinstance(item, RefractiveParametersUsedOnPatientSequenceItem) for item in value + ): + raise ValueError( + "RefractiveParametersUsedOnPatientSequence must be a list of RefractiveParametersUsedOnPatientSequenceItem" + " objects" + ) + else: + self._RefractiveParametersUsedOnPatientSequence = value + if "RefractiveParametersUsedOnPatientSequence" not in self._dataset: + self._dataset.RefractiveParametersUsedOnPatientSequence = pydicom.Sequence() + self._dataset.RefractiveParametersUsedOnPatientSequence.clear() + self._dataset.RefractiveParametersUsedOnPatientSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveParametersUsedOnPatient(self, item: RefractiveParametersUsedOnPatientSequenceItem): + if not isinstance(item, RefractiveParametersUsedOnPatientSequenceItem): + raise ValueError("Item must be an instance of RefractiveParametersUsedOnPatientSequenceItem") + self._RefractiveParametersUsedOnPatientSequence.append(item) + if "RefractiveParametersUsedOnPatientSequence" not in self._dataset: + self._dataset.RefractiveParametersUsedOnPatientSequence = pydicom.Sequence() + self._dataset.RefractiveParametersUsedOnPatientSequence.append(item.to_dataset()) + + @property + def PupilSize(self) -> Optional[float]: + if "PupilSize" in self._dataset: + return self._dataset.PupilSize + return None + + @PupilSize.setter + def PupilSize(self, value: Optional[float]): + if value is None: + if "PupilSize" in self._dataset: + del self._dataset.PupilSize + else: + self._dataset.PupilSize = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_right_eye_sequence_item.py new file mode 100644 index 0000000..4323f15 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_patient_clinical_information_right_eye_sequence_item.py @@ -0,0 +1,134 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .refractive_parameters_used_on_patient_sequence_item import ( + RefractiveParametersUsedOnPatientSequenceItem, +) +from .visual_acuity_measurement_sequence_item import VisualAcuityMeasurementSequenceItem + + +class OphthalmicPatientClinicalInformationRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VisualAcuityMeasurementSequence: List[VisualAcuityMeasurementSequenceItem] = [] + self._RefractiveParametersUsedOnPatientSequence: List[RefractiveParametersUsedOnPatientSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def VisualAcuityMeasurementSequence(self) -> Optional[List[VisualAcuityMeasurementSequenceItem]]: + if "VisualAcuityMeasurementSequence" in self._dataset: + if len(self._VisualAcuityMeasurementSequence) == len(self._dataset.VisualAcuityMeasurementSequence): + return self._VisualAcuityMeasurementSequence + else: + return [VisualAcuityMeasurementSequenceItem(x) for x in self._dataset.VisualAcuityMeasurementSequence] + return None + + @VisualAcuityMeasurementSequence.setter + def VisualAcuityMeasurementSequence(self, value: Optional[List[VisualAcuityMeasurementSequenceItem]]): + if value is None: + self._VisualAcuityMeasurementSequence = [] + if "VisualAcuityMeasurementSequence" in self._dataset: + del self._dataset.VisualAcuityMeasurementSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualAcuityMeasurementSequenceItem) for item in value): + raise ValueError("VisualAcuityMeasurementSequence must be a list of VisualAcuityMeasurementSequenceItem objects") + else: + self._VisualAcuityMeasurementSequence = value + if "VisualAcuityMeasurementSequence" not in self._dataset: + self._dataset.VisualAcuityMeasurementSequence = pydicom.Sequence() + self._dataset.VisualAcuityMeasurementSequence.clear() + self._dataset.VisualAcuityMeasurementSequence.extend([item.to_dataset() for item in value]) + + def add_VisualAcuityMeasurement(self, item: VisualAcuityMeasurementSequenceItem): + if not isinstance(item, VisualAcuityMeasurementSequenceItem): + raise ValueError("Item must be an instance of VisualAcuityMeasurementSequenceItem") + self._VisualAcuityMeasurementSequence.append(item) + if "VisualAcuityMeasurementSequence" not in self._dataset: + self._dataset.VisualAcuityMeasurementSequence = pydicom.Sequence() + self._dataset.VisualAcuityMeasurementSequence.append(item.to_dataset()) + + @property + def RefractiveParametersUsedOnPatientSequence(self) -> Optional[List[RefractiveParametersUsedOnPatientSequenceItem]]: + if "RefractiveParametersUsedOnPatientSequence" in self._dataset: + if len(self._RefractiveParametersUsedOnPatientSequence) == len( + self._dataset.RefractiveParametersUsedOnPatientSequence + ): + return self._RefractiveParametersUsedOnPatientSequence + else: + return [ + RefractiveParametersUsedOnPatientSequenceItem(x) + for x in self._dataset.RefractiveParametersUsedOnPatientSequence + ] + return None + + @RefractiveParametersUsedOnPatientSequence.setter + def RefractiveParametersUsedOnPatientSequence(self, value: Optional[List[RefractiveParametersUsedOnPatientSequenceItem]]): + if value is None: + self._RefractiveParametersUsedOnPatientSequence = [] + if "RefractiveParametersUsedOnPatientSequence" in self._dataset: + del self._dataset.RefractiveParametersUsedOnPatientSequence + elif not isinstance(value, list) or not all( + isinstance(item, RefractiveParametersUsedOnPatientSequenceItem) for item in value + ): + raise ValueError( + "RefractiveParametersUsedOnPatientSequence must be a list of RefractiveParametersUsedOnPatientSequenceItem" + " objects" + ) + else: + self._RefractiveParametersUsedOnPatientSequence = value + if "RefractiveParametersUsedOnPatientSequence" not in self._dataset: + self._dataset.RefractiveParametersUsedOnPatientSequence = pydicom.Sequence() + self._dataset.RefractiveParametersUsedOnPatientSequence.clear() + self._dataset.RefractiveParametersUsedOnPatientSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveParametersUsedOnPatient(self, item: RefractiveParametersUsedOnPatientSequenceItem): + if not isinstance(item, RefractiveParametersUsedOnPatientSequenceItem): + raise ValueError("Item must be an instance of RefractiveParametersUsedOnPatientSequenceItem") + self._RefractiveParametersUsedOnPatientSequence.append(item) + if "RefractiveParametersUsedOnPatientSequence" not in self._dataset: + self._dataset.RefractiveParametersUsedOnPatientSequence = pydicom.Sequence() + self._dataset.RefractiveParametersUsedOnPatientSequence.append(item.to_dataset()) + + @property + def PupilSize(self) -> Optional[float]: + if "PupilSize" in self._dataset: + return self._dataset.PupilSize + return None + + @PupilSize.setter + def PupilSize(self, value: Optional[float]): + if value is None: + if "PupilSize" in self._dataset: + del self._dataset.PupilSize + else: + self._dataset.PupilSize = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_photography16_bit_image.py b/tdwii_plus_examples/domain_model/ophthalmic_photography16_bit_image.py new file mode 100644 index 0000000..22257f0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_photography16_bit_image.py @@ -0,0 +1,6358 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicPhotography16BitImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._PatientEyeMovementCommandCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AcquisitionDeviceTypeCodeSequence: List[CodeSequenceItem] = [] + self._IlluminationTypeCodeSequence: List[CodeSequenceItem] = [] + self._LightPathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._ImagePathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._LensesCodeSequence: List[CodeSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def PatientEyeMovementCommanded(self) -> Optional[str]: + if "PatientEyeMovementCommanded" in self._dataset: + return self._dataset.PatientEyeMovementCommanded + return None + + @PatientEyeMovementCommanded.setter + def PatientEyeMovementCommanded(self, value: Optional[str]): + if value is None: + if "PatientEyeMovementCommanded" in self._dataset: + del self._dataset.PatientEyeMovementCommanded + else: + self._dataset.PatientEyeMovementCommanded = value + + @property + def PatientEyeMovementCommandCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + if len(self._PatientEyeMovementCommandCodeSequence) == len(self._dataset.PatientEyeMovementCommandCodeSequence): + return self._PatientEyeMovementCommandCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEyeMovementCommandCodeSequence] + return None + + @PatientEyeMovementCommandCodeSequence.setter + def PatientEyeMovementCommandCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEyeMovementCommandCodeSequence = [] + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + del self._dataset.PatientEyeMovementCommandCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEyeMovementCommandCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEyeMovementCommandCodeSequence = value + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.clear() + self._dataset.PatientEyeMovementCommandCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEyeMovementCommandCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEyeMovementCommandCodeSequence.append(item) + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.append(item.to_dataset()) + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAnatomicReferencePointXCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointXCoordinate + return None + + @OphthalmicAnatomicReferencePointXCoordinate.setter + def OphthalmicAnatomicReferencePointXCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointXCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointXCoordinate = value + + @property + def OphthalmicAnatomicReferencePointYCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointYCoordinate + return None + + @OphthalmicAnatomicReferencePointYCoordinate.setter + def OphthalmicAnatomicReferencePointYCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointYCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointYCoordinate = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def LightPathFilterPassThroughWavelength(self) -> Optional[int]: + if "LightPathFilterPassThroughWavelength" in self._dataset: + return self._dataset.LightPathFilterPassThroughWavelength + return None + + @LightPathFilterPassThroughWavelength.setter + def LightPathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "LightPathFilterPassThroughWavelength" in self._dataset: + del self._dataset.LightPathFilterPassThroughWavelength + else: + self._dataset.LightPathFilterPassThroughWavelength = value + + @property + def LightPathFilterPassBand(self) -> Optional[List[int]]: + if "LightPathFilterPassBand" in self._dataset: + return self._dataset.LightPathFilterPassBand + return None + + @LightPathFilterPassBand.setter + def LightPathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "LightPathFilterPassBand" in self._dataset: + del self._dataset.LightPathFilterPassBand + else: + self._dataset.LightPathFilterPassBand = value + + @property + def ImagePathFilterPassThroughWavelength(self) -> Optional[int]: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + return self._dataset.ImagePathFilterPassThroughWavelength + return None + + @ImagePathFilterPassThroughWavelength.setter + def ImagePathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + del self._dataset.ImagePathFilterPassThroughWavelength + else: + self._dataset.ImagePathFilterPassThroughWavelength = value + + @property + def ImagePathFilterPassBand(self) -> Optional[List[int]]: + if "ImagePathFilterPassBand" in self._dataset: + return self._dataset.ImagePathFilterPassBand + return None + + @ImagePathFilterPassBand.setter + def ImagePathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "ImagePathFilterPassBand" in self._dataset: + del self._dataset.ImagePathFilterPassBand + else: + self._dataset.ImagePathFilterPassBand = value + + @property + def AcquisitionDeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + if len(self._AcquisitionDeviceTypeCodeSequence) == len(self._dataset.AcquisitionDeviceTypeCodeSequence): + return self._AcquisitionDeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionDeviceTypeCodeSequence] + return None + + @AcquisitionDeviceTypeCodeSequence.setter + def AcquisitionDeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionDeviceTypeCodeSequence = [] + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + del self._dataset.AcquisitionDeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionDeviceTypeCodeSequence = value + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.clear() + self._dataset.AcquisitionDeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionDeviceTypeCodeSequence.append(item) + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def IlluminationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationTypeCodeSequence" in self._dataset: + if len(self._IlluminationTypeCodeSequence) == len(self._dataset.IlluminationTypeCodeSequence): + return self._IlluminationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationTypeCodeSequence] + return None + + @IlluminationTypeCodeSequence.setter + def IlluminationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationTypeCodeSequence = [] + if "IlluminationTypeCodeSequence" in self._dataset: + del self._dataset.IlluminationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationTypeCodeSequence = value + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.clear() + self._dataset.IlluminationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationTypeCodeSequence.append(item) + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.append(item.to_dataset()) + + @property + def LightPathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + if len(self._LightPathFilterTypeStackCodeSequence) == len(self._dataset.LightPathFilterTypeStackCodeSequence): + return self._LightPathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LightPathFilterTypeStackCodeSequence] + return None + + @LightPathFilterTypeStackCodeSequence.setter + def LightPathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LightPathFilterTypeStackCodeSequence = [] + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.LightPathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LightPathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LightPathFilterTypeStackCodeSequence = value + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.clear() + self._dataset.LightPathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LightPathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LightPathFilterTypeStackCodeSequence.append(item) + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def ImagePathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + if len(self._ImagePathFilterTypeStackCodeSequence) == len(self._dataset.ImagePathFilterTypeStackCodeSequence): + return self._ImagePathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ImagePathFilterTypeStackCodeSequence] + return None + + @ImagePathFilterTypeStackCodeSequence.setter + def ImagePathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ImagePathFilterTypeStackCodeSequence = [] + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.ImagePathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ImagePathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ImagePathFilterTypeStackCodeSequence = value + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.clear() + self._dataset.ImagePathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ImagePathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ImagePathFilterTypeStackCodeSequence.append(item) + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def LensesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensesCodeSequence" in self._dataset: + if len(self._LensesCodeSequence) == len(self._dataset.LensesCodeSequence): + return self._LensesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensesCodeSequence] + return None + + @LensesCodeSequence.setter + def LensesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensesCodeSequence = [] + if "LensesCodeSequence" in self._dataset: + del self._dataset.LensesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensesCodeSequence = value + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.clear() + self._dataset.LensesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensesCodeSequence.append(item) + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.append(item.to_dataset()) + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def CameraAngleOfView(self) -> Optional[float]: + if "CameraAngleOfView" in self._dataset: + return self._dataset.CameraAngleOfView + return None + + @CameraAngleOfView.setter + def CameraAngleOfView(self, value: Optional[float]): + if value is None: + if "CameraAngleOfView" in self._dataset: + del self._dataset.CameraAngleOfView + else: + self._dataset.CameraAngleOfView = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def SamplesPerPixelUsed(self) -> Optional[int]: + if "SamplesPerPixelUsed" in self._dataset: + return self._dataset.SamplesPerPixelUsed + return None + + @SamplesPerPixelUsed.setter + def SamplesPerPixelUsed(self, value: Optional[int]): + if value is None: + if "SamplesPerPixelUsed" in self._dataset: + del self._dataset.SamplesPerPixelUsed + else: + self._dataset.SamplesPerPixelUsed = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_photography8_bit_image.py b/tdwii_plus_examples/domain_model/ophthalmic_photography8_bit_image.py new file mode 100644 index 0000000..f2eee9a --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_photography8_bit_image.py @@ -0,0 +1,6358 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicPhotography8BitImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._PatientEyeMovementCommandCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AcquisitionDeviceTypeCodeSequence: List[CodeSequenceItem] = [] + self._IlluminationTypeCodeSequence: List[CodeSequenceItem] = [] + self._LightPathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._ImagePathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._LensesCodeSequence: List[CodeSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def PatientEyeMovementCommanded(self) -> Optional[str]: + if "PatientEyeMovementCommanded" in self._dataset: + return self._dataset.PatientEyeMovementCommanded + return None + + @PatientEyeMovementCommanded.setter + def PatientEyeMovementCommanded(self, value: Optional[str]): + if value is None: + if "PatientEyeMovementCommanded" in self._dataset: + del self._dataset.PatientEyeMovementCommanded + else: + self._dataset.PatientEyeMovementCommanded = value + + @property + def PatientEyeMovementCommandCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + if len(self._PatientEyeMovementCommandCodeSequence) == len(self._dataset.PatientEyeMovementCommandCodeSequence): + return self._PatientEyeMovementCommandCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEyeMovementCommandCodeSequence] + return None + + @PatientEyeMovementCommandCodeSequence.setter + def PatientEyeMovementCommandCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEyeMovementCommandCodeSequence = [] + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + del self._dataset.PatientEyeMovementCommandCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEyeMovementCommandCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEyeMovementCommandCodeSequence = value + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.clear() + self._dataset.PatientEyeMovementCommandCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEyeMovementCommandCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEyeMovementCommandCodeSequence.append(item) + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.append(item.to_dataset()) + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAnatomicReferencePointXCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointXCoordinate + return None + + @OphthalmicAnatomicReferencePointXCoordinate.setter + def OphthalmicAnatomicReferencePointXCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointXCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointXCoordinate = value + + @property + def OphthalmicAnatomicReferencePointYCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointYCoordinate + return None + + @OphthalmicAnatomicReferencePointYCoordinate.setter + def OphthalmicAnatomicReferencePointYCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointYCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointYCoordinate = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def LightPathFilterPassThroughWavelength(self) -> Optional[int]: + if "LightPathFilterPassThroughWavelength" in self._dataset: + return self._dataset.LightPathFilterPassThroughWavelength + return None + + @LightPathFilterPassThroughWavelength.setter + def LightPathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "LightPathFilterPassThroughWavelength" in self._dataset: + del self._dataset.LightPathFilterPassThroughWavelength + else: + self._dataset.LightPathFilterPassThroughWavelength = value + + @property + def LightPathFilterPassBand(self) -> Optional[List[int]]: + if "LightPathFilterPassBand" in self._dataset: + return self._dataset.LightPathFilterPassBand + return None + + @LightPathFilterPassBand.setter + def LightPathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "LightPathFilterPassBand" in self._dataset: + del self._dataset.LightPathFilterPassBand + else: + self._dataset.LightPathFilterPassBand = value + + @property + def ImagePathFilterPassThroughWavelength(self) -> Optional[int]: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + return self._dataset.ImagePathFilterPassThroughWavelength + return None + + @ImagePathFilterPassThroughWavelength.setter + def ImagePathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + del self._dataset.ImagePathFilterPassThroughWavelength + else: + self._dataset.ImagePathFilterPassThroughWavelength = value + + @property + def ImagePathFilterPassBand(self) -> Optional[List[int]]: + if "ImagePathFilterPassBand" in self._dataset: + return self._dataset.ImagePathFilterPassBand + return None + + @ImagePathFilterPassBand.setter + def ImagePathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "ImagePathFilterPassBand" in self._dataset: + del self._dataset.ImagePathFilterPassBand + else: + self._dataset.ImagePathFilterPassBand = value + + @property + def AcquisitionDeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + if len(self._AcquisitionDeviceTypeCodeSequence) == len(self._dataset.AcquisitionDeviceTypeCodeSequence): + return self._AcquisitionDeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionDeviceTypeCodeSequence] + return None + + @AcquisitionDeviceTypeCodeSequence.setter + def AcquisitionDeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionDeviceTypeCodeSequence = [] + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + del self._dataset.AcquisitionDeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionDeviceTypeCodeSequence = value + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.clear() + self._dataset.AcquisitionDeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionDeviceTypeCodeSequence.append(item) + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def IlluminationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationTypeCodeSequence" in self._dataset: + if len(self._IlluminationTypeCodeSequence) == len(self._dataset.IlluminationTypeCodeSequence): + return self._IlluminationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationTypeCodeSequence] + return None + + @IlluminationTypeCodeSequence.setter + def IlluminationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationTypeCodeSequence = [] + if "IlluminationTypeCodeSequence" in self._dataset: + del self._dataset.IlluminationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationTypeCodeSequence = value + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.clear() + self._dataset.IlluminationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationTypeCodeSequence.append(item) + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.append(item.to_dataset()) + + @property + def LightPathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + if len(self._LightPathFilterTypeStackCodeSequence) == len(self._dataset.LightPathFilterTypeStackCodeSequence): + return self._LightPathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LightPathFilterTypeStackCodeSequence] + return None + + @LightPathFilterTypeStackCodeSequence.setter + def LightPathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LightPathFilterTypeStackCodeSequence = [] + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.LightPathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LightPathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LightPathFilterTypeStackCodeSequence = value + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.clear() + self._dataset.LightPathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LightPathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LightPathFilterTypeStackCodeSequence.append(item) + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def ImagePathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + if len(self._ImagePathFilterTypeStackCodeSequence) == len(self._dataset.ImagePathFilterTypeStackCodeSequence): + return self._ImagePathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ImagePathFilterTypeStackCodeSequence] + return None + + @ImagePathFilterTypeStackCodeSequence.setter + def ImagePathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ImagePathFilterTypeStackCodeSequence = [] + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.ImagePathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ImagePathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ImagePathFilterTypeStackCodeSequence = value + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.clear() + self._dataset.ImagePathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ImagePathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ImagePathFilterTypeStackCodeSequence.append(item) + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def LensesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensesCodeSequence" in self._dataset: + if len(self._LensesCodeSequence) == len(self._dataset.LensesCodeSequence): + return self._LensesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensesCodeSequence] + return None + + @LensesCodeSequence.setter + def LensesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensesCodeSequence = [] + if "LensesCodeSequence" in self._dataset: + del self._dataset.LensesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensesCodeSequence = value + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.clear() + self._dataset.LensesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensesCodeSequence.append(item) + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.append(item.to_dataset()) + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def CameraAngleOfView(self) -> Optional[float]: + if "CameraAngleOfView" in self._dataset: + return self._dataset.CameraAngleOfView + return None + + @CameraAngleOfView.setter + def CameraAngleOfView(self, value: Optional[float]): + if value is None: + if "CameraAngleOfView" in self._dataset: + del self._dataset.CameraAngleOfView + else: + self._dataset.CameraAngleOfView = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def SamplesPerPixelUsed(self) -> Optional[int]: + if "SamplesPerPixelUsed" in self._dataset: + return self._dataset.SamplesPerPixelUsed + return None + + @SamplesPerPixelUsed.setter + def SamplesPerPixelUsed(self, value: Optional[int]): + if value is None: + if "SamplesPerPixelUsed" in self._dataset: + del self._dataset.SamplesPerPixelUsed + else: + self._dataset.SamplesPerPixelUsed = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_thickness_map.py b/tdwii_plus_examples/domain_model/ophthalmic_thickness_map.py new file mode 100644 index 0000000..c5dc475 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_thickness_map.py @@ -0,0 +1,6241 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .acquisition_method_algorithm_sequence_item import ( + AcquisitionMethodAlgorithmSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .ophthalmic_thickness_map_quality_rating_sequence_item import ( + OphthalmicThicknessMapQualityRatingSequenceItem, +) +from .ophthalmic_thickness_mapping_normals_sequence_item import ( + OphthalmicThicknessMappingNormalsSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .pixel_value_mapping_to_coded_concept_sequence_item import ( + PixelValueMappingToCodedConceptSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .registration_to_localizer_sequence_item import RegistrationToLocalizerSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .relevant_opt_attributes_sequence_item import RelevantOPTAttributesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicThicknessMap: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._PatientEyeMovementCommandCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionMethodCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionMethodAlgorithmSequence: List[AcquisitionMethodAlgorithmSequenceItem] = [] + self._OphthalmicThicknessMapTypeCodeSequence: List[CodeSequenceItem] = [] + self._OphthalmicThicknessMappingNormalsSequence: List[OphthalmicThicknessMappingNormalsSequenceItem] = [] + self._RetinalThicknessDefinitionCodeSequence: List[CodeSequenceItem] = [] + self._PixelValueMappingToCodedConceptSequence: List[PixelValueMappingToCodedConceptSequenceItem] = [] + self._RegistrationToLocalizerSequence: List[RegistrationToLocalizerSequenceItem] = [] + self._RelevantOPTAttributesSequence: List[RelevantOPTAttributesSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._OphthalmicThicknessMapQualityRatingSequence: List[OphthalmicThicknessMapQualityRatingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def PatientEyeMovementCommanded(self) -> Optional[str]: + if "PatientEyeMovementCommanded" in self._dataset: + return self._dataset.PatientEyeMovementCommanded + return None + + @PatientEyeMovementCommanded.setter + def PatientEyeMovementCommanded(self, value: Optional[str]): + if value is None: + if "PatientEyeMovementCommanded" in self._dataset: + del self._dataset.PatientEyeMovementCommanded + else: + self._dataset.PatientEyeMovementCommanded = value + + @property + def PatientEyeMovementCommandCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + if len(self._PatientEyeMovementCommandCodeSequence) == len(self._dataset.PatientEyeMovementCommandCodeSequence): + return self._PatientEyeMovementCommandCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEyeMovementCommandCodeSequence] + return None + + @PatientEyeMovementCommandCodeSequence.setter + def PatientEyeMovementCommandCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEyeMovementCommandCodeSequence = [] + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + del self._dataset.PatientEyeMovementCommandCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEyeMovementCommandCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEyeMovementCommandCodeSequence = value + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.clear() + self._dataset.PatientEyeMovementCommandCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEyeMovementCommandCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEyeMovementCommandCodeSequence.append(item) + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.append(item.to_dataset()) + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterOverlayGroup(self) -> Optional[int]: + if "ShutterOverlayGroup" in self._dataset: + return self._dataset.ShutterOverlayGroup + return None + + @ShutterOverlayGroup.setter + def ShutterOverlayGroup(self, value: Optional[int]): + if value is None: + if "ShutterOverlayGroup" in self._dataset: + del self._dataset.ShutterOverlayGroup + else: + self._dataset.ShutterOverlayGroup = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicMappingDeviceType(self) -> Optional[str]: + if "OphthalmicMappingDeviceType" in self._dataset: + return self._dataset.OphthalmicMappingDeviceType + return None + + @OphthalmicMappingDeviceType.setter + def OphthalmicMappingDeviceType(self, value: Optional[str]): + if value is None: + if "OphthalmicMappingDeviceType" in self._dataset: + del self._dataset.OphthalmicMappingDeviceType + else: + self._dataset.OphthalmicMappingDeviceType = value + + @property + def AcquisitionMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionMethodCodeSequence" in self._dataset: + if len(self._AcquisitionMethodCodeSequence) == len(self._dataset.AcquisitionMethodCodeSequence): + return self._AcquisitionMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionMethodCodeSequence] + return None + + @AcquisitionMethodCodeSequence.setter + def AcquisitionMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionMethodCodeSequence = [] + if "AcquisitionMethodCodeSequence" in self._dataset: + del self._dataset.AcquisitionMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionMethodCodeSequence = value + if "AcquisitionMethodCodeSequence" not in self._dataset: + self._dataset.AcquisitionMethodCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionMethodCodeSequence.clear() + self._dataset.AcquisitionMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionMethodCodeSequence.append(item) + if "AcquisitionMethodCodeSequence" not in self._dataset: + self._dataset.AcquisitionMethodCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionMethodCodeSequence.append(item.to_dataset()) + + @property + def AcquisitionMethodAlgorithmSequence(self) -> Optional[List[AcquisitionMethodAlgorithmSequenceItem]]: + if "AcquisitionMethodAlgorithmSequence" in self._dataset: + if len(self._AcquisitionMethodAlgorithmSequence) == len(self._dataset.AcquisitionMethodAlgorithmSequence): + return self._AcquisitionMethodAlgorithmSequence + else: + return [AcquisitionMethodAlgorithmSequenceItem(x) for x in self._dataset.AcquisitionMethodAlgorithmSequence] + return None + + @AcquisitionMethodAlgorithmSequence.setter + def AcquisitionMethodAlgorithmSequence(self, value: Optional[List[AcquisitionMethodAlgorithmSequenceItem]]): + if value is None: + self._AcquisitionMethodAlgorithmSequence = [] + if "AcquisitionMethodAlgorithmSequence" in self._dataset: + del self._dataset.AcquisitionMethodAlgorithmSequence + elif not isinstance(value, list) or not all( + isinstance(item, AcquisitionMethodAlgorithmSequenceItem) for item in value + ): + raise ValueError( + "AcquisitionMethodAlgorithmSequence must be a list of AcquisitionMethodAlgorithmSequenceItem objects" + ) + else: + self._AcquisitionMethodAlgorithmSequence = value + if "AcquisitionMethodAlgorithmSequence" not in self._dataset: + self._dataset.AcquisitionMethodAlgorithmSequence = pydicom.Sequence() + self._dataset.AcquisitionMethodAlgorithmSequence.clear() + self._dataset.AcquisitionMethodAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionMethodAlgorithm(self, item: AcquisitionMethodAlgorithmSequenceItem): + if not isinstance(item, AcquisitionMethodAlgorithmSequenceItem): + raise ValueError("Item must be an instance of AcquisitionMethodAlgorithmSequenceItem") + self._AcquisitionMethodAlgorithmSequence.append(item) + if "AcquisitionMethodAlgorithmSequence" not in self._dataset: + self._dataset.AcquisitionMethodAlgorithmSequence = pydicom.Sequence() + self._dataset.AcquisitionMethodAlgorithmSequence.append(item.to_dataset()) + + @property + def OphthalmicThicknessMapTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicThicknessMapTypeCodeSequence" in self._dataset: + if len(self._OphthalmicThicknessMapTypeCodeSequence) == len(self._dataset.OphthalmicThicknessMapTypeCodeSequence): + return self._OphthalmicThicknessMapTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicThicknessMapTypeCodeSequence] + return None + + @OphthalmicThicknessMapTypeCodeSequence.setter + def OphthalmicThicknessMapTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicThicknessMapTypeCodeSequence = [] + if "OphthalmicThicknessMapTypeCodeSequence" in self._dataset: + del self._dataset.OphthalmicThicknessMapTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicThicknessMapTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicThicknessMapTypeCodeSequence = value + if "OphthalmicThicknessMapTypeCodeSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMapTypeCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMapTypeCodeSequence.clear() + self._dataset.OphthalmicThicknessMapTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicThicknessMapTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicThicknessMapTypeCodeSequence.append(item) + if "OphthalmicThicknessMapTypeCodeSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMapTypeCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMapTypeCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicThicknessMappingNormalsSequence(self) -> Optional[List[OphthalmicThicknessMappingNormalsSequenceItem]]: + if "OphthalmicThicknessMappingNormalsSequence" in self._dataset: + if len(self._OphthalmicThicknessMappingNormalsSequence) == len( + self._dataset.OphthalmicThicknessMappingNormalsSequence + ): + return self._OphthalmicThicknessMappingNormalsSequence + else: + return [ + OphthalmicThicknessMappingNormalsSequenceItem(x) + for x in self._dataset.OphthalmicThicknessMappingNormalsSequence + ] + return None + + @OphthalmicThicknessMappingNormalsSequence.setter + def OphthalmicThicknessMappingNormalsSequence(self, value: Optional[List[OphthalmicThicknessMappingNormalsSequenceItem]]): + if value is None: + self._OphthalmicThicknessMappingNormalsSequence = [] + if "OphthalmicThicknessMappingNormalsSequence" in self._dataset: + del self._dataset.OphthalmicThicknessMappingNormalsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicThicknessMappingNormalsSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicThicknessMappingNormalsSequence must be a list of OphthalmicThicknessMappingNormalsSequenceItem" + " objects" + ) + else: + self._OphthalmicThicknessMappingNormalsSequence = value + if "OphthalmicThicknessMappingNormalsSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMappingNormalsSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMappingNormalsSequence.clear() + self._dataset.OphthalmicThicknessMappingNormalsSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicThicknessMappingNormals(self, item: OphthalmicThicknessMappingNormalsSequenceItem): + if not isinstance(item, OphthalmicThicknessMappingNormalsSequenceItem): + raise ValueError("Item must be an instance of OphthalmicThicknessMappingNormalsSequenceItem") + self._OphthalmicThicknessMappingNormalsSequence.append(item) + if "OphthalmicThicknessMappingNormalsSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMappingNormalsSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMappingNormalsSequence.append(item.to_dataset()) + + @property + def RetinalThicknessDefinitionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RetinalThicknessDefinitionCodeSequence" in self._dataset: + if len(self._RetinalThicknessDefinitionCodeSequence) == len(self._dataset.RetinalThicknessDefinitionCodeSequence): + return self._RetinalThicknessDefinitionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RetinalThicknessDefinitionCodeSequence] + return None + + @RetinalThicknessDefinitionCodeSequence.setter + def RetinalThicknessDefinitionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RetinalThicknessDefinitionCodeSequence = [] + if "RetinalThicknessDefinitionCodeSequence" in self._dataset: + del self._dataset.RetinalThicknessDefinitionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RetinalThicknessDefinitionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RetinalThicknessDefinitionCodeSequence = value + if "RetinalThicknessDefinitionCodeSequence" not in self._dataset: + self._dataset.RetinalThicknessDefinitionCodeSequence = pydicom.Sequence() + self._dataset.RetinalThicknessDefinitionCodeSequence.clear() + self._dataset.RetinalThicknessDefinitionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RetinalThicknessDefinitionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RetinalThicknessDefinitionCodeSequence.append(item) + if "RetinalThicknessDefinitionCodeSequence" not in self._dataset: + self._dataset.RetinalThicknessDefinitionCodeSequence = pydicom.Sequence() + self._dataset.RetinalThicknessDefinitionCodeSequence.append(item.to_dataset()) + + @property + def PixelValueMappingToCodedConceptSequence(self) -> Optional[List[PixelValueMappingToCodedConceptSequenceItem]]: + if "PixelValueMappingToCodedConceptSequence" in self._dataset: + if len(self._PixelValueMappingToCodedConceptSequence) == len( + self._dataset.PixelValueMappingToCodedConceptSequence + ): + return self._PixelValueMappingToCodedConceptSequence + else: + return [ + PixelValueMappingToCodedConceptSequenceItem(x) + for x in self._dataset.PixelValueMappingToCodedConceptSequence + ] + return None + + @PixelValueMappingToCodedConceptSequence.setter + def PixelValueMappingToCodedConceptSequence(self, value: Optional[List[PixelValueMappingToCodedConceptSequenceItem]]): + if value is None: + self._PixelValueMappingToCodedConceptSequence = [] + if "PixelValueMappingToCodedConceptSequence" in self._dataset: + del self._dataset.PixelValueMappingToCodedConceptSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelValueMappingToCodedConceptSequenceItem) for item in value + ): + raise ValueError( + "PixelValueMappingToCodedConceptSequence must be a list of PixelValueMappingToCodedConceptSequenceItem objects" + ) + else: + self._PixelValueMappingToCodedConceptSequence = value + if "PixelValueMappingToCodedConceptSequence" not in self._dataset: + self._dataset.PixelValueMappingToCodedConceptSequence = pydicom.Sequence() + self._dataset.PixelValueMappingToCodedConceptSequence.clear() + self._dataset.PixelValueMappingToCodedConceptSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueMappingToCodedConcept(self, item: PixelValueMappingToCodedConceptSequenceItem): + if not isinstance(item, PixelValueMappingToCodedConceptSequenceItem): + raise ValueError("Item must be an instance of PixelValueMappingToCodedConceptSequenceItem") + self._PixelValueMappingToCodedConceptSequence.append(item) + if "PixelValueMappingToCodedConceptSequence" not in self._dataset: + self._dataset.PixelValueMappingToCodedConceptSequence = pydicom.Sequence() + self._dataset.PixelValueMappingToCodedConceptSequence.append(item.to_dataset()) + + @property + def AnatomicStructureReferencePoint(self) -> Optional[List[float]]: + if "AnatomicStructureReferencePoint" in self._dataset: + return self._dataset.AnatomicStructureReferencePoint + return None + + @AnatomicStructureReferencePoint.setter + def AnatomicStructureReferencePoint(self, value: Optional[List[float]]): + if value is None: + if "AnatomicStructureReferencePoint" in self._dataset: + del self._dataset.AnatomicStructureReferencePoint + else: + self._dataset.AnatomicStructureReferencePoint = value + + @property + def RegistrationToLocalizerSequence(self) -> Optional[List[RegistrationToLocalizerSequenceItem]]: + if "RegistrationToLocalizerSequence" in self._dataset: + if len(self._RegistrationToLocalizerSequence) == len(self._dataset.RegistrationToLocalizerSequence): + return self._RegistrationToLocalizerSequence + else: + return [RegistrationToLocalizerSequenceItem(x) for x in self._dataset.RegistrationToLocalizerSequence] + return None + + @RegistrationToLocalizerSequence.setter + def RegistrationToLocalizerSequence(self, value: Optional[List[RegistrationToLocalizerSequenceItem]]): + if value is None: + self._RegistrationToLocalizerSequence = [] + if "RegistrationToLocalizerSequence" in self._dataset: + del self._dataset.RegistrationToLocalizerSequence + elif not isinstance(value, list) or not all(isinstance(item, RegistrationToLocalizerSequenceItem) for item in value): + raise ValueError("RegistrationToLocalizerSequence must be a list of RegistrationToLocalizerSequenceItem objects") + else: + self._RegistrationToLocalizerSequence = value + if "RegistrationToLocalizerSequence" not in self._dataset: + self._dataset.RegistrationToLocalizerSequence = pydicom.Sequence() + self._dataset.RegistrationToLocalizerSequence.clear() + self._dataset.RegistrationToLocalizerSequence.extend([item.to_dataset() for item in value]) + + def add_RegistrationToLocalizer(self, item: RegistrationToLocalizerSequenceItem): + if not isinstance(item, RegistrationToLocalizerSequenceItem): + raise ValueError("Item must be an instance of RegistrationToLocalizerSequenceItem") + self._RegistrationToLocalizerSequence.append(item) + if "RegistrationToLocalizerSequence" not in self._dataset: + self._dataset.RegistrationToLocalizerSequence = pydicom.Sequence() + self._dataset.RegistrationToLocalizerSequence.append(item.to_dataset()) + + @property + def RelevantOPTAttributesSequence(self) -> Optional[List[RelevantOPTAttributesSequenceItem]]: + if "RelevantOPTAttributesSequence" in self._dataset: + if len(self._RelevantOPTAttributesSequence) == len(self._dataset.RelevantOPTAttributesSequence): + return self._RelevantOPTAttributesSequence + else: + return [RelevantOPTAttributesSequenceItem(x) for x in self._dataset.RelevantOPTAttributesSequence] + return None + + @RelevantOPTAttributesSequence.setter + def RelevantOPTAttributesSequence(self, value: Optional[List[RelevantOPTAttributesSequenceItem]]): + if value is None: + self._RelevantOPTAttributesSequence = [] + if "RelevantOPTAttributesSequence" in self._dataset: + del self._dataset.RelevantOPTAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelevantOPTAttributesSequenceItem) for item in value): + raise ValueError("RelevantOPTAttributesSequence must be a list of RelevantOPTAttributesSequenceItem objects") + else: + self._RelevantOPTAttributesSequence = value + if "RelevantOPTAttributesSequence" not in self._dataset: + self._dataset.RelevantOPTAttributesSequence = pydicom.Sequence() + self._dataset.RelevantOPTAttributesSequence.clear() + self._dataset.RelevantOPTAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RelevantOPTAttributes(self, item: RelevantOPTAttributesSequenceItem): + if not isinstance(item, RelevantOPTAttributesSequenceItem): + raise ValueError("Item must be an instance of RelevantOPTAttributesSequenceItem") + self._RelevantOPTAttributesSequence.append(item) + if "RelevantOPTAttributesSequence" not in self._dataset: + self._dataset.RelevantOPTAttributesSequence = pydicom.Sequence() + self._dataset.RelevantOPTAttributesSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def ReferencedColorPaletteInstanceUID(self) -> Optional[str]: + if "ReferencedColorPaletteInstanceUID" in self._dataset: + return self._dataset.ReferencedColorPaletteInstanceUID + return None + + @ReferencedColorPaletteInstanceUID.setter + def ReferencedColorPaletteInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedColorPaletteInstanceUID" in self._dataset: + del self._dataset.ReferencedColorPaletteInstanceUID + else: + self._dataset.ReferencedColorPaletteInstanceUID = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def OphthalmicThicknessMapQualityRatingSequence(self) -> Optional[List[OphthalmicThicknessMapQualityRatingSequenceItem]]: + if "OphthalmicThicknessMapQualityRatingSequence" in self._dataset: + if len(self._OphthalmicThicknessMapQualityRatingSequence) == len( + self._dataset.OphthalmicThicknessMapQualityRatingSequence + ): + return self._OphthalmicThicknessMapQualityRatingSequence + else: + return [ + OphthalmicThicknessMapQualityRatingSequenceItem(x) + for x in self._dataset.OphthalmicThicknessMapQualityRatingSequence + ] + return None + + @OphthalmicThicknessMapQualityRatingSequence.setter + def OphthalmicThicknessMapQualityRatingSequence( + self, value: Optional[List[OphthalmicThicknessMapQualityRatingSequenceItem]] + ): + if value is None: + self._OphthalmicThicknessMapQualityRatingSequence = [] + if "OphthalmicThicknessMapQualityRatingSequence" in self._dataset: + del self._dataset.OphthalmicThicknessMapQualityRatingSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicThicknessMapQualityRatingSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicThicknessMapQualityRatingSequence must be a list of OphthalmicThicknessMapQualityRatingSequenceItem" + " objects" + ) + else: + self._OphthalmicThicknessMapQualityRatingSequence = value + if "OphthalmicThicknessMapQualityRatingSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMapQualityRatingSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMapQualityRatingSequence.clear() + self._dataset.OphthalmicThicknessMapQualityRatingSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicThicknessMapQualityRating(self, item: OphthalmicThicknessMapQualityRatingSequenceItem): + if not isinstance(item, OphthalmicThicknessMapQualityRatingSequenceItem): + raise ValueError("Item must be an instance of OphthalmicThicknessMapQualityRatingSequenceItem") + self._OphthalmicThicknessMapQualityRatingSequence.append(item) + if "OphthalmicThicknessMapQualityRatingSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMapQualityRatingSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMapQualityRatingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_rating_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_rating_sequence_item.py new file mode 100644 index 0000000..2b6e1a8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_rating_sequence_item.py @@ -0,0 +1,144 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .ophthalmic_thickness_map_quality_threshold_sequence_item import ( + OphthalmicThicknessMapQualityThresholdSequenceItem, +) + + +class OphthalmicThicknessMapQualityRatingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicThicknessMapQualityThresholdSequence: List[OphthalmicThicknessMapQualityThresholdSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicThicknessMapQualityThresholdSequence( + self, + ) -> Optional[List[OphthalmicThicknessMapQualityThresholdSequenceItem]]: + if "OphthalmicThicknessMapQualityThresholdSequence" in self._dataset: + if len(self._OphthalmicThicknessMapQualityThresholdSequence) == len( + self._dataset.OphthalmicThicknessMapQualityThresholdSequence + ): + return self._OphthalmicThicknessMapQualityThresholdSequence + else: + return [ + OphthalmicThicknessMapQualityThresholdSequenceItem(x) + for x in self._dataset.OphthalmicThicknessMapQualityThresholdSequence + ] + return None + + @OphthalmicThicknessMapQualityThresholdSequence.setter + def OphthalmicThicknessMapQualityThresholdSequence( + self, value: Optional[List[OphthalmicThicknessMapQualityThresholdSequenceItem]] + ): + if value is None: + self._OphthalmicThicknessMapQualityThresholdSequence = [] + if "OphthalmicThicknessMapQualityThresholdSequence" in self._dataset: + del self._dataset.OphthalmicThicknessMapQualityThresholdSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicThicknessMapQualityThresholdSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicThicknessMapQualityThresholdSequence must be a list of" + " OphthalmicThicknessMapQualityThresholdSequenceItem objects" + ) + else: + self._OphthalmicThicknessMapQualityThresholdSequence = value + if "OphthalmicThicknessMapQualityThresholdSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMapQualityThresholdSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMapQualityThresholdSequence.clear() + self._dataset.OphthalmicThicknessMapQualityThresholdSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicThicknessMapQualityThreshold(self, item: OphthalmicThicknessMapQualityThresholdSequenceItem): + if not isinstance(item, OphthalmicThicknessMapQualityThresholdSequenceItem): + raise ValueError("Item must be an instance of OphthalmicThicknessMapQualityThresholdSequenceItem") + self._OphthalmicThicknessMapQualityThresholdSequence.append(item) + if "OphthalmicThicknessMapQualityThresholdSequence" not in self._dataset: + self._dataset.OphthalmicThicknessMapQualityThresholdSequence = pydicom.Sequence() + self._dataset.OphthalmicThicknessMapQualityThresholdSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_threshold_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_threshold_sequence_item.py new file mode 100644 index 0000000..7dc3e9c --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_thickness_map_quality_threshold_sequence_item.py @@ -0,0 +1,149 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OphthalmicThicknessMapQualityThresholdSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicThicknessMapThresholdQualityRating(self) -> Optional[float]: + if "OphthalmicThicknessMapThresholdQualityRating" in self._dataset: + return self._dataset.OphthalmicThicknessMapThresholdQualityRating + return None + + @OphthalmicThicknessMapThresholdQualityRating.setter + def OphthalmicThicknessMapThresholdQualityRating(self, value: Optional[float]): + if value is None: + if "OphthalmicThicknessMapThresholdQualityRating" in self._dataset: + del self._dataset.OphthalmicThicknessMapThresholdQualityRating + else: + self._dataset.OphthalmicThicknessMapThresholdQualityRating = value + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_thickness_mapping_normals_sequence_item.py b/tdwii_plus_examples/domain_model/ophthalmic_thickness_mapping_normals_sequence_item.py new file mode 100644 index 0000000..a7d4c5f --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_thickness_mapping_normals_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OphthalmicThicknessMappingNormalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataSetName(self) -> Optional[str]: + if "DataSetName" in self._dataset: + return self._dataset.DataSetName + return None + + @DataSetName.setter + def DataSetName(self, value: Optional[str]): + if value is None: + if "DataSetName" in self._dataset: + del self._dataset.DataSetName + else: + self._dataset.DataSetName = value + + @property + def DataSetVersion(self) -> Optional[str]: + if "DataSetVersion" in self._dataset: + return self._dataset.DataSetVersion + return None + + @DataSetVersion.setter + def DataSetVersion(self, value: Optional[str]): + if value is None: + if "DataSetVersion" in self._dataset: + del self._dataset.DataSetVersion + else: + self._dataset.DataSetVersion = value + + @property + def DataSetSource(self) -> Optional[str]: + if "DataSetSource" in self._dataset: + return self._dataset.DataSetSource + return None + + @DataSetSource.setter + def DataSetSource(self, value: Optional[str]): + if value is None: + if "DataSetSource" in self._dataset: + del self._dataset.DataSetSource + else: + self._dataset.DataSetSource = value + + @property + def DataSetDescription(self) -> Optional[str]: + if "DataSetDescription" in self._dataset: + return self._dataset.DataSetDescription + return None + + @DataSetDescription.setter + def DataSetDescription(self, value: Optional[str]): + if value is None: + if "DataSetDescription" in self._dataset: + del self._dataset.DataSetDescription + else: + self._dataset.DataSetDescription = value diff --git a/tdwii_plus_examples/domain_model/ophthalmic_tomography_image.py b/tdwii_plus_examples/domain_model/ophthalmic_tomography_image.py new file mode 100644 index 0000000..d5eaea0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_tomography_image.py @@ -0,0 +1,5978 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class OphthalmicTomographyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AcquisitionDeviceTypeCodeSequence: List[CodeSequenceItem] = [] + self._LightPathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._ScanPatternTypeCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAnatomicReferencePointXCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointXCoordinate + return None + + @OphthalmicAnatomicReferencePointXCoordinate.setter + def OphthalmicAnatomicReferencePointXCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointXCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointXCoordinate = value + + @property + def OphthalmicAnatomicReferencePointYCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointYCoordinate + return None + + @OphthalmicAnatomicReferencePointYCoordinate.setter + def OphthalmicAnatomicReferencePointYCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointYCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointYCoordinate = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def AcquisitionDeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + if len(self._AcquisitionDeviceTypeCodeSequence) == len(self._dataset.AcquisitionDeviceTypeCodeSequence): + return self._AcquisitionDeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionDeviceTypeCodeSequence] + return None + + @AcquisitionDeviceTypeCodeSequence.setter + def AcquisitionDeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionDeviceTypeCodeSequence = [] + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + del self._dataset.AcquisitionDeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionDeviceTypeCodeSequence = value + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.clear() + self._dataset.AcquisitionDeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionDeviceTypeCodeSequence.append(item) + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def LightPathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + if len(self._LightPathFilterTypeStackCodeSequence) == len(self._dataset.LightPathFilterTypeStackCodeSequence): + return self._LightPathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LightPathFilterTypeStackCodeSequence] + return None + + @LightPathFilterTypeStackCodeSequence.setter + def LightPathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LightPathFilterTypeStackCodeSequence = [] + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.LightPathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LightPathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LightPathFilterTypeStackCodeSequence = value + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.clear() + self._dataset.LightPathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LightPathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LightPathFilterTypeStackCodeSequence.append(item) + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def DepthSpatialResolution(self) -> Optional[float]: + if "DepthSpatialResolution" in self._dataset: + return self._dataset.DepthSpatialResolution + return None + + @DepthSpatialResolution.setter + def DepthSpatialResolution(self, value: Optional[float]): + if value is None: + if "DepthSpatialResolution" in self._dataset: + del self._dataset.DepthSpatialResolution + else: + self._dataset.DepthSpatialResolution = value + + @property + def MaximumDepthDistortion(self) -> Optional[float]: + if "MaximumDepthDistortion" in self._dataset: + return self._dataset.MaximumDepthDistortion + return None + + @MaximumDepthDistortion.setter + def MaximumDepthDistortion(self, value: Optional[float]): + if value is None: + if "MaximumDepthDistortion" in self._dataset: + del self._dataset.MaximumDepthDistortion + else: + self._dataset.MaximumDepthDistortion = value + + @property + def AlongScanSpatialResolution(self) -> Optional[float]: + if "AlongScanSpatialResolution" in self._dataset: + return self._dataset.AlongScanSpatialResolution + return None + + @AlongScanSpatialResolution.setter + def AlongScanSpatialResolution(self, value: Optional[float]): + if value is None: + if "AlongScanSpatialResolution" in self._dataset: + del self._dataset.AlongScanSpatialResolution + else: + self._dataset.AlongScanSpatialResolution = value + + @property + def MaximumAlongScanDistortion(self) -> Optional[float]: + if "MaximumAlongScanDistortion" in self._dataset: + return self._dataset.MaximumAlongScanDistortion + return None + + @MaximumAlongScanDistortion.setter + def MaximumAlongScanDistortion(self, value: Optional[float]): + if value is None: + if "MaximumAlongScanDistortion" in self._dataset: + del self._dataset.MaximumAlongScanDistortion + else: + self._dataset.MaximumAlongScanDistortion = value + + @property + def AcrossScanSpatialResolution(self) -> Optional[float]: + if "AcrossScanSpatialResolution" in self._dataset: + return self._dataset.AcrossScanSpatialResolution + return None + + @AcrossScanSpatialResolution.setter + def AcrossScanSpatialResolution(self, value: Optional[float]): + if value is None: + if "AcrossScanSpatialResolution" in self._dataset: + del self._dataset.AcrossScanSpatialResolution + else: + self._dataset.AcrossScanSpatialResolution = value + + @property + def MaximumAcrossScanDistortion(self) -> Optional[float]: + if "MaximumAcrossScanDistortion" in self._dataset: + return self._dataset.MaximumAcrossScanDistortion + return None + + @MaximumAcrossScanDistortion.setter + def MaximumAcrossScanDistortion(self, value: Optional[float]): + if value is None: + if "MaximumAcrossScanDistortion" in self._dataset: + del self._dataset.MaximumAcrossScanDistortion + else: + self._dataset.MaximumAcrossScanDistortion = value + + @property + def IlluminationWaveLength(self) -> Optional[float]: + if "IlluminationWaveLength" in self._dataset: + return self._dataset.IlluminationWaveLength + return None + + @IlluminationWaveLength.setter + def IlluminationWaveLength(self, value: Optional[float]): + if value is None: + if "IlluminationWaveLength" in self._dataset: + del self._dataset.IlluminationWaveLength + else: + self._dataset.IlluminationWaveLength = value + + @property + def IlluminationPower(self) -> Optional[float]: + if "IlluminationPower" in self._dataset: + return self._dataset.IlluminationPower + return None + + @IlluminationPower.setter + def IlluminationPower(self, value: Optional[float]): + if value is None: + if "IlluminationPower" in self._dataset: + del self._dataset.IlluminationPower + else: + self._dataset.IlluminationPower = value + + @property + def IlluminationBandwidth(self) -> Optional[float]: + if "IlluminationBandwidth" in self._dataset: + return self._dataset.IlluminationBandwidth + return None + + @IlluminationBandwidth.setter + def IlluminationBandwidth(self, value: Optional[float]): + if value is None: + if "IlluminationBandwidth" in self._dataset: + del self._dataset.IlluminationBandwidth + else: + self._dataset.IlluminationBandwidth = value + + @property + def ScanPatternTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ScanPatternTypeCodeSequence" in self._dataset: + if len(self._ScanPatternTypeCodeSequence) == len(self._dataset.ScanPatternTypeCodeSequence): + return self._ScanPatternTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ScanPatternTypeCodeSequence] + return None + + @ScanPatternTypeCodeSequence.setter + def ScanPatternTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ScanPatternTypeCodeSequence = [] + if "ScanPatternTypeCodeSequence" in self._dataset: + del self._dataset.ScanPatternTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ScanPatternTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ScanPatternTypeCodeSequence = value + if "ScanPatternTypeCodeSequence" not in self._dataset: + self._dataset.ScanPatternTypeCodeSequence = pydicom.Sequence() + self._dataset.ScanPatternTypeCodeSequence.clear() + self._dataset.ScanPatternTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ScanPatternTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ScanPatternTypeCodeSequence.append(item) + if "ScanPatternTypeCodeSequence" not in self._dataset: + self._dataset.ScanPatternTypeCodeSequence = pydicom.Sequence() + self._dataset.ScanPatternTypeCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def OphthalmicVolumetricPropertiesFlag(self) -> Optional[str]: + if "OphthalmicVolumetricPropertiesFlag" in self._dataset: + return self._dataset.OphthalmicVolumetricPropertiesFlag + return None + + @OphthalmicVolumetricPropertiesFlag.setter + def OphthalmicVolumetricPropertiesFlag(self, value: Optional[str]): + if value is None: + if "OphthalmicVolumetricPropertiesFlag" in self._dataset: + del self._dataset.OphthalmicVolumetricPropertiesFlag + else: + self._dataset.OphthalmicVolumetricPropertiesFlag = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def AxialLengthOfTheEye(self) -> Optional[float]: + if "AxialLengthOfTheEye" in self._dataset: + return self._dataset.AxialLengthOfTheEye + return None + + @AxialLengthOfTheEye.setter + def AxialLengthOfTheEye(self, value: Optional[float]): + if value is None: + if "AxialLengthOfTheEye" in self._dataset: + del self._dataset.AxialLengthOfTheEye + else: + self._dataset.AxialLengthOfTheEye = value + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ophthalmic_visual_field_static_perimetry_measurements.py b/tdwii_plus_examples/domain_model/ophthalmic_visual_field_static_perimetry_measurements.py new file mode 100644 index 0000000..abbf842 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ophthalmic_visual_field_static_perimetry_measurements.py @@ -0,0 +1,5215 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .age_corrected_sensitivity_deviation_algorithm_sequence_item import ( + AgeCorrectedSensitivityDeviationAlgorithmSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fixation_sequence_item import FixationSequenceItem +from .generalized_defect_sensitivity_deviation_algorithm_sequence_item import ( + GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .ophthalmic_patient_clinical_information_left_eye_sequence_item import ( + OphthalmicPatientClinicalInformationLeftEyeSequenceItem, +) +from .ophthalmic_patient_clinical_information_right_eye_sequence_item import ( + OphthalmicPatientClinicalInformationRightEyeSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .results_normals_sequence_item import ResultsNormalsSequenceItem +from .screening_baseline_measured_sequence_item import ( + ScreeningBaselineMeasuredSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .test_point_normals_sequence_item import TestPointNormalsSequenceItem +from .udi_sequence_item import UDISequenceItem +from .visual_field_catch_trial_sequence_item import VisualFieldCatchTrialSequenceItem +from .visual_field_global_results_index_sequence_item import ( + VisualFieldGlobalResultsIndexSequenceItem, +) +from .visual_field_test_point_sequence_item import VisualFieldTestPointSequenceItem +from .visual_field_test_reliability_global_index_sequence_item import ( + VisualFieldTestReliabilityGlobalIndexSequenceItem, +) + + +class OphthalmicVisualFieldStaticPerimetryMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._TestPointNormalsSequence: List[TestPointNormalsSequenceItem] = [] + self._AgeCorrectedSensitivityDeviationAlgorithmSequence: List[ + AgeCorrectedSensitivityDeviationAlgorithmSequenceItem + ] = [] + self._GeneralizedDefectSensitivityDeviationAlgorithmSequence: List[ + GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem + ] = [] + self._VisualFieldTestPointSequence: List[VisualFieldTestPointSequenceItem] = [] + self._ScreeningBaselineMeasuredSequence: List[ScreeningBaselineMeasuredSequenceItem] = [] + self._ResultsNormalsSequence: List[ResultsNormalsSequenceItem] = [] + self._VisualFieldGlobalResultsIndexSequence: List[VisualFieldGlobalResultsIndexSequenceItem] = [] + self._OphthalmicPatientClinicalInformationLeftEyeSequence: List[ + OphthalmicPatientClinicalInformationLeftEyeSequenceItem + ] = [] + self._OphthalmicPatientClinicalInformationRightEyeSequence: List[ + OphthalmicPatientClinicalInformationRightEyeSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ScreeningTestModeCodeSequence: List[CodeSequenceItem] = [] + self._StimulusColorCodeSequence: List[CodeSequenceItem] = [] + self._BackgroundIlluminationColorCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._FixationSequence: List[FixationSequenceItem] = [] + self._VisualFieldCatchTrialSequence: List[VisualFieldCatchTrialSequenceItem] = [] + self._VisualFieldTestReliabilityGlobalIndexSequence: List[VisualFieldTestReliabilityGlobalIndexSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PresentedVisualStimuliDataFlag(self) -> Optional[str]: + if "PresentedVisualStimuliDataFlag" in self._dataset: + return self._dataset.PresentedVisualStimuliDataFlag + return None + + @PresentedVisualStimuliDataFlag.setter + def PresentedVisualStimuliDataFlag(self, value: Optional[str]): + if value is None: + if "PresentedVisualStimuliDataFlag" in self._dataset: + del self._dataset.PresentedVisualStimuliDataFlag + else: + self._dataset.PresentedVisualStimuliDataFlag = value + + @property + def NumberOfVisualStimuli(self) -> Optional[int]: + if "NumberOfVisualStimuli" in self._dataset: + return self._dataset.NumberOfVisualStimuli + return None + + @NumberOfVisualStimuli.setter + def NumberOfVisualStimuli(self, value: Optional[int]): + if value is None: + if "NumberOfVisualStimuli" in self._dataset: + del self._dataset.NumberOfVisualStimuli + else: + self._dataset.NumberOfVisualStimuli = value + + @property + def TestPointNormalsDataFlag(self) -> Optional[str]: + if "TestPointNormalsDataFlag" in self._dataset: + return self._dataset.TestPointNormalsDataFlag + return None + + @TestPointNormalsDataFlag.setter + def TestPointNormalsDataFlag(self, value: Optional[str]): + if value is None: + if "TestPointNormalsDataFlag" in self._dataset: + del self._dataset.TestPointNormalsDataFlag + else: + self._dataset.TestPointNormalsDataFlag = value + + @property + def TestPointNormalsSequence(self) -> Optional[List[TestPointNormalsSequenceItem]]: + if "TestPointNormalsSequence" in self._dataset: + if len(self._TestPointNormalsSequence) == len(self._dataset.TestPointNormalsSequence): + return self._TestPointNormalsSequence + else: + return [TestPointNormalsSequenceItem(x) for x in self._dataset.TestPointNormalsSequence] + return None + + @TestPointNormalsSequence.setter + def TestPointNormalsSequence(self, value: Optional[List[TestPointNormalsSequenceItem]]): + if value is None: + self._TestPointNormalsSequence = [] + if "TestPointNormalsSequence" in self._dataset: + del self._dataset.TestPointNormalsSequence + elif not isinstance(value, list) or not all(isinstance(item, TestPointNormalsSequenceItem) for item in value): + raise ValueError("TestPointNormalsSequence must be a list of TestPointNormalsSequenceItem objects") + else: + self._TestPointNormalsSequence = value + if "TestPointNormalsSequence" not in self._dataset: + self._dataset.TestPointNormalsSequence = pydicom.Sequence() + self._dataset.TestPointNormalsSequence.clear() + self._dataset.TestPointNormalsSequence.extend([item.to_dataset() for item in value]) + + def add_TestPointNormals(self, item: TestPointNormalsSequenceItem): + if not isinstance(item, TestPointNormalsSequenceItem): + raise ValueError("Item must be an instance of TestPointNormalsSequenceItem") + self._TestPointNormalsSequence.append(item) + if "TestPointNormalsSequence" not in self._dataset: + self._dataset.TestPointNormalsSequence = pydicom.Sequence() + self._dataset.TestPointNormalsSequence.append(item.to_dataset()) + + @property + def AgeCorrectedSensitivityDeviationAlgorithmSequence( + self, + ) -> Optional[List[AgeCorrectedSensitivityDeviationAlgorithmSequenceItem]]: + if "AgeCorrectedSensitivityDeviationAlgorithmSequence" in self._dataset: + if len(self._AgeCorrectedSensitivityDeviationAlgorithmSequence) == len( + self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence + ): + return self._AgeCorrectedSensitivityDeviationAlgorithmSequence + else: + return [ + AgeCorrectedSensitivityDeviationAlgorithmSequenceItem(x) + for x in self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence + ] + return None + + @AgeCorrectedSensitivityDeviationAlgorithmSequence.setter + def AgeCorrectedSensitivityDeviationAlgorithmSequence( + self, value: Optional[List[AgeCorrectedSensitivityDeviationAlgorithmSequenceItem]] + ): + if value is None: + self._AgeCorrectedSensitivityDeviationAlgorithmSequence = [] + if "AgeCorrectedSensitivityDeviationAlgorithmSequence" in self._dataset: + del self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence + elif not isinstance(value, list) or not all( + isinstance(item, AgeCorrectedSensitivityDeviationAlgorithmSequenceItem) for item in value + ): + raise ValueError( + "AgeCorrectedSensitivityDeviationAlgorithmSequence must be a list of" + " AgeCorrectedSensitivityDeviationAlgorithmSequenceItem objects" + ) + else: + self._AgeCorrectedSensitivityDeviationAlgorithmSequence = value + if "AgeCorrectedSensitivityDeviationAlgorithmSequence" not in self._dataset: + self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence = pydicom.Sequence() + self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence.clear() + self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_AgeCorrectedSensitivityDeviationAlgorithm(self, item: AgeCorrectedSensitivityDeviationAlgorithmSequenceItem): + if not isinstance(item, AgeCorrectedSensitivityDeviationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of AgeCorrectedSensitivityDeviationAlgorithmSequenceItem") + self._AgeCorrectedSensitivityDeviationAlgorithmSequence.append(item) + if "AgeCorrectedSensitivityDeviationAlgorithmSequence" not in self._dataset: + self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence = pydicom.Sequence() + self._dataset.AgeCorrectedSensitivityDeviationAlgorithmSequence.append(item.to_dataset()) + + @property + def GeneralizedDefectSensitivityDeviationAlgorithmSequence( + self, + ) -> Optional[List[GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem]]: + if "GeneralizedDefectSensitivityDeviationAlgorithmSequence" in self._dataset: + if len(self._GeneralizedDefectSensitivityDeviationAlgorithmSequence) == len( + self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence + ): + return self._GeneralizedDefectSensitivityDeviationAlgorithmSequence + else: + return [ + GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem(x) + for x in self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence + ] + return None + + @GeneralizedDefectSensitivityDeviationAlgorithmSequence.setter + def GeneralizedDefectSensitivityDeviationAlgorithmSequence( + self, value: Optional[List[GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem]] + ): + if value is None: + self._GeneralizedDefectSensitivityDeviationAlgorithmSequence = [] + if "GeneralizedDefectSensitivityDeviationAlgorithmSequence" in self._dataset: + del self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence + elif not isinstance(value, list) or not all( + isinstance(item, GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem) for item in value + ): + raise ValueError( + "GeneralizedDefectSensitivityDeviationAlgorithmSequence must be a list of" + " GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem objects" + ) + else: + self._GeneralizedDefectSensitivityDeviationAlgorithmSequence = value + if "GeneralizedDefectSensitivityDeviationAlgorithmSequence" not in self._dataset: + self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence = pydicom.Sequence() + self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence.clear() + self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_GeneralizedDefectSensitivityDeviationAlgorithm( + self, item: GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem + ): + if not isinstance(item, GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of GeneralizedDefectSensitivityDeviationAlgorithmSequenceItem") + self._GeneralizedDefectSensitivityDeviationAlgorithmSequence.append(item) + if "GeneralizedDefectSensitivityDeviationAlgorithmSequence" not in self._dataset: + self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence = pydicom.Sequence() + self._dataset.GeneralizedDefectSensitivityDeviationAlgorithmSequence.append(item.to_dataset()) + + @property + def FovealSensitivityMeasured(self) -> Optional[str]: + if "FovealSensitivityMeasured" in self._dataset: + return self._dataset.FovealSensitivityMeasured + return None + + @FovealSensitivityMeasured.setter + def FovealSensitivityMeasured(self, value: Optional[str]): + if value is None: + if "FovealSensitivityMeasured" in self._dataset: + del self._dataset.FovealSensitivityMeasured + else: + self._dataset.FovealSensitivityMeasured = value + + @property + def FovealSensitivity(self) -> Optional[float]: + if "FovealSensitivity" in self._dataset: + return self._dataset.FovealSensitivity + return None + + @FovealSensitivity.setter + def FovealSensitivity(self, value: Optional[float]): + if value is None: + if "FovealSensitivity" in self._dataset: + del self._dataset.FovealSensitivity + else: + self._dataset.FovealSensitivity = value + + @property + def VisualFieldTestDuration(self) -> Optional[float]: + if "VisualFieldTestDuration" in self._dataset: + return self._dataset.VisualFieldTestDuration + return None + + @VisualFieldTestDuration.setter + def VisualFieldTestDuration(self, value: Optional[float]): + if value is None: + if "VisualFieldTestDuration" in self._dataset: + del self._dataset.VisualFieldTestDuration + else: + self._dataset.VisualFieldTestDuration = value + + @property + def VisualFieldTestPointSequence(self) -> Optional[List[VisualFieldTestPointSequenceItem]]: + if "VisualFieldTestPointSequence" in self._dataset: + if len(self._VisualFieldTestPointSequence) == len(self._dataset.VisualFieldTestPointSequence): + return self._VisualFieldTestPointSequence + else: + return [VisualFieldTestPointSequenceItem(x) for x in self._dataset.VisualFieldTestPointSequence] + return None + + @VisualFieldTestPointSequence.setter + def VisualFieldTestPointSequence(self, value: Optional[List[VisualFieldTestPointSequenceItem]]): + if value is None: + self._VisualFieldTestPointSequence = [] + if "VisualFieldTestPointSequence" in self._dataset: + del self._dataset.VisualFieldTestPointSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualFieldTestPointSequenceItem) for item in value): + raise ValueError("VisualFieldTestPointSequence must be a list of VisualFieldTestPointSequenceItem objects") + else: + self._VisualFieldTestPointSequence = value + if "VisualFieldTestPointSequence" not in self._dataset: + self._dataset.VisualFieldTestPointSequence = pydicom.Sequence() + self._dataset.VisualFieldTestPointSequence.clear() + self._dataset.VisualFieldTestPointSequence.extend([item.to_dataset() for item in value]) + + def add_VisualFieldTestPoint(self, item: VisualFieldTestPointSequenceItem): + if not isinstance(item, VisualFieldTestPointSequenceItem): + raise ValueError("Item must be an instance of VisualFieldTestPointSequenceItem") + self._VisualFieldTestPointSequence.append(item) + if "VisualFieldTestPointSequence" not in self._dataset: + self._dataset.VisualFieldTestPointSequence = pydicom.Sequence() + self._dataset.VisualFieldTestPointSequence.append(item.to_dataset()) + + @property + def MinimumSensitivityValue(self) -> Optional[float]: + if "MinimumSensitivityValue" in self._dataset: + return self._dataset.MinimumSensitivityValue + return None + + @MinimumSensitivityValue.setter + def MinimumSensitivityValue(self, value: Optional[float]): + if value is None: + if "MinimumSensitivityValue" in self._dataset: + del self._dataset.MinimumSensitivityValue + else: + self._dataset.MinimumSensitivityValue = value + + @property + def BlindSpotLocalized(self) -> Optional[str]: + if "BlindSpotLocalized" in self._dataset: + return self._dataset.BlindSpotLocalized + return None + + @BlindSpotLocalized.setter + def BlindSpotLocalized(self, value: Optional[str]): + if value is None: + if "BlindSpotLocalized" in self._dataset: + del self._dataset.BlindSpotLocalized + else: + self._dataset.BlindSpotLocalized = value + + @property + def BlindSpotXCoordinate(self) -> Optional[float]: + if "BlindSpotXCoordinate" in self._dataset: + return self._dataset.BlindSpotXCoordinate + return None + + @BlindSpotXCoordinate.setter + def BlindSpotXCoordinate(self, value: Optional[float]): + if value is None: + if "BlindSpotXCoordinate" in self._dataset: + del self._dataset.BlindSpotXCoordinate + else: + self._dataset.BlindSpotXCoordinate = value + + @property + def BlindSpotYCoordinate(self) -> Optional[float]: + if "BlindSpotYCoordinate" in self._dataset: + return self._dataset.BlindSpotYCoordinate + return None + + @BlindSpotYCoordinate.setter + def BlindSpotYCoordinate(self, value: Optional[float]): + if value is None: + if "BlindSpotYCoordinate" in self._dataset: + del self._dataset.BlindSpotYCoordinate + else: + self._dataset.BlindSpotYCoordinate = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def FovealPointNormativeDataFlag(self) -> Optional[str]: + if "FovealPointNormativeDataFlag" in self._dataset: + return self._dataset.FovealPointNormativeDataFlag + return None + + @FovealPointNormativeDataFlag.setter + def FovealPointNormativeDataFlag(self, value: Optional[str]): + if value is None: + if "FovealPointNormativeDataFlag" in self._dataset: + del self._dataset.FovealPointNormativeDataFlag + else: + self._dataset.FovealPointNormativeDataFlag = value + + @property + def FovealPointProbabilityValue(self) -> Optional[float]: + if "FovealPointProbabilityValue" in self._dataset: + return self._dataset.FovealPointProbabilityValue + return None + + @FovealPointProbabilityValue.setter + def FovealPointProbabilityValue(self, value: Optional[float]): + if value is None: + if "FovealPointProbabilityValue" in self._dataset: + del self._dataset.FovealPointProbabilityValue + else: + self._dataset.FovealPointProbabilityValue = value + + @property + def ScreeningBaselineMeasured(self) -> Optional[str]: + if "ScreeningBaselineMeasured" in self._dataset: + return self._dataset.ScreeningBaselineMeasured + return None + + @ScreeningBaselineMeasured.setter + def ScreeningBaselineMeasured(self, value: Optional[str]): + if value is None: + if "ScreeningBaselineMeasured" in self._dataset: + del self._dataset.ScreeningBaselineMeasured + else: + self._dataset.ScreeningBaselineMeasured = value + + @property + def ScreeningBaselineMeasuredSequence(self) -> Optional[List[ScreeningBaselineMeasuredSequenceItem]]: + if "ScreeningBaselineMeasuredSequence" in self._dataset: + if len(self._ScreeningBaselineMeasuredSequence) == len(self._dataset.ScreeningBaselineMeasuredSequence): + return self._ScreeningBaselineMeasuredSequence + else: + return [ScreeningBaselineMeasuredSequenceItem(x) for x in self._dataset.ScreeningBaselineMeasuredSequence] + return None + + @ScreeningBaselineMeasuredSequence.setter + def ScreeningBaselineMeasuredSequence(self, value: Optional[List[ScreeningBaselineMeasuredSequenceItem]]): + if value is None: + self._ScreeningBaselineMeasuredSequence = [] + if "ScreeningBaselineMeasuredSequence" in self._dataset: + del self._dataset.ScreeningBaselineMeasuredSequence + elif not isinstance(value, list) or not all(isinstance(item, ScreeningBaselineMeasuredSequenceItem) for item in value): + raise ValueError( + "ScreeningBaselineMeasuredSequence must be a list of ScreeningBaselineMeasuredSequenceItem objects" + ) + else: + self._ScreeningBaselineMeasuredSequence = value + if "ScreeningBaselineMeasuredSequence" not in self._dataset: + self._dataset.ScreeningBaselineMeasuredSequence = pydicom.Sequence() + self._dataset.ScreeningBaselineMeasuredSequence.clear() + self._dataset.ScreeningBaselineMeasuredSequence.extend([item.to_dataset() for item in value]) + + def add_ScreeningBaselineMeasured(self, item: ScreeningBaselineMeasuredSequenceItem): + if not isinstance(item, ScreeningBaselineMeasuredSequenceItem): + raise ValueError("Item must be an instance of ScreeningBaselineMeasuredSequenceItem") + self._ScreeningBaselineMeasuredSequence.append(item) + if "ScreeningBaselineMeasuredSequence" not in self._dataset: + self._dataset.ScreeningBaselineMeasuredSequence = pydicom.Sequence() + self._dataset.ScreeningBaselineMeasuredSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def VisualFieldTestNormalsFlag(self) -> Optional[str]: + if "VisualFieldTestNormalsFlag" in self._dataset: + return self._dataset.VisualFieldTestNormalsFlag + return None + + @VisualFieldTestNormalsFlag.setter + def VisualFieldTestNormalsFlag(self, value: Optional[str]): + if value is None: + if "VisualFieldTestNormalsFlag" in self._dataset: + del self._dataset.VisualFieldTestNormalsFlag + else: + self._dataset.VisualFieldTestNormalsFlag = value + + @property + def ResultsNormalsSequence(self) -> Optional[List[ResultsNormalsSequenceItem]]: + if "ResultsNormalsSequence" in self._dataset: + if len(self._ResultsNormalsSequence) == len(self._dataset.ResultsNormalsSequence): + return self._ResultsNormalsSequence + else: + return [ResultsNormalsSequenceItem(x) for x in self._dataset.ResultsNormalsSequence] + return None + + @ResultsNormalsSequence.setter + def ResultsNormalsSequence(self, value: Optional[List[ResultsNormalsSequenceItem]]): + if value is None: + self._ResultsNormalsSequence = [] + if "ResultsNormalsSequence" in self._dataset: + del self._dataset.ResultsNormalsSequence + elif not isinstance(value, list) or not all(isinstance(item, ResultsNormalsSequenceItem) for item in value): + raise ValueError("ResultsNormalsSequence must be a list of ResultsNormalsSequenceItem objects") + else: + self._ResultsNormalsSequence = value + if "ResultsNormalsSequence" not in self._dataset: + self._dataset.ResultsNormalsSequence = pydicom.Sequence() + self._dataset.ResultsNormalsSequence.clear() + self._dataset.ResultsNormalsSequence.extend([item.to_dataset() for item in value]) + + def add_ResultsNormals(self, item: ResultsNormalsSequenceItem): + if not isinstance(item, ResultsNormalsSequenceItem): + raise ValueError("Item must be an instance of ResultsNormalsSequenceItem") + self._ResultsNormalsSequence.append(item) + if "ResultsNormalsSequence" not in self._dataset: + self._dataset.ResultsNormalsSequence = pydicom.Sequence() + self._dataset.ResultsNormalsSequence.append(item.to_dataset()) + + @property + def VisualFieldMeanSensitivity(self) -> Optional[float]: + if "VisualFieldMeanSensitivity" in self._dataset: + return self._dataset.VisualFieldMeanSensitivity + return None + + @VisualFieldMeanSensitivity.setter + def VisualFieldMeanSensitivity(self, value: Optional[float]): + if value is None: + if "VisualFieldMeanSensitivity" in self._dataset: + del self._dataset.VisualFieldMeanSensitivity + else: + self._dataset.VisualFieldMeanSensitivity = value + + @property + def ShortTermFluctuationCalculated(self) -> Optional[str]: + if "ShortTermFluctuationCalculated" in self._dataset: + return self._dataset.ShortTermFluctuationCalculated + return None + + @ShortTermFluctuationCalculated.setter + def ShortTermFluctuationCalculated(self, value: Optional[str]): + if value is None: + if "ShortTermFluctuationCalculated" in self._dataset: + del self._dataset.ShortTermFluctuationCalculated + else: + self._dataset.ShortTermFluctuationCalculated = value + + @property + def ShortTermFluctuation(self) -> Optional[float]: + if "ShortTermFluctuation" in self._dataset: + return self._dataset.ShortTermFluctuation + return None + + @ShortTermFluctuation.setter + def ShortTermFluctuation(self, value: Optional[float]): + if value is None: + if "ShortTermFluctuation" in self._dataset: + del self._dataset.ShortTermFluctuation + else: + self._dataset.ShortTermFluctuation = value + + @property + def ShortTermFluctuationProbabilityCalculated(self) -> Optional[str]: + if "ShortTermFluctuationProbabilityCalculated" in self._dataset: + return self._dataset.ShortTermFluctuationProbabilityCalculated + return None + + @ShortTermFluctuationProbabilityCalculated.setter + def ShortTermFluctuationProbabilityCalculated(self, value: Optional[str]): + if value is None: + if "ShortTermFluctuationProbabilityCalculated" in self._dataset: + del self._dataset.ShortTermFluctuationProbabilityCalculated + else: + self._dataset.ShortTermFluctuationProbabilityCalculated = value + + @property + def ShortTermFluctuationProbability(self) -> Optional[float]: + if "ShortTermFluctuationProbability" in self._dataset: + return self._dataset.ShortTermFluctuationProbability + return None + + @ShortTermFluctuationProbability.setter + def ShortTermFluctuationProbability(self, value: Optional[float]): + if value is None: + if "ShortTermFluctuationProbability" in self._dataset: + del self._dataset.ShortTermFluctuationProbability + else: + self._dataset.ShortTermFluctuationProbability = value + + @property + def CorrectedLocalizedDeviationFromNormalCalculated(self) -> Optional[str]: + if "CorrectedLocalizedDeviationFromNormalCalculated" in self._dataset: + return self._dataset.CorrectedLocalizedDeviationFromNormalCalculated + return None + + @CorrectedLocalizedDeviationFromNormalCalculated.setter + def CorrectedLocalizedDeviationFromNormalCalculated(self, value: Optional[str]): + if value is None: + if "CorrectedLocalizedDeviationFromNormalCalculated" in self._dataset: + del self._dataset.CorrectedLocalizedDeviationFromNormalCalculated + else: + self._dataset.CorrectedLocalizedDeviationFromNormalCalculated = value + + @property + def CorrectedLocalizedDeviationFromNormal(self) -> Optional[float]: + if "CorrectedLocalizedDeviationFromNormal" in self._dataset: + return self._dataset.CorrectedLocalizedDeviationFromNormal + return None + + @CorrectedLocalizedDeviationFromNormal.setter + def CorrectedLocalizedDeviationFromNormal(self, value: Optional[float]): + if value is None: + if "CorrectedLocalizedDeviationFromNormal" in self._dataset: + del self._dataset.CorrectedLocalizedDeviationFromNormal + else: + self._dataset.CorrectedLocalizedDeviationFromNormal = value + + @property + def CorrectedLocalizedDeviationFromNormalProbabilityCalculated(self) -> Optional[str]: + if "CorrectedLocalizedDeviationFromNormalProbabilityCalculated" in self._dataset: + return self._dataset.CorrectedLocalizedDeviationFromNormalProbabilityCalculated + return None + + @CorrectedLocalizedDeviationFromNormalProbabilityCalculated.setter + def CorrectedLocalizedDeviationFromNormalProbabilityCalculated(self, value: Optional[str]): + if value is None: + if "CorrectedLocalizedDeviationFromNormalProbabilityCalculated" in self._dataset: + del self._dataset.CorrectedLocalizedDeviationFromNormalProbabilityCalculated + else: + self._dataset.CorrectedLocalizedDeviationFromNormalProbabilityCalculated = value + + @property + def CorrectedLocalizedDeviationFromNormalProbability(self) -> Optional[float]: + if "CorrectedLocalizedDeviationFromNormalProbability" in self._dataset: + return self._dataset.CorrectedLocalizedDeviationFromNormalProbability + return None + + @CorrectedLocalizedDeviationFromNormalProbability.setter + def CorrectedLocalizedDeviationFromNormalProbability(self, value: Optional[float]): + if value is None: + if "CorrectedLocalizedDeviationFromNormalProbability" in self._dataset: + del self._dataset.CorrectedLocalizedDeviationFromNormalProbability + else: + self._dataset.CorrectedLocalizedDeviationFromNormalProbability = value + + @property + def VisualFieldGlobalResultsIndexSequence(self) -> Optional[List[VisualFieldGlobalResultsIndexSequenceItem]]: + if "VisualFieldGlobalResultsIndexSequence" in self._dataset: + if len(self._VisualFieldGlobalResultsIndexSequence) == len(self._dataset.VisualFieldGlobalResultsIndexSequence): + return self._VisualFieldGlobalResultsIndexSequence + else: + return [ + VisualFieldGlobalResultsIndexSequenceItem(x) for x in self._dataset.VisualFieldGlobalResultsIndexSequence + ] + return None + + @VisualFieldGlobalResultsIndexSequence.setter + def VisualFieldGlobalResultsIndexSequence(self, value: Optional[List[VisualFieldGlobalResultsIndexSequenceItem]]): + if value is None: + self._VisualFieldGlobalResultsIndexSequence = [] + if "VisualFieldGlobalResultsIndexSequence" in self._dataset: + del self._dataset.VisualFieldGlobalResultsIndexSequence + elif not isinstance(value, list) or not all( + isinstance(item, VisualFieldGlobalResultsIndexSequenceItem) for item in value + ): + raise ValueError( + "VisualFieldGlobalResultsIndexSequence must be a list of VisualFieldGlobalResultsIndexSequenceItem objects" + ) + else: + self._VisualFieldGlobalResultsIndexSequence = value + if "VisualFieldGlobalResultsIndexSequence" not in self._dataset: + self._dataset.VisualFieldGlobalResultsIndexSequence = pydicom.Sequence() + self._dataset.VisualFieldGlobalResultsIndexSequence.clear() + self._dataset.VisualFieldGlobalResultsIndexSequence.extend([item.to_dataset() for item in value]) + + def add_VisualFieldGlobalResultsIndex(self, item: VisualFieldGlobalResultsIndexSequenceItem): + if not isinstance(item, VisualFieldGlobalResultsIndexSequenceItem): + raise ValueError("Item must be an instance of VisualFieldGlobalResultsIndexSequenceItem") + self._VisualFieldGlobalResultsIndexSequence.append(item) + if "VisualFieldGlobalResultsIndexSequence" not in self._dataset: + self._dataset.VisualFieldGlobalResultsIndexSequence = pydicom.Sequence() + self._dataset.VisualFieldGlobalResultsIndexSequence.append(item.to_dataset()) + + @property + def OphthalmicPatientClinicalInformationLeftEyeSequence( + self, + ) -> Optional[List[OphthalmicPatientClinicalInformationLeftEyeSequenceItem]]: + if "OphthalmicPatientClinicalInformationLeftEyeSequence" in self._dataset: + if len(self._OphthalmicPatientClinicalInformationLeftEyeSequence) == len( + self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence + ): + return self._OphthalmicPatientClinicalInformationLeftEyeSequence + else: + return [ + OphthalmicPatientClinicalInformationLeftEyeSequenceItem(x) + for x in self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence + ] + return None + + @OphthalmicPatientClinicalInformationLeftEyeSequence.setter + def OphthalmicPatientClinicalInformationLeftEyeSequence( + self, value: Optional[List[OphthalmicPatientClinicalInformationLeftEyeSequenceItem]] + ): + if value is None: + self._OphthalmicPatientClinicalInformationLeftEyeSequence = [] + if "OphthalmicPatientClinicalInformationLeftEyeSequence" in self._dataset: + del self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicPatientClinicalInformationLeftEyeSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicPatientClinicalInformationLeftEyeSequence must be a list of" + " OphthalmicPatientClinicalInformationLeftEyeSequenceItem objects" + ) + else: + self._OphthalmicPatientClinicalInformationLeftEyeSequence = value + if "OphthalmicPatientClinicalInformationLeftEyeSequence" not in self._dataset: + self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence.clear() + self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicPatientClinicalInformationLeftEye(self, item: OphthalmicPatientClinicalInformationLeftEyeSequenceItem): + if not isinstance(item, OphthalmicPatientClinicalInformationLeftEyeSequenceItem): + raise ValueError("Item must be an instance of OphthalmicPatientClinicalInformationLeftEyeSequenceItem") + self._OphthalmicPatientClinicalInformationLeftEyeSequence.append(item) + if "OphthalmicPatientClinicalInformationLeftEyeSequence" not in self._dataset: + self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicPatientClinicalInformationLeftEyeSequence.append(item.to_dataset()) + + @property + def OphthalmicPatientClinicalInformationRightEyeSequence( + self, + ) -> Optional[List[OphthalmicPatientClinicalInformationRightEyeSequenceItem]]: + if "OphthalmicPatientClinicalInformationRightEyeSequence" in self._dataset: + if len(self._OphthalmicPatientClinicalInformationRightEyeSequence) == len( + self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence + ): + return self._OphthalmicPatientClinicalInformationRightEyeSequence + else: + return [ + OphthalmicPatientClinicalInformationRightEyeSequenceItem(x) + for x in self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence + ] + return None + + @OphthalmicPatientClinicalInformationRightEyeSequence.setter + def OphthalmicPatientClinicalInformationRightEyeSequence( + self, value: Optional[List[OphthalmicPatientClinicalInformationRightEyeSequenceItem]] + ): + if value is None: + self._OphthalmicPatientClinicalInformationRightEyeSequence = [] + if "OphthalmicPatientClinicalInformationRightEyeSequence" in self._dataset: + del self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicPatientClinicalInformationRightEyeSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicPatientClinicalInformationRightEyeSequence must be a list of" + " OphthalmicPatientClinicalInformationRightEyeSequenceItem objects" + ) + else: + self._OphthalmicPatientClinicalInformationRightEyeSequence = value + if "OphthalmicPatientClinicalInformationRightEyeSequence" not in self._dataset: + self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence.clear() + self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicPatientClinicalInformationRightEye(self, item: OphthalmicPatientClinicalInformationRightEyeSequenceItem): + if not isinstance(item, OphthalmicPatientClinicalInformationRightEyeSequenceItem): + raise ValueError("Item must be an instance of OphthalmicPatientClinicalInformationRightEyeSequenceItem") + self._OphthalmicPatientClinicalInformationRightEyeSequence.append(item) + if "OphthalmicPatientClinicalInformationRightEyeSequence" not in self._dataset: + self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence = pydicom.Sequence() + self._dataset.OphthalmicPatientClinicalInformationRightEyeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def VisualFieldHorizontalExtent(self) -> Optional[float]: + if "VisualFieldHorizontalExtent" in self._dataset: + return self._dataset.VisualFieldHorizontalExtent + return None + + @VisualFieldHorizontalExtent.setter + def VisualFieldHorizontalExtent(self, value: Optional[float]): + if value is None: + if "VisualFieldHorizontalExtent" in self._dataset: + del self._dataset.VisualFieldHorizontalExtent + else: + self._dataset.VisualFieldHorizontalExtent = value + + @property + def VisualFieldVerticalExtent(self) -> Optional[float]: + if "VisualFieldVerticalExtent" in self._dataset: + return self._dataset.VisualFieldVerticalExtent + return None + + @VisualFieldVerticalExtent.setter + def VisualFieldVerticalExtent(self, value: Optional[float]): + if value is None: + if "VisualFieldVerticalExtent" in self._dataset: + del self._dataset.VisualFieldVerticalExtent + else: + self._dataset.VisualFieldVerticalExtent = value + + @property + def VisualFieldShape(self) -> Optional[str]: + if "VisualFieldShape" in self._dataset: + return self._dataset.VisualFieldShape + return None + + @VisualFieldShape.setter + def VisualFieldShape(self, value: Optional[str]): + if value is None: + if "VisualFieldShape" in self._dataset: + del self._dataset.VisualFieldShape + else: + self._dataset.VisualFieldShape = value + + @property + def ScreeningTestModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ScreeningTestModeCodeSequence" in self._dataset: + if len(self._ScreeningTestModeCodeSequence) == len(self._dataset.ScreeningTestModeCodeSequence): + return self._ScreeningTestModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ScreeningTestModeCodeSequence] + return None + + @ScreeningTestModeCodeSequence.setter + def ScreeningTestModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ScreeningTestModeCodeSequence = [] + if "ScreeningTestModeCodeSequence" in self._dataset: + del self._dataset.ScreeningTestModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ScreeningTestModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ScreeningTestModeCodeSequence = value + if "ScreeningTestModeCodeSequence" not in self._dataset: + self._dataset.ScreeningTestModeCodeSequence = pydicom.Sequence() + self._dataset.ScreeningTestModeCodeSequence.clear() + self._dataset.ScreeningTestModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ScreeningTestModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ScreeningTestModeCodeSequence.append(item) + if "ScreeningTestModeCodeSequence" not in self._dataset: + self._dataset.ScreeningTestModeCodeSequence = pydicom.Sequence() + self._dataset.ScreeningTestModeCodeSequence.append(item.to_dataset()) + + @property + def MaximumStimulusLuminance(self) -> Optional[float]: + if "MaximumStimulusLuminance" in self._dataset: + return self._dataset.MaximumStimulusLuminance + return None + + @MaximumStimulusLuminance.setter + def MaximumStimulusLuminance(self, value: Optional[float]): + if value is None: + if "MaximumStimulusLuminance" in self._dataset: + del self._dataset.MaximumStimulusLuminance + else: + self._dataset.MaximumStimulusLuminance = value + + @property + def BackgroundLuminance(self) -> Optional[float]: + if "BackgroundLuminance" in self._dataset: + return self._dataset.BackgroundLuminance + return None + + @BackgroundLuminance.setter + def BackgroundLuminance(self, value: Optional[float]): + if value is None: + if "BackgroundLuminance" in self._dataset: + del self._dataset.BackgroundLuminance + else: + self._dataset.BackgroundLuminance = value + + @property + def StimulusColorCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StimulusColorCodeSequence" in self._dataset: + if len(self._StimulusColorCodeSequence) == len(self._dataset.StimulusColorCodeSequence): + return self._StimulusColorCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StimulusColorCodeSequence] + return None + + @StimulusColorCodeSequence.setter + def StimulusColorCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StimulusColorCodeSequence = [] + if "StimulusColorCodeSequence" in self._dataset: + del self._dataset.StimulusColorCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StimulusColorCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StimulusColorCodeSequence = value + if "StimulusColorCodeSequence" not in self._dataset: + self._dataset.StimulusColorCodeSequence = pydicom.Sequence() + self._dataset.StimulusColorCodeSequence.clear() + self._dataset.StimulusColorCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StimulusColorCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StimulusColorCodeSequence.append(item) + if "StimulusColorCodeSequence" not in self._dataset: + self._dataset.StimulusColorCodeSequence = pydicom.Sequence() + self._dataset.StimulusColorCodeSequence.append(item.to_dataset()) + + @property + def BackgroundIlluminationColorCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "BackgroundIlluminationColorCodeSequence" in self._dataset: + if len(self._BackgroundIlluminationColorCodeSequence) == len( + self._dataset.BackgroundIlluminationColorCodeSequence + ): + return self._BackgroundIlluminationColorCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.BackgroundIlluminationColorCodeSequence] + return None + + @BackgroundIlluminationColorCodeSequence.setter + def BackgroundIlluminationColorCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._BackgroundIlluminationColorCodeSequence = [] + if "BackgroundIlluminationColorCodeSequence" in self._dataset: + del self._dataset.BackgroundIlluminationColorCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("BackgroundIlluminationColorCodeSequence must be a list of CodeSequenceItem objects") + else: + self._BackgroundIlluminationColorCodeSequence = value + if "BackgroundIlluminationColorCodeSequence" not in self._dataset: + self._dataset.BackgroundIlluminationColorCodeSequence = pydicom.Sequence() + self._dataset.BackgroundIlluminationColorCodeSequence.clear() + self._dataset.BackgroundIlluminationColorCodeSequence.extend([item.to_dataset() for item in value]) + + def add_BackgroundIlluminationColorCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._BackgroundIlluminationColorCodeSequence.append(item) + if "BackgroundIlluminationColorCodeSequence" not in self._dataset: + self._dataset.BackgroundIlluminationColorCodeSequence = pydicom.Sequence() + self._dataset.BackgroundIlluminationColorCodeSequence.append(item.to_dataset()) + + @property + def StimulusArea(self) -> Optional[float]: + if "StimulusArea" in self._dataset: + return self._dataset.StimulusArea + return None + + @StimulusArea.setter + def StimulusArea(self, value: Optional[float]): + if value is None: + if "StimulusArea" in self._dataset: + del self._dataset.StimulusArea + else: + self._dataset.StimulusArea = value + + @property + def StimulusPresentationTime(self) -> Optional[float]: + if "StimulusPresentationTime" in self._dataset: + return self._dataset.StimulusPresentationTime + return None + + @StimulusPresentationTime.setter + def StimulusPresentationTime(self, value: Optional[float]): + if value is None: + if "StimulusPresentationTime" in self._dataset: + del self._dataset.StimulusPresentationTime + else: + self._dataset.StimulusPresentationTime = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def FixationSequence(self) -> Optional[List[FixationSequenceItem]]: + if "FixationSequence" in self._dataset: + if len(self._FixationSequence) == len(self._dataset.FixationSequence): + return self._FixationSequence + else: + return [FixationSequenceItem(x) for x in self._dataset.FixationSequence] + return None + + @FixationSequence.setter + def FixationSequence(self, value: Optional[List[FixationSequenceItem]]): + if value is None: + self._FixationSequence = [] + if "FixationSequence" in self._dataset: + del self._dataset.FixationSequence + elif not isinstance(value, list) or not all(isinstance(item, FixationSequenceItem) for item in value): + raise ValueError("FixationSequence must be a list of FixationSequenceItem objects") + else: + self._FixationSequence = value + if "FixationSequence" not in self._dataset: + self._dataset.FixationSequence = pydicom.Sequence() + self._dataset.FixationSequence.clear() + self._dataset.FixationSequence.extend([item.to_dataset() for item in value]) + + def add_Fixation(self, item: FixationSequenceItem): + if not isinstance(item, FixationSequenceItem): + raise ValueError("Item must be an instance of FixationSequenceItem") + self._FixationSequence.append(item) + if "FixationSequence" not in self._dataset: + self._dataset.FixationSequence = pydicom.Sequence() + self._dataset.FixationSequence.append(item.to_dataset()) + + @property + def VisualFieldCatchTrialSequence(self) -> Optional[List[VisualFieldCatchTrialSequenceItem]]: + if "VisualFieldCatchTrialSequence" in self._dataset: + if len(self._VisualFieldCatchTrialSequence) == len(self._dataset.VisualFieldCatchTrialSequence): + return self._VisualFieldCatchTrialSequence + else: + return [VisualFieldCatchTrialSequenceItem(x) for x in self._dataset.VisualFieldCatchTrialSequence] + return None + + @VisualFieldCatchTrialSequence.setter + def VisualFieldCatchTrialSequence(self, value: Optional[List[VisualFieldCatchTrialSequenceItem]]): + if value is None: + self._VisualFieldCatchTrialSequence = [] + if "VisualFieldCatchTrialSequence" in self._dataset: + del self._dataset.VisualFieldCatchTrialSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualFieldCatchTrialSequenceItem) for item in value): + raise ValueError("VisualFieldCatchTrialSequence must be a list of VisualFieldCatchTrialSequenceItem objects") + else: + self._VisualFieldCatchTrialSequence = value + if "VisualFieldCatchTrialSequence" not in self._dataset: + self._dataset.VisualFieldCatchTrialSequence = pydicom.Sequence() + self._dataset.VisualFieldCatchTrialSequence.clear() + self._dataset.VisualFieldCatchTrialSequence.extend([item.to_dataset() for item in value]) + + def add_VisualFieldCatchTrial(self, item: VisualFieldCatchTrialSequenceItem): + if not isinstance(item, VisualFieldCatchTrialSequenceItem): + raise ValueError("Item must be an instance of VisualFieldCatchTrialSequenceItem") + self._VisualFieldCatchTrialSequence.append(item) + if "VisualFieldCatchTrialSequence" not in self._dataset: + self._dataset.VisualFieldCatchTrialSequence = pydicom.Sequence() + self._dataset.VisualFieldCatchTrialSequence.append(item.to_dataset()) + + @property + def StimuliRetestingQuantity(self) -> Optional[int]: + if "StimuliRetestingQuantity" in self._dataset: + return self._dataset.StimuliRetestingQuantity + return None + + @StimuliRetestingQuantity.setter + def StimuliRetestingQuantity(self, value: Optional[int]): + if value is None: + if "StimuliRetestingQuantity" in self._dataset: + del self._dataset.StimuliRetestingQuantity + else: + self._dataset.StimuliRetestingQuantity = value + + @property + def CommentsOnPatientPerformanceOfVisualField(self) -> Optional[str]: + if "CommentsOnPatientPerformanceOfVisualField" in self._dataset: + return self._dataset.CommentsOnPatientPerformanceOfVisualField + return None + + @CommentsOnPatientPerformanceOfVisualField.setter + def CommentsOnPatientPerformanceOfVisualField(self, value: Optional[str]): + if value is None: + if "CommentsOnPatientPerformanceOfVisualField" in self._dataset: + del self._dataset.CommentsOnPatientPerformanceOfVisualField + else: + self._dataset.CommentsOnPatientPerformanceOfVisualField = value + + @property + def PatientReliabilityIndicator(self) -> Optional[str]: + if "PatientReliabilityIndicator" in self._dataset: + return self._dataset.PatientReliabilityIndicator + return None + + @PatientReliabilityIndicator.setter + def PatientReliabilityIndicator(self, value: Optional[str]): + if value is None: + if "PatientReliabilityIndicator" in self._dataset: + del self._dataset.PatientReliabilityIndicator + else: + self._dataset.PatientReliabilityIndicator = value + + @property + def VisualFieldTestReliabilityGlobalIndexSequence( + self, + ) -> Optional[List[VisualFieldTestReliabilityGlobalIndexSequenceItem]]: + if "VisualFieldTestReliabilityGlobalIndexSequence" in self._dataset: + if len(self._VisualFieldTestReliabilityGlobalIndexSequence) == len( + self._dataset.VisualFieldTestReliabilityGlobalIndexSequence + ): + return self._VisualFieldTestReliabilityGlobalIndexSequence + else: + return [ + VisualFieldTestReliabilityGlobalIndexSequenceItem(x) + for x in self._dataset.VisualFieldTestReliabilityGlobalIndexSequence + ] + return None + + @VisualFieldTestReliabilityGlobalIndexSequence.setter + def VisualFieldTestReliabilityGlobalIndexSequence( + self, value: Optional[List[VisualFieldTestReliabilityGlobalIndexSequenceItem]] + ): + if value is None: + self._VisualFieldTestReliabilityGlobalIndexSequence = [] + if "VisualFieldTestReliabilityGlobalIndexSequence" in self._dataset: + del self._dataset.VisualFieldTestReliabilityGlobalIndexSequence + elif not isinstance(value, list) or not all( + isinstance(item, VisualFieldTestReliabilityGlobalIndexSequenceItem) for item in value + ): + raise ValueError( + "VisualFieldTestReliabilityGlobalIndexSequence must be a list of" + " VisualFieldTestReliabilityGlobalIndexSequenceItem objects" + ) + else: + self._VisualFieldTestReliabilityGlobalIndexSequence = value + if "VisualFieldTestReliabilityGlobalIndexSequence" not in self._dataset: + self._dataset.VisualFieldTestReliabilityGlobalIndexSequence = pydicom.Sequence() + self._dataset.VisualFieldTestReliabilityGlobalIndexSequence.clear() + self._dataset.VisualFieldTestReliabilityGlobalIndexSequence.extend([item.to_dataset() for item in value]) + + def add_VisualFieldTestReliabilityGlobalIndex(self, item: VisualFieldTestReliabilityGlobalIndexSequenceItem): + if not isinstance(item, VisualFieldTestReliabilityGlobalIndexSequenceItem): + raise ValueError("Item must be an instance of VisualFieldTestReliabilityGlobalIndexSequenceItem") + self._VisualFieldTestReliabilityGlobalIndexSequence.append(item) + if "VisualFieldTestReliabilityGlobalIndexSequence" not in self._dataset: + self._dataset.VisualFieldTestReliabilityGlobalIndexSequence = pydicom.Sequence() + self._dataset.VisualFieldTestReliabilityGlobalIndexSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/optical_ophthalmic_axial_length_measurements_sequence_item.py b/tdwii_plus_examples/domain_model/optical_ophthalmic_axial_length_measurements_sequence_item.py new file mode 100644 index 0000000..6905a8a --- /dev/null +++ b/tdwii_plus_examples/domain_model/optical_ophthalmic_axial_length_measurements_sequence_item.py @@ -0,0 +1,76 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class OpticalOphthalmicAxialLengthMeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthDataSourceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLengthDataSourceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicAxialLengthDataSourceCodeSequence" in self._dataset: + if len(self._OphthalmicAxialLengthDataSourceCodeSequence) == len( + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence + ): + return self._OphthalmicAxialLengthDataSourceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthDataSourceCodeSequence] + return None + + @OphthalmicAxialLengthDataSourceCodeSequence.setter + def OphthalmicAxialLengthDataSourceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthDataSourceCodeSequence = [] + if "OphthalmicAxialLengthDataSourceCodeSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthDataSourceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicAxialLengthDataSourceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicAxialLengthDataSourceCodeSequence = value + if "OphthalmicAxialLengthDataSourceCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence.clear() + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthDataSourceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicAxialLengthDataSourceCodeSequence.append(item) + if "OphthalmicAxialLengthDataSourceCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence.append(item.to_dataset()) + + @property + def SignalToNoiseRatio(self) -> Optional[float]: + if "SignalToNoiseRatio" in self._dataset: + return self._dataset.SignalToNoiseRatio + return None + + @SignalToNoiseRatio.setter + def SignalToNoiseRatio(self, value: Optional[float]): + if value is None: + if "SignalToNoiseRatio" in self._dataset: + del self._dataset.SignalToNoiseRatio + else: + self._dataset.SignalToNoiseRatio = value + + @property + def OphthalmicAxialLengthDataSourceDescription(self) -> Optional[str]: + if "OphthalmicAxialLengthDataSourceDescription" in self._dataset: + return self._dataset.OphthalmicAxialLengthDataSourceDescription + return None + + @OphthalmicAxialLengthDataSourceDescription.setter + def OphthalmicAxialLengthDataSourceDescription(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthDataSourceDescription" in self._dataset: + del self._dataset.OphthalmicAxialLengthDataSourceDescription + else: + self._dataset.OphthalmicAxialLengthDataSourceDescription = value diff --git a/tdwii_plus_examples/domain_model/optical_path_identification_sequence_item.py b/tdwii_plus_examples/domain_model/optical_path_identification_sequence_item.py new file mode 100644 index 0000000..8f0bddc --- /dev/null +++ b/tdwii_plus_examples/domain_model/optical_path_identification_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OpticalPathIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OpticalPathIdentifier(self) -> Optional[str]: + if "OpticalPathIdentifier" in self._dataset: + return self._dataset.OpticalPathIdentifier + return None + + @OpticalPathIdentifier.setter + def OpticalPathIdentifier(self, value: Optional[str]): + if value is None: + if "OpticalPathIdentifier" in self._dataset: + del self._dataset.OpticalPathIdentifier + else: + self._dataset.OpticalPathIdentifier = value diff --git a/tdwii_plus_examples/domain_model/optical_path_sequence_item.py b/tdwii_plus_examples/domain_model/optical_path_sequence_item.py new file mode 100644 index 0000000..fef790d --- /dev/null +++ b/tdwii_plus_examples/domain_model/optical_path_sequence_item.py @@ -0,0 +1,449 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .palette_color_lookup_table_sequence_item import ( + PaletteColorLookupTableSequenceItem, +) + + +class OpticalPathSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IlluminationTypeCodeSequence: List[CodeSequenceItem] = [] + self._LightPathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._ImagePathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._LensesCodeSequence: List[CodeSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._IlluminatorTypeCodeSequence: List[CodeSequenceItem] = [] + self._IlluminationColorCodeSequence: List[CodeSequenceItem] = [] + self._PaletteColorLookupTableSequence: List[PaletteColorLookupTableSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LightPathFilterPassThroughWavelength(self) -> Optional[int]: + if "LightPathFilterPassThroughWavelength" in self._dataset: + return self._dataset.LightPathFilterPassThroughWavelength + return None + + @LightPathFilterPassThroughWavelength.setter + def LightPathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "LightPathFilterPassThroughWavelength" in self._dataset: + del self._dataset.LightPathFilterPassThroughWavelength + else: + self._dataset.LightPathFilterPassThroughWavelength = value + + @property + def LightPathFilterPassBand(self) -> Optional[List[int]]: + if "LightPathFilterPassBand" in self._dataset: + return self._dataset.LightPathFilterPassBand + return None + + @LightPathFilterPassBand.setter + def LightPathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "LightPathFilterPassBand" in self._dataset: + del self._dataset.LightPathFilterPassBand + else: + self._dataset.LightPathFilterPassBand = value + + @property + def ImagePathFilterPassThroughWavelength(self) -> Optional[int]: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + return self._dataset.ImagePathFilterPassThroughWavelength + return None + + @ImagePathFilterPassThroughWavelength.setter + def ImagePathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + del self._dataset.ImagePathFilterPassThroughWavelength + else: + self._dataset.ImagePathFilterPassThroughWavelength = value + + @property + def ImagePathFilterPassBand(self) -> Optional[List[int]]: + if "ImagePathFilterPassBand" in self._dataset: + return self._dataset.ImagePathFilterPassBand + return None + + @ImagePathFilterPassBand.setter + def ImagePathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "ImagePathFilterPassBand" in self._dataset: + del self._dataset.ImagePathFilterPassBand + else: + self._dataset.ImagePathFilterPassBand = value + + @property + def IlluminationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationTypeCodeSequence" in self._dataset: + if len(self._IlluminationTypeCodeSequence) == len(self._dataset.IlluminationTypeCodeSequence): + return self._IlluminationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationTypeCodeSequence] + return None + + @IlluminationTypeCodeSequence.setter + def IlluminationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationTypeCodeSequence = [] + if "IlluminationTypeCodeSequence" in self._dataset: + del self._dataset.IlluminationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationTypeCodeSequence = value + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.clear() + self._dataset.IlluminationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationTypeCodeSequence.append(item) + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.append(item.to_dataset()) + + @property + def LightPathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + if len(self._LightPathFilterTypeStackCodeSequence) == len(self._dataset.LightPathFilterTypeStackCodeSequence): + return self._LightPathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LightPathFilterTypeStackCodeSequence] + return None + + @LightPathFilterTypeStackCodeSequence.setter + def LightPathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LightPathFilterTypeStackCodeSequence = [] + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.LightPathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LightPathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LightPathFilterTypeStackCodeSequence = value + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.clear() + self._dataset.LightPathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LightPathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LightPathFilterTypeStackCodeSequence.append(item) + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def ImagePathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + if len(self._ImagePathFilterTypeStackCodeSequence) == len(self._dataset.ImagePathFilterTypeStackCodeSequence): + return self._ImagePathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ImagePathFilterTypeStackCodeSequence] + return None + + @ImagePathFilterTypeStackCodeSequence.setter + def ImagePathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ImagePathFilterTypeStackCodeSequence = [] + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.ImagePathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ImagePathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ImagePathFilterTypeStackCodeSequence = value + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.clear() + self._dataset.ImagePathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ImagePathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ImagePathFilterTypeStackCodeSequence.append(item) + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def LensesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensesCodeSequence" in self._dataset: + if len(self._LensesCodeSequence) == len(self._dataset.LensesCodeSequence): + return self._LensesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensesCodeSequence] + return None + + @LensesCodeSequence.setter + def LensesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensesCodeSequence = [] + if "LensesCodeSequence" in self._dataset: + del self._dataset.LensesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensesCodeSequence = value + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.clear() + self._dataset.LensesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensesCodeSequence.append(item) + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.append(item.to_dataset()) + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def IlluminationWaveLength(self) -> Optional[float]: + if "IlluminationWaveLength" in self._dataset: + return self._dataset.IlluminationWaveLength + return None + + @IlluminationWaveLength.setter + def IlluminationWaveLength(self, value: Optional[float]): + if value is None: + if "IlluminationWaveLength" in self._dataset: + del self._dataset.IlluminationWaveLength + else: + self._dataset.IlluminationWaveLength = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def IlluminatorTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminatorTypeCodeSequence" in self._dataset: + if len(self._IlluminatorTypeCodeSequence) == len(self._dataset.IlluminatorTypeCodeSequence): + return self._IlluminatorTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminatorTypeCodeSequence] + return None + + @IlluminatorTypeCodeSequence.setter + def IlluminatorTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminatorTypeCodeSequence = [] + if "IlluminatorTypeCodeSequence" in self._dataset: + del self._dataset.IlluminatorTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminatorTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminatorTypeCodeSequence = value + if "IlluminatorTypeCodeSequence" not in self._dataset: + self._dataset.IlluminatorTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminatorTypeCodeSequence.clear() + self._dataset.IlluminatorTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminatorTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminatorTypeCodeSequence.append(item) + if "IlluminatorTypeCodeSequence" not in self._dataset: + self._dataset.IlluminatorTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminatorTypeCodeSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentifier(self) -> Optional[str]: + if "OpticalPathIdentifier" in self._dataset: + return self._dataset.OpticalPathIdentifier + return None + + @OpticalPathIdentifier.setter + def OpticalPathIdentifier(self, value: Optional[str]): + if value is None: + if "OpticalPathIdentifier" in self._dataset: + del self._dataset.OpticalPathIdentifier + else: + self._dataset.OpticalPathIdentifier = value + + @property + def OpticalPathDescription(self) -> Optional[str]: + if "OpticalPathDescription" in self._dataset: + return self._dataset.OpticalPathDescription + return None + + @OpticalPathDescription.setter + def OpticalPathDescription(self, value: Optional[str]): + if value is None: + if "OpticalPathDescription" in self._dataset: + del self._dataset.OpticalPathDescription + else: + self._dataset.OpticalPathDescription = value + + @property + def IlluminationColorCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationColorCodeSequence" in self._dataset: + if len(self._IlluminationColorCodeSequence) == len(self._dataset.IlluminationColorCodeSequence): + return self._IlluminationColorCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationColorCodeSequence] + return None + + @IlluminationColorCodeSequence.setter + def IlluminationColorCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationColorCodeSequence = [] + if "IlluminationColorCodeSequence" in self._dataset: + del self._dataset.IlluminationColorCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationColorCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationColorCodeSequence = value + if "IlluminationColorCodeSequence" not in self._dataset: + self._dataset.IlluminationColorCodeSequence = pydicom.Sequence() + self._dataset.IlluminationColorCodeSequence.clear() + self._dataset.IlluminationColorCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationColorCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationColorCodeSequence.append(item) + if "IlluminationColorCodeSequence" not in self._dataset: + self._dataset.IlluminationColorCodeSequence = pydicom.Sequence() + self._dataset.IlluminationColorCodeSequence.append(item.to_dataset()) + + @property + def CondenserLensPower(self) -> Optional[Decimal]: + if "CondenserLensPower" in self._dataset: + return self._dataset.CondenserLensPower + return None + + @CondenserLensPower.setter + def CondenserLensPower(self, value: Optional[Decimal]): + if value is None: + if "CondenserLensPower" in self._dataset: + del self._dataset.CondenserLensPower + else: + self._dataset.CondenserLensPower = value + + @property + def ObjectiveLensPower(self) -> Optional[Decimal]: + if "ObjectiveLensPower" in self._dataset: + return self._dataset.ObjectiveLensPower + return None + + @ObjectiveLensPower.setter + def ObjectiveLensPower(self, value: Optional[Decimal]): + if value is None: + if "ObjectiveLensPower" in self._dataset: + del self._dataset.ObjectiveLensPower + else: + self._dataset.ObjectiveLensPower = value + + @property + def ObjectiveLensNumericalAperture(self) -> Optional[Decimal]: + if "ObjectiveLensNumericalAperture" in self._dataset: + return self._dataset.ObjectiveLensNumericalAperture + return None + + @ObjectiveLensNumericalAperture.setter + def ObjectiveLensNumericalAperture(self, value: Optional[Decimal]): + if value is None: + if "ObjectiveLensNumericalAperture" in self._dataset: + del self._dataset.ObjectiveLensNumericalAperture + else: + self._dataset.ObjectiveLensNumericalAperture = value + + @property + def PaletteColorLookupTableSequence(self) -> Optional[List[PaletteColorLookupTableSequenceItem]]: + if "PaletteColorLookupTableSequence" in self._dataset: + if len(self._PaletteColorLookupTableSequence) == len(self._dataset.PaletteColorLookupTableSequence): + return self._PaletteColorLookupTableSequence + else: + return [PaletteColorLookupTableSequenceItem(x) for x in self._dataset.PaletteColorLookupTableSequence] + return None + + @PaletteColorLookupTableSequence.setter + def PaletteColorLookupTableSequence(self, value: Optional[List[PaletteColorLookupTableSequenceItem]]): + if value is None: + self._PaletteColorLookupTableSequence = [] + if "PaletteColorLookupTableSequence" in self._dataset: + del self._dataset.PaletteColorLookupTableSequence + elif not isinstance(value, list) or not all(isinstance(item, PaletteColorLookupTableSequenceItem) for item in value): + raise ValueError("PaletteColorLookupTableSequence must be a list of PaletteColorLookupTableSequenceItem objects") + else: + self._PaletteColorLookupTableSequence = value + if "PaletteColorLookupTableSequence" not in self._dataset: + self._dataset.PaletteColorLookupTableSequence = pydicom.Sequence() + self._dataset.PaletteColorLookupTableSequence.clear() + self._dataset.PaletteColorLookupTableSequence.extend([item.to_dataset() for item in value]) + + def add_PaletteColorLookupTable(self, item: PaletteColorLookupTableSequenceItem): + if not isinstance(item, PaletteColorLookupTableSequenceItem): + raise ValueError("Item must be an instance of PaletteColorLookupTableSequenceItem") + self._PaletteColorLookupTableSequence.append(item) + if "PaletteColorLookupTableSequence" not in self._dataset: + self._dataset.PaletteColorLookupTableSequence = pydicom.Sequence() + self._dataset.PaletteColorLookupTableSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/optical_selected_ophthalmic_axial_length_sequence_item.py b/tdwii_plus_examples/domain_model/optical_selected_ophthalmic_axial_length_sequence_item.py new file mode 100644 index 0000000..bd41fbb --- /dev/null +++ b/tdwii_plus_examples/domain_model/optical_selected_ophthalmic_axial_length_sequence_item.py @@ -0,0 +1,124 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .selected_segmental_ophthalmic_axial_length_sequence_item import ( + SelectedSegmentalOphthalmicAxialLengthSequenceItem, +) +from .selected_total_ophthalmic_axial_length_sequence_item import ( + SelectedTotalOphthalmicAxialLengthSequenceItem, +) + + +class OpticalSelectedOphthalmicAxialLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SelectedSegmentalOphthalmicAxialLengthSequence: List[SelectedSegmentalOphthalmicAxialLengthSequenceItem] = [] + self._SelectedTotalOphthalmicAxialLengthSequence: List[SelectedTotalOphthalmicAxialLengthSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLengthMeasurementsType(self) -> Optional[str]: + if "OphthalmicAxialLengthMeasurementsType" in self._dataset: + return self._dataset.OphthalmicAxialLengthMeasurementsType + return None + + @OphthalmicAxialLengthMeasurementsType.setter + def OphthalmicAxialLengthMeasurementsType(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMeasurementsType" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsType + else: + self._dataset.OphthalmicAxialLengthMeasurementsType = value + + @property + def SelectedSegmentalOphthalmicAxialLengthSequence( + self, + ) -> Optional[List[SelectedSegmentalOphthalmicAxialLengthSequenceItem]]: + if "SelectedSegmentalOphthalmicAxialLengthSequence" in self._dataset: + if len(self._SelectedSegmentalOphthalmicAxialLengthSequence) == len( + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence + ): + return self._SelectedSegmentalOphthalmicAxialLengthSequence + else: + return [ + SelectedSegmentalOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence + ] + return None + + @SelectedSegmentalOphthalmicAxialLengthSequence.setter + def SelectedSegmentalOphthalmicAxialLengthSequence( + self, value: Optional[List[SelectedSegmentalOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._SelectedSegmentalOphthalmicAxialLengthSequence = [] + if "SelectedSegmentalOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, SelectedSegmentalOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "SelectedSegmentalOphthalmicAxialLengthSequence must be a list of" + " SelectedSegmentalOphthalmicAxialLengthSequenceItem objects" + ) + else: + self._SelectedSegmentalOphthalmicAxialLengthSequence = value + if "SelectedSegmentalOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence.clear() + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_SelectedSegmentalOphthalmicAxialLength(self, item: SelectedSegmentalOphthalmicAxialLengthSequenceItem): + if not isinstance(item, SelectedSegmentalOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of SelectedSegmentalOphthalmicAxialLengthSequenceItem") + self._SelectedSegmentalOphthalmicAxialLengthSequence.append(item) + if "SelectedSegmentalOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence.append(item.to_dataset()) + + @property + def SelectedTotalOphthalmicAxialLengthSequence(self) -> Optional[List[SelectedTotalOphthalmicAxialLengthSequenceItem]]: + if "SelectedTotalOphthalmicAxialLengthSequence" in self._dataset: + if len(self._SelectedTotalOphthalmicAxialLengthSequence) == len( + self._dataset.SelectedTotalOphthalmicAxialLengthSequence + ): + return self._SelectedTotalOphthalmicAxialLengthSequence + else: + return [ + SelectedTotalOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.SelectedTotalOphthalmicAxialLengthSequence + ] + return None + + @SelectedTotalOphthalmicAxialLengthSequence.setter + def SelectedTotalOphthalmicAxialLengthSequence( + self, value: Optional[List[SelectedTotalOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._SelectedTotalOphthalmicAxialLengthSequence = [] + if "SelectedTotalOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.SelectedTotalOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, SelectedTotalOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "SelectedTotalOphthalmicAxialLengthSequence must be a list of SelectedTotalOphthalmicAxialLengthSequenceItem" + " objects" + ) + else: + self._SelectedTotalOphthalmicAxialLengthSequence = value + if "SelectedTotalOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.SelectedTotalOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.SelectedTotalOphthalmicAxialLengthSequence.clear() + self._dataset.SelectedTotalOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_SelectedTotalOphthalmicAxialLength(self, item: SelectedTotalOphthalmicAxialLengthSequenceItem): + if not isinstance(item, SelectedTotalOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of SelectedTotalOphthalmicAxialLengthSequenceItem") + self._SelectedTotalOphthalmicAxialLengthSequence.append(item) + if "SelectedTotalOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.SelectedTotalOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.SelectedTotalOphthalmicAxialLengthSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/order_filler_identifier_sequence_item.py b/tdwii_plus_examples/domain_model/order_filler_identifier_sequence_item.py new file mode 100644 index 0000000..bd4744c --- /dev/null +++ b/tdwii_plus_examples/domain_model/order_filler_identifier_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OrderFillerIdentifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/order_placer_identifier_sequence_item.py b/tdwii_plus_examples/domain_model/order_placer_identifier_sequence_item.py new file mode 100644 index 0000000..4ad0eb6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/order_placer_identifier_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OrderPlacerIdentifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LocalNamespaceEntityID(self) -> Optional[str]: + if "LocalNamespaceEntityID" in self._dataset: + return self._dataset.LocalNamespaceEntityID + return None + + @LocalNamespaceEntityID.setter + def LocalNamespaceEntityID(self, value: Optional[str]): + if value is None: + if "LocalNamespaceEntityID" in self._dataset: + del self._dataset.LocalNamespaceEntityID + else: + self._dataset.LocalNamespaceEntityID = value + + @property + def UniversalEntityID(self) -> Optional[str]: + if "UniversalEntityID" in self._dataset: + return self._dataset.UniversalEntityID + return None + + @UniversalEntityID.setter + def UniversalEntityID(self, value: Optional[str]): + if value is None: + if "UniversalEntityID" in self._dataset: + del self._dataset.UniversalEntityID + else: + self._dataset.UniversalEntityID = value + + @property + def UniversalEntityIDType(self) -> Optional[str]: + if "UniversalEntityIDType" in self._dataset: + return self._dataset.UniversalEntityIDType + return None + + @UniversalEntityIDType.setter + def UniversalEntityIDType(self, value: Optional[str]): + if value is None: + if "UniversalEntityIDType" in self._dataset: + del self._dataset.UniversalEntityIDType + else: + self._dataset.UniversalEntityIDType = value diff --git a/tdwii_plus_examples/domain_model/original_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/original_attributes_sequence_item.py new file mode 100644 index 0000000..620d9d2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/original_attributes_sequence_item.py @@ -0,0 +1,147 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .modified_attributes_sequence_item import ModifiedAttributesSequenceItem +from .nonconforming_modified_attributes_sequence_item import ( + NonconformingModifiedAttributesSequenceItem, +) + + +class OriginalAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ModifiedAttributesSequence: List[ModifiedAttributesSequenceItem] = [] + self._NonconformingModifiedAttributesSequence: List[NonconformingModifiedAttributesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ModifiedAttributesSequence(self) -> Optional[List[ModifiedAttributesSequenceItem]]: + if "ModifiedAttributesSequence" in self._dataset: + if len(self._ModifiedAttributesSequence) == len(self._dataset.ModifiedAttributesSequence): + return self._ModifiedAttributesSequence + else: + return [ModifiedAttributesSequenceItem(x) for x in self._dataset.ModifiedAttributesSequence] + return None + + @ModifiedAttributesSequence.setter + def ModifiedAttributesSequence(self, value: Optional[List[ModifiedAttributesSequenceItem]]): + if value is None: + self._ModifiedAttributesSequence = [] + if "ModifiedAttributesSequence" in self._dataset: + del self._dataset.ModifiedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, ModifiedAttributesSequenceItem) for item in value): + raise ValueError("ModifiedAttributesSequence must be a list of ModifiedAttributesSequenceItem objects") + else: + self._ModifiedAttributesSequence = value + if "ModifiedAttributesSequence" not in self._dataset: + self._dataset.ModifiedAttributesSequence = pydicom.Sequence() + self._dataset.ModifiedAttributesSequence.clear() + self._dataset.ModifiedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ModifiedAttributes(self, item: ModifiedAttributesSequenceItem): + if not isinstance(item, ModifiedAttributesSequenceItem): + raise ValueError("Item must be an instance of ModifiedAttributesSequenceItem") + self._ModifiedAttributesSequence.append(item) + if "ModifiedAttributesSequence" not in self._dataset: + self._dataset.ModifiedAttributesSequence = pydicom.Sequence() + self._dataset.ModifiedAttributesSequence.append(item.to_dataset()) + + @property + def NonconformingModifiedAttributesSequence(self) -> Optional[List[NonconformingModifiedAttributesSequenceItem]]: + if "NonconformingModifiedAttributesSequence" in self._dataset: + if len(self._NonconformingModifiedAttributesSequence) == len( + self._dataset.NonconformingModifiedAttributesSequence + ): + return self._NonconformingModifiedAttributesSequence + else: + return [ + NonconformingModifiedAttributesSequenceItem(x) + for x in self._dataset.NonconformingModifiedAttributesSequence + ] + return None + + @NonconformingModifiedAttributesSequence.setter + def NonconformingModifiedAttributesSequence(self, value: Optional[List[NonconformingModifiedAttributesSequenceItem]]): + if value is None: + self._NonconformingModifiedAttributesSequence = [] + if "NonconformingModifiedAttributesSequence" in self._dataset: + del self._dataset.NonconformingModifiedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, NonconformingModifiedAttributesSequenceItem) for item in value + ): + raise ValueError( + "NonconformingModifiedAttributesSequence must be a list of NonconformingModifiedAttributesSequenceItem objects" + ) + else: + self._NonconformingModifiedAttributesSequence = value + if "NonconformingModifiedAttributesSequence" not in self._dataset: + self._dataset.NonconformingModifiedAttributesSequence = pydicom.Sequence() + self._dataset.NonconformingModifiedAttributesSequence.clear() + self._dataset.NonconformingModifiedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_NonconformingModifiedAttributes(self, item: NonconformingModifiedAttributesSequenceItem): + if not isinstance(item, NonconformingModifiedAttributesSequenceItem): + raise ValueError("Item must be an instance of NonconformingModifiedAttributesSequenceItem") + self._NonconformingModifiedAttributesSequence.append(item) + if "NonconformingModifiedAttributesSequence" not in self._dataset: + self._dataset.NonconformingModifiedAttributesSequence = pydicom.Sequence() + self._dataset.NonconformingModifiedAttributesSequence.append(item.to_dataset()) + + @property + def AttributeModificationDateTime(self) -> Optional[str]: + if "AttributeModificationDateTime" in self._dataset: + return self._dataset.AttributeModificationDateTime + return None + + @AttributeModificationDateTime.setter + def AttributeModificationDateTime(self, value: Optional[str]): + if value is None: + if "AttributeModificationDateTime" in self._dataset: + del self._dataset.AttributeModificationDateTime + else: + self._dataset.AttributeModificationDateTime = value + + @property + def ModifyingSystem(self) -> Optional[str]: + if "ModifyingSystem" in self._dataset: + return self._dataset.ModifyingSystem + return None + + @ModifyingSystem.setter + def ModifyingSystem(self, value: Optional[str]): + if value is None: + if "ModifyingSystem" in self._dataset: + del self._dataset.ModifyingSystem + else: + self._dataset.ModifyingSystem = value + + @property + def SourceOfPreviousValues(self) -> Optional[str]: + if "SourceOfPreviousValues" in self._dataset: + return self._dataset.SourceOfPreviousValues + return None + + @SourceOfPreviousValues.setter + def SourceOfPreviousValues(self, value: Optional[str]): + if value is None: + if "SourceOfPreviousValues" in self._dataset: + del self._dataset.SourceOfPreviousValues + else: + self._dataset.SourceOfPreviousValues = value + + @property + def ReasonForTheAttributeModification(self) -> Optional[str]: + if "ReasonForTheAttributeModification" in self._dataset: + return self._dataset.ReasonForTheAttributeModification + return None + + @ReasonForTheAttributeModification.setter + def ReasonForTheAttributeModification(self, value: Optional[str]): + if value is None: + if "ReasonForTheAttributeModification" in self._dataset: + del self._dataset.ReasonForTheAttributeModification + else: + self._dataset.ReasonForTheAttributeModification = value diff --git a/tdwii_plus_examples/domain_model/originating_sop_instance_reference_sequence_item.py b/tdwii_plus_examples/domain_model/originating_sop_instance_reference_sequence_item.py new file mode 100644 index 0000000..fe97235 --- /dev/null +++ b/tdwii_plus_examples/domain_model/originating_sop_instance_reference_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OriginatingSOPInstanceReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/other_clinical_trial_protocol_i_ds_sequence_item.py b/tdwii_plus_examples/domain_model/other_clinical_trial_protocol_i_ds_sequence_item.py new file mode 100644 index 0000000..7ba458e --- /dev/null +++ b/tdwii_plus_examples/domain_model/other_clinical_trial_protocol_i_ds_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class OtherClinicalTrialProtocolIDsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value diff --git a/tdwii_plus_examples/domain_model/other_patient_i_ds_sequence_item.py b/tdwii_plus_examples/domain_model/other_patient_i_ds_sequence_item.py new file mode 100644 index 0000000..8f4df7d --- /dev/null +++ b/tdwii_plus_examples/domain_model/other_patient_i_ds_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) + + +class OtherPatientIDsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/output_information_sequence_item.py b/tdwii_plus_examples/domain_model/output_information_sequence_item.py new file mode 100644 index 0000000..e335f93 --- /dev/null +++ b/tdwii_plus_examples/domain_model/output_information_sequence_item.py @@ -0,0 +1,128 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .dicom_storage_sequence_item import DICOMStorageSequenceItem +from .stowrs_storage_sequence_item import STOWRSStorageSequenceItem +from .xds_storage_sequence_item import XDSStorageSequenceItem + + +class OutputInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DICOMStorageSequence: List[DICOMStorageSequenceItem] = [] + self._STOWRSStorageSequence: List[STOWRSStorageSequenceItem] = [] + self._XDSStorageSequence: List[XDSStorageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def DICOMStorageSequence(self) -> Optional[List[DICOMStorageSequenceItem]]: + if "DICOMStorageSequence" in self._dataset: + if len(self._DICOMStorageSequence) == len(self._dataset.DICOMStorageSequence): + return self._DICOMStorageSequence + else: + return [DICOMStorageSequenceItem(x) for x in self._dataset.DICOMStorageSequence] + return None + + @DICOMStorageSequence.setter + def DICOMStorageSequence(self, value: Optional[List[DICOMStorageSequenceItem]]): + if value is None: + self._DICOMStorageSequence = [] + if "DICOMStorageSequence" in self._dataset: + del self._dataset.DICOMStorageSequence + elif not isinstance(value, list) or not all(isinstance(item, DICOMStorageSequenceItem) for item in value): + raise ValueError("DICOMStorageSequence must be a list of DICOMStorageSequenceItem objects") + else: + self._DICOMStorageSequence = value + if "DICOMStorageSequence" not in self._dataset: + self._dataset.DICOMStorageSequence = pydicom.Sequence() + self._dataset.DICOMStorageSequence.clear() + self._dataset.DICOMStorageSequence.extend([item.to_dataset() for item in value]) + + def add_DICOMStorage(self, item: DICOMStorageSequenceItem): + if not isinstance(item, DICOMStorageSequenceItem): + raise ValueError("Item must be an instance of DICOMStorageSequenceItem") + self._DICOMStorageSequence.append(item) + if "DICOMStorageSequence" not in self._dataset: + self._dataset.DICOMStorageSequence = pydicom.Sequence() + self._dataset.DICOMStorageSequence.append(item.to_dataset()) + + @property + def STOWRSStorageSequence(self) -> Optional[List[STOWRSStorageSequenceItem]]: + if "STOWRSStorageSequence" in self._dataset: + if len(self._STOWRSStorageSequence) == len(self._dataset.STOWRSStorageSequence): + return self._STOWRSStorageSequence + else: + return [STOWRSStorageSequenceItem(x) for x in self._dataset.STOWRSStorageSequence] + return None + + @STOWRSStorageSequence.setter + def STOWRSStorageSequence(self, value: Optional[List[STOWRSStorageSequenceItem]]): + if value is None: + self._STOWRSStorageSequence = [] + if "STOWRSStorageSequence" in self._dataset: + del self._dataset.STOWRSStorageSequence + elif not isinstance(value, list) or not all(isinstance(item, STOWRSStorageSequenceItem) for item in value): + raise ValueError("STOWRSStorageSequence must be a list of STOWRSStorageSequenceItem objects") + else: + self._STOWRSStorageSequence = value + if "STOWRSStorageSequence" not in self._dataset: + self._dataset.STOWRSStorageSequence = pydicom.Sequence() + self._dataset.STOWRSStorageSequence.clear() + self._dataset.STOWRSStorageSequence.extend([item.to_dataset() for item in value]) + + def add_STOWRSStorage(self, item: STOWRSStorageSequenceItem): + if not isinstance(item, STOWRSStorageSequenceItem): + raise ValueError("Item must be an instance of STOWRSStorageSequenceItem") + self._STOWRSStorageSequence.append(item) + if "STOWRSStorageSequence" not in self._dataset: + self._dataset.STOWRSStorageSequence = pydicom.Sequence() + self._dataset.STOWRSStorageSequence.append(item.to_dataset()) + + @property + def XDSStorageSequence(self) -> Optional[List[XDSStorageSequenceItem]]: + if "XDSStorageSequence" in self._dataset: + if len(self._XDSStorageSequence) == len(self._dataset.XDSStorageSequence): + return self._XDSStorageSequence + else: + return [XDSStorageSequenceItem(x) for x in self._dataset.XDSStorageSequence] + return None + + @XDSStorageSequence.setter + def XDSStorageSequence(self, value: Optional[List[XDSStorageSequenceItem]]): + if value is None: + self._XDSStorageSequence = [] + if "XDSStorageSequence" in self._dataset: + del self._dataset.XDSStorageSequence + elif not isinstance(value, list) or not all(isinstance(item, XDSStorageSequenceItem) for item in value): + raise ValueError("XDSStorageSequence must be a list of XDSStorageSequenceItem objects") + else: + self._XDSStorageSequence = value + if "XDSStorageSequence" not in self._dataset: + self._dataset.XDSStorageSequence = pydicom.Sequence() + self._dataset.XDSStorageSequence.clear() + self._dataset.XDSStorageSequence.extend([item.to_dataset() for item in value]) + + def add_XDSStorage(self, item: XDSStorageSequenceItem): + if not isinstance(item, XDSStorageSequenceItem): + raise ValueError("Item must be an instance of XDSStorageSequenceItem") + self._XDSStorageSequence.append(item) + if "XDSStorageSequence" not in self._dataset: + self._dataset.XDSStorageSequence = pydicom.Sequence() + self._dataset.XDSStorageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/override_sequence_item.py b/tdwii_plus_examples/domain_model/override_sequence_item.py new file mode 100644 index 0000000..1874217 --- /dev/null +++ b/tdwii_plus_examples/domain_model/override_sequence_item.py @@ -0,0 +1,88 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem + + +class OverrideSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def OverrideParameterPointer(self) -> Optional[int]: + if "OverrideParameterPointer" in self._dataset: + return self._dataset.OverrideParameterPointer + return None + + @OverrideParameterPointer.setter + def OverrideParameterPointer(self, value: Optional[int]): + if value is None: + if "OverrideParameterPointer" in self._dataset: + del self._dataset.OverrideParameterPointer + else: + self._dataset.OverrideParameterPointer = value + + @property + def OverrideReason(self) -> Optional[str]: + if "OverrideReason" in self._dataset: + return self._dataset.OverrideReason + return None + + @OverrideReason.setter + def OverrideReason(self, value: Optional[str]): + if value is None: + if "OverrideReason" in self._dataset: + del self._dataset.OverrideReason + else: + self._dataset.OverrideReason = value diff --git a/tdwii_plus_examples/domain_model/palette_color_lookup_table_sequence_item.py b/tdwii_plus_examples/domain_model/palette_color_lookup_table_sequence_item.py new file mode 100644 index 0000000..8405554 --- /dev/null +++ b/tdwii_plus_examples/domain_model/palette_color_lookup_table_sequence_item.py @@ -0,0 +1,151 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PaletteColorLookupTableSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value diff --git a/tdwii_plus_examples/domain_model/parallel_rt_beam_delimiter_device_sequence_item.py b/tdwii_plus_examples/domain_model/parallel_rt_beam_delimiter_device_sequence_item.py new file mode 100644 index 0000000..d763504 --- /dev/null +++ b/tdwii_plus_examples/domain_model/parallel_rt_beam_delimiter_device_sequence_item.py @@ -0,0 +1,122 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ParallelRTBeamDelimiterDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ParallelRTBeamDelimiterOpeningExtents(self) -> Optional[List[float]]: + if "ParallelRTBeamDelimiterOpeningExtents" in self._dataset: + return self._dataset.ParallelRTBeamDelimiterOpeningExtents + return None + + @ParallelRTBeamDelimiterOpeningExtents.setter + def ParallelRTBeamDelimiterOpeningExtents(self, value: Optional[List[float]]): + if value is None: + if "ParallelRTBeamDelimiterOpeningExtents" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterOpeningExtents + else: + self._dataset.ParallelRTBeamDelimiterOpeningExtents = value + + @property + def ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence" in self._dataset: + if len(self._ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence) == len( + self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence + ): + return self._ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence] + return None + + @ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence.setter + def ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence = [] + if "ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError( + "ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence must be a list of CodeSequenceItem objects" + ) + else: + self._ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence = value + if "ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence" not in self._dataset: + self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence = pydicom.Sequence() + self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence.clear() + self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ParallelRTBeamDelimiterDeviceOrientationLabelCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence.append(item) + if "ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence" not in self._dataset: + self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence = pydicom.Sequence() + self._dataset.ParallelRTBeamDelimiterDeviceOrientationLabelCodeSequence.append(item.to_dataset()) + + @property + def NumberOfParallelRTBeamDelimiters(self) -> Optional[int]: + if "NumberOfParallelRTBeamDelimiters" in self._dataset: + return self._dataset.NumberOfParallelRTBeamDelimiters + return None + + @NumberOfParallelRTBeamDelimiters.setter + def NumberOfParallelRTBeamDelimiters(self, value: Optional[int]): + if value is None: + if "NumberOfParallelRTBeamDelimiters" in self._dataset: + del self._dataset.NumberOfParallelRTBeamDelimiters + else: + self._dataset.NumberOfParallelRTBeamDelimiters = value + + @property + def ParallelRTBeamDelimiterBoundaries(self) -> Optional[List[float]]: + if "ParallelRTBeamDelimiterBoundaries" in self._dataset: + return self._dataset.ParallelRTBeamDelimiterBoundaries + return None + + @ParallelRTBeamDelimiterBoundaries.setter + def ParallelRTBeamDelimiterBoundaries(self, value: Optional[List[float]]): + if value is None: + if "ParallelRTBeamDelimiterBoundaries" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterBoundaries + else: + self._dataset.ParallelRTBeamDelimiterBoundaries = value + + @property + def ParallelRTBeamDelimiterOpeningMode(self) -> Optional[str]: + if "ParallelRTBeamDelimiterOpeningMode" in self._dataset: + return self._dataset.ParallelRTBeamDelimiterOpeningMode + return None + + @ParallelRTBeamDelimiterOpeningMode.setter + def ParallelRTBeamDelimiterOpeningMode(self, value: Optional[str]): + if value is None: + if "ParallelRTBeamDelimiterOpeningMode" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterOpeningMode + else: + self._dataset.ParallelRTBeamDelimiterOpeningMode = value + + @property + def ParallelRTBeamDelimiterLeafMountingSide(self) -> Optional[List[str]]: + if "ParallelRTBeamDelimiterLeafMountingSide" in self._dataset: + return self._dataset.ParallelRTBeamDelimiterLeafMountingSide + return None + + @ParallelRTBeamDelimiterLeafMountingSide.setter + def ParallelRTBeamDelimiterLeafMountingSide(self, value: Optional[List[str]]): + if value is None: + if "ParallelRTBeamDelimiterLeafMountingSide" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterLeafMountingSide + else: + self._dataset.ParallelRTBeamDelimiterLeafMountingSide = value diff --git a/tdwii_plus_examples/domain_model/parameters_specification_sequence_item.py b/tdwii_plus_examples/domain_model/parameters_specification_sequence_item.py new file mode 100644 index 0000000..7a33620 --- /dev/null +++ b/tdwii_plus_examples/domain_model/parameters_specification_sequence_item.py @@ -0,0 +1,296 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .constraint_value_sequence_item import ConstraintValueSequenceItem +from .recommended_default_value_sequence_item import RecommendedDefaultValueSequenceItem + + +class ParametersSpecificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConstraintValueSequence: List[ConstraintValueSequenceItem] = [] + self._RecommendedDefaultValueSequence: List[RecommendedDefaultValueSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def SelectorAttribute(self) -> Optional[int]: + if "SelectorAttribute" in self._dataset: + return self._dataset.SelectorAttribute + return None + + @SelectorAttribute.setter + def SelectorAttribute(self, value: Optional[int]): + if value is None: + if "SelectorAttribute" in self._dataset: + del self._dataset.SelectorAttribute + else: + self._dataset.SelectorAttribute = value + + @property + def SelectorValueNumber(self) -> Optional[int]: + if "SelectorValueNumber" in self._dataset: + return self._dataset.SelectorValueNumber + return None + + @SelectorValueNumber.setter + def SelectorValueNumber(self, value: Optional[int]): + if value is None: + if "SelectorValueNumber" in self._dataset: + del self._dataset.SelectorValueNumber + else: + self._dataset.SelectorValueNumber = value + + @property + def SelectorAttributeVR(self) -> Optional[str]: + if "SelectorAttributeVR" in self._dataset: + return self._dataset.SelectorAttributeVR + return None + + @SelectorAttributeVR.setter + def SelectorAttributeVR(self, value: Optional[str]): + if value is None: + if "SelectorAttributeVR" in self._dataset: + del self._dataset.SelectorAttributeVR + else: + self._dataset.SelectorAttributeVR = value + + @property + def SelectorSequencePointer(self) -> Optional[List[int]]: + if "SelectorSequencePointer" in self._dataset: + return self._dataset.SelectorSequencePointer + return None + + @SelectorSequencePointer.setter + def SelectorSequencePointer(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointer" in self._dataset: + del self._dataset.SelectorSequencePointer + else: + self._dataset.SelectorSequencePointer = value + + @property + def SelectorSequencePointerPrivateCreator(self) -> Optional[List[str]]: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + return self._dataset.SelectorSequencePointerPrivateCreator + return None + + @SelectorSequencePointerPrivateCreator.setter + def SelectorSequencePointerPrivateCreator(self, value: Optional[List[str]]): + if value is None: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + del self._dataset.SelectorSequencePointerPrivateCreator + else: + self._dataset.SelectorSequencePointerPrivateCreator = value + + @property + def SelectorAttributePrivateCreator(self) -> Optional[str]: + if "SelectorAttributePrivateCreator" in self._dataset: + return self._dataset.SelectorAttributePrivateCreator + return None + + @SelectorAttributePrivateCreator.setter + def SelectorAttributePrivateCreator(self, value: Optional[str]): + if value is None: + if "SelectorAttributePrivateCreator" in self._dataset: + del self._dataset.SelectorAttributePrivateCreator + else: + self._dataset.SelectorAttributePrivateCreator = value + + @property + def SelectorSequencePointerItems(self) -> Optional[List[int]]: + if "SelectorSequencePointerItems" in self._dataset: + return self._dataset.SelectorSequencePointerItems + return None + + @SelectorSequencePointerItems.setter + def SelectorSequencePointerItems(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointerItems" in self._dataset: + del self._dataset.SelectorSequencePointerItems + else: + self._dataset.SelectorSequencePointerItems = value + + @property + def SelectorAttributeName(self) -> Optional[str]: + if "SelectorAttributeName" in self._dataset: + return self._dataset.SelectorAttributeName + return None + + @SelectorAttributeName.setter + def SelectorAttributeName(self, value: Optional[str]): + if value is None: + if "SelectorAttributeName" in self._dataset: + del self._dataset.SelectorAttributeName + else: + self._dataset.SelectorAttributeName = value + + @property + def SelectorAttributeKeyword(self) -> Optional[str]: + if "SelectorAttributeKeyword" in self._dataset: + return self._dataset.SelectorAttributeKeyword + return None + + @SelectorAttributeKeyword.setter + def SelectorAttributeKeyword(self, value: Optional[str]): + if value is None: + if "SelectorAttributeKeyword" in self._dataset: + del self._dataset.SelectorAttributeKeyword + else: + self._dataset.SelectorAttributeKeyword = value + + @property + def ConstraintType(self) -> Optional[str]: + if "ConstraintType" in self._dataset: + return self._dataset.ConstraintType + return None + + @ConstraintType.setter + def ConstraintType(self, value: Optional[str]): + if value is None: + if "ConstraintType" in self._dataset: + del self._dataset.ConstraintType + else: + self._dataset.ConstraintType = value + + @property + def SpecificationSelectionGuidance(self) -> Optional[str]: + if "SpecificationSelectionGuidance" in self._dataset: + return self._dataset.SpecificationSelectionGuidance + return None + + @SpecificationSelectionGuidance.setter + def SpecificationSelectionGuidance(self, value: Optional[str]): + if value is None: + if "SpecificationSelectionGuidance" in self._dataset: + del self._dataset.SpecificationSelectionGuidance + else: + self._dataset.SpecificationSelectionGuidance = value + + @property + def ConstraintValueSequence(self) -> Optional[List[ConstraintValueSequenceItem]]: + if "ConstraintValueSequence" in self._dataset: + if len(self._ConstraintValueSequence) == len(self._dataset.ConstraintValueSequence): + return self._ConstraintValueSequence + else: + return [ConstraintValueSequenceItem(x) for x in self._dataset.ConstraintValueSequence] + return None + + @ConstraintValueSequence.setter + def ConstraintValueSequence(self, value: Optional[List[ConstraintValueSequenceItem]]): + if value is None: + self._ConstraintValueSequence = [] + if "ConstraintValueSequence" in self._dataset: + del self._dataset.ConstraintValueSequence + elif not isinstance(value, list) or not all(isinstance(item, ConstraintValueSequenceItem) for item in value): + raise ValueError("ConstraintValueSequence must be a list of ConstraintValueSequenceItem objects") + else: + self._ConstraintValueSequence = value + if "ConstraintValueSequence" not in self._dataset: + self._dataset.ConstraintValueSequence = pydicom.Sequence() + self._dataset.ConstraintValueSequence.clear() + self._dataset.ConstraintValueSequence.extend([item.to_dataset() for item in value]) + + def add_ConstraintValue(self, item: ConstraintValueSequenceItem): + if not isinstance(item, ConstraintValueSequenceItem): + raise ValueError("Item must be an instance of ConstraintValueSequenceItem") + self._ConstraintValueSequence.append(item) + if "ConstraintValueSequence" not in self._dataset: + self._dataset.ConstraintValueSequence = pydicom.Sequence() + self._dataset.ConstraintValueSequence.append(item.to_dataset()) + + @property + def RecommendedDefaultValueSequence(self) -> Optional[List[RecommendedDefaultValueSequenceItem]]: + if "RecommendedDefaultValueSequence" in self._dataset: + if len(self._RecommendedDefaultValueSequence) == len(self._dataset.RecommendedDefaultValueSequence): + return self._RecommendedDefaultValueSequence + else: + return [RecommendedDefaultValueSequenceItem(x) for x in self._dataset.RecommendedDefaultValueSequence] + return None + + @RecommendedDefaultValueSequence.setter + def RecommendedDefaultValueSequence(self, value: Optional[List[RecommendedDefaultValueSequenceItem]]): + if value is None: + self._RecommendedDefaultValueSequence = [] + if "RecommendedDefaultValueSequence" in self._dataset: + del self._dataset.RecommendedDefaultValueSequence + elif not isinstance(value, list) or not all(isinstance(item, RecommendedDefaultValueSequenceItem) for item in value): + raise ValueError("RecommendedDefaultValueSequence must be a list of RecommendedDefaultValueSequenceItem objects") + else: + self._RecommendedDefaultValueSequence = value + if "RecommendedDefaultValueSequence" not in self._dataset: + self._dataset.RecommendedDefaultValueSequence = pydicom.Sequence() + self._dataset.RecommendedDefaultValueSequence.clear() + self._dataset.RecommendedDefaultValueSequence.extend([item.to_dataset() for item in value]) + + def add_RecommendedDefaultValue(self, item: RecommendedDefaultValueSequenceItem): + if not isinstance(item, RecommendedDefaultValueSequenceItem): + raise ValueError("Item must be an instance of RecommendedDefaultValueSequenceItem") + self._RecommendedDefaultValueSequence.append(item) + if "RecommendedDefaultValueSequence" not in self._dataset: + self._dataset.RecommendedDefaultValueSequence = pydicom.Sequence() + self._dataset.RecommendedDefaultValueSequence.append(item.to_dataset()) + + @property + def ConstraintViolationSignificance(self) -> Optional[str]: + if "ConstraintViolationSignificance" in self._dataset: + return self._dataset.ConstraintViolationSignificance + return None + + @ConstraintViolationSignificance.setter + def ConstraintViolationSignificance(self, value: Optional[str]): + if value is None: + if "ConstraintViolationSignificance" in self._dataset: + del self._dataset.ConstraintViolationSignificance + else: + self._dataset.ConstraintViolationSignificance = value + + @property + def ConstraintViolationCondition(self) -> Optional[str]: + if "ConstraintViolationCondition" in self._dataset: + return self._dataset.ConstraintViolationCondition + return None + + @ConstraintViolationCondition.setter + def ConstraintViolationCondition(self, value: Optional[str]): + if value is None: + if "ConstraintViolationCondition" in self._dataset: + del self._dataset.ConstraintViolationCondition + else: + self._dataset.ConstraintViolationCondition = value diff --git a/tdwii_plus_examples/domain_model/parametric_map.py b/tdwii_plus_examples/domain_model/parametric_map.py new file mode 100644 index 0000000..bdcb8dc --- /dev/null +++ b/tdwii_plus_examples/domain_model/parametric_map.py @@ -0,0 +1,7000 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .total_pixel_matrix_origin_sequence_item import TotalPixelMatrixOriginSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class ParametricMap: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TotalPixelMatrixOriginSequence: List[TotalPixelMatrixOriginSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def BulkMotionCompensationTechnique(self) -> Optional[str]: + if "BulkMotionCompensationTechnique" in self._dataset: + return self._dataset.BulkMotionCompensationTechnique + return None + + @BulkMotionCompensationTechnique.setter + def BulkMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "BulkMotionCompensationTechnique" in self._dataset: + del self._dataset.BulkMotionCompensationTechnique + else: + self._dataset.BulkMotionCompensationTechnique = value + + @property + def BulkMotionSignalSource(self) -> Optional[str]: + if "BulkMotionSignalSource" in self._dataset: + return self._dataset.BulkMotionSignalSource + return None + + @BulkMotionSignalSource.setter + def BulkMotionSignalSource(self, value: Optional[str]): + if value is None: + if "BulkMotionSignalSource" in self._dataset: + del self._dataset.BulkMotionSignalSource + else: + self._dataset.BulkMotionSignalSource = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def TotalPixelMatrixColumns(self) -> Optional[int]: + if "TotalPixelMatrixColumns" in self._dataset: + return self._dataset.TotalPixelMatrixColumns + return None + + @TotalPixelMatrixColumns.setter + def TotalPixelMatrixColumns(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixColumns" in self._dataset: + del self._dataset.TotalPixelMatrixColumns + else: + self._dataset.TotalPixelMatrixColumns = value + + @property + def TotalPixelMatrixRows(self) -> Optional[int]: + if "TotalPixelMatrixRows" in self._dataset: + return self._dataset.TotalPixelMatrixRows + return None + + @TotalPixelMatrixRows.setter + def TotalPixelMatrixRows(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixRows" in self._dataset: + del self._dataset.TotalPixelMatrixRows + else: + self._dataset.TotalPixelMatrixRows = value + + @property + def TotalPixelMatrixOriginSequence(self) -> Optional[List[TotalPixelMatrixOriginSequenceItem]]: + if "TotalPixelMatrixOriginSequence" in self._dataset: + if len(self._TotalPixelMatrixOriginSequence) == len(self._dataset.TotalPixelMatrixOriginSequence): + return self._TotalPixelMatrixOriginSequence + else: + return [TotalPixelMatrixOriginSequenceItem(x) for x in self._dataset.TotalPixelMatrixOriginSequence] + return None + + @TotalPixelMatrixOriginSequence.setter + def TotalPixelMatrixOriginSequence(self, value: Optional[List[TotalPixelMatrixOriginSequenceItem]]): + if value is None: + self._TotalPixelMatrixOriginSequence = [] + if "TotalPixelMatrixOriginSequence" in self._dataset: + del self._dataset.TotalPixelMatrixOriginSequence + elif not isinstance(value, list) or not all(isinstance(item, TotalPixelMatrixOriginSequenceItem) for item in value): + raise ValueError("TotalPixelMatrixOriginSequence must be a list of TotalPixelMatrixOriginSequenceItem objects") + else: + self._TotalPixelMatrixOriginSequence = value + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.clear() + self._dataset.TotalPixelMatrixOriginSequence.extend([item.to_dataset() for item in value]) + + def add_TotalPixelMatrixOrigin(self, item: TotalPixelMatrixOriginSequenceItem): + if not isinstance(item, TotalPixelMatrixOriginSequenceItem): + raise ValueError("Item must be an instance of TotalPixelMatrixOriginSequenceItem") + self._TotalPixelMatrixOriginSequence.append(item) + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.append(item.to_dataset()) + + @property + def ImageOrientationSlide(self) -> Optional[List[Decimal]]: + if "ImageOrientationSlide" in self._dataset: + return self._dataset.ImageOrientationSlide + return None + + @ImageOrientationSlide.setter + def ImageOrientationSlide(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationSlide" in self._dataset: + del self._dataset.ImageOrientationSlide + else: + self._dataset.ImageOrientationSlide = value + + @property + def TotalPixelMatrixFocalPlanes(self) -> Optional[int]: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + return self._dataset.TotalPixelMatrixFocalPlanes + return None + + @TotalPixelMatrixFocalPlanes.setter + def TotalPixelMatrixFocalPlanes(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + del self._dataset.TotalPixelMatrixFocalPlanes + else: + self._dataset.TotalPixelMatrixFocalPlanes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def PyramidUID(self) -> Optional[str]: + if "PyramidUID" in self._dataset: + return self._dataset.PyramidUID + return None + + @PyramidUID.setter + def PyramidUID(self, value: Optional[str]): + if value is None: + if "PyramidUID" in self._dataset: + del self._dataset.PyramidUID + else: + self._dataset.PyramidUID = value + + @property + def PyramidDescription(self) -> Optional[str]: + if "PyramidDescription" in self._dataset: + return self._dataset.PyramidDescription + return None + + @PyramidDescription.setter + def PyramidDescription(self, value: Optional[str]): + if value is None: + if "PyramidDescription" in self._dataset: + del self._dataset.PyramidDescription + else: + self._dataset.PyramidDescription = value + + @property + def PyramidLabel(self) -> Optional[str]: + if "PyramidLabel" in self._dataset: + return self._dataset.PyramidLabel + return None + + @PyramidLabel.setter + def PyramidLabel(self, value: Optional[str]): + if value is None: + if "PyramidLabel" in self._dataset: + del self._dataset.PyramidLabel + else: + self._dataset.PyramidLabel = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def FloatPixelPaddingValue(self) -> Optional[float]: + if "FloatPixelPaddingValue" in self._dataset: + return self._dataset.FloatPixelPaddingValue + return None + + @FloatPixelPaddingValue.setter + def FloatPixelPaddingValue(self, value: Optional[float]): + if value is None: + if "FloatPixelPaddingValue" in self._dataset: + del self._dataset.FloatPixelPaddingValue + else: + self._dataset.FloatPixelPaddingValue = value + + @property + def FloatPixelPaddingRangeLimit(self) -> Optional[float]: + if "FloatPixelPaddingRangeLimit" in self._dataset: + return self._dataset.FloatPixelPaddingRangeLimit + return None + + @FloatPixelPaddingRangeLimit.setter + def FloatPixelPaddingRangeLimit(self, value: Optional[float]): + if value is None: + if "FloatPixelPaddingRangeLimit" in self._dataset: + del self._dataset.FloatPixelPaddingRangeLimit + else: + self._dataset.FloatPixelPaddingRangeLimit = value + + @property + def FloatPixelData(self) -> Optional[bytes]: + if "FloatPixelData" in self._dataset: + return self._dataset.FloatPixelData + return None + + @FloatPixelData.setter + def FloatPixelData(self, value: Optional[bytes]): + if value is None: + if "FloatPixelData" in self._dataset: + del self._dataset.FloatPixelData + else: + self._dataset.FloatPixelData = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def DoubleFloatPixelPaddingValue(self) -> Optional[float]: + if "DoubleFloatPixelPaddingValue" in self._dataset: + return self._dataset.DoubleFloatPixelPaddingValue + return None + + @DoubleFloatPixelPaddingValue.setter + def DoubleFloatPixelPaddingValue(self, value: Optional[float]): + if value is None: + if "DoubleFloatPixelPaddingValue" in self._dataset: + del self._dataset.DoubleFloatPixelPaddingValue + else: + self._dataset.DoubleFloatPixelPaddingValue = value + + @property + def DoubleFloatPixelPaddingRangeLimit(self) -> Optional[float]: + if "DoubleFloatPixelPaddingRangeLimit" in self._dataset: + return self._dataset.DoubleFloatPixelPaddingRangeLimit + return None + + @DoubleFloatPixelPaddingRangeLimit.setter + def DoubleFloatPixelPaddingRangeLimit(self, value: Optional[float]): + if value is None: + if "DoubleFloatPixelPaddingRangeLimit" in self._dataset: + del self._dataset.DoubleFloatPixelPaddingRangeLimit + else: + self._dataset.DoubleFloatPixelPaddingRangeLimit = value + + @property + def DoubleFloatPixelData(self) -> Optional[bytes]: + if "DoubleFloatPixelData" in self._dataset: + return self._dataset.DoubleFloatPixelData + return None + + @DoubleFloatPixelData.setter + def DoubleFloatPixelData(self, value: Optional[bytes]): + if value is None: + if "DoubleFloatPixelData" in self._dataset: + del self._dataset.DoubleFloatPixelData + else: + self._dataset.DoubleFloatPixelData = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/parametric_map_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/parametric_map_frame_type_sequence_item.py new file mode 100644 index 0000000..89672b5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/parametric_map_frame_type_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ParametricMapFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value diff --git a/tdwii_plus_examples/domain_model/participant_sequence_item.py b/tdwii_plus_examples/domain_model/participant_sequence_item.py new file mode 100644 index 0000000..20c3afd --- /dev/null +++ b/tdwii_plus_examples/domain_model/participant_sequence_item.py @@ -0,0 +1,357 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ParticipantSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ParticipationType(self) -> Optional[str]: + if "ParticipationType" in self._dataset: + return self._dataset.ParticipationType + return None + + @ParticipationType.setter + def ParticipationType(self, value: Optional[str]): + if value is None: + if "ParticipationType" in self._dataset: + del self._dataset.ParticipationType + else: + self._dataset.ParticipationType = value + + @property + def ParticipationDateTime(self) -> Optional[str]: + if "ParticipationDateTime" in self._dataset: + return self._dataset.ParticipationDateTime + return None + + @ParticipationDateTime.setter + def ParticipationDateTime(self, value: Optional[str]): + if value is None: + if "ParticipationDateTime" in self._dataset: + del self._dataset.ParticipationDateTime + else: + self._dataset.ParticipationDateTime = value + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_location_coordinates_sequence_item.py b/tdwii_plus_examples/domain_model/patient_location_coordinates_sequence_item.py new file mode 100644 index 0000000..1c34a49 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_location_coordinates_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PatientLocationCoordinatesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientLocationCoordinatesCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ThreeDPointCoordinates(self) -> Optional[List[float]]: + if "ThreeDPointCoordinates" in self._dataset: + return self._dataset.ThreeDPointCoordinates + return None + + @ThreeDPointCoordinates.setter + def ThreeDPointCoordinates(self, value: Optional[List[float]]): + if value is None: + if "ThreeDPointCoordinates" in self._dataset: + del self._dataset.ThreeDPointCoordinates + else: + self._dataset.ThreeDPointCoordinates = value + + @property + def PatientLocationCoordinatesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientLocationCoordinatesCodeSequence" in self._dataset: + if len(self._PatientLocationCoordinatesCodeSequence) == len(self._dataset.PatientLocationCoordinatesCodeSequence): + return self._PatientLocationCoordinatesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientLocationCoordinatesCodeSequence] + return None + + @PatientLocationCoordinatesCodeSequence.setter + def PatientLocationCoordinatesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientLocationCoordinatesCodeSequence = [] + if "PatientLocationCoordinatesCodeSequence" in self._dataset: + del self._dataset.PatientLocationCoordinatesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientLocationCoordinatesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientLocationCoordinatesCodeSequence = value + if "PatientLocationCoordinatesCodeSequence" not in self._dataset: + self._dataset.PatientLocationCoordinatesCodeSequence = pydicom.Sequence() + self._dataset.PatientLocationCoordinatesCodeSequence.clear() + self._dataset.PatientLocationCoordinatesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientLocationCoordinatesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientLocationCoordinatesCodeSequence.append(item) + if "PatientLocationCoordinatesCodeSequence" not in self._dataset: + self._dataset.PatientLocationCoordinatesCodeSequence = pydicom.Sequence() + self._dataset.PatientLocationCoordinatesCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_orientation_in_frame_sequence_item.py b/tdwii_plus_examples/domain_model/patient_orientation_in_frame_sequence_item.py new file mode 100644 index 0000000..3a7783f --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_orientation_in_frame_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PatientOrientationInFrameSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value diff --git a/tdwii_plus_examples/domain_model/patient_physiological_state_sequence_item.py b/tdwii_plus_examples/domain_model/patient_physiological_state_sequence_item.py new file mode 100644 index 0000000..ef4de2f --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_physiological_state_sequence_item.py @@ -0,0 +1,46 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PatientPhysiologicalStateSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientPhysiologicalStateCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientPhysiologicalStateCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientPhysiologicalStateCodeSequence" in self._dataset: + if len(self._PatientPhysiologicalStateCodeSequence) == len(self._dataset.PatientPhysiologicalStateCodeSequence): + return self._PatientPhysiologicalStateCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientPhysiologicalStateCodeSequence] + return None + + @PatientPhysiologicalStateCodeSequence.setter + def PatientPhysiologicalStateCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientPhysiologicalStateCodeSequence = [] + if "PatientPhysiologicalStateCodeSequence" in self._dataset: + del self._dataset.PatientPhysiologicalStateCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientPhysiologicalStateCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientPhysiologicalStateCodeSequence = value + if "PatientPhysiologicalStateCodeSequence" not in self._dataset: + self._dataset.PatientPhysiologicalStateCodeSequence = pydicom.Sequence() + self._dataset.PatientPhysiologicalStateCodeSequence.clear() + self._dataset.PatientPhysiologicalStateCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientPhysiologicalStateCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientPhysiologicalStateCodeSequence.append(item) + if "PatientPhysiologicalStateCodeSequence" not in self._dataset: + self._dataset.PatientPhysiologicalStateCodeSequence = pydicom.Sequence() + self._dataset.PatientPhysiologicalStateCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_positioning_instruction_sequence_item.py b/tdwii_plus_examples/domain_model/patient_positioning_instruction_sequence_item.py new file mode 100644 index 0000000..cdcf534 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_positioning_instruction_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PatientPositioningInstructionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstructionIndex(self) -> Optional[int]: + if "InstructionIndex" in self._dataset: + return self._dataset.InstructionIndex + return None + + @InstructionIndex.setter + def InstructionIndex(self, value: Optional[int]): + if value is None: + if "InstructionIndex" in self._dataset: + del self._dataset.InstructionIndex + else: + self._dataset.InstructionIndex = value + + @property + def InstructionText(self) -> Optional[str]: + if "InstructionText" in self._dataset: + return self._dataset.InstructionText + return None + + @InstructionText.setter + def InstructionText(self, value: Optional[str]): + if value is None: + if "InstructionText" in self._dataset: + del self._dataset.InstructionText + else: + self._dataset.InstructionText = value + + @property + def InstructionDescription(self) -> Optional[str]: + if "InstructionDescription" in self._dataset: + return self._dataset.InstructionDescription + return None + + @InstructionDescription.setter + def InstructionDescription(self, value: Optional[str]): + if value is None: + if "InstructionDescription" in self._dataset: + del self._dataset.InstructionDescription + else: + self._dataset.InstructionDescription = value + + @property + def InstructionPerformedFlag(self) -> Optional[str]: + if "InstructionPerformedFlag" in self._dataset: + return self._dataset.InstructionPerformedFlag + return None + + @InstructionPerformedFlag.setter + def InstructionPerformedFlag(self, value: Optional[str]): + if value is None: + if "InstructionPerformedFlag" in self._dataset: + del self._dataset.InstructionPerformedFlag + else: + self._dataset.InstructionPerformedFlag = value + + @property + def InstructionPerformedDateTime(self) -> Optional[str]: + if "InstructionPerformedDateTime" in self._dataset: + return self._dataset.InstructionPerformedDateTime + return None + + @InstructionPerformedDateTime.setter + def InstructionPerformedDateTime(self, value: Optional[str]): + if value is None: + if "InstructionPerformedDateTime" in self._dataset: + del self._dataset.InstructionPerformedDateTime + else: + self._dataset.InstructionPerformedDateTime = value diff --git a/tdwii_plus_examples/domain_model/patient_radiation_dose_sr.py b/tdwii_plus_examples/domain_model/patient_radiation_dose_sr.py new file mode 100644 index 0000000..3becb95 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_radiation_dose_sr.py @@ -0,0 +1,4673 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class PatientRadiationDoseSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/patient_setup_sequence_item.py b/tdwii_plus_examples/domain_model/patient_setup_sequence_item.py new file mode 100644 index 0000000..c245259 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_setup_sequence_item.py @@ -0,0 +1,309 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .fixation_device_sequence_item import FixationDeviceSequenceItem +from .motion_synchronization_sequence_item import MotionSynchronizationSequenceItem +from .referenced_setup_image_sequence_item import ReferencedSetupImageSequenceItem +from .setup_device_sequence_item import SetupDeviceSequenceItem +from .shielding_device_sequence_item import ShieldingDeviceSequenceItem + + +class PatientSetupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._FixationDeviceSequence: List[FixationDeviceSequenceItem] = [] + self._ShieldingDeviceSequence: List[ShieldingDeviceSequenceItem] = [] + self._SetupDeviceSequence: List[SetupDeviceSequenceItem] = [] + self._ReferencedSetupImageSequence: List[ReferencedSetupImageSequenceItem] = [] + self._MotionSynchronizationSequence: List[MotionSynchronizationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def PatientSetupNumber(self) -> Optional[int]: + if "PatientSetupNumber" in self._dataset: + return self._dataset.PatientSetupNumber + return None + + @PatientSetupNumber.setter + def PatientSetupNumber(self, value: Optional[int]): + if value is None: + if "PatientSetupNumber" in self._dataset: + del self._dataset.PatientSetupNumber + else: + self._dataset.PatientSetupNumber = value + + @property + def PatientSetupLabel(self) -> Optional[str]: + if "PatientSetupLabel" in self._dataset: + return self._dataset.PatientSetupLabel + return None + + @PatientSetupLabel.setter + def PatientSetupLabel(self, value: Optional[str]): + if value is None: + if "PatientSetupLabel" in self._dataset: + del self._dataset.PatientSetupLabel + else: + self._dataset.PatientSetupLabel = value + + @property + def PatientAdditionalPosition(self) -> Optional[str]: + if "PatientAdditionalPosition" in self._dataset: + return self._dataset.PatientAdditionalPosition + return None + + @PatientAdditionalPosition.setter + def PatientAdditionalPosition(self, value: Optional[str]): + if value is None: + if "PatientAdditionalPosition" in self._dataset: + del self._dataset.PatientAdditionalPosition + else: + self._dataset.PatientAdditionalPosition = value + + @property + def FixationDeviceSequence(self) -> Optional[List[FixationDeviceSequenceItem]]: + if "FixationDeviceSequence" in self._dataset: + if len(self._FixationDeviceSequence) == len(self._dataset.FixationDeviceSequence): + return self._FixationDeviceSequence + else: + return [FixationDeviceSequenceItem(x) for x in self._dataset.FixationDeviceSequence] + return None + + @FixationDeviceSequence.setter + def FixationDeviceSequence(self, value: Optional[List[FixationDeviceSequenceItem]]): + if value is None: + self._FixationDeviceSequence = [] + if "FixationDeviceSequence" in self._dataset: + del self._dataset.FixationDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, FixationDeviceSequenceItem) for item in value): + raise ValueError("FixationDeviceSequence must be a list of FixationDeviceSequenceItem objects") + else: + self._FixationDeviceSequence = value + if "FixationDeviceSequence" not in self._dataset: + self._dataset.FixationDeviceSequence = pydicom.Sequence() + self._dataset.FixationDeviceSequence.clear() + self._dataset.FixationDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_FixationDevice(self, item: FixationDeviceSequenceItem): + if not isinstance(item, FixationDeviceSequenceItem): + raise ValueError("Item must be an instance of FixationDeviceSequenceItem") + self._FixationDeviceSequence.append(item) + if "FixationDeviceSequence" not in self._dataset: + self._dataset.FixationDeviceSequence = pydicom.Sequence() + self._dataset.FixationDeviceSequence.append(item.to_dataset()) + + @property + def ShieldingDeviceSequence(self) -> Optional[List[ShieldingDeviceSequenceItem]]: + if "ShieldingDeviceSequence" in self._dataset: + if len(self._ShieldingDeviceSequence) == len(self._dataset.ShieldingDeviceSequence): + return self._ShieldingDeviceSequence + else: + return [ShieldingDeviceSequenceItem(x) for x in self._dataset.ShieldingDeviceSequence] + return None + + @ShieldingDeviceSequence.setter + def ShieldingDeviceSequence(self, value: Optional[List[ShieldingDeviceSequenceItem]]): + if value is None: + self._ShieldingDeviceSequence = [] + if "ShieldingDeviceSequence" in self._dataset: + del self._dataset.ShieldingDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, ShieldingDeviceSequenceItem) for item in value): + raise ValueError("ShieldingDeviceSequence must be a list of ShieldingDeviceSequenceItem objects") + else: + self._ShieldingDeviceSequence = value + if "ShieldingDeviceSequence" not in self._dataset: + self._dataset.ShieldingDeviceSequence = pydicom.Sequence() + self._dataset.ShieldingDeviceSequence.clear() + self._dataset.ShieldingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_ShieldingDevice(self, item: ShieldingDeviceSequenceItem): + if not isinstance(item, ShieldingDeviceSequenceItem): + raise ValueError("Item must be an instance of ShieldingDeviceSequenceItem") + self._ShieldingDeviceSequence.append(item) + if "ShieldingDeviceSequence" not in self._dataset: + self._dataset.ShieldingDeviceSequence = pydicom.Sequence() + self._dataset.ShieldingDeviceSequence.append(item.to_dataset()) + + @property + def SetupTechnique(self) -> Optional[str]: + if "SetupTechnique" in self._dataset: + return self._dataset.SetupTechnique + return None + + @SetupTechnique.setter + def SetupTechnique(self, value: Optional[str]): + if value is None: + if "SetupTechnique" in self._dataset: + del self._dataset.SetupTechnique + else: + self._dataset.SetupTechnique = value + + @property + def SetupTechniqueDescription(self) -> Optional[str]: + if "SetupTechniqueDescription" in self._dataset: + return self._dataset.SetupTechniqueDescription + return None + + @SetupTechniqueDescription.setter + def SetupTechniqueDescription(self, value: Optional[str]): + if value is None: + if "SetupTechniqueDescription" in self._dataset: + del self._dataset.SetupTechniqueDescription + else: + self._dataset.SetupTechniqueDescription = value + + @property + def SetupDeviceSequence(self) -> Optional[List[SetupDeviceSequenceItem]]: + if "SetupDeviceSequence" in self._dataset: + if len(self._SetupDeviceSequence) == len(self._dataset.SetupDeviceSequence): + return self._SetupDeviceSequence + else: + return [SetupDeviceSequenceItem(x) for x in self._dataset.SetupDeviceSequence] + return None + + @SetupDeviceSequence.setter + def SetupDeviceSequence(self, value: Optional[List[SetupDeviceSequenceItem]]): + if value is None: + self._SetupDeviceSequence = [] + if "SetupDeviceSequence" in self._dataset: + del self._dataset.SetupDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, SetupDeviceSequenceItem) for item in value): + raise ValueError("SetupDeviceSequence must be a list of SetupDeviceSequenceItem objects") + else: + self._SetupDeviceSequence = value + if "SetupDeviceSequence" not in self._dataset: + self._dataset.SetupDeviceSequence = pydicom.Sequence() + self._dataset.SetupDeviceSequence.clear() + self._dataset.SetupDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_SetupDevice(self, item: SetupDeviceSequenceItem): + if not isinstance(item, SetupDeviceSequenceItem): + raise ValueError("Item must be an instance of SetupDeviceSequenceItem") + self._SetupDeviceSequence.append(item) + if "SetupDeviceSequence" not in self._dataset: + self._dataset.SetupDeviceSequence = pydicom.Sequence() + self._dataset.SetupDeviceSequence.append(item.to_dataset()) + + @property + def TableTopVerticalSetupDisplacement(self) -> Optional[Decimal]: + if "TableTopVerticalSetupDisplacement" in self._dataset: + return self._dataset.TableTopVerticalSetupDisplacement + return None + + @TableTopVerticalSetupDisplacement.setter + def TableTopVerticalSetupDisplacement(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalSetupDisplacement" in self._dataset: + del self._dataset.TableTopVerticalSetupDisplacement + else: + self._dataset.TableTopVerticalSetupDisplacement = value + + @property + def TableTopLongitudinalSetupDisplacement(self) -> Optional[Decimal]: + if "TableTopLongitudinalSetupDisplacement" in self._dataset: + return self._dataset.TableTopLongitudinalSetupDisplacement + return None + + @TableTopLongitudinalSetupDisplacement.setter + def TableTopLongitudinalSetupDisplacement(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalSetupDisplacement" in self._dataset: + del self._dataset.TableTopLongitudinalSetupDisplacement + else: + self._dataset.TableTopLongitudinalSetupDisplacement = value + + @property + def TableTopLateralSetupDisplacement(self) -> Optional[Decimal]: + if "TableTopLateralSetupDisplacement" in self._dataset: + return self._dataset.TableTopLateralSetupDisplacement + return None + + @TableTopLateralSetupDisplacement.setter + def TableTopLateralSetupDisplacement(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralSetupDisplacement" in self._dataset: + del self._dataset.TableTopLateralSetupDisplacement + else: + self._dataset.TableTopLateralSetupDisplacement = value + + @property + def ReferencedSetupImageSequence(self) -> Optional[List[ReferencedSetupImageSequenceItem]]: + if "ReferencedSetupImageSequence" in self._dataset: + if len(self._ReferencedSetupImageSequence) == len(self._dataset.ReferencedSetupImageSequence): + return self._ReferencedSetupImageSequence + else: + return [ReferencedSetupImageSequenceItem(x) for x in self._dataset.ReferencedSetupImageSequence] + return None + + @ReferencedSetupImageSequence.setter + def ReferencedSetupImageSequence(self, value: Optional[List[ReferencedSetupImageSequenceItem]]): + if value is None: + self._ReferencedSetupImageSequence = [] + if "ReferencedSetupImageSequence" in self._dataset: + del self._dataset.ReferencedSetupImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSetupImageSequenceItem) for item in value): + raise ValueError("ReferencedSetupImageSequence must be a list of ReferencedSetupImageSequenceItem objects") + else: + self._ReferencedSetupImageSequence = value + if "ReferencedSetupImageSequence" not in self._dataset: + self._dataset.ReferencedSetupImageSequence = pydicom.Sequence() + self._dataset.ReferencedSetupImageSequence.clear() + self._dataset.ReferencedSetupImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSetupImage(self, item: ReferencedSetupImageSequenceItem): + if not isinstance(item, ReferencedSetupImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedSetupImageSequenceItem") + self._ReferencedSetupImageSequence.append(item) + if "ReferencedSetupImageSequence" not in self._dataset: + self._dataset.ReferencedSetupImageSequence = pydicom.Sequence() + self._dataset.ReferencedSetupImageSequence.append(item.to_dataset()) + + @property + def MotionSynchronizationSequence(self) -> Optional[List[MotionSynchronizationSequenceItem]]: + if "MotionSynchronizationSequence" in self._dataset: + if len(self._MotionSynchronizationSequence) == len(self._dataset.MotionSynchronizationSequence): + return self._MotionSynchronizationSequence + else: + return [MotionSynchronizationSequenceItem(x) for x in self._dataset.MotionSynchronizationSequence] + return None + + @MotionSynchronizationSequence.setter + def MotionSynchronizationSequence(self, value: Optional[List[MotionSynchronizationSequenceItem]]): + if value is None: + self._MotionSynchronizationSequence = [] + if "MotionSynchronizationSequence" in self._dataset: + del self._dataset.MotionSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, MotionSynchronizationSequenceItem) for item in value): + raise ValueError("MotionSynchronizationSequence must be a list of MotionSynchronizationSequenceItem objects") + else: + self._MotionSynchronizationSequence = value + if "MotionSynchronizationSequence" not in self._dataset: + self._dataset.MotionSynchronizationSequence = pydicom.Sequence() + self._dataset.MotionSynchronizationSequence.clear() + self._dataset.MotionSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_MotionSynchronization(self, item: MotionSynchronizationSequenceItem): + if not isinstance(item, MotionSynchronizationSequenceItem): + raise ValueError("Item must be an instance of MotionSynchronizationSequenceItem") + self._MotionSynchronizationSequence.append(item) + if "MotionSynchronizationSequence" not in self._dataset: + self._dataset.MotionSynchronizationSequence = pydicom.Sequence() + self._dataset.MotionSynchronizationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_support_devices_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_devices_sequence_item.py new file mode 100644 index 0000000..f017078 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_devices_sequence_item.py @@ -0,0 +1,310 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .conceptual_volume_sequence_item import ConceptualVolumeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class PatientSupportDevicesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._ConceptualVolumeSequence: List[ConceptualVolumeSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def ConceptualVolumeSequence(self) -> Optional[List[ConceptualVolumeSequenceItem]]: + if "ConceptualVolumeSequence" in self._dataset: + if len(self._ConceptualVolumeSequence) == len(self._dataset.ConceptualVolumeSequence): + return self._ConceptualVolumeSequence + else: + return [ConceptualVolumeSequenceItem(x) for x in self._dataset.ConceptualVolumeSequence] + return None + + @ConceptualVolumeSequence.setter + def ConceptualVolumeSequence(self, value: Optional[List[ConceptualVolumeSequenceItem]]): + if value is None: + self._ConceptualVolumeSequence = [] + if "ConceptualVolumeSequence" in self._dataset: + del self._dataset.ConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, ConceptualVolumeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeSequence must be a list of ConceptualVolumeSequenceItem objects") + else: + self._ConceptualVolumeSequence = value + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.clear() + self._dataset.ConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolume(self, item: ConceptualVolumeSequenceItem): + if not isinstance(item, ConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSequenceItem") + self._ConceptualVolumeSequence.append(item) + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.append(item.to_dataset()) + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/patient_support_displacement_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_displacement_sequence_item.py new file mode 100644 index 0000000..89d3898 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_displacement_sequence_item.py @@ -0,0 +1,76 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .patient_support_position_device_parameter_sequence_item import ( + PatientSupportPositionDeviceParameterSequenceItem, +) + + +class PatientSupportDisplacementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientSupportPositionDeviceParameterSequence: List[PatientSupportPositionDeviceParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientSupportPositionSpecificationMethod(self) -> Optional[str]: + if "PatientSupportPositionSpecificationMethod" in self._dataset: + return self._dataset.PatientSupportPositionSpecificationMethod + return None + + @PatientSupportPositionSpecificationMethod.setter + def PatientSupportPositionSpecificationMethod(self, value: Optional[str]): + if value is None: + if "PatientSupportPositionSpecificationMethod" in self._dataset: + del self._dataset.PatientSupportPositionSpecificationMethod + else: + self._dataset.PatientSupportPositionSpecificationMethod = value + + @property + def PatientSupportPositionDeviceParameterSequence( + self, + ) -> Optional[List[PatientSupportPositionDeviceParameterSequenceItem]]: + if "PatientSupportPositionDeviceParameterSequence" in self._dataset: + if len(self._PatientSupportPositionDeviceParameterSequence) == len( + self._dataset.PatientSupportPositionDeviceParameterSequence + ): + return self._PatientSupportPositionDeviceParameterSequence + else: + return [ + PatientSupportPositionDeviceParameterSequenceItem(x) + for x in self._dataset.PatientSupportPositionDeviceParameterSequence + ] + return None + + @PatientSupportPositionDeviceParameterSequence.setter + def PatientSupportPositionDeviceParameterSequence( + self, value: Optional[List[PatientSupportPositionDeviceParameterSequenceItem]] + ): + if value is None: + self._PatientSupportPositionDeviceParameterSequence = [] + if "PatientSupportPositionDeviceParameterSequence" in self._dataset: + del self._dataset.PatientSupportPositionDeviceParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientSupportPositionDeviceParameterSequenceItem) for item in value + ): + raise ValueError( + "PatientSupportPositionDeviceParameterSequence must be a list of" + " PatientSupportPositionDeviceParameterSequenceItem objects" + ) + else: + self._PatientSupportPositionDeviceParameterSequence = value + if "PatientSupportPositionDeviceParameterSequence" not in self._dataset: + self._dataset.PatientSupportPositionDeviceParameterSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionDeviceParameterSequence.clear() + self._dataset.PatientSupportPositionDeviceParameterSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPositionDeviceParameter(self, item: PatientSupportPositionDeviceParameterSequenceItem): + if not isinstance(item, PatientSupportPositionDeviceParameterSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionDeviceParameterSequenceItem") + self._PatientSupportPositionDeviceParameterSequence.append(item) + if "PatientSupportPositionDeviceParameterSequence" not in self._dataset: + self._dataset.PatientSupportPositionDeviceParameterSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionDeviceParameterSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_support_position_device_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_position_device_parameter_sequence_item.py new file mode 100644 index 0000000..fd05b71 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_position_device_parameter_sequence_item.py @@ -0,0 +1,85 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .patient_support_position_parameter_sequence_item import ( + PatientSupportPositionParameterSequenceItem, +) + + +class PatientSupportPositionDeviceParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientSupportPositionParameterSequence: List[PatientSupportPositionParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDeviceIndex(self) -> Optional[int]: + if "ReferencedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDeviceIndex + return None + + @ReferencedDeviceIndex.setter + def ReferencedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDeviceIndex + else: + self._dataset.ReferencedDeviceIndex = value + + @property + def PatientSupportPositionParameterSequence(self) -> Optional[List[PatientSupportPositionParameterSequenceItem]]: + if "PatientSupportPositionParameterSequence" in self._dataset: + if len(self._PatientSupportPositionParameterSequence) == len( + self._dataset.PatientSupportPositionParameterSequence + ): + return self._PatientSupportPositionParameterSequence + else: + return [ + PatientSupportPositionParameterSequenceItem(x) + for x in self._dataset.PatientSupportPositionParameterSequence + ] + return None + + @PatientSupportPositionParameterSequence.setter + def PatientSupportPositionParameterSequence(self, value: Optional[List[PatientSupportPositionParameterSequenceItem]]): + if value is None: + self._PatientSupportPositionParameterSequence = [] + if "PatientSupportPositionParameterSequence" in self._dataset: + del self._dataset.PatientSupportPositionParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientSupportPositionParameterSequenceItem) for item in value + ): + raise ValueError( + "PatientSupportPositionParameterSequence must be a list of PatientSupportPositionParameterSequenceItem objects" + ) + else: + self._PatientSupportPositionParameterSequence = value + if "PatientSupportPositionParameterSequence" not in self._dataset: + self._dataset.PatientSupportPositionParameterSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionParameterSequence.clear() + self._dataset.PatientSupportPositionParameterSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPositionParameter(self, item: PatientSupportPositionParameterSequenceItem): + if not isinstance(item, PatientSupportPositionParameterSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionParameterSequenceItem") + self._PatientSupportPositionParameterSequence.append(item) + if "PatientSupportPositionParameterSequence" not in self._dataset: + self._dataset.PatientSupportPositionParameterSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionParameterSequence.append(item.to_dataset()) + + @property + def DeviceOrderIndex(self) -> Optional[int]: + if "DeviceOrderIndex" in self._dataset: + return self._dataset.DeviceOrderIndex + return None + + @DeviceOrderIndex.setter + def DeviceOrderIndex(self, value: Optional[int]): + if value is None: + if "DeviceOrderIndex" in self._dataset: + del self._dataset.DeviceOrderIndex + else: + self._dataset.DeviceOrderIndex = value diff --git a/tdwii_plus_examples/domain_model/patient_support_position_device_tolerance_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_position_device_tolerance_sequence_item.py new file mode 100644 index 0000000..b17f5a6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_position_device_tolerance_sequence_item.py @@ -0,0 +1,85 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .patient_support_position_tolerance_sequence_item import ( + PatientSupportPositionToleranceSequenceItem, +) + + +class PatientSupportPositionDeviceToleranceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientSupportPositionToleranceSequence: List[PatientSupportPositionToleranceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDeviceIndex(self) -> Optional[int]: + if "ReferencedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDeviceIndex + return None + + @ReferencedDeviceIndex.setter + def ReferencedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDeviceIndex + else: + self._dataset.ReferencedDeviceIndex = value + + @property + def PatientSupportPositionToleranceSequence(self) -> Optional[List[PatientSupportPositionToleranceSequenceItem]]: + if "PatientSupportPositionToleranceSequence" in self._dataset: + if len(self._PatientSupportPositionToleranceSequence) == len( + self._dataset.PatientSupportPositionToleranceSequence + ): + return self._PatientSupportPositionToleranceSequence + else: + return [ + PatientSupportPositionToleranceSequenceItem(x) + for x in self._dataset.PatientSupportPositionToleranceSequence + ] + return None + + @PatientSupportPositionToleranceSequence.setter + def PatientSupportPositionToleranceSequence(self, value: Optional[List[PatientSupportPositionToleranceSequenceItem]]): + if value is None: + self._PatientSupportPositionToleranceSequence = [] + if "PatientSupportPositionToleranceSequence" in self._dataset: + del self._dataset.PatientSupportPositionToleranceSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientSupportPositionToleranceSequenceItem) for item in value + ): + raise ValueError( + "PatientSupportPositionToleranceSequence must be a list of PatientSupportPositionToleranceSequenceItem objects" + ) + else: + self._PatientSupportPositionToleranceSequence = value + if "PatientSupportPositionToleranceSequence" not in self._dataset: + self._dataset.PatientSupportPositionToleranceSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionToleranceSequence.clear() + self._dataset.PatientSupportPositionToleranceSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPositionTolerance(self, item: PatientSupportPositionToleranceSequenceItem): + if not isinstance(item, PatientSupportPositionToleranceSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionToleranceSequenceItem") + self._PatientSupportPositionToleranceSequence.append(item) + if "PatientSupportPositionToleranceSequence" not in self._dataset: + self._dataset.PatientSupportPositionToleranceSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionToleranceSequence.append(item.to_dataset()) + + @property + def DeviceOrderIndex(self) -> Optional[int]: + if "DeviceOrderIndex" in self._dataset: + return self._dataset.DeviceOrderIndex + return None + + @DeviceOrderIndex.setter + def DeviceOrderIndex(self, value: Optional[int]): + if value is None: + if "DeviceOrderIndex" in self._dataset: + del self._dataset.DeviceOrderIndex + else: + self._dataset.DeviceOrderIndex = value diff --git a/tdwii_plus_examples/domain_model/patient_support_position_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_position_parameter_sequence_item.py new file mode 100644 index 0000000..804e6b4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_position_parameter_sequence_item.py @@ -0,0 +1,343 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class PatientSupportPositionParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value + + @property + def PatientSupportPositionParameterOrderIndex(self) -> Optional[int]: + if "PatientSupportPositionParameterOrderIndex" in self._dataset: + return self._dataset.PatientSupportPositionParameterOrderIndex + return None + + @PatientSupportPositionParameterOrderIndex.setter + def PatientSupportPositionParameterOrderIndex(self, value: Optional[int]): + if value is None: + if "PatientSupportPositionParameterOrderIndex" in self._dataset: + del self._dataset.PatientSupportPositionParameterOrderIndex + else: + self._dataset.PatientSupportPositionParameterOrderIndex = value diff --git a/tdwii_plus_examples/domain_model/patient_support_position_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_position_sequence_item.py new file mode 100644 index 0000000..ed9e4ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_position_sequence_item.py @@ -0,0 +1,76 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .patient_support_position_device_parameter_sequence_item import ( + PatientSupportPositionDeviceParameterSequenceItem, +) + + +class PatientSupportPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientSupportPositionDeviceParameterSequence: List[PatientSupportPositionDeviceParameterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientSupportPositionSpecificationMethod(self) -> Optional[str]: + if "PatientSupportPositionSpecificationMethod" in self._dataset: + return self._dataset.PatientSupportPositionSpecificationMethod + return None + + @PatientSupportPositionSpecificationMethod.setter + def PatientSupportPositionSpecificationMethod(self, value: Optional[str]): + if value is None: + if "PatientSupportPositionSpecificationMethod" in self._dataset: + del self._dataset.PatientSupportPositionSpecificationMethod + else: + self._dataset.PatientSupportPositionSpecificationMethod = value + + @property + def PatientSupportPositionDeviceParameterSequence( + self, + ) -> Optional[List[PatientSupportPositionDeviceParameterSequenceItem]]: + if "PatientSupportPositionDeviceParameterSequence" in self._dataset: + if len(self._PatientSupportPositionDeviceParameterSequence) == len( + self._dataset.PatientSupportPositionDeviceParameterSequence + ): + return self._PatientSupportPositionDeviceParameterSequence + else: + return [ + PatientSupportPositionDeviceParameterSequenceItem(x) + for x in self._dataset.PatientSupportPositionDeviceParameterSequence + ] + return None + + @PatientSupportPositionDeviceParameterSequence.setter + def PatientSupportPositionDeviceParameterSequence( + self, value: Optional[List[PatientSupportPositionDeviceParameterSequenceItem]] + ): + if value is None: + self._PatientSupportPositionDeviceParameterSequence = [] + if "PatientSupportPositionDeviceParameterSequence" in self._dataset: + del self._dataset.PatientSupportPositionDeviceParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientSupportPositionDeviceParameterSequenceItem) for item in value + ): + raise ValueError( + "PatientSupportPositionDeviceParameterSequence must be a list of" + " PatientSupportPositionDeviceParameterSequenceItem objects" + ) + else: + self._PatientSupportPositionDeviceParameterSequence = value + if "PatientSupportPositionDeviceParameterSequence" not in self._dataset: + self._dataset.PatientSupportPositionDeviceParameterSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionDeviceParameterSequence.clear() + self._dataset.PatientSupportPositionDeviceParameterSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPositionDeviceParameter(self, item: PatientSupportPositionDeviceParameterSequenceItem): + if not isinstance(item, PatientSupportPositionDeviceParameterSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionDeviceParameterSequenceItem") + self._PatientSupportPositionDeviceParameterSequence.append(item) + if "PatientSupportPositionDeviceParameterSequence" not in self._dataset: + self._dataset.PatientSupportPositionDeviceParameterSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionDeviceParameterSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_support_position_tolerance_sequence_item.py b/tdwii_plus_examples/domain_model/patient_support_position_tolerance_sequence_item.py new file mode 100644 index 0000000..d377393 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_support_position_tolerance_sequence_item.py @@ -0,0 +1,343 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class PatientSupportPositionToleranceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value + + @property + def PatientSupportPositionToleranceOrderIndex(self) -> Optional[int]: + if "PatientSupportPositionToleranceOrderIndex" in self._dataset: + return self._dataset.PatientSupportPositionToleranceOrderIndex + return None + + @PatientSupportPositionToleranceOrderIndex.setter + def PatientSupportPositionToleranceOrderIndex(self, value: Optional[int]): + if value is None: + if "PatientSupportPositionToleranceOrderIndex" in self._dataset: + del self._dataset.PatientSupportPositionToleranceOrderIndex + else: + self._dataset.PatientSupportPositionToleranceOrderIndex = value diff --git a/tdwii_plus_examples/domain_model/patient_treatment_orientation_sequence_item.py b/tdwii_plus_examples/domain_model/patient_treatment_orientation_sequence_item.py new file mode 100644 index 0000000..4a58730 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_treatment_orientation_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PatientTreatmentOrientationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/patient_treatment_preparation_device_sequence_item.py b/tdwii_plus_examples/domain_model/patient_treatment_preparation_device_sequence_item.py new file mode 100644 index 0000000..8281b96 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_treatment_preparation_device_sequence_item.py @@ -0,0 +1,318 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class PatientTreatmentPreparationDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_parameter_sequence_item.py new file mode 100644 index 0000000..78812a9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_parameter_sequence_item.py @@ -0,0 +1,363 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_item_modifier_sequence_item import ContentItemModifierSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class PatientTreatmentPreparationProcedureParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ContentItemModifierSequence: List[ContentItemModifierSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ContentItemModifierSequence(self) -> Optional[List[ContentItemModifierSequenceItem]]: + if "ContentItemModifierSequence" in self._dataset: + if len(self._ContentItemModifierSequence) == len(self._dataset.ContentItemModifierSequence): + return self._ContentItemModifierSequence + else: + return [ContentItemModifierSequenceItem(x) for x in self._dataset.ContentItemModifierSequence] + return None + + @ContentItemModifierSequence.setter + def ContentItemModifierSequence(self, value: Optional[List[ContentItemModifierSequenceItem]]): + if value is None: + self._ContentItemModifierSequence = [] + if "ContentItemModifierSequence" in self._dataset: + del self._dataset.ContentItemModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentItemModifierSequenceItem) for item in value): + raise ValueError("ContentItemModifierSequence must be a list of ContentItemModifierSequenceItem objects") + else: + self._ContentItemModifierSequence = value + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.clear() + self._dataset.ContentItemModifierSequence.extend([item.to_dataset() for item in value]) + + def add_ContentItemModifier(self, item: ContentItemModifierSequenceItem): + if not isinstance(item, ContentItemModifierSequenceItem): + raise ValueError("Item must be an instance of ContentItemModifierSequenceItem") + self._ContentItemModifierSequence.append(item) + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_sequence_item.py b/tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_sequence_item.py new file mode 100644 index 0000000..4258e33 --- /dev/null +++ b/tdwii_plus_examples/domain_model/patient_treatment_preparation_procedure_sequence_item.py @@ -0,0 +1,176 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .patient_treatment_preparation_device_sequence_item import ( + PatientTreatmentPreparationDeviceSequenceItem, +) +from .patient_treatment_preparation_procedure_parameter_sequence_item import ( + PatientTreatmentPreparationProcedureParameterSequenceItem, +) + + +class PatientTreatmentPreparationProcedureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientTreatmentPreparationDeviceSequence: List[PatientTreatmentPreparationDeviceSequenceItem] = [] + self._PatientTreatmentPreparationProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PatientTreatmentPreparationProcedureParameterSequence: List[ + PatientTreatmentPreparationProcedureParameterSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientTreatmentPreparationProcedureParameterDescription(self) -> Optional[str]: + if "PatientTreatmentPreparationProcedureParameterDescription" in self._dataset: + return self._dataset.PatientTreatmentPreparationProcedureParameterDescription + return None + + @PatientTreatmentPreparationProcedureParameterDescription.setter + def PatientTreatmentPreparationProcedureParameterDescription(self, value: Optional[str]): + if value is None: + if "PatientTreatmentPreparationProcedureParameterDescription" in self._dataset: + del self._dataset.PatientTreatmentPreparationProcedureParameterDescription + else: + self._dataset.PatientTreatmentPreparationProcedureParameterDescription = value + + @property + def PatientTreatmentPreparationDeviceSequence(self) -> Optional[List[PatientTreatmentPreparationDeviceSequenceItem]]: + if "PatientTreatmentPreparationDeviceSequence" in self._dataset: + if len(self._PatientTreatmentPreparationDeviceSequence) == len( + self._dataset.PatientTreatmentPreparationDeviceSequence + ): + return self._PatientTreatmentPreparationDeviceSequence + else: + return [ + PatientTreatmentPreparationDeviceSequenceItem(x) + for x in self._dataset.PatientTreatmentPreparationDeviceSequence + ] + return None + + @PatientTreatmentPreparationDeviceSequence.setter + def PatientTreatmentPreparationDeviceSequence(self, value: Optional[List[PatientTreatmentPreparationDeviceSequenceItem]]): + if value is None: + self._PatientTreatmentPreparationDeviceSequence = [] + if "PatientTreatmentPreparationDeviceSequence" in self._dataset: + del self._dataset.PatientTreatmentPreparationDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientTreatmentPreparationDeviceSequenceItem) for item in value + ): + raise ValueError( + "PatientTreatmentPreparationDeviceSequence must be a list of PatientTreatmentPreparationDeviceSequenceItem" + " objects" + ) + else: + self._PatientTreatmentPreparationDeviceSequence = value + if "PatientTreatmentPreparationDeviceSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationDeviceSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationDeviceSequence.clear() + self._dataset.PatientTreatmentPreparationDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_PatientTreatmentPreparationDevice(self, item: PatientTreatmentPreparationDeviceSequenceItem): + if not isinstance(item, PatientTreatmentPreparationDeviceSequenceItem): + raise ValueError("Item must be an instance of PatientTreatmentPreparationDeviceSequenceItem") + self._PatientTreatmentPreparationDeviceSequence.append(item) + if "PatientTreatmentPreparationDeviceSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationDeviceSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationDeviceSequence.append(item.to_dataset()) + + @property + def PatientTreatmentPreparationProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientTreatmentPreparationProcedureCodeSequence" in self._dataset: + if len(self._PatientTreatmentPreparationProcedureCodeSequence) == len( + self._dataset.PatientTreatmentPreparationProcedureCodeSequence + ): + return self._PatientTreatmentPreparationProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientTreatmentPreparationProcedureCodeSequence] + return None + + @PatientTreatmentPreparationProcedureCodeSequence.setter + def PatientTreatmentPreparationProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientTreatmentPreparationProcedureCodeSequence = [] + if "PatientTreatmentPreparationProcedureCodeSequence" in self._dataset: + del self._dataset.PatientTreatmentPreparationProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientTreatmentPreparationProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientTreatmentPreparationProcedureCodeSequence = value + if "PatientTreatmentPreparationProcedureCodeSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationProcedureCodeSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationProcedureCodeSequence.clear() + self._dataset.PatientTreatmentPreparationProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientTreatmentPreparationProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientTreatmentPreparationProcedureCodeSequence.append(item) + if "PatientTreatmentPreparationProcedureCodeSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationProcedureCodeSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationProcedureCodeSequence.append(item.to_dataset()) + + @property + def PatientTreatmentPreparationProcedureParameterSequence( + self, + ) -> Optional[List[PatientTreatmentPreparationProcedureParameterSequenceItem]]: + if "PatientTreatmentPreparationProcedureParameterSequence" in self._dataset: + if len(self._PatientTreatmentPreparationProcedureParameterSequence) == len( + self._dataset.PatientTreatmentPreparationProcedureParameterSequence + ): + return self._PatientTreatmentPreparationProcedureParameterSequence + else: + return [ + PatientTreatmentPreparationProcedureParameterSequenceItem(x) + for x in self._dataset.PatientTreatmentPreparationProcedureParameterSequence + ] + return None + + @PatientTreatmentPreparationProcedureParameterSequence.setter + def PatientTreatmentPreparationProcedureParameterSequence( + self, value: Optional[List[PatientTreatmentPreparationProcedureParameterSequenceItem]] + ): + if value is None: + self._PatientTreatmentPreparationProcedureParameterSequence = [] + if "PatientTreatmentPreparationProcedureParameterSequence" in self._dataset: + del self._dataset.PatientTreatmentPreparationProcedureParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientTreatmentPreparationProcedureParameterSequenceItem) for item in value + ): + raise ValueError( + "PatientTreatmentPreparationProcedureParameterSequence must be a list of" + " PatientTreatmentPreparationProcedureParameterSequenceItem objects" + ) + else: + self._PatientTreatmentPreparationProcedureParameterSequence = value + if "PatientTreatmentPreparationProcedureParameterSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationProcedureParameterSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationProcedureParameterSequence.clear() + self._dataset.PatientTreatmentPreparationProcedureParameterSequence.extend([item.to_dataset() for item in value]) + + def add_PatientTreatmentPreparationProcedureParameter( + self, item: PatientTreatmentPreparationProcedureParameterSequenceItem + ): + if not isinstance(item, PatientTreatmentPreparationProcedureParameterSequenceItem): + raise ValueError("Item must be an instance of PatientTreatmentPreparationProcedureParameterSequenceItem") + self._PatientTreatmentPreparationProcedureParameterSequence.append(item) + if "PatientTreatmentPreparationProcedureParameterSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationProcedureParameterSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationProcedureParameterSequence.append(item.to_dataset()) + + @property + def PatientTreatmentPreparationProcedureIndex(self) -> Optional[int]: + if "PatientTreatmentPreparationProcedureIndex" in self._dataset: + return self._dataset.PatientTreatmentPreparationProcedureIndex + return None + + @PatientTreatmentPreparationProcedureIndex.setter + def PatientTreatmentPreparationProcedureIndex(self, value: Optional[int]): + if value is None: + if "PatientTreatmentPreparationProcedureIndex" in self._dataset: + del self._dataset.PatientTreatmentPreparationProcedureIndex + else: + self._dataset.PatientTreatmentPreparationProcedureIndex = value diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item.py new file mode 100644 index 0000000..461a46a --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item.py @@ -0,0 +1,496 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .x_ray3_d_frame_type_sequence_item import XRay3DFrameTypeSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._XRay3DFrameTypeSequence: List[XRay3DFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def XRay3DFrameTypeSequence(self) -> Optional[List[XRay3DFrameTypeSequenceItem]]: + if "XRay3DFrameTypeSequence" in self._dataset: + if len(self._XRay3DFrameTypeSequence) == len(self._dataset.XRay3DFrameTypeSequence): + return self._XRay3DFrameTypeSequence + else: + return [XRay3DFrameTypeSequenceItem(x) for x in self._dataset.XRay3DFrameTypeSequence] + return None + + @XRay3DFrameTypeSequence.setter + def XRay3DFrameTypeSequence(self, value: Optional[List[XRay3DFrameTypeSequenceItem]]): + if value is None: + self._XRay3DFrameTypeSequence = [] + if "XRay3DFrameTypeSequence" in self._dataset: + del self._dataset.XRay3DFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DFrameTypeSequenceItem) for item in value): + raise ValueError("XRay3DFrameTypeSequence must be a list of XRay3DFrameTypeSequenceItem objects") + else: + self._XRay3DFrameTypeSequence = value + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.clear() + self._dataset.XRay3DFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DFrameType(self, item: XRay3DFrameTypeSequenceItem): + if not isinstance(item, XRay3DFrameTypeSequenceItem): + raise ValueError("Item must be an instance of XRay3DFrameTypeSequenceItem") + self._XRay3DFrameTypeSequence.append(item) + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_1.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_1.py new file mode 100644 index 0000000..93de514 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_1.py @@ -0,0 +1,422 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .x_ray3_d_frame_type_sequence_item import XRay3DFrameTypeSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._XRay3DFrameTypeSequence: List[XRay3DFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def XRay3DFrameTypeSequence(self) -> Optional[List[XRay3DFrameTypeSequenceItem]]: + if "XRay3DFrameTypeSequence" in self._dataset: + if len(self._XRay3DFrameTypeSequence) == len(self._dataset.XRay3DFrameTypeSequence): + return self._XRay3DFrameTypeSequence + else: + return [XRay3DFrameTypeSequenceItem(x) for x in self._dataset.XRay3DFrameTypeSequence] + return None + + @XRay3DFrameTypeSequence.setter + def XRay3DFrameTypeSequence(self, value: Optional[List[XRay3DFrameTypeSequenceItem]]): + if value is None: + self._XRay3DFrameTypeSequence = [] + if "XRay3DFrameTypeSequence" in self._dataset: + del self._dataset.XRay3DFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DFrameTypeSequenceItem) for item in value): + raise ValueError("XRay3DFrameTypeSequence must be a list of XRay3DFrameTypeSequenceItem objects") + else: + self._XRay3DFrameTypeSequence = value + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.clear() + self._dataset.XRay3DFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DFrameType(self, item: XRay3DFrameTypeSequenceItem): + if not isinstance(item, XRay3DFrameTypeSequenceItem): + raise ValueError("Item must be an instance of XRay3DFrameTypeSequenceItem") + self._XRay3DFrameTypeSequence.append(item) + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_10.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_10.py new file mode 100644 index 0000000..2ac751e --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_10.py @@ -0,0 +1,902 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_sequence_item import CalibrationSequenceItem +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .collimator_shape_sequence_item import CollimatorShapeSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .exposure_control_sensing_regions_sequence_item import ( + ExposureControlSensingRegionsSequenceItem, +) +from .field_of_view_sequence_item import FieldOfViewSequenceItem +from .frame_acquisition_sequence_item import FrameAcquisitionSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_detector_parameters_sequence_item import FrameDetectorParametersSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_pixel_data_properties_sequence_item import ( + FramePixelDataPropertiesSequenceItem, +) +from .frame_pixel_shift_sequence_item import FramePixelShiftSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .object_thickness_sequence_item import ObjectThicknessSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .positioner_position_sequence_item import PositionerPositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .table_position_sequence_item import TablePositionSequenceItem +from .x_ray_geometry_sequence_item import XRayGeometrySequenceItem +from .xaxrf_frame_characteristics_sequence_item import ( + XAXRFFrameCharacteristicsSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._PositionerPositionSequence: List[PositionerPositionSequenceItem] = [] + self._TablePositionSequence: List[TablePositionSequenceItem] = [] + self._CollimatorShapeSequence: List[CollimatorShapeSequenceItem] = [] + self._XAXRFFrameCharacteristicsSequence: List[XAXRFFrameCharacteristicsSequenceItem] = [] + self._FrameAcquisitionSequence: List[FrameAcquisitionSequenceItem] = [] + self._FieldOfViewSequence: List[FieldOfViewSequenceItem] = [] + self._ExposureControlSensingRegionsSequence: List[ExposureControlSensingRegionsSequenceItem] = [] + self._FrameDetectorParametersSequence: List[FrameDetectorParametersSequenceItem] = [] + self._CalibrationSequence: List[CalibrationSequenceItem] = [] + self._ObjectThicknessSequence: List[ObjectThicknessSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._XRayGeometrySequence: List[XRayGeometrySequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._FramePixelShiftSequence: List[FramePixelShiftSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._FramePixelDataPropertiesSequence: List[FramePixelDataPropertiesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def PositionerPositionSequence(self) -> Optional[List[PositionerPositionSequenceItem]]: + if "PositionerPositionSequence" in self._dataset: + if len(self._PositionerPositionSequence) == len(self._dataset.PositionerPositionSequence): + return self._PositionerPositionSequence + else: + return [PositionerPositionSequenceItem(x) for x in self._dataset.PositionerPositionSequence] + return None + + @PositionerPositionSequence.setter + def PositionerPositionSequence(self, value: Optional[List[PositionerPositionSequenceItem]]): + if value is None: + self._PositionerPositionSequence = [] + if "PositionerPositionSequence" in self._dataset: + del self._dataset.PositionerPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PositionerPositionSequenceItem) for item in value): + raise ValueError("PositionerPositionSequence must be a list of PositionerPositionSequenceItem objects") + else: + self._PositionerPositionSequence = value + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.clear() + self._dataset.PositionerPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PositionerPosition(self, item: PositionerPositionSequenceItem): + if not isinstance(item, PositionerPositionSequenceItem): + raise ValueError("Item must be an instance of PositionerPositionSequenceItem") + self._PositionerPositionSequence.append(item) + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.append(item.to_dataset()) + + @property + def TablePositionSequence(self) -> Optional[List[TablePositionSequenceItem]]: + if "TablePositionSequence" in self._dataset: + if len(self._TablePositionSequence) == len(self._dataset.TablePositionSequence): + return self._TablePositionSequence + else: + return [TablePositionSequenceItem(x) for x in self._dataset.TablePositionSequence] + return None + + @TablePositionSequence.setter + def TablePositionSequence(self, value: Optional[List[TablePositionSequenceItem]]): + if value is None: + self._TablePositionSequence = [] + if "TablePositionSequence" in self._dataset: + del self._dataset.TablePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TablePositionSequenceItem) for item in value): + raise ValueError("TablePositionSequence must be a list of TablePositionSequenceItem objects") + else: + self._TablePositionSequence = value + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.clear() + self._dataset.TablePositionSequence.extend([item.to_dataset() for item in value]) + + def add_TablePosition(self, item: TablePositionSequenceItem): + if not isinstance(item, TablePositionSequenceItem): + raise ValueError("Item must be an instance of TablePositionSequenceItem") + self._TablePositionSequence.append(item) + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.append(item.to_dataset()) + + @property + def CollimatorShapeSequence(self) -> Optional[List[CollimatorShapeSequenceItem]]: + if "CollimatorShapeSequence" in self._dataset: + if len(self._CollimatorShapeSequence) == len(self._dataset.CollimatorShapeSequence): + return self._CollimatorShapeSequence + else: + return [CollimatorShapeSequenceItem(x) for x in self._dataset.CollimatorShapeSequence] + return None + + @CollimatorShapeSequence.setter + def CollimatorShapeSequence(self, value: Optional[List[CollimatorShapeSequenceItem]]): + if value is None: + self._CollimatorShapeSequence = [] + if "CollimatorShapeSequence" in self._dataset: + del self._dataset.CollimatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CollimatorShapeSequenceItem) for item in value): + raise ValueError("CollimatorShapeSequence must be a list of CollimatorShapeSequenceItem objects") + else: + self._CollimatorShapeSequence = value + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.clear() + self._dataset.CollimatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CollimatorShape(self, item: CollimatorShapeSequenceItem): + if not isinstance(item, CollimatorShapeSequenceItem): + raise ValueError("Item must be an instance of CollimatorShapeSequenceItem") + self._CollimatorShapeSequence.append(item) + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.append(item.to_dataset()) + + @property + def XAXRFFrameCharacteristicsSequence(self) -> Optional[List[XAXRFFrameCharacteristicsSequenceItem]]: + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + if len(self._XAXRFFrameCharacteristicsSequence) == len(self._dataset.XAXRFFrameCharacteristicsSequence): + return self._XAXRFFrameCharacteristicsSequence + else: + return [XAXRFFrameCharacteristicsSequenceItem(x) for x in self._dataset.XAXRFFrameCharacteristicsSequence] + return None + + @XAXRFFrameCharacteristicsSequence.setter + def XAXRFFrameCharacteristicsSequence(self, value: Optional[List[XAXRFFrameCharacteristicsSequenceItem]]): + if value is None: + self._XAXRFFrameCharacteristicsSequence = [] + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + del self._dataset.XAXRFFrameCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAXRFFrameCharacteristicsSequenceItem) for item in value): + raise ValueError( + "XAXRFFrameCharacteristicsSequence must be a list of XAXRFFrameCharacteristicsSequenceItem objects" + ) + else: + self._XAXRFFrameCharacteristicsSequence = value + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.clear() + self._dataset.XAXRFFrameCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_XAXRFFrameCharacteristics(self, item: XAXRFFrameCharacteristicsSequenceItem): + if not isinstance(item, XAXRFFrameCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of XAXRFFrameCharacteristicsSequenceItem") + self._XAXRFFrameCharacteristicsSequence.append(item) + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.append(item.to_dataset()) + + @property + def FrameAcquisitionSequence(self) -> Optional[List[FrameAcquisitionSequenceItem]]: + if "FrameAcquisitionSequence" in self._dataset: + if len(self._FrameAcquisitionSequence) == len(self._dataset.FrameAcquisitionSequence): + return self._FrameAcquisitionSequence + else: + return [FrameAcquisitionSequenceItem(x) for x in self._dataset.FrameAcquisitionSequence] + return None + + @FrameAcquisitionSequence.setter + def FrameAcquisitionSequence(self, value: Optional[List[FrameAcquisitionSequenceItem]]): + if value is None: + self._FrameAcquisitionSequence = [] + if "FrameAcquisitionSequence" in self._dataset: + del self._dataset.FrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAcquisitionSequenceItem) for item in value): + raise ValueError("FrameAcquisitionSequence must be a list of FrameAcquisitionSequenceItem objects") + else: + self._FrameAcquisitionSequence = value + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.clear() + self._dataset.FrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameAcquisition(self, item: FrameAcquisitionSequenceItem): + if not isinstance(item, FrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of FrameAcquisitionSequenceItem") + self._FrameAcquisitionSequence.append(item) + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.append(item.to_dataset()) + + @property + def FieldOfViewSequence(self) -> Optional[List[FieldOfViewSequenceItem]]: + if "FieldOfViewSequence" in self._dataset: + if len(self._FieldOfViewSequence) == len(self._dataset.FieldOfViewSequence): + return self._FieldOfViewSequence + else: + return [FieldOfViewSequenceItem(x) for x in self._dataset.FieldOfViewSequence] + return None + + @FieldOfViewSequence.setter + def FieldOfViewSequence(self, value: Optional[List[FieldOfViewSequenceItem]]): + if value is None: + self._FieldOfViewSequence = [] + if "FieldOfViewSequence" in self._dataset: + del self._dataset.FieldOfViewSequence + elif not isinstance(value, list) or not all(isinstance(item, FieldOfViewSequenceItem) for item in value): + raise ValueError("FieldOfViewSequence must be a list of FieldOfViewSequenceItem objects") + else: + self._FieldOfViewSequence = value + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.clear() + self._dataset.FieldOfViewSequence.extend([item.to_dataset() for item in value]) + + def add_FieldOfView(self, item: FieldOfViewSequenceItem): + if not isinstance(item, FieldOfViewSequenceItem): + raise ValueError("Item must be an instance of FieldOfViewSequenceItem") + self._FieldOfViewSequence.append(item) + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.append(item.to_dataset()) + + @property + def ExposureControlSensingRegionsSequence(self) -> Optional[List[ExposureControlSensingRegionsSequenceItem]]: + if "ExposureControlSensingRegionsSequence" in self._dataset: + if len(self._ExposureControlSensingRegionsSequence) == len(self._dataset.ExposureControlSensingRegionsSequence): + return self._ExposureControlSensingRegionsSequence + else: + return [ + ExposureControlSensingRegionsSequenceItem(x) for x in self._dataset.ExposureControlSensingRegionsSequence + ] + return None + + @ExposureControlSensingRegionsSequence.setter + def ExposureControlSensingRegionsSequence(self, value: Optional[List[ExposureControlSensingRegionsSequenceItem]]): + if value is None: + self._ExposureControlSensingRegionsSequence = [] + if "ExposureControlSensingRegionsSequence" in self._dataset: + del self._dataset.ExposureControlSensingRegionsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ExposureControlSensingRegionsSequenceItem) for item in value + ): + raise ValueError( + "ExposureControlSensingRegionsSequence must be a list of ExposureControlSensingRegionsSequenceItem objects" + ) + else: + self._ExposureControlSensingRegionsSequence = value + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.clear() + self._dataset.ExposureControlSensingRegionsSequence.extend([item.to_dataset() for item in value]) + + def add_ExposureControlSensingRegions(self, item: ExposureControlSensingRegionsSequenceItem): + if not isinstance(item, ExposureControlSensingRegionsSequenceItem): + raise ValueError("Item must be an instance of ExposureControlSensingRegionsSequenceItem") + self._ExposureControlSensingRegionsSequence.append(item) + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.append(item.to_dataset()) + + @property + def FrameDetectorParametersSequence(self) -> Optional[List[FrameDetectorParametersSequenceItem]]: + if "FrameDetectorParametersSequence" in self._dataset: + if len(self._FrameDetectorParametersSequence) == len(self._dataset.FrameDetectorParametersSequence): + return self._FrameDetectorParametersSequence + else: + return [FrameDetectorParametersSequenceItem(x) for x in self._dataset.FrameDetectorParametersSequence] + return None + + @FrameDetectorParametersSequence.setter + def FrameDetectorParametersSequence(self, value: Optional[List[FrameDetectorParametersSequenceItem]]): + if value is None: + self._FrameDetectorParametersSequence = [] + if "FrameDetectorParametersSequence" in self._dataset: + del self._dataset.FrameDetectorParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDetectorParametersSequenceItem) for item in value): + raise ValueError("FrameDetectorParametersSequence must be a list of FrameDetectorParametersSequenceItem objects") + else: + self._FrameDetectorParametersSequence = value + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.clear() + self._dataset.FrameDetectorParametersSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDetectorParameters(self, item: FrameDetectorParametersSequenceItem): + if not isinstance(item, FrameDetectorParametersSequenceItem): + raise ValueError("Item must be an instance of FrameDetectorParametersSequenceItem") + self._FrameDetectorParametersSequence.append(item) + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.append(item.to_dataset()) + + @property + def CalibrationSequence(self) -> Optional[List[CalibrationSequenceItem]]: + if "CalibrationSequence" in self._dataset: + if len(self._CalibrationSequence) == len(self._dataset.CalibrationSequence): + return self._CalibrationSequence + else: + return [CalibrationSequenceItem(x) for x in self._dataset.CalibrationSequence] + return None + + @CalibrationSequence.setter + def CalibrationSequence(self, value: Optional[List[CalibrationSequenceItem]]): + if value is None: + self._CalibrationSequence = [] + if "CalibrationSequence" in self._dataset: + del self._dataset.CalibrationSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationSequenceItem) for item in value): + raise ValueError("CalibrationSequence must be a list of CalibrationSequenceItem objects") + else: + self._CalibrationSequence = value + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.clear() + self._dataset.CalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_Calibration(self, item: CalibrationSequenceItem): + if not isinstance(item, CalibrationSequenceItem): + raise ValueError("Item must be an instance of CalibrationSequenceItem") + self._CalibrationSequence.append(item) + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.append(item.to_dataset()) + + @property + def ObjectThicknessSequence(self) -> Optional[List[ObjectThicknessSequenceItem]]: + if "ObjectThicknessSequence" in self._dataset: + if len(self._ObjectThicknessSequence) == len(self._dataset.ObjectThicknessSequence): + return self._ObjectThicknessSequence + else: + return [ObjectThicknessSequenceItem(x) for x in self._dataset.ObjectThicknessSequence] + return None + + @ObjectThicknessSequence.setter + def ObjectThicknessSequence(self, value: Optional[List[ObjectThicknessSequenceItem]]): + if value is None: + self._ObjectThicknessSequence = [] + if "ObjectThicknessSequence" in self._dataset: + del self._dataset.ObjectThicknessSequence + elif not isinstance(value, list) or not all(isinstance(item, ObjectThicknessSequenceItem) for item in value): + raise ValueError("ObjectThicknessSequence must be a list of ObjectThicknessSequenceItem objects") + else: + self._ObjectThicknessSequence = value + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.clear() + self._dataset.ObjectThicknessSequence.extend([item.to_dataset() for item in value]) + + def add_ObjectThickness(self, item: ObjectThicknessSequenceItem): + if not isinstance(item, ObjectThicknessSequenceItem): + raise ValueError("Item must be an instance of ObjectThicknessSequenceItem") + self._ObjectThicknessSequence.append(item) + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def XRayGeometrySequence(self) -> Optional[List[XRayGeometrySequenceItem]]: + if "XRayGeometrySequence" in self._dataset: + if len(self._XRayGeometrySequence) == len(self._dataset.XRayGeometrySequence): + return self._XRayGeometrySequence + else: + return [XRayGeometrySequenceItem(x) for x in self._dataset.XRayGeometrySequence] + return None + + @XRayGeometrySequence.setter + def XRayGeometrySequence(self, value: Optional[List[XRayGeometrySequenceItem]]): + if value is None: + self._XRayGeometrySequence = [] + if "XRayGeometrySequence" in self._dataset: + del self._dataset.XRayGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGeometrySequenceItem) for item in value): + raise ValueError("XRayGeometrySequence must be a list of XRayGeometrySequenceItem objects") + else: + self._XRayGeometrySequence = value + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.clear() + self._dataset.XRayGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_XRayGeometry(self, item: XRayGeometrySequenceItem): + if not isinstance(item, XRayGeometrySequenceItem): + raise ValueError("Item must be an instance of XRayGeometrySequenceItem") + self._XRayGeometrySequence.append(item) + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def FramePixelShiftSequence(self) -> Optional[List[FramePixelShiftSequenceItem]]: + if "FramePixelShiftSequence" in self._dataset: + if len(self._FramePixelShiftSequence) == len(self._dataset.FramePixelShiftSequence): + return self._FramePixelShiftSequence + else: + return [FramePixelShiftSequenceItem(x) for x in self._dataset.FramePixelShiftSequence] + return None + + @FramePixelShiftSequence.setter + def FramePixelShiftSequence(self, value: Optional[List[FramePixelShiftSequenceItem]]): + if value is None: + self._FramePixelShiftSequence = [] + if "FramePixelShiftSequence" in self._dataset: + del self._dataset.FramePixelShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelShiftSequenceItem) for item in value): + raise ValueError("FramePixelShiftSequence must be a list of FramePixelShiftSequenceItem objects") + else: + self._FramePixelShiftSequence = value + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.clear() + self._dataset.FramePixelShiftSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelShift(self, item: FramePixelShiftSequenceItem): + if not isinstance(item, FramePixelShiftSequenceItem): + raise ValueError("Item must be an instance of FramePixelShiftSequenceItem") + self._FramePixelShiftSequence.append(item) + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.append(item.to_dataset()) + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def FramePixelDataPropertiesSequence(self) -> Optional[List[FramePixelDataPropertiesSequenceItem]]: + if "FramePixelDataPropertiesSequence" in self._dataset: + if len(self._FramePixelDataPropertiesSequence) == len(self._dataset.FramePixelDataPropertiesSequence): + return self._FramePixelDataPropertiesSequence + else: + return [FramePixelDataPropertiesSequenceItem(x) for x in self._dataset.FramePixelDataPropertiesSequence] + return None + + @FramePixelDataPropertiesSequence.setter + def FramePixelDataPropertiesSequence(self, value: Optional[List[FramePixelDataPropertiesSequenceItem]]): + if value is None: + self._FramePixelDataPropertiesSequence = [] + if "FramePixelDataPropertiesSequence" in self._dataset: + del self._dataset.FramePixelDataPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelDataPropertiesSequenceItem) for item in value): + raise ValueError("FramePixelDataPropertiesSequence must be a list of FramePixelDataPropertiesSequenceItem objects") + else: + self._FramePixelDataPropertiesSequence = value + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.clear() + self._dataset.FramePixelDataPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelDataProperties(self, item: FramePixelDataPropertiesSequenceItem): + if not isinstance(item, FramePixelDataPropertiesSequenceItem): + raise ValueError("Item must be an instance of FramePixelDataPropertiesSequenceItem") + self._FramePixelDataPropertiesSequence.append(item) + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_11.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_11.py new file mode 100644 index 0000000..99c6b0c --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_11.py @@ -0,0 +1,334 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .confocal_microscopy_image_frame_type_sequence_item import ( + ConfocalMicroscopyImageFrameTypeSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .optical_path_identification_sequence_item import ( + OpticalPathIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._ConfocalMicroscopyImageFrameTypeSequence: List[ConfocalMicroscopyImageFrameTypeSequenceItem] = [] + self._OpticalPathIdentificationSequence: List[OpticalPathIdentificationSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def ConfocalMicroscopyImageFrameTypeSequence(self) -> Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]: + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + if len(self._ConfocalMicroscopyImageFrameTypeSequence) == len( + self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ): + return self._ConfocalMicroscopyImageFrameTypeSequence + else: + return [ + ConfocalMicroscopyImageFrameTypeSequenceItem(x) + for x in self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ] + return None + + @ConfocalMicroscopyImageFrameTypeSequence.setter + def ConfocalMicroscopyImageFrameTypeSequence(self, value: Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]): + if value is None: + self._ConfocalMicroscopyImageFrameTypeSequence = [] + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + del self._dataset.ConfocalMicroscopyImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "ConfocalMicroscopyImageFrameTypeSequence must be a list of ConfocalMicroscopyImageFrameTypeSequenceItem" + " objects" + ) + else: + self._ConfocalMicroscopyImageFrameTypeSequence = value + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.clear() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ConfocalMicroscopyImageFrameType(self, item: ConfocalMicroscopyImageFrameTypeSequenceItem): + if not isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of ConfocalMicroscopyImageFrameTypeSequenceItem") + self._ConfocalMicroscopyImageFrameTypeSequence.append(item) + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentificationSequence(self) -> Optional[List[OpticalPathIdentificationSequenceItem]]: + if "OpticalPathIdentificationSequence" in self._dataset: + if len(self._OpticalPathIdentificationSequence) == len(self._dataset.OpticalPathIdentificationSequence): + return self._OpticalPathIdentificationSequence + else: + return [OpticalPathIdentificationSequenceItem(x) for x in self._dataset.OpticalPathIdentificationSequence] + return None + + @OpticalPathIdentificationSequence.setter + def OpticalPathIdentificationSequence(self, value: Optional[List[OpticalPathIdentificationSequenceItem]]): + if value is None: + self._OpticalPathIdentificationSequence = [] + if "OpticalPathIdentificationSequence" in self._dataset: + del self._dataset.OpticalPathIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathIdentificationSequenceItem) for item in value): + raise ValueError( + "OpticalPathIdentificationSequence must be a list of OpticalPathIdentificationSequenceItem objects" + ) + else: + self._OpticalPathIdentificationSequence = value + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.clear() + self._dataset.OpticalPathIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPathIdentification(self, item: OpticalPathIdentificationSequenceItem): + if not isinstance(item, OpticalPathIdentificationSequenceItem): + raise ValueError("Item must be an instance of OpticalPathIdentificationSequenceItem") + self._OpticalPathIdentificationSequence.append(item) + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_14.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_14.py new file mode 100644 index 0000000..c77ad2c --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_14.py @@ -0,0 +1,676 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .ct_image_frame_type_sequence_item import CTImageFrameTypeSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._CTImageFrameTypeSequence: List[CTImageFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def CTImageFrameTypeSequence(self) -> Optional[List[CTImageFrameTypeSequenceItem]]: + if "CTImageFrameTypeSequence" in self._dataset: + if len(self._CTImageFrameTypeSequence) == len(self._dataset.CTImageFrameTypeSequence): + return self._CTImageFrameTypeSequence + else: + return [CTImageFrameTypeSequenceItem(x) for x in self._dataset.CTImageFrameTypeSequence] + return None + + @CTImageFrameTypeSequence.setter + def CTImageFrameTypeSequence(self, value: Optional[List[CTImageFrameTypeSequenceItem]]): + if value is None: + self._CTImageFrameTypeSequence = [] + if "CTImageFrameTypeSequence" in self._dataset: + del self._dataset.CTImageFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, CTImageFrameTypeSequenceItem) for item in value): + raise ValueError("CTImageFrameTypeSequence must be a list of CTImageFrameTypeSequenceItem objects") + else: + self._CTImageFrameTypeSequence = value + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.clear() + self._dataset.CTImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_CTImageFrameType(self, item: CTImageFrameTypeSequenceItem): + if not isinstance(item, CTImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of CTImageFrameTypeSequenceItem") + self._CTImageFrameTypeSequence.append(item) + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_15.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_15.py new file mode 100644 index 0000000..168d0a1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_15.py @@ -0,0 +1,925 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_sequence_item import CalibrationSequenceItem +from .collimator_shape_sequence_item import CollimatorShapeSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .detector_position_sequence_item import DetectorPositionSequenceItem +from .field_of_view_sequence_item import FieldOfViewSequenceItem +from .frame_acquisition_sequence_item import FrameAcquisitionSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_detector_parameters_sequence_item import FrameDetectorParametersSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_pixel_data_properties_sequence_item import ( + FramePixelDataPropertiesSequenceItem, +) +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .isocenter_reference_system_sequence_item import ( + IsocenterReferenceSystemSequenceItem, +) +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .positioner_position_sequence_item import PositionerPositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .x_ray_acquisition_dose_sequence_item import XRayAcquisitionDoseSequenceItem +from .x_ray_filter_sequence_item import XRayFilterSequenceItem +from .x_ray_geometry_sequence_item import XRayGeometrySequenceItem +from .x_ray_grid_sequence_item import XRayGridSequenceItem +from .xaxrf_frame_characteristics_sequence_item import ( + XAXRFFrameCharacteristicsSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._PositionerPositionSequence: List[PositionerPositionSequenceItem] = [] + self._CollimatorShapeSequence: List[CollimatorShapeSequenceItem] = [] + self._XAXRFFrameCharacteristicsSequence: List[XAXRFFrameCharacteristicsSequenceItem] = [] + self._FrameAcquisitionSequence: List[FrameAcquisitionSequenceItem] = [] + self._FieldOfViewSequence: List[FieldOfViewSequenceItem] = [] + self._FrameDetectorParametersSequence: List[FrameDetectorParametersSequenceItem] = [] + self._CalibrationSequence: List[CalibrationSequenceItem] = [] + self._IsocenterReferenceSystemSequence: List[IsocenterReferenceSystemSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._XRayGeometrySequence: List[XRayGeometrySequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._DetectorPositionSequence: List[DetectorPositionSequenceItem] = [] + self._XRayAcquisitionDoseSequence: List[XRayAcquisitionDoseSequenceItem] = [] + self._XRayGridSequence: List[XRayGridSequenceItem] = [] + self._XRayFilterSequence: List[XRayFilterSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._FramePixelDataPropertiesSequence: List[FramePixelDataPropertiesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def PositionerPositionSequence(self) -> Optional[List[PositionerPositionSequenceItem]]: + if "PositionerPositionSequence" in self._dataset: + if len(self._PositionerPositionSequence) == len(self._dataset.PositionerPositionSequence): + return self._PositionerPositionSequence + else: + return [PositionerPositionSequenceItem(x) for x in self._dataset.PositionerPositionSequence] + return None + + @PositionerPositionSequence.setter + def PositionerPositionSequence(self, value: Optional[List[PositionerPositionSequenceItem]]): + if value is None: + self._PositionerPositionSequence = [] + if "PositionerPositionSequence" in self._dataset: + del self._dataset.PositionerPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PositionerPositionSequenceItem) for item in value): + raise ValueError("PositionerPositionSequence must be a list of PositionerPositionSequenceItem objects") + else: + self._PositionerPositionSequence = value + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.clear() + self._dataset.PositionerPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PositionerPosition(self, item: PositionerPositionSequenceItem): + if not isinstance(item, PositionerPositionSequenceItem): + raise ValueError("Item must be an instance of PositionerPositionSequenceItem") + self._PositionerPositionSequence.append(item) + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.append(item.to_dataset()) + + @property + def CollimatorShapeSequence(self) -> Optional[List[CollimatorShapeSequenceItem]]: + if "CollimatorShapeSequence" in self._dataset: + if len(self._CollimatorShapeSequence) == len(self._dataset.CollimatorShapeSequence): + return self._CollimatorShapeSequence + else: + return [CollimatorShapeSequenceItem(x) for x in self._dataset.CollimatorShapeSequence] + return None + + @CollimatorShapeSequence.setter + def CollimatorShapeSequence(self, value: Optional[List[CollimatorShapeSequenceItem]]): + if value is None: + self._CollimatorShapeSequence = [] + if "CollimatorShapeSequence" in self._dataset: + del self._dataset.CollimatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CollimatorShapeSequenceItem) for item in value): + raise ValueError("CollimatorShapeSequence must be a list of CollimatorShapeSequenceItem objects") + else: + self._CollimatorShapeSequence = value + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.clear() + self._dataset.CollimatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CollimatorShape(self, item: CollimatorShapeSequenceItem): + if not isinstance(item, CollimatorShapeSequenceItem): + raise ValueError("Item must be an instance of CollimatorShapeSequenceItem") + self._CollimatorShapeSequence.append(item) + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.append(item.to_dataset()) + + @property + def XAXRFFrameCharacteristicsSequence(self) -> Optional[List[XAXRFFrameCharacteristicsSequenceItem]]: + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + if len(self._XAXRFFrameCharacteristicsSequence) == len(self._dataset.XAXRFFrameCharacteristicsSequence): + return self._XAXRFFrameCharacteristicsSequence + else: + return [XAXRFFrameCharacteristicsSequenceItem(x) for x in self._dataset.XAXRFFrameCharacteristicsSequence] + return None + + @XAXRFFrameCharacteristicsSequence.setter + def XAXRFFrameCharacteristicsSequence(self, value: Optional[List[XAXRFFrameCharacteristicsSequenceItem]]): + if value is None: + self._XAXRFFrameCharacteristicsSequence = [] + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + del self._dataset.XAXRFFrameCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAXRFFrameCharacteristicsSequenceItem) for item in value): + raise ValueError( + "XAXRFFrameCharacteristicsSequence must be a list of XAXRFFrameCharacteristicsSequenceItem objects" + ) + else: + self._XAXRFFrameCharacteristicsSequence = value + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.clear() + self._dataset.XAXRFFrameCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_XAXRFFrameCharacteristics(self, item: XAXRFFrameCharacteristicsSequenceItem): + if not isinstance(item, XAXRFFrameCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of XAXRFFrameCharacteristicsSequenceItem") + self._XAXRFFrameCharacteristicsSequence.append(item) + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.append(item.to_dataset()) + + @property + def FrameAcquisitionSequence(self) -> Optional[List[FrameAcquisitionSequenceItem]]: + if "FrameAcquisitionSequence" in self._dataset: + if len(self._FrameAcquisitionSequence) == len(self._dataset.FrameAcquisitionSequence): + return self._FrameAcquisitionSequence + else: + return [FrameAcquisitionSequenceItem(x) for x in self._dataset.FrameAcquisitionSequence] + return None + + @FrameAcquisitionSequence.setter + def FrameAcquisitionSequence(self, value: Optional[List[FrameAcquisitionSequenceItem]]): + if value is None: + self._FrameAcquisitionSequence = [] + if "FrameAcquisitionSequence" in self._dataset: + del self._dataset.FrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAcquisitionSequenceItem) for item in value): + raise ValueError("FrameAcquisitionSequence must be a list of FrameAcquisitionSequenceItem objects") + else: + self._FrameAcquisitionSequence = value + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.clear() + self._dataset.FrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameAcquisition(self, item: FrameAcquisitionSequenceItem): + if not isinstance(item, FrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of FrameAcquisitionSequenceItem") + self._FrameAcquisitionSequence.append(item) + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.append(item.to_dataset()) + + @property + def FieldOfViewSequence(self) -> Optional[List[FieldOfViewSequenceItem]]: + if "FieldOfViewSequence" in self._dataset: + if len(self._FieldOfViewSequence) == len(self._dataset.FieldOfViewSequence): + return self._FieldOfViewSequence + else: + return [FieldOfViewSequenceItem(x) for x in self._dataset.FieldOfViewSequence] + return None + + @FieldOfViewSequence.setter + def FieldOfViewSequence(self, value: Optional[List[FieldOfViewSequenceItem]]): + if value is None: + self._FieldOfViewSequence = [] + if "FieldOfViewSequence" in self._dataset: + del self._dataset.FieldOfViewSequence + elif not isinstance(value, list) or not all(isinstance(item, FieldOfViewSequenceItem) for item in value): + raise ValueError("FieldOfViewSequence must be a list of FieldOfViewSequenceItem objects") + else: + self._FieldOfViewSequence = value + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.clear() + self._dataset.FieldOfViewSequence.extend([item.to_dataset() for item in value]) + + def add_FieldOfView(self, item: FieldOfViewSequenceItem): + if not isinstance(item, FieldOfViewSequenceItem): + raise ValueError("Item must be an instance of FieldOfViewSequenceItem") + self._FieldOfViewSequence.append(item) + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.append(item.to_dataset()) + + @property + def FrameDetectorParametersSequence(self) -> Optional[List[FrameDetectorParametersSequenceItem]]: + if "FrameDetectorParametersSequence" in self._dataset: + if len(self._FrameDetectorParametersSequence) == len(self._dataset.FrameDetectorParametersSequence): + return self._FrameDetectorParametersSequence + else: + return [FrameDetectorParametersSequenceItem(x) for x in self._dataset.FrameDetectorParametersSequence] + return None + + @FrameDetectorParametersSequence.setter + def FrameDetectorParametersSequence(self, value: Optional[List[FrameDetectorParametersSequenceItem]]): + if value is None: + self._FrameDetectorParametersSequence = [] + if "FrameDetectorParametersSequence" in self._dataset: + del self._dataset.FrameDetectorParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDetectorParametersSequenceItem) for item in value): + raise ValueError("FrameDetectorParametersSequence must be a list of FrameDetectorParametersSequenceItem objects") + else: + self._FrameDetectorParametersSequence = value + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.clear() + self._dataset.FrameDetectorParametersSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDetectorParameters(self, item: FrameDetectorParametersSequenceItem): + if not isinstance(item, FrameDetectorParametersSequenceItem): + raise ValueError("Item must be an instance of FrameDetectorParametersSequenceItem") + self._FrameDetectorParametersSequence.append(item) + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.append(item.to_dataset()) + + @property + def CalibrationSequence(self) -> Optional[List[CalibrationSequenceItem]]: + if "CalibrationSequence" in self._dataset: + if len(self._CalibrationSequence) == len(self._dataset.CalibrationSequence): + return self._CalibrationSequence + else: + return [CalibrationSequenceItem(x) for x in self._dataset.CalibrationSequence] + return None + + @CalibrationSequence.setter + def CalibrationSequence(self, value: Optional[List[CalibrationSequenceItem]]): + if value is None: + self._CalibrationSequence = [] + if "CalibrationSequence" in self._dataset: + del self._dataset.CalibrationSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationSequenceItem) for item in value): + raise ValueError("CalibrationSequence must be a list of CalibrationSequenceItem objects") + else: + self._CalibrationSequence = value + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.clear() + self._dataset.CalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_Calibration(self, item: CalibrationSequenceItem): + if not isinstance(item, CalibrationSequenceItem): + raise ValueError("Item must be an instance of CalibrationSequenceItem") + self._CalibrationSequence.append(item) + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.append(item.to_dataset()) + + @property + def IsocenterReferenceSystemSequence(self) -> Optional[List[IsocenterReferenceSystemSequenceItem]]: + if "IsocenterReferenceSystemSequence" in self._dataset: + if len(self._IsocenterReferenceSystemSequence) == len(self._dataset.IsocenterReferenceSystemSequence): + return self._IsocenterReferenceSystemSequence + else: + return [IsocenterReferenceSystemSequenceItem(x) for x in self._dataset.IsocenterReferenceSystemSequence] + return None + + @IsocenterReferenceSystemSequence.setter + def IsocenterReferenceSystemSequence(self, value: Optional[List[IsocenterReferenceSystemSequenceItem]]): + if value is None: + self._IsocenterReferenceSystemSequence = [] + if "IsocenterReferenceSystemSequence" in self._dataset: + del self._dataset.IsocenterReferenceSystemSequence + elif not isinstance(value, list) or not all(isinstance(item, IsocenterReferenceSystemSequenceItem) for item in value): + raise ValueError("IsocenterReferenceSystemSequence must be a list of IsocenterReferenceSystemSequenceItem objects") + else: + self._IsocenterReferenceSystemSequence = value + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.clear() + self._dataset.IsocenterReferenceSystemSequence.extend([item.to_dataset() for item in value]) + + def add_IsocenterReferenceSystem(self, item: IsocenterReferenceSystemSequenceItem): + if not isinstance(item, IsocenterReferenceSystemSequenceItem): + raise ValueError("Item must be an instance of IsocenterReferenceSystemSequenceItem") + self._IsocenterReferenceSystemSequence.append(item) + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def XRayGeometrySequence(self) -> Optional[List[XRayGeometrySequenceItem]]: + if "XRayGeometrySequence" in self._dataset: + if len(self._XRayGeometrySequence) == len(self._dataset.XRayGeometrySequence): + return self._XRayGeometrySequence + else: + return [XRayGeometrySequenceItem(x) for x in self._dataset.XRayGeometrySequence] + return None + + @XRayGeometrySequence.setter + def XRayGeometrySequence(self, value: Optional[List[XRayGeometrySequenceItem]]): + if value is None: + self._XRayGeometrySequence = [] + if "XRayGeometrySequence" in self._dataset: + del self._dataset.XRayGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGeometrySequenceItem) for item in value): + raise ValueError("XRayGeometrySequence must be a list of XRayGeometrySequenceItem objects") + else: + self._XRayGeometrySequence = value + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.clear() + self._dataset.XRayGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_XRayGeometry(self, item: XRayGeometrySequenceItem): + if not isinstance(item, XRayGeometrySequenceItem): + raise ValueError("Item must be an instance of XRayGeometrySequenceItem") + self._XRayGeometrySequence.append(item) + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def DetectorPositionSequence(self) -> Optional[List[DetectorPositionSequenceItem]]: + if "DetectorPositionSequence" in self._dataset: + if len(self._DetectorPositionSequence) == len(self._dataset.DetectorPositionSequence): + return self._DetectorPositionSequence + else: + return [DetectorPositionSequenceItem(x) for x in self._dataset.DetectorPositionSequence] + return None + + @DetectorPositionSequence.setter + def DetectorPositionSequence(self, value: Optional[List[DetectorPositionSequenceItem]]): + if value is None: + self._DetectorPositionSequence = [] + if "DetectorPositionSequence" in self._dataset: + del self._dataset.DetectorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, DetectorPositionSequenceItem) for item in value): + raise ValueError("DetectorPositionSequence must be a list of DetectorPositionSequenceItem objects") + else: + self._DetectorPositionSequence = value + if "DetectorPositionSequence" not in self._dataset: + self._dataset.DetectorPositionSequence = pydicom.Sequence() + self._dataset.DetectorPositionSequence.clear() + self._dataset.DetectorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_DetectorPosition(self, item: DetectorPositionSequenceItem): + if not isinstance(item, DetectorPositionSequenceItem): + raise ValueError("Item must be an instance of DetectorPositionSequenceItem") + self._DetectorPositionSequence.append(item) + if "DetectorPositionSequence" not in self._dataset: + self._dataset.DetectorPositionSequence = pydicom.Sequence() + self._dataset.DetectorPositionSequence.append(item.to_dataset()) + + @property + def XRayAcquisitionDoseSequence(self) -> Optional[List[XRayAcquisitionDoseSequenceItem]]: + if "XRayAcquisitionDoseSequence" in self._dataset: + if len(self._XRayAcquisitionDoseSequence) == len(self._dataset.XRayAcquisitionDoseSequence): + return self._XRayAcquisitionDoseSequence + else: + return [XRayAcquisitionDoseSequenceItem(x) for x in self._dataset.XRayAcquisitionDoseSequence] + return None + + @XRayAcquisitionDoseSequence.setter + def XRayAcquisitionDoseSequence(self, value: Optional[List[XRayAcquisitionDoseSequenceItem]]): + if value is None: + self._XRayAcquisitionDoseSequence = [] + if "XRayAcquisitionDoseSequence" in self._dataset: + del self._dataset.XRayAcquisitionDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayAcquisitionDoseSequenceItem) for item in value): + raise ValueError("XRayAcquisitionDoseSequence must be a list of XRayAcquisitionDoseSequenceItem objects") + else: + self._XRayAcquisitionDoseSequence = value + if "XRayAcquisitionDoseSequence" not in self._dataset: + self._dataset.XRayAcquisitionDoseSequence = pydicom.Sequence() + self._dataset.XRayAcquisitionDoseSequence.clear() + self._dataset.XRayAcquisitionDoseSequence.extend([item.to_dataset() for item in value]) + + def add_XRayAcquisitionDose(self, item: XRayAcquisitionDoseSequenceItem): + if not isinstance(item, XRayAcquisitionDoseSequenceItem): + raise ValueError("Item must be an instance of XRayAcquisitionDoseSequenceItem") + self._XRayAcquisitionDoseSequence.append(item) + if "XRayAcquisitionDoseSequence" not in self._dataset: + self._dataset.XRayAcquisitionDoseSequence = pydicom.Sequence() + self._dataset.XRayAcquisitionDoseSequence.append(item.to_dataset()) + + @property + def XRayGridSequence(self) -> Optional[List[XRayGridSequenceItem]]: + if "XRayGridSequence" in self._dataset: + if len(self._XRayGridSequence) == len(self._dataset.XRayGridSequence): + return self._XRayGridSequence + else: + return [XRayGridSequenceItem(x) for x in self._dataset.XRayGridSequence] + return None + + @XRayGridSequence.setter + def XRayGridSequence(self, value: Optional[List[XRayGridSequenceItem]]): + if value is None: + self._XRayGridSequence = [] + if "XRayGridSequence" in self._dataset: + del self._dataset.XRayGridSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGridSequenceItem) for item in value): + raise ValueError("XRayGridSequence must be a list of XRayGridSequenceItem objects") + else: + self._XRayGridSequence = value + if "XRayGridSequence" not in self._dataset: + self._dataset.XRayGridSequence = pydicom.Sequence() + self._dataset.XRayGridSequence.clear() + self._dataset.XRayGridSequence.extend([item.to_dataset() for item in value]) + + def add_XRayGrid(self, item: XRayGridSequenceItem): + if not isinstance(item, XRayGridSequenceItem): + raise ValueError("Item must be an instance of XRayGridSequenceItem") + self._XRayGridSequence.append(item) + if "XRayGridSequence" not in self._dataset: + self._dataset.XRayGridSequence = pydicom.Sequence() + self._dataset.XRayGridSequence.append(item.to_dataset()) + + @property + def XRayFilterSequence(self) -> Optional[List[XRayFilterSequenceItem]]: + if "XRayFilterSequence" in self._dataset: + if len(self._XRayFilterSequence) == len(self._dataset.XRayFilterSequence): + return self._XRayFilterSequence + else: + return [XRayFilterSequenceItem(x) for x in self._dataset.XRayFilterSequence] + return None + + @XRayFilterSequence.setter + def XRayFilterSequence(self, value: Optional[List[XRayFilterSequenceItem]]): + if value is None: + self._XRayFilterSequence = [] + if "XRayFilterSequence" in self._dataset: + del self._dataset.XRayFilterSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayFilterSequenceItem) for item in value): + raise ValueError("XRayFilterSequence must be a list of XRayFilterSequenceItem objects") + else: + self._XRayFilterSequence = value + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.clear() + self._dataset.XRayFilterSequence.extend([item.to_dataset() for item in value]) + + def add_XRayFilter(self, item: XRayFilterSequenceItem): + if not isinstance(item, XRayFilterSequenceItem): + raise ValueError("Item must be an instance of XRayFilterSequenceItem") + self._XRayFilterSequence.append(item) + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def FramePixelDataPropertiesSequence(self) -> Optional[List[FramePixelDataPropertiesSequenceItem]]: + if "FramePixelDataPropertiesSequence" in self._dataset: + if len(self._FramePixelDataPropertiesSequence) == len(self._dataset.FramePixelDataPropertiesSequence): + return self._FramePixelDataPropertiesSequence + else: + return [FramePixelDataPropertiesSequenceItem(x) for x in self._dataset.FramePixelDataPropertiesSequence] + return None + + @FramePixelDataPropertiesSequence.setter + def FramePixelDataPropertiesSequence(self, value: Optional[List[FramePixelDataPropertiesSequenceItem]]): + if value is None: + self._FramePixelDataPropertiesSequence = [] + if "FramePixelDataPropertiesSequence" in self._dataset: + del self._dataset.FramePixelDataPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelDataPropertiesSequenceItem) for item in value): + raise ValueError("FramePixelDataPropertiesSequence must be a list of FramePixelDataPropertiesSequenceItem objects") + else: + self._FramePixelDataPropertiesSequence = value + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.clear() + self._dataset.FramePixelDataPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelDataProperties(self, item: FramePixelDataPropertiesSequenceItem): + if not isinstance(item, FramePixelDataPropertiesSequenceItem): + raise ValueError("Item must be an instance of FramePixelDataPropertiesSequenceItem") + self._FramePixelDataPropertiesSequence.append(item) + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_16.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_16.py new file mode 100644 index 0000000..9db101d --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_16.py @@ -0,0 +1,978 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_sequence_item import CalibrationSequenceItem +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .collimator_shape_sequence_item import CollimatorShapeSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .exposure_control_sensing_regions_sequence_item import ( + ExposureControlSensingRegionsSequenceItem, +) +from .field_of_view_sequence_item import FieldOfViewSequenceItem +from .frame_acquisition_sequence_item import FrameAcquisitionSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_detector_parameters_sequence_item import FrameDetectorParametersSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_pixel_data_properties_sequence_item import ( + FramePixelDataPropertiesSequenceItem, +) +from .frame_pixel_shift_sequence_item import FramePixelShiftSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .isocenter_reference_system_sequence_item import ( + IsocenterReferenceSystemSequenceItem, +) +from .object_thickness_sequence_item import ObjectThicknessSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .positioner_position_sequence_item import PositionerPositionSequenceItem +from .projection_pixel_calibration_sequence_item import ( + ProjectionPixelCalibrationSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .table_position_sequence_item import TablePositionSequenceItem +from .x_ray_geometry_sequence_item import XRayGeometrySequenceItem +from .xaxrf_frame_characteristics_sequence_item import ( + XAXRFFrameCharacteristicsSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._ProjectionPixelCalibrationSequence: List[ProjectionPixelCalibrationSequenceItem] = [] + self._PositionerPositionSequence: List[PositionerPositionSequenceItem] = [] + self._TablePositionSequence: List[TablePositionSequenceItem] = [] + self._CollimatorShapeSequence: List[CollimatorShapeSequenceItem] = [] + self._XAXRFFrameCharacteristicsSequence: List[XAXRFFrameCharacteristicsSequenceItem] = [] + self._FrameAcquisitionSequence: List[FrameAcquisitionSequenceItem] = [] + self._FieldOfViewSequence: List[FieldOfViewSequenceItem] = [] + self._ExposureControlSensingRegionsSequence: List[ExposureControlSensingRegionsSequenceItem] = [] + self._FrameDetectorParametersSequence: List[FrameDetectorParametersSequenceItem] = [] + self._CalibrationSequence: List[CalibrationSequenceItem] = [] + self._ObjectThicknessSequence: List[ObjectThicknessSequenceItem] = [] + self._IsocenterReferenceSystemSequence: List[IsocenterReferenceSystemSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._XRayGeometrySequence: List[XRayGeometrySequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._FramePixelShiftSequence: List[FramePixelShiftSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._FramePixelDataPropertiesSequence: List[FramePixelDataPropertiesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def ProjectionPixelCalibrationSequence(self) -> Optional[List[ProjectionPixelCalibrationSequenceItem]]: + if "ProjectionPixelCalibrationSequence" in self._dataset: + if len(self._ProjectionPixelCalibrationSequence) == len(self._dataset.ProjectionPixelCalibrationSequence): + return self._ProjectionPixelCalibrationSequence + else: + return [ProjectionPixelCalibrationSequenceItem(x) for x in self._dataset.ProjectionPixelCalibrationSequence] + return None + + @ProjectionPixelCalibrationSequence.setter + def ProjectionPixelCalibrationSequence(self, value: Optional[List[ProjectionPixelCalibrationSequenceItem]]): + if value is None: + self._ProjectionPixelCalibrationSequence = [] + if "ProjectionPixelCalibrationSequence" in self._dataset: + del self._dataset.ProjectionPixelCalibrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ProjectionPixelCalibrationSequenceItem) for item in value + ): + raise ValueError( + "ProjectionPixelCalibrationSequence must be a list of ProjectionPixelCalibrationSequenceItem objects" + ) + else: + self._ProjectionPixelCalibrationSequence = value + if "ProjectionPixelCalibrationSequence" not in self._dataset: + self._dataset.ProjectionPixelCalibrationSequence = pydicom.Sequence() + self._dataset.ProjectionPixelCalibrationSequence.clear() + self._dataset.ProjectionPixelCalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_ProjectionPixelCalibration(self, item: ProjectionPixelCalibrationSequenceItem): + if not isinstance(item, ProjectionPixelCalibrationSequenceItem): + raise ValueError("Item must be an instance of ProjectionPixelCalibrationSequenceItem") + self._ProjectionPixelCalibrationSequence.append(item) + if "ProjectionPixelCalibrationSequence" not in self._dataset: + self._dataset.ProjectionPixelCalibrationSequence = pydicom.Sequence() + self._dataset.ProjectionPixelCalibrationSequence.append(item.to_dataset()) + + @property + def PositionerPositionSequence(self) -> Optional[List[PositionerPositionSequenceItem]]: + if "PositionerPositionSequence" in self._dataset: + if len(self._PositionerPositionSequence) == len(self._dataset.PositionerPositionSequence): + return self._PositionerPositionSequence + else: + return [PositionerPositionSequenceItem(x) for x in self._dataset.PositionerPositionSequence] + return None + + @PositionerPositionSequence.setter + def PositionerPositionSequence(self, value: Optional[List[PositionerPositionSequenceItem]]): + if value is None: + self._PositionerPositionSequence = [] + if "PositionerPositionSequence" in self._dataset: + del self._dataset.PositionerPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PositionerPositionSequenceItem) for item in value): + raise ValueError("PositionerPositionSequence must be a list of PositionerPositionSequenceItem objects") + else: + self._PositionerPositionSequence = value + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.clear() + self._dataset.PositionerPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PositionerPosition(self, item: PositionerPositionSequenceItem): + if not isinstance(item, PositionerPositionSequenceItem): + raise ValueError("Item must be an instance of PositionerPositionSequenceItem") + self._PositionerPositionSequence.append(item) + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.append(item.to_dataset()) + + @property + def TablePositionSequence(self) -> Optional[List[TablePositionSequenceItem]]: + if "TablePositionSequence" in self._dataset: + if len(self._TablePositionSequence) == len(self._dataset.TablePositionSequence): + return self._TablePositionSequence + else: + return [TablePositionSequenceItem(x) for x in self._dataset.TablePositionSequence] + return None + + @TablePositionSequence.setter + def TablePositionSequence(self, value: Optional[List[TablePositionSequenceItem]]): + if value is None: + self._TablePositionSequence = [] + if "TablePositionSequence" in self._dataset: + del self._dataset.TablePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TablePositionSequenceItem) for item in value): + raise ValueError("TablePositionSequence must be a list of TablePositionSequenceItem objects") + else: + self._TablePositionSequence = value + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.clear() + self._dataset.TablePositionSequence.extend([item.to_dataset() for item in value]) + + def add_TablePosition(self, item: TablePositionSequenceItem): + if not isinstance(item, TablePositionSequenceItem): + raise ValueError("Item must be an instance of TablePositionSequenceItem") + self._TablePositionSequence.append(item) + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.append(item.to_dataset()) + + @property + def CollimatorShapeSequence(self) -> Optional[List[CollimatorShapeSequenceItem]]: + if "CollimatorShapeSequence" in self._dataset: + if len(self._CollimatorShapeSequence) == len(self._dataset.CollimatorShapeSequence): + return self._CollimatorShapeSequence + else: + return [CollimatorShapeSequenceItem(x) for x in self._dataset.CollimatorShapeSequence] + return None + + @CollimatorShapeSequence.setter + def CollimatorShapeSequence(self, value: Optional[List[CollimatorShapeSequenceItem]]): + if value is None: + self._CollimatorShapeSequence = [] + if "CollimatorShapeSequence" in self._dataset: + del self._dataset.CollimatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CollimatorShapeSequenceItem) for item in value): + raise ValueError("CollimatorShapeSequence must be a list of CollimatorShapeSequenceItem objects") + else: + self._CollimatorShapeSequence = value + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.clear() + self._dataset.CollimatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CollimatorShape(self, item: CollimatorShapeSequenceItem): + if not isinstance(item, CollimatorShapeSequenceItem): + raise ValueError("Item must be an instance of CollimatorShapeSequenceItem") + self._CollimatorShapeSequence.append(item) + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.append(item.to_dataset()) + + @property + def XAXRFFrameCharacteristicsSequence(self) -> Optional[List[XAXRFFrameCharacteristicsSequenceItem]]: + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + if len(self._XAXRFFrameCharacteristicsSequence) == len(self._dataset.XAXRFFrameCharacteristicsSequence): + return self._XAXRFFrameCharacteristicsSequence + else: + return [XAXRFFrameCharacteristicsSequenceItem(x) for x in self._dataset.XAXRFFrameCharacteristicsSequence] + return None + + @XAXRFFrameCharacteristicsSequence.setter + def XAXRFFrameCharacteristicsSequence(self, value: Optional[List[XAXRFFrameCharacteristicsSequenceItem]]): + if value is None: + self._XAXRFFrameCharacteristicsSequence = [] + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + del self._dataset.XAXRFFrameCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAXRFFrameCharacteristicsSequenceItem) for item in value): + raise ValueError( + "XAXRFFrameCharacteristicsSequence must be a list of XAXRFFrameCharacteristicsSequenceItem objects" + ) + else: + self._XAXRFFrameCharacteristicsSequence = value + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.clear() + self._dataset.XAXRFFrameCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_XAXRFFrameCharacteristics(self, item: XAXRFFrameCharacteristicsSequenceItem): + if not isinstance(item, XAXRFFrameCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of XAXRFFrameCharacteristicsSequenceItem") + self._XAXRFFrameCharacteristicsSequence.append(item) + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.append(item.to_dataset()) + + @property + def FrameAcquisitionSequence(self) -> Optional[List[FrameAcquisitionSequenceItem]]: + if "FrameAcquisitionSequence" in self._dataset: + if len(self._FrameAcquisitionSequence) == len(self._dataset.FrameAcquisitionSequence): + return self._FrameAcquisitionSequence + else: + return [FrameAcquisitionSequenceItem(x) for x in self._dataset.FrameAcquisitionSequence] + return None + + @FrameAcquisitionSequence.setter + def FrameAcquisitionSequence(self, value: Optional[List[FrameAcquisitionSequenceItem]]): + if value is None: + self._FrameAcquisitionSequence = [] + if "FrameAcquisitionSequence" in self._dataset: + del self._dataset.FrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAcquisitionSequenceItem) for item in value): + raise ValueError("FrameAcquisitionSequence must be a list of FrameAcquisitionSequenceItem objects") + else: + self._FrameAcquisitionSequence = value + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.clear() + self._dataset.FrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameAcquisition(self, item: FrameAcquisitionSequenceItem): + if not isinstance(item, FrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of FrameAcquisitionSequenceItem") + self._FrameAcquisitionSequence.append(item) + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.append(item.to_dataset()) + + @property + def FieldOfViewSequence(self) -> Optional[List[FieldOfViewSequenceItem]]: + if "FieldOfViewSequence" in self._dataset: + if len(self._FieldOfViewSequence) == len(self._dataset.FieldOfViewSequence): + return self._FieldOfViewSequence + else: + return [FieldOfViewSequenceItem(x) for x in self._dataset.FieldOfViewSequence] + return None + + @FieldOfViewSequence.setter + def FieldOfViewSequence(self, value: Optional[List[FieldOfViewSequenceItem]]): + if value is None: + self._FieldOfViewSequence = [] + if "FieldOfViewSequence" in self._dataset: + del self._dataset.FieldOfViewSequence + elif not isinstance(value, list) or not all(isinstance(item, FieldOfViewSequenceItem) for item in value): + raise ValueError("FieldOfViewSequence must be a list of FieldOfViewSequenceItem objects") + else: + self._FieldOfViewSequence = value + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.clear() + self._dataset.FieldOfViewSequence.extend([item.to_dataset() for item in value]) + + def add_FieldOfView(self, item: FieldOfViewSequenceItem): + if not isinstance(item, FieldOfViewSequenceItem): + raise ValueError("Item must be an instance of FieldOfViewSequenceItem") + self._FieldOfViewSequence.append(item) + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.append(item.to_dataset()) + + @property + def ExposureControlSensingRegionsSequence(self) -> Optional[List[ExposureControlSensingRegionsSequenceItem]]: + if "ExposureControlSensingRegionsSequence" in self._dataset: + if len(self._ExposureControlSensingRegionsSequence) == len(self._dataset.ExposureControlSensingRegionsSequence): + return self._ExposureControlSensingRegionsSequence + else: + return [ + ExposureControlSensingRegionsSequenceItem(x) for x in self._dataset.ExposureControlSensingRegionsSequence + ] + return None + + @ExposureControlSensingRegionsSequence.setter + def ExposureControlSensingRegionsSequence(self, value: Optional[List[ExposureControlSensingRegionsSequenceItem]]): + if value is None: + self._ExposureControlSensingRegionsSequence = [] + if "ExposureControlSensingRegionsSequence" in self._dataset: + del self._dataset.ExposureControlSensingRegionsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ExposureControlSensingRegionsSequenceItem) for item in value + ): + raise ValueError( + "ExposureControlSensingRegionsSequence must be a list of ExposureControlSensingRegionsSequenceItem objects" + ) + else: + self._ExposureControlSensingRegionsSequence = value + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.clear() + self._dataset.ExposureControlSensingRegionsSequence.extend([item.to_dataset() for item in value]) + + def add_ExposureControlSensingRegions(self, item: ExposureControlSensingRegionsSequenceItem): + if not isinstance(item, ExposureControlSensingRegionsSequenceItem): + raise ValueError("Item must be an instance of ExposureControlSensingRegionsSequenceItem") + self._ExposureControlSensingRegionsSequence.append(item) + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.append(item.to_dataset()) + + @property + def FrameDetectorParametersSequence(self) -> Optional[List[FrameDetectorParametersSequenceItem]]: + if "FrameDetectorParametersSequence" in self._dataset: + if len(self._FrameDetectorParametersSequence) == len(self._dataset.FrameDetectorParametersSequence): + return self._FrameDetectorParametersSequence + else: + return [FrameDetectorParametersSequenceItem(x) for x in self._dataset.FrameDetectorParametersSequence] + return None + + @FrameDetectorParametersSequence.setter + def FrameDetectorParametersSequence(self, value: Optional[List[FrameDetectorParametersSequenceItem]]): + if value is None: + self._FrameDetectorParametersSequence = [] + if "FrameDetectorParametersSequence" in self._dataset: + del self._dataset.FrameDetectorParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDetectorParametersSequenceItem) for item in value): + raise ValueError("FrameDetectorParametersSequence must be a list of FrameDetectorParametersSequenceItem objects") + else: + self._FrameDetectorParametersSequence = value + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.clear() + self._dataset.FrameDetectorParametersSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDetectorParameters(self, item: FrameDetectorParametersSequenceItem): + if not isinstance(item, FrameDetectorParametersSequenceItem): + raise ValueError("Item must be an instance of FrameDetectorParametersSequenceItem") + self._FrameDetectorParametersSequence.append(item) + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.append(item.to_dataset()) + + @property + def CalibrationSequence(self) -> Optional[List[CalibrationSequenceItem]]: + if "CalibrationSequence" in self._dataset: + if len(self._CalibrationSequence) == len(self._dataset.CalibrationSequence): + return self._CalibrationSequence + else: + return [CalibrationSequenceItem(x) for x in self._dataset.CalibrationSequence] + return None + + @CalibrationSequence.setter + def CalibrationSequence(self, value: Optional[List[CalibrationSequenceItem]]): + if value is None: + self._CalibrationSequence = [] + if "CalibrationSequence" in self._dataset: + del self._dataset.CalibrationSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationSequenceItem) for item in value): + raise ValueError("CalibrationSequence must be a list of CalibrationSequenceItem objects") + else: + self._CalibrationSequence = value + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.clear() + self._dataset.CalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_Calibration(self, item: CalibrationSequenceItem): + if not isinstance(item, CalibrationSequenceItem): + raise ValueError("Item must be an instance of CalibrationSequenceItem") + self._CalibrationSequence.append(item) + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.append(item.to_dataset()) + + @property + def ObjectThicknessSequence(self) -> Optional[List[ObjectThicknessSequenceItem]]: + if "ObjectThicknessSequence" in self._dataset: + if len(self._ObjectThicknessSequence) == len(self._dataset.ObjectThicknessSequence): + return self._ObjectThicknessSequence + else: + return [ObjectThicknessSequenceItem(x) for x in self._dataset.ObjectThicknessSequence] + return None + + @ObjectThicknessSequence.setter + def ObjectThicknessSequence(self, value: Optional[List[ObjectThicknessSequenceItem]]): + if value is None: + self._ObjectThicknessSequence = [] + if "ObjectThicknessSequence" in self._dataset: + del self._dataset.ObjectThicknessSequence + elif not isinstance(value, list) or not all(isinstance(item, ObjectThicknessSequenceItem) for item in value): + raise ValueError("ObjectThicknessSequence must be a list of ObjectThicknessSequenceItem objects") + else: + self._ObjectThicknessSequence = value + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.clear() + self._dataset.ObjectThicknessSequence.extend([item.to_dataset() for item in value]) + + def add_ObjectThickness(self, item: ObjectThicknessSequenceItem): + if not isinstance(item, ObjectThicknessSequenceItem): + raise ValueError("Item must be an instance of ObjectThicknessSequenceItem") + self._ObjectThicknessSequence.append(item) + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.append(item.to_dataset()) + + @property + def IsocenterReferenceSystemSequence(self) -> Optional[List[IsocenterReferenceSystemSequenceItem]]: + if "IsocenterReferenceSystemSequence" in self._dataset: + if len(self._IsocenterReferenceSystemSequence) == len(self._dataset.IsocenterReferenceSystemSequence): + return self._IsocenterReferenceSystemSequence + else: + return [IsocenterReferenceSystemSequenceItem(x) for x in self._dataset.IsocenterReferenceSystemSequence] + return None + + @IsocenterReferenceSystemSequence.setter + def IsocenterReferenceSystemSequence(self, value: Optional[List[IsocenterReferenceSystemSequenceItem]]): + if value is None: + self._IsocenterReferenceSystemSequence = [] + if "IsocenterReferenceSystemSequence" in self._dataset: + del self._dataset.IsocenterReferenceSystemSequence + elif not isinstance(value, list) or not all(isinstance(item, IsocenterReferenceSystemSequenceItem) for item in value): + raise ValueError("IsocenterReferenceSystemSequence must be a list of IsocenterReferenceSystemSequenceItem objects") + else: + self._IsocenterReferenceSystemSequence = value + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.clear() + self._dataset.IsocenterReferenceSystemSequence.extend([item.to_dataset() for item in value]) + + def add_IsocenterReferenceSystem(self, item: IsocenterReferenceSystemSequenceItem): + if not isinstance(item, IsocenterReferenceSystemSequenceItem): + raise ValueError("Item must be an instance of IsocenterReferenceSystemSequenceItem") + self._IsocenterReferenceSystemSequence.append(item) + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def XRayGeometrySequence(self) -> Optional[List[XRayGeometrySequenceItem]]: + if "XRayGeometrySequence" in self._dataset: + if len(self._XRayGeometrySequence) == len(self._dataset.XRayGeometrySequence): + return self._XRayGeometrySequence + else: + return [XRayGeometrySequenceItem(x) for x in self._dataset.XRayGeometrySequence] + return None + + @XRayGeometrySequence.setter + def XRayGeometrySequence(self, value: Optional[List[XRayGeometrySequenceItem]]): + if value is None: + self._XRayGeometrySequence = [] + if "XRayGeometrySequence" in self._dataset: + del self._dataset.XRayGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGeometrySequenceItem) for item in value): + raise ValueError("XRayGeometrySequence must be a list of XRayGeometrySequenceItem objects") + else: + self._XRayGeometrySequence = value + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.clear() + self._dataset.XRayGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_XRayGeometry(self, item: XRayGeometrySequenceItem): + if not isinstance(item, XRayGeometrySequenceItem): + raise ValueError("Item must be an instance of XRayGeometrySequenceItem") + self._XRayGeometrySequence.append(item) + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def FramePixelShiftSequence(self) -> Optional[List[FramePixelShiftSequenceItem]]: + if "FramePixelShiftSequence" in self._dataset: + if len(self._FramePixelShiftSequence) == len(self._dataset.FramePixelShiftSequence): + return self._FramePixelShiftSequence + else: + return [FramePixelShiftSequenceItem(x) for x in self._dataset.FramePixelShiftSequence] + return None + + @FramePixelShiftSequence.setter + def FramePixelShiftSequence(self, value: Optional[List[FramePixelShiftSequenceItem]]): + if value is None: + self._FramePixelShiftSequence = [] + if "FramePixelShiftSequence" in self._dataset: + del self._dataset.FramePixelShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelShiftSequenceItem) for item in value): + raise ValueError("FramePixelShiftSequence must be a list of FramePixelShiftSequenceItem objects") + else: + self._FramePixelShiftSequence = value + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.clear() + self._dataset.FramePixelShiftSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelShift(self, item: FramePixelShiftSequenceItem): + if not isinstance(item, FramePixelShiftSequenceItem): + raise ValueError("Item must be an instance of FramePixelShiftSequenceItem") + self._FramePixelShiftSequence.append(item) + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.append(item.to_dataset()) + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def FramePixelDataPropertiesSequence(self) -> Optional[List[FramePixelDataPropertiesSequenceItem]]: + if "FramePixelDataPropertiesSequence" in self._dataset: + if len(self._FramePixelDataPropertiesSequence) == len(self._dataset.FramePixelDataPropertiesSequence): + return self._FramePixelDataPropertiesSequence + else: + return [FramePixelDataPropertiesSequenceItem(x) for x in self._dataset.FramePixelDataPropertiesSequence] + return None + + @FramePixelDataPropertiesSequence.setter + def FramePixelDataPropertiesSequence(self, value: Optional[List[FramePixelDataPropertiesSequenceItem]]): + if value is None: + self._FramePixelDataPropertiesSequence = [] + if "FramePixelDataPropertiesSequence" in self._dataset: + del self._dataset.FramePixelDataPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelDataPropertiesSequenceItem) for item in value): + raise ValueError("FramePixelDataPropertiesSequence must be a list of FramePixelDataPropertiesSequenceItem objects") + else: + self._FramePixelDataPropertiesSequence = value + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.clear() + self._dataset.FramePixelDataPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelDataProperties(self, item: FramePixelDataPropertiesSequenceItem): + if not isinstance(item, FramePixelDataPropertiesSequenceItem): + raise ValueError("Item must be an instance of FramePixelDataPropertiesSequenceItem") + self._FramePixelDataPropertiesSequence.append(item) + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_17.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_17.py new file mode 100644 index 0000000..b26bfe7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_17.py @@ -0,0 +1,668 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .mr_image_frame_type_sequence_item import MRImageFrameTypeSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._MRImageFrameTypeSequence: List[MRImageFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def MRImageFrameTypeSequence(self) -> Optional[List[MRImageFrameTypeSequenceItem]]: + if "MRImageFrameTypeSequence" in self._dataset: + if len(self._MRImageFrameTypeSequence) == len(self._dataset.MRImageFrameTypeSequence): + return self._MRImageFrameTypeSequence + else: + return [MRImageFrameTypeSequenceItem(x) for x in self._dataset.MRImageFrameTypeSequence] + return None + + @MRImageFrameTypeSequence.setter + def MRImageFrameTypeSequence(self, value: Optional[List[MRImageFrameTypeSequenceItem]]): + if value is None: + self._MRImageFrameTypeSequence = [] + if "MRImageFrameTypeSequence" in self._dataset: + del self._dataset.MRImageFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, MRImageFrameTypeSequenceItem) for item in value): + raise ValueError("MRImageFrameTypeSequence must be a list of MRImageFrameTypeSequenceItem objects") + else: + self._MRImageFrameTypeSequence = value + if "MRImageFrameTypeSequence" not in self._dataset: + self._dataset.MRImageFrameTypeSequence = pydicom.Sequence() + self._dataset.MRImageFrameTypeSequence.clear() + self._dataset.MRImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_MRImageFrameType(self, item: MRImageFrameTypeSequenceItem): + if not isinstance(item, MRImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of MRImageFrameTypeSequenceItem") + self._MRImageFrameTypeSequence.append(item) + if "MRImageFrameTypeSequence" not in self._dataset: + self._dataset.MRImageFrameTypeSequence = pydicom.Sequence() + self._dataset.MRImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_19.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_19.py new file mode 100644 index 0000000..7ede013 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_19.py @@ -0,0 +1,954 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .ct_acquisition_details_sequence_item import CTAcquisitionDetailsSequenceItem +from .ct_acquisition_type_sequence_item import CTAcquisitionTypeSequenceItem +from .ct_additional_x_ray_source_sequence_item import CTAdditionalXRaySourceSequenceItem +from .ct_exposure_sequence_item import CTExposureSequenceItem +from .ct_geometry_sequence_item import CTGeometrySequenceItem +from .ct_image_frame_type_sequence_item import CTImageFrameTypeSequenceItem +from .ct_position_sequence_item import CTPositionSequenceItem +from .ct_reconstruction_sequence_item import CTReconstructionSequenceItem +from .ct_table_dynamics_sequence_item import CTTableDynamicsSequenceItem +from .ctx_ray_details_sequence_item import CTXRayDetailsSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .multienergy_ct_characteristics_sequence_item import ( + MultienergyCTCharacteristicsSequenceItem, +) +from .multienergy_ct_processing_sequence_item import MultienergyCTProcessingSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._CTAcquisitionTypeSequence: List[CTAcquisitionTypeSequenceItem] = [] + self._CTAcquisitionDetailsSequence: List[CTAcquisitionDetailsSequenceItem] = [] + self._CTTableDynamicsSequence: List[CTTableDynamicsSequenceItem] = [] + self._CTGeometrySequence: List[CTGeometrySequenceItem] = [] + self._CTReconstructionSequence: List[CTReconstructionSequenceItem] = [] + self._CTExposureSequence: List[CTExposureSequenceItem] = [] + self._CTXRayDetailsSequence: List[CTXRayDetailsSequenceItem] = [] + self._CTPositionSequence: List[CTPositionSequenceItem] = [] + self._CTImageFrameTypeSequence: List[CTImageFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._CTAdditionalXRaySourceSequence: List[CTAdditionalXRaySourceSequenceItem] = [] + self._MultienergyCTProcessingSequence: List[MultienergyCTProcessingSequenceItem] = [] + self._MultienergyCTCharacteristicsSequence: List[MultienergyCTCharacteristicsSequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def CTAcquisitionTypeSequence(self) -> Optional[List[CTAcquisitionTypeSequenceItem]]: + if "CTAcquisitionTypeSequence" in self._dataset: + if len(self._CTAcquisitionTypeSequence) == len(self._dataset.CTAcquisitionTypeSequence): + return self._CTAcquisitionTypeSequence + else: + return [CTAcquisitionTypeSequenceItem(x) for x in self._dataset.CTAcquisitionTypeSequence] + return None + + @CTAcquisitionTypeSequence.setter + def CTAcquisitionTypeSequence(self, value: Optional[List[CTAcquisitionTypeSequenceItem]]): + if value is None: + self._CTAcquisitionTypeSequence = [] + if "CTAcquisitionTypeSequence" in self._dataset: + del self._dataset.CTAcquisitionTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAcquisitionTypeSequenceItem) for item in value): + raise ValueError("CTAcquisitionTypeSequence must be a list of CTAcquisitionTypeSequenceItem objects") + else: + self._CTAcquisitionTypeSequence = value + if "CTAcquisitionTypeSequence" not in self._dataset: + self._dataset.CTAcquisitionTypeSequence = pydicom.Sequence() + self._dataset.CTAcquisitionTypeSequence.clear() + self._dataset.CTAcquisitionTypeSequence.extend([item.to_dataset() for item in value]) + + def add_CTAcquisitionType(self, item: CTAcquisitionTypeSequenceItem): + if not isinstance(item, CTAcquisitionTypeSequenceItem): + raise ValueError("Item must be an instance of CTAcquisitionTypeSequenceItem") + self._CTAcquisitionTypeSequence.append(item) + if "CTAcquisitionTypeSequence" not in self._dataset: + self._dataset.CTAcquisitionTypeSequence = pydicom.Sequence() + self._dataset.CTAcquisitionTypeSequence.append(item.to_dataset()) + + @property + def CTAcquisitionDetailsSequence(self) -> Optional[List[CTAcquisitionDetailsSequenceItem]]: + if "CTAcquisitionDetailsSequence" in self._dataset: + if len(self._CTAcquisitionDetailsSequence) == len(self._dataset.CTAcquisitionDetailsSequence): + return self._CTAcquisitionDetailsSequence + else: + return [CTAcquisitionDetailsSequenceItem(x) for x in self._dataset.CTAcquisitionDetailsSequence] + return None + + @CTAcquisitionDetailsSequence.setter + def CTAcquisitionDetailsSequence(self, value: Optional[List[CTAcquisitionDetailsSequenceItem]]): + if value is None: + self._CTAcquisitionDetailsSequence = [] + if "CTAcquisitionDetailsSequence" in self._dataset: + del self._dataset.CTAcquisitionDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAcquisitionDetailsSequenceItem) for item in value): + raise ValueError("CTAcquisitionDetailsSequence must be a list of CTAcquisitionDetailsSequenceItem objects") + else: + self._CTAcquisitionDetailsSequence = value + if "CTAcquisitionDetailsSequence" not in self._dataset: + self._dataset.CTAcquisitionDetailsSequence = pydicom.Sequence() + self._dataset.CTAcquisitionDetailsSequence.clear() + self._dataset.CTAcquisitionDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTAcquisitionDetails(self, item: CTAcquisitionDetailsSequenceItem): + if not isinstance(item, CTAcquisitionDetailsSequenceItem): + raise ValueError("Item must be an instance of CTAcquisitionDetailsSequenceItem") + self._CTAcquisitionDetailsSequence.append(item) + if "CTAcquisitionDetailsSequence" not in self._dataset: + self._dataset.CTAcquisitionDetailsSequence = pydicom.Sequence() + self._dataset.CTAcquisitionDetailsSequence.append(item.to_dataset()) + + @property + def CTTableDynamicsSequence(self) -> Optional[List[CTTableDynamicsSequenceItem]]: + if "CTTableDynamicsSequence" in self._dataset: + if len(self._CTTableDynamicsSequence) == len(self._dataset.CTTableDynamicsSequence): + return self._CTTableDynamicsSequence + else: + return [CTTableDynamicsSequenceItem(x) for x in self._dataset.CTTableDynamicsSequence] + return None + + @CTTableDynamicsSequence.setter + def CTTableDynamicsSequence(self, value: Optional[List[CTTableDynamicsSequenceItem]]): + if value is None: + self._CTTableDynamicsSequence = [] + if "CTTableDynamicsSequence" in self._dataset: + del self._dataset.CTTableDynamicsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTTableDynamicsSequenceItem) for item in value): + raise ValueError("CTTableDynamicsSequence must be a list of CTTableDynamicsSequenceItem objects") + else: + self._CTTableDynamicsSequence = value + if "CTTableDynamicsSequence" not in self._dataset: + self._dataset.CTTableDynamicsSequence = pydicom.Sequence() + self._dataset.CTTableDynamicsSequence.clear() + self._dataset.CTTableDynamicsSequence.extend([item.to_dataset() for item in value]) + + def add_CTTableDynamics(self, item: CTTableDynamicsSequenceItem): + if not isinstance(item, CTTableDynamicsSequenceItem): + raise ValueError("Item must be an instance of CTTableDynamicsSequenceItem") + self._CTTableDynamicsSequence.append(item) + if "CTTableDynamicsSequence" not in self._dataset: + self._dataset.CTTableDynamicsSequence = pydicom.Sequence() + self._dataset.CTTableDynamicsSequence.append(item.to_dataset()) + + @property + def CTGeometrySequence(self) -> Optional[List[CTGeometrySequenceItem]]: + if "CTGeometrySequence" in self._dataset: + if len(self._CTGeometrySequence) == len(self._dataset.CTGeometrySequence): + return self._CTGeometrySequence + else: + return [CTGeometrySequenceItem(x) for x in self._dataset.CTGeometrySequence] + return None + + @CTGeometrySequence.setter + def CTGeometrySequence(self, value: Optional[List[CTGeometrySequenceItem]]): + if value is None: + self._CTGeometrySequence = [] + if "CTGeometrySequence" in self._dataset: + del self._dataset.CTGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, CTGeometrySequenceItem) for item in value): + raise ValueError("CTGeometrySequence must be a list of CTGeometrySequenceItem objects") + else: + self._CTGeometrySequence = value + if "CTGeometrySequence" not in self._dataset: + self._dataset.CTGeometrySequence = pydicom.Sequence() + self._dataset.CTGeometrySequence.clear() + self._dataset.CTGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_CTGeometry(self, item: CTGeometrySequenceItem): + if not isinstance(item, CTGeometrySequenceItem): + raise ValueError("Item must be an instance of CTGeometrySequenceItem") + self._CTGeometrySequence.append(item) + if "CTGeometrySequence" not in self._dataset: + self._dataset.CTGeometrySequence = pydicom.Sequence() + self._dataset.CTGeometrySequence.append(item.to_dataset()) + + @property + def CTReconstructionSequence(self) -> Optional[List[CTReconstructionSequenceItem]]: + if "CTReconstructionSequence" in self._dataset: + if len(self._CTReconstructionSequence) == len(self._dataset.CTReconstructionSequence): + return self._CTReconstructionSequence + else: + return [CTReconstructionSequenceItem(x) for x in self._dataset.CTReconstructionSequence] + return None + + @CTReconstructionSequence.setter + def CTReconstructionSequence(self, value: Optional[List[CTReconstructionSequenceItem]]): + if value is None: + self._CTReconstructionSequence = [] + if "CTReconstructionSequence" in self._dataset: + del self._dataset.CTReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, CTReconstructionSequenceItem) for item in value): + raise ValueError("CTReconstructionSequence must be a list of CTReconstructionSequenceItem objects") + else: + self._CTReconstructionSequence = value + if "CTReconstructionSequence" not in self._dataset: + self._dataset.CTReconstructionSequence = pydicom.Sequence() + self._dataset.CTReconstructionSequence.clear() + self._dataset.CTReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_CTReconstruction(self, item: CTReconstructionSequenceItem): + if not isinstance(item, CTReconstructionSequenceItem): + raise ValueError("Item must be an instance of CTReconstructionSequenceItem") + self._CTReconstructionSequence.append(item) + if "CTReconstructionSequence" not in self._dataset: + self._dataset.CTReconstructionSequence = pydicom.Sequence() + self._dataset.CTReconstructionSequence.append(item.to_dataset()) + + @property + def CTExposureSequence(self) -> Optional[List[CTExposureSequenceItem]]: + if "CTExposureSequence" in self._dataset: + if len(self._CTExposureSequence) == len(self._dataset.CTExposureSequence): + return self._CTExposureSequence + else: + return [CTExposureSequenceItem(x) for x in self._dataset.CTExposureSequence] + return None + + @CTExposureSequence.setter + def CTExposureSequence(self, value: Optional[List[CTExposureSequenceItem]]): + if value is None: + self._CTExposureSequence = [] + if "CTExposureSequence" in self._dataset: + del self._dataset.CTExposureSequence + elif not isinstance(value, list) or not all(isinstance(item, CTExposureSequenceItem) for item in value): + raise ValueError("CTExposureSequence must be a list of CTExposureSequenceItem objects") + else: + self._CTExposureSequence = value + if "CTExposureSequence" not in self._dataset: + self._dataset.CTExposureSequence = pydicom.Sequence() + self._dataset.CTExposureSequence.clear() + self._dataset.CTExposureSequence.extend([item.to_dataset() for item in value]) + + def add_CTExposure(self, item: CTExposureSequenceItem): + if not isinstance(item, CTExposureSequenceItem): + raise ValueError("Item must be an instance of CTExposureSequenceItem") + self._CTExposureSequence.append(item) + if "CTExposureSequence" not in self._dataset: + self._dataset.CTExposureSequence = pydicom.Sequence() + self._dataset.CTExposureSequence.append(item.to_dataset()) + + @property + def CTXRayDetailsSequence(self) -> Optional[List[CTXRayDetailsSequenceItem]]: + if "CTXRayDetailsSequence" in self._dataset: + if len(self._CTXRayDetailsSequence) == len(self._dataset.CTXRayDetailsSequence): + return self._CTXRayDetailsSequence + else: + return [CTXRayDetailsSequenceItem(x) for x in self._dataset.CTXRayDetailsSequence] + return None + + @CTXRayDetailsSequence.setter + def CTXRayDetailsSequence(self, value: Optional[List[CTXRayDetailsSequenceItem]]): + if value is None: + self._CTXRayDetailsSequence = [] + if "CTXRayDetailsSequence" in self._dataset: + del self._dataset.CTXRayDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTXRayDetailsSequenceItem) for item in value): + raise ValueError("CTXRayDetailsSequence must be a list of CTXRayDetailsSequenceItem objects") + else: + self._CTXRayDetailsSequence = value + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.clear() + self._dataset.CTXRayDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTXRayDetails(self, item: CTXRayDetailsSequenceItem): + if not isinstance(item, CTXRayDetailsSequenceItem): + raise ValueError("Item must be an instance of CTXRayDetailsSequenceItem") + self._CTXRayDetailsSequence.append(item) + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.append(item.to_dataset()) + + @property + def CTPositionSequence(self) -> Optional[List[CTPositionSequenceItem]]: + if "CTPositionSequence" in self._dataset: + if len(self._CTPositionSequence) == len(self._dataset.CTPositionSequence): + return self._CTPositionSequence + else: + return [CTPositionSequenceItem(x) for x in self._dataset.CTPositionSequence] + return None + + @CTPositionSequence.setter + def CTPositionSequence(self, value: Optional[List[CTPositionSequenceItem]]): + if value is None: + self._CTPositionSequence = [] + if "CTPositionSequence" in self._dataset: + del self._dataset.CTPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, CTPositionSequenceItem) for item in value): + raise ValueError("CTPositionSequence must be a list of CTPositionSequenceItem objects") + else: + self._CTPositionSequence = value + if "CTPositionSequence" not in self._dataset: + self._dataset.CTPositionSequence = pydicom.Sequence() + self._dataset.CTPositionSequence.clear() + self._dataset.CTPositionSequence.extend([item.to_dataset() for item in value]) + + def add_CTPosition(self, item: CTPositionSequenceItem): + if not isinstance(item, CTPositionSequenceItem): + raise ValueError("Item must be an instance of CTPositionSequenceItem") + self._CTPositionSequence.append(item) + if "CTPositionSequence" not in self._dataset: + self._dataset.CTPositionSequence = pydicom.Sequence() + self._dataset.CTPositionSequence.append(item.to_dataset()) + + @property + def CTImageFrameTypeSequence(self) -> Optional[List[CTImageFrameTypeSequenceItem]]: + if "CTImageFrameTypeSequence" in self._dataset: + if len(self._CTImageFrameTypeSequence) == len(self._dataset.CTImageFrameTypeSequence): + return self._CTImageFrameTypeSequence + else: + return [CTImageFrameTypeSequenceItem(x) for x in self._dataset.CTImageFrameTypeSequence] + return None + + @CTImageFrameTypeSequence.setter + def CTImageFrameTypeSequence(self, value: Optional[List[CTImageFrameTypeSequenceItem]]): + if value is None: + self._CTImageFrameTypeSequence = [] + if "CTImageFrameTypeSequence" in self._dataset: + del self._dataset.CTImageFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, CTImageFrameTypeSequenceItem) for item in value): + raise ValueError("CTImageFrameTypeSequence must be a list of CTImageFrameTypeSequenceItem objects") + else: + self._CTImageFrameTypeSequence = value + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.clear() + self._dataset.CTImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_CTImageFrameType(self, item: CTImageFrameTypeSequenceItem): + if not isinstance(item, CTImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of CTImageFrameTypeSequenceItem") + self._CTImageFrameTypeSequence.append(item) + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def CTAdditionalXRaySourceSequence(self) -> Optional[List[CTAdditionalXRaySourceSequenceItem]]: + if "CTAdditionalXRaySourceSequence" in self._dataset: + if len(self._CTAdditionalXRaySourceSequence) == len(self._dataset.CTAdditionalXRaySourceSequence): + return self._CTAdditionalXRaySourceSequence + else: + return [CTAdditionalXRaySourceSequenceItem(x) for x in self._dataset.CTAdditionalXRaySourceSequence] + return None + + @CTAdditionalXRaySourceSequence.setter + def CTAdditionalXRaySourceSequence(self, value: Optional[List[CTAdditionalXRaySourceSequenceItem]]): + if value is None: + self._CTAdditionalXRaySourceSequence = [] + if "CTAdditionalXRaySourceSequence" in self._dataset: + del self._dataset.CTAdditionalXRaySourceSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAdditionalXRaySourceSequenceItem) for item in value): + raise ValueError("CTAdditionalXRaySourceSequence must be a list of CTAdditionalXRaySourceSequenceItem objects") + else: + self._CTAdditionalXRaySourceSequence = value + if "CTAdditionalXRaySourceSequence" not in self._dataset: + self._dataset.CTAdditionalXRaySourceSequence = pydicom.Sequence() + self._dataset.CTAdditionalXRaySourceSequence.clear() + self._dataset.CTAdditionalXRaySourceSequence.extend([item.to_dataset() for item in value]) + + def add_CTAdditionalXRaySource(self, item: CTAdditionalXRaySourceSequenceItem): + if not isinstance(item, CTAdditionalXRaySourceSequenceItem): + raise ValueError("Item must be an instance of CTAdditionalXRaySourceSequenceItem") + self._CTAdditionalXRaySourceSequence.append(item) + if "CTAdditionalXRaySourceSequence" not in self._dataset: + self._dataset.CTAdditionalXRaySourceSequence = pydicom.Sequence() + self._dataset.CTAdditionalXRaySourceSequence.append(item.to_dataset()) + + @property + def MultienergyCTProcessingSequence(self) -> Optional[List[MultienergyCTProcessingSequenceItem]]: + if "MultienergyCTProcessingSequence" in self._dataset: + if len(self._MultienergyCTProcessingSequence) == len(self._dataset.MultienergyCTProcessingSequence): + return self._MultienergyCTProcessingSequence + else: + return [MultienergyCTProcessingSequenceItem(x) for x in self._dataset.MultienergyCTProcessingSequence] + return None + + @MultienergyCTProcessingSequence.setter + def MultienergyCTProcessingSequence(self, value: Optional[List[MultienergyCTProcessingSequenceItem]]): + if value is None: + self._MultienergyCTProcessingSequence = [] + if "MultienergyCTProcessingSequence" in self._dataset: + del self._dataset.MultienergyCTProcessingSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTProcessingSequenceItem) for item in value): + raise ValueError("MultienergyCTProcessingSequence must be a list of MultienergyCTProcessingSequenceItem objects") + else: + self._MultienergyCTProcessingSequence = value + if "MultienergyCTProcessingSequence" not in self._dataset: + self._dataset.MultienergyCTProcessingSequence = pydicom.Sequence() + self._dataset.MultienergyCTProcessingSequence.clear() + self._dataset.MultienergyCTProcessingSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTProcessing(self, item: MultienergyCTProcessingSequenceItem): + if not isinstance(item, MultienergyCTProcessingSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTProcessingSequenceItem") + self._MultienergyCTProcessingSequence.append(item) + if "MultienergyCTProcessingSequence" not in self._dataset: + self._dataset.MultienergyCTProcessingSequence = pydicom.Sequence() + self._dataset.MultienergyCTProcessingSequence.append(item.to_dataset()) + + @property + def MultienergyCTCharacteristicsSequence(self) -> Optional[List[MultienergyCTCharacteristicsSequenceItem]]: + if "MultienergyCTCharacteristicsSequence" in self._dataset: + if len(self._MultienergyCTCharacteristicsSequence) == len(self._dataset.MultienergyCTCharacteristicsSequence): + return self._MultienergyCTCharacteristicsSequence + else: + return [ + MultienergyCTCharacteristicsSequenceItem(x) for x in self._dataset.MultienergyCTCharacteristicsSequence + ] + return None + + @MultienergyCTCharacteristicsSequence.setter + def MultienergyCTCharacteristicsSequence(self, value: Optional[List[MultienergyCTCharacteristicsSequenceItem]]): + if value is None: + self._MultienergyCTCharacteristicsSequence = [] + if "MultienergyCTCharacteristicsSequence" in self._dataset: + del self._dataset.MultienergyCTCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, MultienergyCTCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "MultienergyCTCharacteristicsSequence must be a list of MultienergyCTCharacteristicsSequenceItem objects" + ) + else: + self._MultienergyCTCharacteristicsSequence = value + if "MultienergyCTCharacteristicsSequence" not in self._dataset: + self._dataset.MultienergyCTCharacteristicsSequence = pydicom.Sequence() + self._dataset.MultienergyCTCharacteristicsSequence.clear() + self._dataset.MultienergyCTCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTCharacteristics(self, item: MultienergyCTCharacteristicsSequenceItem): + if not isinstance(item, MultienergyCTCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTCharacteristicsSequenceItem") + self._MultienergyCTCharacteristicsSequence.append(item) + if "MultienergyCTCharacteristicsSequence" not in self._dataset: + self._dataset.MultienergyCTCharacteristicsSequence = pydicom.Sequence() + self._dataset.MultienergyCTCharacteristicsSequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_2.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_2.py new file mode 100644 index 0000000..f7ca33b --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_2.py @@ -0,0 +1,456 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .biopsy_target_sequence_item import BiopsyTargetSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .x_ray3_d_frame_type_sequence_item import XRay3DFrameTypeSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._BiopsyTargetSequence: List[BiopsyTargetSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._XRay3DFrameTypeSequence: List[XRay3DFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def BiopsyTargetSequence(self) -> Optional[List[BiopsyTargetSequenceItem]]: + if "BiopsyTargetSequence" in self._dataset: + if len(self._BiopsyTargetSequence) == len(self._dataset.BiopsyTargetSequence): + return self._BiopsyTargetSequence + else: + return [BiopsyTargetSequenceItem(x) for x in self._dataset.BiopsyTargetSequence] + return None + + @BiopsyTargetSequence.setter + def BiopsyTargetSequence(self, value: Optional[List[BiopsyTargetSequenceItem]]): + if value is None: + self._BiopsyTargetSequence = [] + if "BiopsyTargetSequence" in self._dataset: + del self._dataset.BiopsyTargetSequence + elif not isinstance(value, list) or not all(isinstance(item, BiopsyTargetSequenceItem) for item in value): + raise ValueError("BiopsyTargetSequence must be a list of BiopsyTargetSequenceItem objects") + else: + self._BiopsyTargetSequence = value + if "BiopsyTargetSequence" not in self._dataset: + self._dataset.BiopsyTargetSequence = pydicom.Sequence() + self._dataset.BiopsyTargetSequence.clear() + self._dataset.BiopsyTargetSequence.extend([item.to_dataset() for item in value]) + + def add_BiopsyTarget(self, item: BiopsyTargetSequenceItem): + if not isinstance(item, BiopsyTargetSequenceItem): + raise ValueError("Item must be an instance of BiopsyTargetSequenceItem") + self._BiopsyTargetSequence.append(item) + if "BiopsyTargetSequence" not in self._dataset: + self._dataset.BiopsyTargetSequence = pydicom.Sequence() + self._dataset.BiopsyTargetSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def XRay3DFrameTypeSequence(self) -> Optional[List[XRay3DFrameTypeSequenceItem]]: + if "XRay3DFrameTypeSequence" in self._dataset: + if len(self._XRay3DFrameTypeSequence) == len(self._dataset.XRay3DFrameTypeSequence): + return self._XRay3DFrameTypeSequence + else: + return [XRay3DFrameTypeSequenceItem(x) for x in self._dataset.XRay3DFrameTypeSequence] + return None + + @XRay3DFrameTypeSequence.setter + def XRay3DFrameTypeSequence(self, value: Optional[List[XRay3DFrameTypeSequenceItem]]): + if value is None: + self._XRay3DFrameTypeSequence = [] + if "XRay3DFrameTypeSequence" in self._dataset: + del self._dataset.XRay3DFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DFrameTypeSequenceItem) for item in value): + raise ValueError("XRay3DFrameTypeSequence must be a list of XRay3DFrameTypeSequenceItem objects") + else: + self._XRay3DFrameTypeSequence = value + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.clear() + self._dataset.XRay3DFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DFrameType(self, item: XRay3DFrameTypeSequenceItem): + if not isinstance(item, XRay3DFrameTypeSequenceItem): + raise ValueError("Item must be an instance of XRay3DFrameTypeSequenceItem") + self._XRay3DFrameTypeSequence.append(item) + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_20.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_20.py new file mode 100644 index 0000000..7161471 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_20.py @@ -0,0 +1,352 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .ophthalmic_frame_location_sequence_item import OphthalmicFrameLocationSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._OphthalmicFrameLocationSequence: List[OphthalmicFrameLocationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def OphthalmicFrameLocationSequence(self) -> Optional[List[OphthalmicFrameLocationSequenceItem]]: + if "OphthalmicFrameLocationSequence" in self._dataset: + if len(self._OphthalmicFrameLocationSequence) == len(self._dataset.OphthalmicFrameLocationSequence): + return self._OphthalmicFrameLocationSequence + else: + return [OphthalmicFrameLocationSequenceItem(x) for x in self._dataset.OphthalmicFrameLocationSequence] + return None + + @OphthalmicFrameLocationSequence.setter + def OphthalmicFrameLocationSequence(self, value: Optional[List[OphthalmicFrameLocationSequenceItem]]): + if value is None: + self._OphthalmicFrameLocationSequence = [] + if "OphthalmicFrameLocationSequence" in self._dataset: + del self._dataset.OphthalmicFrameLocationSequence + elif not isinstance(value, list) or not all(isinstance(item, OphthalmicFrameLocationSequenceItem) for item in value): + raise ValueError("OphthalmicFrameLocationSequence must be a list of OphthalmicFrameLocationSequenceItem objects") + else: + self._OphthalmicFrameLocationSequence = value + if "OphthalmicFrameLocationSequence" not in self._dataset: + self._dataset.OphthalmicFrameLocationSequence = pydicom.Sequence() + self._dataset.OphthalmicFrameLocationSequence.clear() + self._dataset.OphthalmicFrameLocationSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicFrameLocation(self, item: OphthalmicFrameLocationSequenceItem): + if not isinstance(item, OphthalmicFrameLocationSequenceItem): + raise ValueError("Item must be an instance of OphthalmicFrameLocationSequenceItem") + self._OphthalmicFrameLocationSequence.append(item) + if "OphthalmicFrameLocationSequence" not in self._dataset: + self._dataset.OphthalmicFrameLocationSequence = pydicom.Sequence() + self._dataset.OphthalmicFrameLocationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_22.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_22.py new file mode 100644 index 0000000..62e9e05 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_22.py @@ -0,0 +1,650 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .image_data_type_sequence_item import ImageDataTypeSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .photoacoustic_excitation_characteristics_sequence_item import ( + PhotoacousticExcitationCharacteristicsSequenceItem, +) +from .photoacoustic_image_frame_type_sequence_item import ( + PhotoacousticImageFrameTypeSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_orientation_volume_sequence_item import PlaneOrientationVolumeSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_volume_sequence_item import PlanePositionVolumeSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .reconstruction_algorithm_sequence_item import ReconstructionAlgorithmSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .temporal_position_sequence_item import TemporalPositionSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._ImageDataTypeSequence: List[ImageDataTypeSequenceItem] = [] + self._PhotoacousticExcitationCharacteristicsSequence: List[PhotoacousticExcitationCharacteristicsSequenceItem] = [] + self._PhotoacousticImageFrameTypeSequence: List[PhotoacousticImageFrameTypeSequenceItem] = [] + self._ReconstructionAlgorithmSequence: List[ReconstructionAlgorithmSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PlanePositionVolumeSequence: List[PlanePositionVolumeSequenceItem] = [] + self._PlaneOrientationVolumeSequence: List[PlaneOrientationVolumeSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def ImageDataTypeSequence(self) -> Optional[List[ImageDataTypeSequenceItem]]: + if "ImageDataTypeSequence" in self._dataset: + if len(self._ImageDataTypeSequence) == len(self._dataset.ImageDataTypeSequence): + return self._ImageDataTypeSequence + else: + return [ImageDataTypeSequenceItem(x) for x in self._dataset.ImageDataTypeSequence] + return None + + @ImageDataTypeSequence.setter + def ImageDataTypeSequence(self, value: Optional[List[ImageDataTypeSequenceItem]]): + if value is None: + self._ImageDataTypeSequence = [] + if "ImageDataTypeSequence" in self._dataset: + del self._dataset.ImageDataTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageDataTypeSequenceItem) for item in value): + raise ValueError("ImageDataTypeSequence must be a list of ImageDataTypeSequenceItem objects") + else: + self._ImageDataTypeSequence = value + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.clear() + self._dataset.ImageDataTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ImageDataType(self, item: ImageDataTypeSequenceItem): + if not isinstance(item, ImageDataTypeSequenceItem): + raise ValueError("Item must be an instance of ImageDataTypeSequenceItem") + self._ImageDataTypeSequence.append(item) + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.append(item.to_dataset()) + + @property + def PhotoacousticExcitationCharacteristicsSequence( + self, + ) -> Optional[List[PhotoacousticExcitationCharacteristicsSequenceItem]]: + if "PhotoacousticExcitationCharacteristicsSequence" in self._dataset: + if len(self._PhotoacousticExcitationCharacteristicsSequence) == len( + self._dataset.PhotoacousticExcitationCharacteristicsSequence + ): + return self._PhotoacousticExcitationCharacteristicsSequence + else: + return [ + PhotoacousticExcitationCharacteristicsSequenceItem(x) + for x in self._dataset.PhotoacousticExcitationCharacteristicsSequence + ] + return None + + @PhotoacousticExcitationCharacteristicsSequence.setter + def PhotoacousticExcitationCharacteristicsSequence( + self, value: Optional[List[PhotoacousticExcitationCharacteristicsSequenceItem]] + ): + if value is None: + self._PhotoacousticExcitationCharacteristicsSequence = [] + if "PhotoacousticExcitationCharacteristicsSequence" in self._dataset: + del self._dataset.PhotoacousticExcitationCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhotoacousticExcitationCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PhotoacousticExcitationCharacteristicsSequence must be a list of" + " PhotoacousticExcitationCharacteristicsSequenceItem objects" + ) + else: + self._PhotoacousticExcitationCharacteristicsSequence = value + if "PhotoacousticExcitationCharacteristicsSequence" not in self._dataset: + self._dataset.PhotoacousticExcitationCharacteristicsSequence = pydicom.Sequence() + self._dataset.PhotoacousticExcitationCharacteristicsSequence.clear() + self._dataset.PhotoacousticExcitationCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PhotoacousticExcitationCharacteristics(self, item: PhotoacousticExcitationCharacteristicsSequenceItem): + if not isinstance(item, PhotoacousticExcitationCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PhotoacousticExcitationCharacteristicsSequenceItem") + self._PhotoacousticExcitationCharacteristicsSequence.append(item) + if "PhotoacousticExcitationCharacteristicsSequence" not in self._dataset: + self._dataset.PhotoacousticExcitationCharacteristicsSequence = pydicom.Sequence() + self._dataset.PhotoacousticExcitationCharacteristicsSequence.append(item.to_dataset()) + + @property + def PhotoacousticImageFrameTypeSequence(self) -> Optional[List[PhotoacousticImageFrameTypeSequenceItem]]: + if "PhotoacousticImageFrameTypeSequence" in self._dataset: + if len(self._PhotoacousticImageFrameTypeSequence) == len(self._dataset.PhotoacousticImageFrameTypeSequence): + return self._PhotoacousticImageFrameTypeSequence + else: + return [PhotoacousticImageFrameTypeSequenceItem(x) for x in self._dataset.PhotoacousticImageFrameTypeSequence] + return None + + @PhotoacousticImageFrameTypeSequence.setter + def PhotoacousticImageFrameTypeSequence(self, value: Optional[List[PhotoacousticImageFrameTypeSequenceItem]]): + if value is None: + self._PhotoacousticImageFrameTypeSequence = [] + if "PhotoacousticImageFrameTypeSequence" in self._dataset: + del self._dataset.PhotoacousticImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhotoacousticImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "PhotoacousticImageFrameTypeSequence must be a list of PhotoacousticImageFrameTypeSequenceItem objects" + ) + else: + self._PhotoacousticImageFrameTypeSequence = value + if "PhotoacousticImageFrameTypeSequence" not in self._dataset: + self._dataset.PhotoacousticImageFrameTypeSequence = pydicom.Sequence() + self._dataset.PhotoacousticImageFrameTypeSequence.clear() + self._dataset.PhotoacousticImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_PhotoacousticImageFrameType(self, item: PhotoacousticImageFrameTypeSequenceItem): + if not isinstance(item, PhotoacousticImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of PhotoacousticImageFrameTypeSequenceItem") + self._PhotoacousticImageFrameTypeSequence.append(item) + if "PhotoacousticImageFrameTypeSequence" not in self._dataset: + self._dataset.PhotoacousticImageFrameTypeSequence = pydicom.Sequence() + self._dataset.PhotoacousticImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ReconstructionAlgorithmSequence(self) -> Optional[List[ReconstructionAlgorithmSequenceItem]]: + if "ReconstructionAlgorithmSequence" in self._dataset: + if len(self._ReconstructionAlgorithmSequence) == len(self._dataset.ReconstructionAlgorithmSequence): + return self._ReconstructionAlgorithmSequence + else: + return [ReconstructionAlgorithmSequenceItem(x) for x in self._dataset.ReconstructionAlgorithmSequence] + return None + + @ReconstructionAlgorithmSequence.setter + def ReconstructionAlgorithmSequence(self, value: Optional[List[ReconstructionAlgorithmSequenceItem]]): + if value is None: + self._ReconstructionAlgorithmSequence = [] + if "ReconstructionAlgorithmSequence" in self._dataset: + del self._dataset.ReconstructionAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, ReconstructionAlgorithmSequenceItem) for item in value): + raise ValueError("ReconstructionAlgorithmSequence must be a list of ReconstructionAlgorithmSequenceItem objects") + else: + self._ReconstructionAlgorithmSequence = value + if "ReconstructionAlgorithmSequence" not in self._dataset: + self._dataset.ReconstructionAlgorithmSequence = pydicom.Sequence() + self._dataset.ReconstructionAlgorithmSequence.clear() + self._dataset.ReconstructionAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionAlgorithm(self, item: ReconstructionAlgorithmSequenceItem): + if not isinstance(item, ReconstructionAlgorithmSequenceItem): + raise ValueError("Item must be an instance of ReconstructionAlgorithmSequenceItem") + self._ReconstructionAlgorithmSequence.append(item) + if "ReconstructionAlgorithmSequence" not in self._dataset: + self._dataset.ReconstructionAlgorithmSequence = pydicom.Sequence() + self._dataset.ReconstructionAlgorithmSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PlanePositionVolumeSequence(self) -> Optional[List[PlanePositionVolumeSequenceItem]]: + if "PlanePositionVolumeSequence" in self._dataset: + if len(self._PlanePositionVolumeSequence) == len(self._dataset.PlanePositionVolumeSequence): + return self._PlanePositionVolumeSequence + else: + return [PlanePositionVolumeSequenceItem(x) for x in self._dataset.PlanePositionVolumeSequence] + return None + + @PlanePositionVolumeSequence.setter + def PlanePositionVolumeSequence(self, value: Optional[List[PlanePositionVolumeSequenceItem]]): + if value is None: + self._PlanePositionVolumeSequence = [] + if "PlanePositionVolumeSequence" in self._dataset: + del self._dataset.PlanePositionVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionVolumeSequenceItem) for item in value): + raise ValueError("PlanePositionVolumeSequence must be a list of PlanePositionVolumeSequenceItem objects") + else: + self._PlanePositionVolumeSequence = value + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.clear() + self._dataset.PlanePositionVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionVolume(self, item: PlanePositionVolumeSequenceItem): + if not isinstance(item, PlanePositionVolumeSequenceItem): + raise ValueError("Item must be an instance of PlanePositionVolumeSequenceItem") + self._PlanePositionVolumeSequence.append(item) + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.append(item.to_dataset()) + + @property + def PlaneOrientationVolumeSequence(self) -> Optional[List[PlaneOrientationVolumeSequenceItem]]: + if "PlaneOrientationVolumeSequence" in self._dataset: + if len(self._PlaneOrientationVolumeSequence) == len(self._dataset.PlaneOrientationVolumeSequence): + return self._PlaneOrientationVolumeSequence + else: + return [PlaneOrientationVolumeSequenceItem(x) for x in self._dataset.PlaneOrientationVolumeSequence] + return None + + @PlaneOrientationVolumeSequence.setter + def PlaneOrientationVolumeSequence(self, value: Optional[List[PlaneOrientationVolumeSequenceItem]]): + if value is None: + self._PlaneOrientationVolumeSequence = [] + if "PlaneOrientationVolumeSequence" in self._dataset: + del self._dataset.PlaneOrientationVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationVolumeSequenceItem) for item in value): + raise ValueError("PlaneOrientationVolumeSequence must be a list of PlaneOrientationVolumeSequenceItem objects") + else: + self._PlaneOrientationVolumeSequence = value + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.clear() + self._dataset.PlaneOrientationVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientationVolume(self, item: PlaneOrientationVolumeSequenceItem): + if not isinstance(item, PlaneOrientationVolumeSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationVolumeSequenceItem") + self._PlaneOrientationVolumeSequence.append(item) + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_23.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_23.py new file mode 100644 index 0000000..a876d14 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_23.py @@ -0,0 +1,250 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .segment_identification_sequence_item import SegmentIdentificationSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + self._SegmentIdentificationSequence: List[SegmentIdentificationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) + + @property + def SegmentIdentificationSequence(self) -> Optional[List[SegmentIdentificationSequenceItem]]: + if "SegmentIdentificationSequence" in self._dataset: + if len(self._SegmentIdentificationSequence) == len(self._dataset.SegmentIdentificationSequence): + return self._SegmentIdentificationSequence + else: + return [SegmentIdentificationSequenceItem(x) for x in self._dataset.SegmentIdentificationSequence] + return None + + @SegmentIdentificationSequence.setter + def SegmentIdentificationSequence(self, value: Optional[List[SegmentIdentificationSequenceItem]]): + if value is None: + self._SegmentIdentificationSequence = [] + if "SegmentIdentificationSequence" in self._dataset: + del self._dataset.SegmentIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, SegmentIdentificationSequenceItem) for item in value): + raise ValueError("SegmentIdentificationSequence must be a list of SegmentIdentificationSequenceItem objects") + else: + self._SegmentIdentificationSequence = value + if "SegmentIdentificationSequence" not in self._dataset: + self._dataset.SegmentIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentIdentificationSequence.clear() + self._dataset.SegmentIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentIdentification(self, item: SegmentIdentificationSequenceItem): + if not isinstance(item, SegmentIdentificationSequenceItem): + raise ValueError("Item must be an instance of SegmentIdentificationSequenceItem") + self._SegmentIdentificationSequence.append(item) + if "SegmentIdentificationSequence" not in self._dataset: + self._dataset.SegmentIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentIdentificationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_24.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_24.py new file mode 100644 index 0000000..a89ab85 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_24.py @@ -0,0 +1,780 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .mr_averages_sequence_item import MRAveragesSequenceItem +from .mr_diffusion_sequence_item import MRDiffusionSequenceItem +from .mr_echo_sequence_item import MREchoSequenceItem +from .mr_modifier_sequence_item import MRModifierSequenceItem +from .mr_receive_coil_sequence_item import MRReceiveCoilSequenceItem +from .mr_spatial_saturation_sequence_item import MRSpatialSaturationSequenceItem +from .mr_spectroscopy_fov_geometry_sequence_item import ( + MRSpectroscopyFOVGeometrySequenceItem, +) +from .mr_spectroscopy_frame_type_sequence_item import ( + MRSpectroscopyFrameTypeSequenceItem, +) +from .mr_timing_and_related_parameters_sequence_item import ( + MRTimingAndRelatedParametersSequenceItem, +) +from .mr_transmit_coil_sequence_item import MRTransmitCoilSequenceItem +from .mr_velocity_encoding_sequence_item import MRVelocityEncodingSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._MRReceiveCoilSequence: List[MRReceiveCoilSequenceItem] = [] + self._MRTransmitCoilSequence: List[MRTransmitCoilSequenceItem] = [] + self._MRSpectroscopyFOVGeometrySequence: List[MRSpectroscopyFOVGeometrySequenceItem] = [] + self._MRSpatialSaturationSequence: List[MRSpatialSaturationSequenceItem] = [] + self._MRTimingAndRelatedParametersSequence: List[MRTimingAndRelatedParametersSequenceItem] = [] + self._MREchoSequence: List[MREchoSequenceItem] = [] + self._MRModifierSequence: List[MRModifierSequenceItem] = [] + self._MRDiffusionSequence: List[MRDiffusionSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._MRAveragesSequence: List[MRAveragesSequenceItem] = [] + self._MRVelocityEncodingSequence: List[MRVelocityEncodingSequenceItem] = [] + self._MRSpectroscopyFrameTypeSequence: List[MRSpectroscopyFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def MRReceiveCoilSequence(self) -> Optional[List[MRReceiveCoilSequenceItem]]: + if "MRReceiveCoilSequence" in self._dataset: + if len(self._MRReceiveCoilSequence) == len(self._dataset.MRReceiveCoilSequence): + return self._MRReceiveCoilSequence + else: + return [MRReceiveCoilSequenceItem(x) for x in self._dataset.MRReceiveCoilSequence] + return None + + @MRReceiveCoilSequence.setter + def MRReceiveCoilSequence(self, value: Optional[List[MRReceiveCoilSequenceItem]]): + if value is None: + self._MRReceiveCoilSequence = [] + if "MRReceiveCoilSequence" in self._dataset: + del self._dataset.MRReceiveCoilSequence + elif not isinstance(value, list) or not all(isinstance(item, MRReceiveCoilSequenceItem) for item in value): + raise ValueError("MRReceiveCoilSequence must be a list of MRReceiveCoilSequenceItem objects") + else: + self._MRReceiveCoilSequence = value + if "MRReceiveCoilSequence" not in self._dataset: + self._dataset.MRReceiveCoilSequence = pydicom.Sequence() + self._dataset.MRReceiveCoilSequence.clear() + self._dataset.MRReceiveCoilSequence.extend([item.to_dataset() for item in value]) + + def add_MRReceiveCoil(self, item: MRReceiveCoilSequenceItem): + if not isinstance(item, MRReceiveCoilSequenceItem): + raise ValueError("Item must be an instance of MRReceiveCoilSequenceItem") + self._MRReceiveCoilSequence.append(item) + if "MRReceiveCoilSequence" not in self._dataset: + self._dataset.MRReceiveCoilSequence = pydicom.Sequence() + self._dataset.MRReceiveCoilSequence.append(item.to_dataset()) + + @property + def MRTransmitCoilSequence(self) -> Optional[List[MRTransmitCoilSequenceItem]]: + if "MRTransmitCoilSequence" in self._dataset: + if len(self._MRTransmitCoilSequence) == len(self._dataset.MRTransmitCoilSequence): + return self._MRTransmitCoilSequence + else: + return [MRTransmitCoilSequenceItem(x) for x in self._dataset.MRTransmitCoilSequence] + return None + + @MRTransmitCoilSequence.setter + def MRTransmitCoilSequence(self, value: Optional[List[MRTransmitCoilSequenceItem]]): + if value is None: + self._MRTransmitCoilSequence = [] + if "MRTransmitCoilSequence" in self._dataset: + del self._dataset.MRTransmitCoilSequence + elif not isinstance(value, list) or not all(isinstance(item, MRTransmitCoilSequenceItem) for item in value): + raise ValueError("MRTransmitCoilSequence must be a list of MRTransmitCoilSequenceItem objects") + else: + self._MRTransmitCoilSequence = value + if "MRTransmitCoilSequence" not in self._dataset: + self._dataset.MRTransmitCoilSequence = pydicom.Sequence() + self._dataset.MRTransmitCoilSequence.clear() + self._dataset.MRTransmitCoilSequence.extend([item.to_dataset() for item in value]) + + def add_MRTransmitCoil(self, item: MRTransmitCoilSequenceItem): + if not isinstance(item, MRTransmitCoilSequenceItem): + raise ValueError("Item must be an instance of MRTransmitCoilSequenceItem") + self._MRTransmitCoilSequence.append(item) + if "MRTransmitCoilSequence" not in self._dataset: + self._dataset.MRTransmitCoilSequence = pydicom.Sequence() + self._dataset.MRTransmitCoilSequence.append(item.to_dataset()) + + @property + def MRSpectroscopyFOVGeometrySequence(self) -> Optional[List[MRSpectroscopyFOVGeometrySequenceItem]]: + if "MRSpectroscopyFOVGeometrySequence" in self._dataset: + if len(self._MRSpectroscopyFOVGeometrySequence) == len(self._dataset.MRSpectroscopyFOVGeometrySequence): + return self._MRSpectroscopyFOVGeometrySequence + else: + return [MRSpectroscopyFOVGeometrySequenceItem(x) for x in self._dataset.MRSpectroscopyFOVGeometrySequence] + return None + + @MRSpectroscopyFOVGeometrySequence.setter + def MRSpectroscopyFOVGeometrySequence(self, value: Optional[List[MRSpectroscopyFOVGeometrySequenceItem]]): + if value is None: + self._MRSpectroscopyFOVGeometrySequence = [] + if "MRSpectroscopyFOVGeometrySequence" in self._dataset: + del self._dataset.MRSpectroscopyFOVGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, MRSpectroscopyFOVGeometrySequenceItem) for item in value): + raise ValueError( + "MRSpectroscopyFOVGeometrySequence must be a list of MRSpectroscopyFOVGeometrySequenceItem objects" + ) + else: + self._MRSpectroscopyFOVGeometrySequence = value + if "MRSpectroscopyFOVGeometrySequence" not in self._dataset: + self._dataset.MRSpectroscopyFOVGeometrySequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFOVGeometrySequence.clear() + self._dataset.MRSpectroscopyFOVGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_MRSpectroscopyFOVGeometry(self, item: MRSpectroscopyFOVGeometrySequenceItem): + if not isinstance(item, MRSpectroscopyFOVGeometrySequenceItem): + raise ValueError("Item must be an instance of MRSpectroscopyFOVGeometrySequenceItem") + self._MRSpectroscopyFOVGeometrySequence.append(item) + if "MRSpectroscopyFOVGeometrySequence" not in self._dataset: + self._dataset.MRSpectroscopyFOVGeometrySequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFOVGeometrySequence.append(item.to_dataset()) + + @property + def MRSpatialSaturationSequence(self) -> Optional[List[MRSpatialSaturationSequenceItem]]: + if "MRSpatialSaturationSequence" in self._dataset: + if len(self._MRSpatialSaturationSequence) == len(self._dataset.MRSpatialSaturationSequence): + return self._MRSpatialSaturationSequence + else: + return [MRSpatialSaturationSequenceItem(x) for x in self._dataset.MRSpatialSaturationSequence] + return None + + @MRSpatialSaturationSequence.setter + def MRSpatialSaturationSequence(self, value: Optional[List[MRSpatialSaturationSequenceItem]]): + if value is None: + self._MRSpatialSaturationSequence = [] + if "MRSpatialSaturationSequence" in self._dataset: + del self._dataset.MRSpatialSaturationSequence + elif not isinstance(value, list) or not all(isinstance(item, MRSpatialSaturationSequenceItem) for item in value): + raise ValueError("MRSpatialSaturationSequence must be a list of MRSpatialSaturationSequenceItem objects") + else: + self._MRSpatialSaturationSequence = value + if "MRSpatialSaturationSequence" not in self._dataset: + self._dataset.MRSpatialSaturationSequence = pydicom.Sequence() + self._dataset.MRSpatialSaturationSequence.clear() + self._dataset.MRSpatialSaturationSequence.extend([item.to_dataset() for item in value]) + + def add_MRSpatialSaturation(self, item: MRSpatialSaturationSequenceItem): + if not isinstance(item, MRSpatialSaturationSequenceItem): + raise ValueError("Item must be an instance of MRSpatialSaturationSequenceItem") + self._MRSpatialSaturationSequence.append(item) + if "MRSpatialSaturationSequence" not in self._dataset: + self._dataset.MRSpatialSaturationSequence = pydicom.Sequence() + self._dataset.MRSpatialSaturationSequence.append(item.to_dataset()) + + @property + def MRTimingAndRelatedParametersSequence(self) -> Optional[List[MRTimingAndRelatedParametersSequenceItem]]: + if "MRTimingAndRelatedParametersSequence" in self._dataset: + if len(self._MRTimingAndRelatedParametersSequence) == len(self._dataset.MRTimingAndRelatedParametersSequence): + return self._MRTimingAndRelatedParametersSequence + else: + return [ + MRTimingAndRelatedParametersSequenceItem(x) for x in self._dataset.MRTimingAndRelatedParametersSequence + ] + return None + + @MRTimingAndRelatedParametersSequence.setter + def MRTimingAndRelatedParametersSequence(self, value: Optional[List[MRTimingAndRelatedParametersSequenceItem]]): + if value is None: + self._MRTimingAndRelatedParametersSequence = [] + if "MRTimingAndRelatedParametersSequence" in self._dataset: + del self._dataset.MRTimingAndRelatedParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, MRTimingAndRelatedParametersSequenceItem) for item in value + ): + raise ValueError( + "MRTimingAndRelatedParametersSequence must be a list of MRTimingAndRelatedParametersSequenceItem objects" + ) + else: + self._MRTimingAndRelatedParametersSequence = value + if "MRTimingAndRelatedParametersSequence" not in self._dataset: + self._dataset.MRTimingAndRelatedParametersSequence = pydicom.Sequence() + self._dataset.MRTimingAndRelatedParametersSequence.clear() + self._dataset.MRTimingAndRelatedParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MRTimingAndRelatedParameters(self, item: MRTimingAndRelatedParametersSequenceItem): + if not isinstance(item, MRTimingAndRelatedParametersSequenceItem): + raise ValueError("Item must be an instance of MRTimingAndRelatedParametersSequenceItem") + self._MRTimingAndRelatedParametersSequence.append(item) + if "MRTimingAndRelatedParametersSequence" not in self._dataset: + self._dataset.MRTimingAndRelatedParametersSequence = pydicom.Sequence() + self._dataset.MRTimingAndRelatedParametersSequence.append(item.to_dataset()) + + @property + def MREchoSequence(self) -> Optional[List[MREchoSequenceItem]]: + if "MREchoSequence" in self._dataset: + if len(self._MREchoSequence) == len(self._dataset.MREchoSequence): + return self._MREchoSequence + else: + return [MREchoSequenceItem(x) for x in self._dataset.MREchoSequence] + return None + + @MREchoSequence.setter + def MREchoSequence(self, value: Optional[List[MREchoSequenceItem]]): + if value is None: + self._MREchoSequence = [] + if "MREchoSequence" in self._dataset: + del self._dataset.MREchoSequence + elif not isinstance(value, list) or not all(isinstance(item, MREchoSequenceItem) for item in value): + raise ValueError("MREchoSequence must be a list of MREchoSequenceItem objects") + else: + self._MREchoSequence = value + if "MREchoSequence" not in self._dataset: + self._dataset.MREchoSequence = pydicom.Sequence() + self._dataset.MREchoSequence.clear() + self._dataset.MREchoSequence.extend([item.to_dataset() for item in value]) + + def add_MREcho(self, item: MREchoSequenceItem): + if not isinstance(item, MREchoSequenceItem): + raise ValueError("Item must be an instance of MREchoSequenceItem") + self._MREchoSequence.append(item) + if "MREchoSequence" not in self._dataset: + self._dataset.MREchoSequence = pydicom.Sequence() + self._dataset.MREchoSequence.append(item.to_dataset()) + + @property + def MRModifierSequence(self) -> Optional[List[MRModifierSequenceItem]]: + if "MRModifierSequence" in self._dataset: + if len(self._MRModifierSequence) == len(self._dataset.MRModifierSequence): + return self._MRModifierSequence + else: + return [MRModifierSequenceItem(x) for x in self._dataset.MRModifierSequence] + return None + + @MRModifierSequence.setter + def MRModifierSequence(self, value: Optional[List[MRModifierSequenceItem]]): + if value is None: + self._MRModifierSequence = [] + if "MRModifierSequence" in self._dataset: + del self._dataset.MRModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, MRModifierSequenceItem) for item in value): + raise ValueError("MRModifierSequence must be a list of MRModifierSequenceItem objects") + else: + self._MRModifierSequence = value + if "MRModifierSequence" not in self._dataset: + self._dataset.MRModifierSequence = pydicom.Sequence() + self._dataset.MRModifierSequence.clear() + self._dataset.MRModifierSequence.extend([item.to_dataset() for item in value]) + + def add_MRModifier(self, item: MRModifierSequenceItem): + if not isinstance(item, MRModifierSequenceItem): + raise ValueError("Item must be an instance of MRModifierSequenceItem") + self._MRModifierSequence.append(item) + if "MRModifierSequence" not in self._dataset: + self._dataset.MRModifierSequence = pydicom.Sequence() + self._dataset.MRModifierSequence.append(item.to_dataset()) + + @property + def MRDiffusionSequence(self) -> Optional[List[MRDiffusionSequenceItem]]: + if "MRDiffusionSequence" in self._dataset: + if len(self._MRDiffusionSequence) == len(self._dataset.MRDiffusionSequence): + return self._MRDiffusionSequence + else: + return [MRDiffusionSequenceItem(x) for x in self._dataset.MRDiffusionSequence] + return None + + @MRDiffusionSequence.setter + def MRDiffusionSequence(self, value: Optional[List[MRDiffusionSequenceItem]]): + if value is None: + self._MRDiffusionSequence = [] + if "MRDiffusionSequence" in self._dataset: + del self._dataset.MRDiffusionSequence + elif not isinstance(value, list) or not all(isinstance(item, MRDiffusionSequenceItem) for item in value): + raise ValueError("MRDiffusionSequence must be a list of MRDiffusionSequenceItem objects") + else: + self._MRDiffusionSequence = value + if "MRDiffusionSequence" not in self._dataset: + self._dataset.MRDiffusionSequence = pydicom.Sequence() + self._dataset.MRDiffusionSequence.clear() + self._dataset.MRDiffusionSequence.extend([item.to_dataset() for item in value]) + + def add_MRDiffusion(self, item: MRDiffusionSequenceItem): + if not isinstance(item, MRDiffusionSequenceItem): + raise ValueError("Item must be an instance of MRDiffusionSequenceItem") + self._MRDiffusionSequence.append(item) + if "MRDiffusionSequence" not in self._dataset: + self._dataset.MRDiffusionSequence = pydicom.Sequence() + self._dataset.MRDiffusionSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def MRAveragesSequence(self) -> Optional[List[MRAveragesSequenceItem]]: + if "MRAveragesSequence" in self._dataset: + if len(self._MRAveragesSequence) == len(self._dataset.MRAveragesSequence): + return self._MRAveragesSequence + else: + return [MRAveragesSequenceItem(x) for x in self._dataset.MRAveragesSequence] + return None + + @MRAveragesSequence.setter + def MRAveragesSequence(self, value: Optional[List[MRAveragesSequenceItem]]): + if value is None: + self._MRAveragesSequence = [] + if "MRAveragesSequence" in self._dataset: + del self._dataset.MRAveragesSequence + elif not isinstance(value, list) or not all(isinstance(item, MRAveragesSequenceItem) for item in value): + raise ValueError("MRAveragesSequence must be a list of MRAveragesSequenceItem objects") + else: + self._MRAveragesSequence = value + if "MRAveragesSequence" not in self._dataset: + self._dataset.MRAveragesSequence = pydicom.Sequence() + self._dataset.MRAveragesSequence.clear() + self._dataset.MRAveragesSequence.extend([item.to_dataset() for item in value]) + + def add_MRAverages(self, item: MRAveragesSequenceItem): + if not isinstance(item, MRAveragesSequenceItem): + raise ValueError("Item must be an instance of MRAveragesSequenceItem") + self._MRAveragesSequence.append(item) + if "MRAveragesSequence" not in self._dataset: + self._dataset.MRAveragesSequence = pydicom.Sequence() + self._dataset.MRAveragesSequence.append(item.to_dataset()) + + @property + def MRVelocityEncodingSequence(self) -> Optional[List[MRVelocityEncodingSequenceItem]]: + if "MRVelocityEncodingSequence" in self._dataset: + if len(self._MRVelocityEncodingSequence) == len(self._dataset.MRVelocityEncodingSequence): + return self._MRVelocityEncodingSequence + else: + return [MRVelocityEncodingSequenceItem(x) for x in self._dataset.MRVelocityEncodingSequence] + return None + + @MRVelocityEncodingSequence.setter + def MRVelocityEncodingSequence(self, value: Optional[List[MRVelocityEncodingSequenceItem]]): + if value is None: + self._MRVelocityEncodingSequence = [] + if "MRVelocityEncodingSequence" in self._dataset: + del self._dataset.MRVelocityEncodingSequence + elif not isinstance(value, list) or not all(isinstance(item, MRVelocityEncodingSequenceItem) for item in value): + raise ValueError("MRVelocityEncodingSequence must be a list of MRVelocityEncodingSequenceItem objects") + else: + self._MRVelocityEncodingSequence = value + if "MRVelocityEncodingSequence" not in self._dataset: + self._dataset.MRVelocityEncodingSequence = pydicom.Sequence() + self._dataset.MRVelocityEncodingSequence.clear() + self._dataset.MRVelocityEncodingSequence.extend([item.to_dataset() for item in value]) + + def add_MRVelocityEncoding(self, item: MRVelocityEncodingSequenceItem): + if not isinstance(item, MRVelocityEncodingSequenceItem): + raise ValueError("Item must be an instance of MRVelocityEncodingSequenceItem") + self._MRVelocityEncodingSequence.append(item) + if "MRVelocityEncodingSequence" not in self._dataset: + self._dataset.MRVelocityEncodingSequence = pydicom.Sequence() + self._dataset.MRVelocityEncodingSequence.append(item.to_dataset()) + + @property + def MRSpectroscopyFrameTypeSequence(self) -> Optional[List[MRSpectroscopyFrameTypeSequenceItem]]: + if "MRSpectroscopyFrameTypeSequence" in self._dataset: + if len(self._MRSpectroscopyFrameTypeSequence) == len(self._dataset.MRSpectroscopyFrameTypeSequence): + return self._MRSpectroscopyFrameTypeSequence + else: + return [MRSpectroscopyFrameTypeSequenceItem(x) for x in self._dataset.MRSpectroscopyFrameTypeSequence] + return None + + @MRSpectroscopyFrameTypeSequence.setter + def MRSpectroscopyFrameTypeSequence(self, value: Optional[List[MRSpectroscopyFrameTypeSequenceItem]]): + if value is None: + self._MRSpectroscopyFrameTypeSequence = [] + if "MRSpectroscopyFrameTypeSequence" in self._dataset: + del self._dataset.MRSpectroscopyFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, MRSpectroscopyFrameTypeSequenceItem) for item in value): + raise ValueError("MRSpectroscopyFrameTypeSequence must be a list of MRSpectroscopyFrameTypeSequenceItem objects") + else: + self._MRSpectroscopyFrameTypeSequence = value + if "MRSpectroscopyFrameTypeSequence" not in self._dataset: + self._dataset.MRSpectroscopyFrameTypeSequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFrameTypeSequence.clear() + self._dataset.MRSpectroscopyFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_MRSpectroscopyFrameType(self, item: MRSpectroscopyFrameTypeSequenceItem): + if not isinstance(item, MRSpectroscopyFrameTypeSequenceItem): + raise ValueError("Item must be an instance of MRSpectroscopyFrameTypeSequenceItem") + self._MRSpectroscopyFrameTypeSequence.append(item) + if "MRSpectroscopyFrameTypeSequence" not in self._dataset: + self._dataset.MRSpectroscopyFrameTypeSequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_25.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_25.py new file mode 100644 index 0000000..31960fc --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_25.py @@ -0,0 +1,598 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .rt_beam_limiting_device_opening_sequence_item import ( + RTBeamLimitingDeviceOpeningSequenceItem, +) +from .rt_image_frame_context_sequence_item import RTImageFrameContextSequenceItem +from .rt_image_frame_general_content_sequence_item import ( + RTImageFrameGeneralContentSequenceItem, +) +from .rt_image_frame_imaging_device_position_sequence_item import ( + RTImageFrameImagingDevicePositionSequenceItem, +) +from .rt_image_frame_radiation_acquisition_sequence_item import ( + RTImageFrameRadiationAcquisitionSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._RTImageFrameGeneralContentSequence: List[RTImageFrameGeneralContentSequenceItem] = [] + self._RTImageFrameContextSequence: List[RTImageFrameContextSequenceItem] = [] + self._RTImageFrameImagingDevicePositionSequence: List[RTImageFrameImagingDevicePositionSequenceItem] = [] + self._RTImageFrameRadiationAcquisitionSequence: List[RTImageFrameRadiationAcquisitionSequenceItem] = [] + self._RTBeamLimitingDeviceOpeningSequence: List[RTBeamLimitingDeviceOpeningSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def RTImageFrameGeneralContentSequence(self) -> Optional[List[RTImageFrameGeneralContentSequenceItem]]: + if "RTImageFrameGeneralContentSequence" in self._dataset: + if len(self._RTImageFrameGeneralContentSequence) == len(self._dataset.RTImageFrameGeneralContentSequence): + return self._RTImageFrameGeneralContentSequence + else: + return [RTImageFrameGeneralContentSequenceItem(x) for x in self._dataset.RTImageFrameGeneralContentSequence] + return None + + @RTImageFrameGeneralContentSequence.setter + def RTImageFrameGeneralContentSequence(self, value: Optional[List[RTImageFrameGeneralContentSequenceItem]]): + if value is None: + self._RTImageFrameGeneralContentSequence = [] + if "RTImageFrameGeneralContentSequence" in self._dataset: + del self._dataset.RTImageFrameGeneralContentSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameGeneralContentSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameGeneralContentSequence must be a list of RTImageFrameGeneralContentSequenceItem objects" + ) + else: + self._RTImageFrameGeneralContentSequence = value + if "RTImageFrameGeneralContentSequence" not in self._dataset: + self._dataset.RTImageFrameGeneralContentSequence = pydicom.Sequence() + self._dataset.RTImageFrameGeneralContentSequence.clear() + self._dataset.RTImageFrameGeneralContentSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameGeneralContent(self, item: RTImageFrameGeneralContentSequenceItem): + if not isinstance(item, RTImageFrameGeneralContentSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameGeneralContentSequenceItem") + self._RTImageFrameGeneralContentSequence.append(item) + if "RTImageFrameGeneralContentSequence" not in self._dataset: + self._dataset.RTImageFrameGeneralContentSequence = pydicom.Sequence() + self._dataset.RTImageFrameGeneralContentSequence.append(item.to_dataset()) + + @property + def RTImageFrameContextSequence(self) -> Optional[List[RTImageFrameContextSequenceItem]]: + if "RTImageFrameContextSequence" in self._dataset: + if len(self._RTImageFrameContextSequence) == len(self._dataset.RTImageFrameContextSequence): + return self._RTImageFrameContextSequence + else: + return [RTImageFrameContextSequenceItem(x) for x in self._dataset.RTImageFrameContextSequence] + return None + + @RTImageFrameContextSequence.setter + def RTImageFrameContextSequence(self, value: Optional[List[RTImageFrameContextSequenceItem]]): + if value is None: + self._RTImageFrameContextSequence = [] + if "RTImageFrameContextSequence" in self._dataset: + del self._dataset.RTImageFrameContextSequence + elif not isinstance(value, list) or not all(isinstance(item, RTImageFrameContextSequenceItem) for item in value): + raise ValueError("RTImageFrameContextSequence must be a list of RTImageFrameContextSequenceItem objects") + else: + self._RTImageFrameContextSequence = value + if "RTImageFrameContextSequence" not in self._dataset: + self._dataset.RTImageFrameContextSequence = pydicom.Sequence() + self._dataset.RTImageFrameContextSequence.clear() + self._dataset.RTImageFrameContextSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameContext(self, item: RTImageFrameContextSequenceItem): + if not isinstance(item, RTImageFrameContextSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameContextSequenceItem") + self._RTImageFrameContextSequence.append(item) + if "RTImageFrameContextSequence" not in self._dataset: + self._dataset.RTImageFrameContextSequence = pydicom.Sequence() + self._dataset.RTImageFrameContextSequence.append(item.to_dataset()) + + @property + def RTImageFrameImagingDevicePositionSequence(self) -> Optional[List[RTImageFrameImagingDevicePositionSequenceItem]]: + if "RTImageFrameImagingDevicePositionSequence" in self._dataset: + if len(self._RTImageFrameImagingDevicePositionSequence) == len( + self._dataset.RTImageFrameImagingDevicePositionSequence + ): + return self._RTImageFrameImagingDevicePositionSequence + else: + return [ + RTImageFrameImagingDevicePositionSequenceItem(x) + for x in self._dataset.RTImageFrameImagingDevicePositionSequence + ] + return None + + @RTImageFrameImagingDevicePositionSequence.setter + def RTImageFrameImagingDevicePositionSequence(self, value: Optional[List[RTImageFrameImagingDevicePositionSequenceItem]]): + if value is None: + self._RTImageFrameImagingDevicePositionSequence = [] + if "RTImageFrameImagingDevicePositionSequence" in self._dataset: + del self._dataset.RTImageFrameImagingDevicePositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameImagingDevicePositionSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameImagingDevicePositionSequence must be a list of RTImageFrameImagingDevicePositionSequenceItem" + " objects" + ) + else: + self._RTImageFrameImagingDevicePositionSequence = value + if "RTImageFrameImagingDevicePositionSequence" not in self._dataset: + self._dataset.RTImageFrameImagingDevicePositionSequence = pydicom.Sequence() + self._dataset.RTImageFrameImagingDevicePositionSequence.clear() + self._dataset.RTImageFrameImagingDevicePositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameImagingDevicePosition(self, item: RTImageFrameImagingDevicePositionSequenceItem): + if not isinstance(item, RTImageFrameImagingDevicePositionSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameImagingDevicePositionSequenceItem") + self._RTImageFrameImagingDevicePositionSequence.append(item) + if "RTImageFrameImagingDevicePositionSequence" not in self._dataset: + self._dataset.RTImageFrameImagingDevicePositionSequence = pydicom.Sequence() + self._dataset.RTImageFrameImagingDevicePositionSequence.append(item.to_dataset()) + + @property + def RTImageFrameRadiationAcquisitionSequence(self) -> Optional[List[RTImageFrameRadiationAcquisitionSequenceItem]]: + if "RTImageFrameRadiationAcquisitionSequence" in self._dataset: + if len(self._RTImageFrameRadiationAcquisitionSequence) == len( + self._dataset.RTImageFrameRadiationAcquisitionSequence + ): + return self._RTImageFrameRadiationAcquisitionSequence + else: + return [ + RTImageFrameRadiationAcquisitionSequenceItem(x) + for x in self._dataset.RTImageFrameRadiationAcquisitionSequence + ] + return None + + @RTImageFrameRadiationAcquisitionSequence.setter + def RTImageFrameRadiationAcquisitionSequence(self, value: Optional[List[RTImageFrameRadiationAcquisitionSequenceItem]]): + if value is None: + self._RTImageFrameRadiationAcquisitionSequence = [] + if "RTImageFrameRadiationAcquisitionSequence" in self._dataset: + del self._dataset.RTImageFrameRadiationAcquisitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameRadiationAcquisitionSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameRadiationAcquisitionSequence must be a list of RTImageFrameRadiationAcquisitionSequenceItem" + " objects" + ) + else: + self._RTImageFrameRadiationAcquisitionSequence = value + if "RTImageFrameRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFrameRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFrameRadiationAcquisitionSequence.clear() + self._dataset.RTImageFrameRadiationAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameRadiationAcquisition(self, item: RTImageFrameRadiationAcquisitionSequenceItem): + if not isinstance(item, RTImageFrameRadiationAcquisitionSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameRadiationAcquisitionSequenceItem") + self._RTImageFrameRadiationAcquisitionSequence.append(item) + if "RTImageFrameRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFrameRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFrameRadiationAcquisitionSequence.append(item.to_dataset()) + + @property + def RTBeamLimitingDeviceOpeningSequence(self) -> Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]: + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceOpeningSequence) == len(self._dataset.RTBeamLimitingDeviceOpeningSequence): + return self._RTBeamLimitingDeviceOpeningSequence + else: + return [RTBeamLimitingDeviceOpeningSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceOpeningSequence] + return None + + @RTBeamLimitingDeviceOpeningSequence.setter + def RTBeamLimitingDeviceOpeningSequence(self, value: Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceOpeningSequence = [] + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceOpeningSequence must be a list of RTBeamLimitingDeviceOpeningSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceOpeningSequence = value + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.clear() + self._dataset.RTBeamLimitingDeviceOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceOpening(self, item: RTBeamLimitingDeviceOpeningSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceOpeningSequenceItem") + self._RTBeamLimitingDeviceOpeningSequence.append(item) + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_27.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_27.py new file mode 100644 index 0000000..ad61062 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_27.py @@ -0,0 +1,676 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .pet_frame_type_sequence_item import PETFrameTypeSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._PETFrameTypeSequence: List[PETFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def PETFrameTypeSequence(self) -> Optional[List[PETFrameTypeSequenceItem]]: + if "PETFrameTypeSequence" in self._dataset: + if len(self._PETFrameTypeSequence) == len(self._dataset.PETFrameTypeSequence): + return self._PETFrameTypeSequence + else: + return [PETFrameTypeSequenceItem(x) for x in self._dataset.PETFrameTypeSequence] + return None + + @PETFrameTypeSequence.setter + def PETFrameTypeSequence(self, value: Optional[List[PETFrameTypeSequenceItem]]): + if value is None: + self._PETFrameTypeSequence = [] + if "PETFrameTypeSequence" in self._dataset: + del self._dataset.PETFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameTypeSequenceItem) for item in value): + raise ValueError("PETFrameTypeSequence must be a list of PETFrameTypeSequenceItem objects") + else: + self._PETFrameTypeSequence = value + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.clear() + self._dataset.PETFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameType(self, item: PETFrameTypeSequenceItem): + if not isinstance(item, PETFrameTypeSequenceItem): + raise ValueError("Item must be an instance of PETFrameTypeSequenceItem") + self._PETFrameTypeSequence.append(item) + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_3.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_3.py new file mode 100644 index 0000000..9d2f242 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_3.py @@ -0,0 +1,368 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .confocal_microscopy_image_frame_type_sequence_item import ( + ConfocalMicroscopyImageFrameTypeSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .optical_path_identification_sequence_item import ( + OpticalPathIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .specimen_reference_sequence_item import SpecimenReferenceSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._SpecimenReferenceSequence: List[SpecimenReferenceSequenceItem] = [] + self._ConfocalMicroscopyImageFrameTypeSequence: List[ConfocalMicroscopyImageFrameTypeSequenceItem] = [] + self._OpticalPathIdentificationSequence: List[OpticalPathIdentificationSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def SpecimenReferenceSequence(self) -> Optional[List[SpecimenReferenceSequenceItem]]: + if "SpecimenReferenceSequence" in self._dataset: + if len(self._SpecimenReferenceSequence) == len(self._dataset.SpecimenReferenceSequence): + return self._SpecimenReferenceSequence + else: + return [SpecimenReferenceSequenceItem(x) for x in self._dataset.SpecimenReferenceSequence] + return None + + @SpecimenReferenceSequence.setter + def SpecimenReferenceSequence(self, value: Optional[List[SpecimenReferenceSequenceItem]]): + if value is None: + self._SpecimenReferenceSequence = [] + if "SpecimenReferenceSequence" in self._dataset: + del self._dataset.SpecimenReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenReferenceSequenceItem) for item in value): + raise ValueError("SpecimenReferenceSequence must be a list of SpecimenReferenceSequenceItem objects") + else: + self._SpecimenReferenceSequence = value + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.clear() + self._dataset.SpecimenReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenReference(self, item: SpecimenReferenceSequenceItem): + if not isinstance(item, SpecimenReferenceSequenceItem): + raise ValueError("Item must be an instance of SpecimenReferenceSequenceItem") + self._SpecimenReferenceSequence.append(item) + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.append(item.to_dataset()) + + @property + def ConfocalMicroscopyImageFrameTypeSequence(self) -> Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]: + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + if len(self._ConfocalMicroscopyImageFrameTypeSequence) == len( + self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ): + return self._ConfocalMicroscopyImageFrameTypeSequence + else: + return [ + ConfocalMicroscopyImageFrameTypeSequenceItem(x) + for x in self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ] + return None + + @ConfocalMicroscopyImageFrameTypeSequence.setter + def ConfocalMicroscopyImageFrameTypeSequence(self, value: Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]): + if value is None: + self._ConfocalMicroscopyImageFrameTypeSequence = [] + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + del self._dataset.ConfocalMicroscopyImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "ConfocalMicroscopyImageFrameTypeSequence must be a list of ConfocalMicroscopyImageFrameTypeSequenceItem" + " objects" + ) + else: + self._ConfocalMicroscopyImageFrameTypeSequence = value + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.clear() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ConfocalMicroscopyImageFrameType(self, item: ConfocalMicroscopyImageFrameTypeSequenceItem): + if not isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of ConfocalMicroscopyImageFrameTypeSequenceItem") + self._ConfocalMicroscopyImageFrameTypeSequence.append(item) + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentificationSequence(self) -> Optional[List[OpticalPathIdentificationSequenceItem]]: + if "OpticalPathIdentificationSequence" in self._dataset: + if len(self._OpticalPathIdentificationSequence) == len(self._dataset.OpticalPathIdentificationSequence): + return self._OpticalPathIdentificationSequence + else: + return [OpticalPathIdentificationSequenceItem(x) for x in self._dataset.OpticalPathIdentificationSequence] + return None + + @OpticalPathIdentificationSequence.setter + def OpticalPathIdentificationSequence(self, value: Optional[List[OpticalPathIdentificationSequenceItem]]): + if value is None: + self._OpticalPathIdentificationSequence = [] + if "OpticalPathIdentificationSequence" in self._dataset: + del self._dataset.OpticalPathIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathIdentificationSequenceItem) for item in value): + raise ValueError( + "OpticalPathIdentificationSequence must be a list of OpticalPathIdentificationSequenceItem objects" + ) + else: + self._OpticalPathIdentificationSequence = value + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.clear() + self._dataset.OpticalPathIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPathIdentification(self, item: OpticalPathIdentificationSequenceItem): + if not isinstance(item, OpticalPathIdentificationSequenceItem): + raise ValueError("Item must be an instance of OpticalPathIdentificationSequenceItem") + self._OpticalPathIdentificationSequence.append(item) + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_4.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_4.py new file mode 100644 index 0000000..cbdc6c1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_4.py @@ -0,0 +1,336 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .optical_path_identification_sequence_item import ( + OpticalPathIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .specimen_reference_sequence_item import SpecimenReferenceSequenceItem +from .whole_slide_microscopy_image_frame_type_sequence_item import ( + WholeSlideMicroscopyImageFrameTypeSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._WholeSlideMicroscopyImageFrameTypeSequence: List[WholeSlideMicroscopyImageFrameTypeSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._SpecimenReferenceSequence: List[SpecimenReferenceSequenceItem] = [] + self._OpticalPathIdentificationSequence: List[OpticalPathIdentificationSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def WholeSlideMicroscopyImageFrameTypeSequence(self) -> Optional[List[WholeSlideMicroscopyImageFrameTypeSequenceItem]]: + if "WholeSlideMicroscopyImageFrameTypeSequence" in self._dataset: + if len(self._WholeSlideMicroscopyImageFrameTypeSequence) == len( + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence + ): + return self._WholeSlideMicroscopyImageFrameTypeSequence + else: + return [ + WholeSlideMicroscopyImageFrameTypeSequenceItem(x) + for x in self._dataset.WholeSlideMicroscopyImageFrameTypeSequence + ] + return None + + @WholeSlideMicroscopyImageFrameTypeSequence.setter + def WholeSlideMicroscopyImageFrameTypeSequence( + self, value: Optional[List[WholeSlideMicroscopyImageFrameTypeSequenceItem]] + ): + if value is None: + self._WholeSlideMicroscopyImageFrameTypeSequence = [] + if "WholeSlideMicroscopyImageFrameTypeSequence" in self._dataset: + del self._dataset.WholeSlideMicroscopyImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, WholeSlideMicroscopyImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "WholeSlideMicroscopyImageFrameTypeSequence must be a list of WholeSlideMicroscopyImageFrameTypeSequenceItem" + " objects" + ) + else: + self._WholeSlideMicroscopyImageFrameTypeSequence = value + if "WholeSlideMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence.clear() + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_WholeSlideMicroscopyImageFrameType(self, item: WholeSlideMicroscopyImageFrameTypeSequenceItem): + if not isinstance(item, WholeSlideMicroscopyImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of WholeSlideMicroscopyImageFrameTypeSequenceItem") + self._WholeSlideMicroscopyImageFrameTypeSequence.append(item) + if "WholeSlideMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def SpecimenReferenceSequence(self) -> Optional[List[SpecimenReferenceSequenceItem]]: + if "SpecimenReferenceSequence" in self._dataset: + if len(self._SpecimenReferenceSequence) == len(self._dataset.SpecimenReferenceSequence): + return self._SpecimenReferenceSequence + else: + return [SpecimenReferenceSequenceItem(x) for x in self._dataset.SpecimenReferenceSequence] + return None + + @SpecimenReferenceSequence.setter + def SpecimenReferenceSequence(self, value: Optional[List[SpecimenReferenceSequenceItem]]): + if value is None: + self._SpecimenReferenceSequence = [] + if "SpecimenReferenceSequence" in self._dataset: + del self._dataset.SpecimenReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenReferenceSequenceItem) for item in value): + raise ValueError("SpecimenReferenceSequence must be a list of SpecimenReferenceSequenceItem objects") + else: + self._SpecimenReferenceSequence = value + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.clear() + self._dataset.SpecimenReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenReference(self, item: SpecimenReferenceSequenceItem): + if not isinstance(item, SpecimenReferenceSequenceItem): + raise ValueError("Item must be an instance of SpecimenReferenceSequenceItem") + self._SpecimenReferenceSequence.append(item) + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentificationSequence(self) -> Optional[List[OpticalPathIdentificationSequenceItem]]: + if "OpticalPathIdentificationSequence" in self._dataset: + if len(self._OpticalPathIdentificationSequence) == len(self._dataset.OpticalPathIdentificationSequence): + return self._OpticalPathIdentificationSequence + else: + return [OpticalPathIdentificationSequenceItem(x) for x in self._dataset.OpticalPathIdentificationSequence] + return None + + @OpticalPathIdentificationSequence.setter + def OpticalPathIdentificationSequence(self, value: Optional[List[OpticalPathIdentificationSequenceItem]]): + if value is None: + self._OpticalPathIdentificationSequence = [] + if "OpticalPathIdentificationSequence" in self._dataset: + del self._dataset.OpticalPathIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathIdentificationSequenceItem) for item in value): + raise ValueError( + "OpticalPathIdentificationSequence must be a list of OpticalPathIdentificationSequenceItem objects" + ) + else: + self._OpticalPathIdentificationSequence = value + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.clear() + self._dataset.OpticalPathIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPathIdentification(self, item: OpticalPathIdentificationSequenceItem): + if not isinstance(item, OpticalPathIdentificationSequenceItem): + raise ValueError("Item must be an instance of OpticalPathIdentificationSequenceItem") + self._OpticalPathIdentificationSequence.append(item) + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_5.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_5.py new file mode 100644 index 0000000..7b3079b --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_5.py @@ -0,0 +1,662 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .parametric_map_frame_type_sequence_item import ParametricMapFrameTypeSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .stored_value_color_range_sequence_item import StoredValueColorRangeSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._StoredValueColorRangeSequence: List[StoredValueColorRangeSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._ParametricMapFrameTypeSequence: List[ParametricMapFrameTypeSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def StoredValueColorRangeSequence(self) -> Optional[List[StoredValueColorRangeSequenceItem]]: + if "StoredValueColorRangeSequence" in self._dataset: + if len(self._StoredValueColorRangeSequence) == len(self._dataset.StoredValueColorRangeSequence): + return self._StoredValueColorRangeSequence + else: + return [StoredValueColorRangeSequenceItem(x) for x in self._dataset.StoredValueColorRangeSequence] + return None + + @StoredValueColorRangeSequence.setter + def StoredValueColorRangeSequence(self, value: Optional[List[StoredValueColorRangeSequenceItem]]): + if value is None: + self._StoredValueColorRangeSequence = [] + if "StoredValueColorRangeSequence" in self._dataset: + del self._dataset.StoredValueColorRangeSequence + elif not isinstance(value, list) or not all(isinstance(item, StoredValueColorRangeSequenceItem) for item in value): + raise ValueError("StoredValueColorRangeSequence must be a list of StoredValueColorRangeSequenceItem objects") + else: + self._StoredValueColorRangeSequence = value + if "StoredValueColorRangeSequence" not in self._dataset: + self._dataset.StoredValueColorRangeSequence = pydicom.Sequence() + self._dataset.StoredValueColorRangeSequence.clear() + self._dataset.StoredValueColorRangeSequence.extend([item.to_dataset() for item in value]) + + def add_StoredValueColorRange(self, item: StoredValueColorRangeSequenceItem): + if not isinstance(item, StoredValueColorRangeSequenceItem): + raise ValueError("Item must be an instance of StoredValueColorRangeSequenceItem") + self._StoredValueColorRangeSequence.append(item) + if "StoredValueColorRangeSequence" not in self._dataset: + self._dataset.StoredValueColorRangeSequence = pydicom.Sequence() + self._dataset.StoredValueColorRangeSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def ParametricMapFrameTypeSequence(self) -> Optional[List[ParametricMapFrameTypeSequenceItem]]: + if "ParametricMapFrameTypeSequence" in self._dataset: + if len(self._ParametricMapFrameTypeSequence) == len(self._dataset.ParametricMapFrameTypeSequence): + return self._ParametricMapFrameTypeSequence + else: + return [ParametricMapFrameTypeSequenceItem(x) for x in self._dataset.ParametricMapFrameTypeSequence] + return None + + @ParametricMapFrameTypeSequence.setter + def ParametricMapFrameTypeSequence(self, value: Optional[List[ParametricMapFrameTypeSequenceItem]]): + if value is None: + self._ParametricMapFrameTypeSequence = [] + if "ParametricMapFrameTypeSequence" in self._dataset: + del self._dataset.ParametricMapFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, ParametricMapFrameTypeSequenceItem) for item in value): + raise ValueError("ParametricMapFrameTypeSequence must be a list of ParametricMapFrameTypeSequenceItem objects") + else: + self._ParametricMapFrameTypeSequence = value + if "ParametricMapFrameTypeSequence" not in self._dataset: + self._dataset.ParametricMapFrameTypeSequence = pydicom.Sequence() + self._dataset.ParametricMapFrameTypeSequence.clear() + self._dataset.ParametricMapFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ParametricMapFrameType(self, item: ParametricMapFrameTypeSequenceItem): + if not isinstance(item, ParametricMapFrameTypeSequenceItem): + raise ValueError("Item must be an instance of ParametricMapFrameTypeSequenceItem") + self._ParametricMapFrameTypeSequence.append(item) + if "ParametricMapFrameTypeSequence" not in self._dataset: + self._dataset.ParametricMapFrameTypeSequence = pydicom.Sequence() + self._dataset.ParametricMapFrameTypeSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_6.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_6.py new file mode 100644 index 0000000..ebe1713 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_6.py @@ -0,0 +1,746 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .patient_physiological_state_sequence_item import ( + PatientPhysiologicalStateSequenceItem, +) +from .pet_detector_motion_details_sequence_item import ( + PETDetectorMotionDetailsSequenceItem, +) +from .pet_frame_acquisition_sequence_item import PETFrameAcquisitionSequenceItem +from .pet_frame_correction_factors_sequence_item import ( + PETFrameCorrectionFactorsSequenceItem, +) +from .pet_frame_type_sequence_item import PETFrameTypeSequenceItem +from .pet_position_sequence_item import PETPositionSequenceItem +from .pet_reconstruction_sequence_item import PETReconstructionSequenceItem +from .pet_table_dynamics_sequence_item import PETTableDynamicsSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .radiopharmaceutical_usage_sequence_item import ( + RadiopharmaceuticalUsageSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._PETFrameAcquisitionSequence: List[PETFrameAcquisitionSequenceItem] = [] + self._PETDetectorMotionDetailsSequence: List[PETDetectorMotionDetailsSequenceItem] = [] + self._PETTableDynamicsSequence: List[PETTableDynamicsSequenceItem] = [] + self._PETPositionSequence: List[PETPositionSequenceItem] = [] + self._PETFrameCorrectionFactorsSequence: List[PETFrameCorrectionFactorsSequenceItem] = [] + self._RadiopharmaceuticalUsageSequence: List[RadiopharmaceuticalUsageSequenceItem] = [] + self._PETReconstructionSequence: List[PETReconstructionSequenceItem] = [] + self._PETFrameTypeSequence: List[PETFrameTypeSequenceItem] = [] + self._PatientPhysiologicalStateSequence: List[PatientPhysiologicalStateSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def PETFrameAcquisitionSequence(self) -> Optional[List[PETFrameAcquisitionSequenceItem]]: + if "PETFrameAcquisitionSequence" in self._dataset: + if len(self._PETFrameAcquisitionSequence) == len(self._dataset.PETFrameAcquisitionSequence): + return self._PETFrameAcquisitionSequence + else: + return [PETFrameAcquisitionSequenceItem(x) for x in self._dataset.PETFrameAcquisitionSequence] + return None + + @PETFrameAcquisitionSequence.setter + def PETFrameAcquisitionSequence(self, value: Optional[List[PETFrameAcquisitionSequenceItem]]): + if value is None: + self._PETFrameAcquisitionSequence = [] + if "PETFrameAcquisitionSequence" in self._dataset: + del self._dataset.PETFrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameAcquisitionSequenceItem) for item in value): + raise ValueError("PETFrameAcquisitionSequence must be a list of PETFrameAcquisitionSequenceItem objects") + else: + self._PETFrameAcquisitionSequence = value + if "PETFrameAcquisitionSequence" not in self._dataset: + self._dataset.PETFrameAcquisitionSequence = pydicom.Sequence() + self._dataset.PETFrameAcquisitionSequence.clear() + self._dataset.PETFrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameAcquisition(self, item: PETFrameAcquisitionSequenceItem): + if not isinstance(item, PETFrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of PETFrameAcquisitionSequenceItem") + self._PETFrameAcquisitionSequence.append(item) + if "PETFrameAcquisitionSequence" not in self._dataset: + self._dataset.PETFrameAcquisitionSequence = pydicom.Sequence() + self._dataset.PETFrameAcquisitionSequence.append(item.to_dataset()) + + @property + def PETDetectorMotionDetailsSequence(self) -> Optional[List[PETDetectorMotionDetailsSequenceItem]]: + if "PETDetectorMotionDetailsSequence" in self._dataset: + if len(self._PETDetectorMotionDetailsSequence) == len(self._dataset.PETDetectorMotionDetailsSequence): + return self._PETDetectorMotionDetailsSequence + else: + return [PETDetectorMotionDetailsSequenceItem(x) for x in self._dataset.PETDetectorMotionDetailsSequence] + return None + + @PETDetectorMotionDetailsSequence.setter + def PETDetectorMotionDetailsSequence(self, value: Optional[List[PETDetectorMotionDetailsSequenceItem]]): + if value is None: + self._PETDetectorMotionDetailsSequence = [] + if "PETDetectorMotionDetailsSequence" in self._dataset: + del self._dataset.PETDetectorMotionDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, PETDetectorMotionDetailsSequenceItem) for item in value): + raise ValueError("PETDetectorMotionDetailsSequence must be a list of PETDetectorMotionDetailsSequenceItem objects") + else: + self._PETDetectorMotionDetailsSequence = value + if "PETDetectorMotionDetailsSequence" not in self._dataset: + self._dataset.PETDetectorMotionDetailsSequence = pydicom.Sequence() + self._dataset.PETDetectorMotionDetailsSequence.clear() + self._dataset.PETDetectorMotionDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_PETDetectorMotionDetails(self, item: PETDetectorMotionDetailsSequenceItem): + if not isinstance(item, PETDetectorMotionDetailsSequenceItem): + raise ValueError("Item must be an instance of PETDetectorMotionDetailsSequenceItem") + self._PETDetectorMotionDetailsSequence.append(item) + if "PETDetectorMotionDetailsSequence" not in self._dataset: + self._dataset.PETDetectorMotionDetailsSequence = pydicom.Sequence() + self._dataset.PETDetectorMotionDetailsSequence.append(item.to_dataset()) + + @property + def PETTableDynamicsSequence(self) -> Optional[List[PETTableDynamicsSequenceItem]]: + if "PETTableDynamicsSequence" in self._dataset: + if len(self._PETTableDynamicsSequence) == len(self._dataset.PETTableDynamicsSequence): + return self._PETTableDynamicsSequence + else: + return [PETTableDynamicsSequenceItem(x) for x in self._dataset.PETTableDynamicsSequence] + return None + + @PETTableDynamicsSequence.setter + def PETTableDynamicsSequence(self, value: Optional[List[PETTableDynamicsSequenceItem]]): + if value is None: + self._PETTableDynamicsSequence = [] + if "PETTableDynamicsSequence" in self._dataset: + del self._dataset.PETTableDynamicsSequence + elif not isinstance(value, list) or not all(isinstance(item, PETTableDynamicsSequenceItem) for item in value): + raise ValueError("PETTableDynamicsSequence must be a list of PETTableDynamicsSequenceItem objects") + else: + self._PETTableDynamicsSequence = value + if "PETTableDynamicsSequence" not in self._dataset: + self._dataset.PETTableDynamicsSequence = pydicom.Sequence() + self._dataset.PETTableDynamicsSequence.clear() + self._dataset.PETTableDynamicsSequence.extend([item.to_dataset() for item in value]) + + def add_PETTableDynamics(self, item: PETTableDynamicsSequenceItem): + if not isinstance(item, PETTableDynamicsSequenceItem): + raise ValueError("Item must be an instance of PETTableDynamicsSequenceItem") + self._PETTableDynamicsSequence.append(item) + if "PETTableDynamicsSequence" not in self._dataset: + self._dataset.PETTableDynamicsSequence = pydicom.Sequence() + self._dataset.PETTableDynamicsSequence.append(item.to_dataset()) + + @property + def PETPositionSequence(self) -> Optional[List[PETPositionSequenceItem]]: + if "PETPositionSequence" in self._dataset: + if len(self._PETPositionSequence) == len(self._dataset.PETPositionSequence): + return self._PETPositionSequence + else: + return [PETPositionSequenceItem(x) for x in self._dataset.PETPositionSequence] + return None + + @PETPositionSequence.setter + def PETPositionSequence(self, value: Optional[List[PETPositionSequenceItem]]): + if value is None: + self._PETPositionSequence = [] + if "PETPositionSequence" in self._dataset: + del self._dataset.PETPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PETPositionSequenceItem) for item in value): + raise ValueError("PETPositionSequence must be a list of PETPositionSequenceItem objects") + else: + self._PETPositionSequence = value + if "PETPositionSequence" not in self._dataset: + self._dataset.PETPositionSequence = pydicom.Sequence() + self._dataset.PETPositionSequence.clear() + self._dataset.PETPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PETPosition(self, item: PETPositionSequenceItem): + if not isinstance(item, PETPositionSequenceItem): + raise ValueError("Item must be an instance of PETPositionSequenceItem") + self._PETPositionSequence.append(item) + if "PETPositionSequence" not in self._dataset: + self._dataset.PETPositionSequence = pydicom.Sequence() + self._dataset.PETPositionSequence.append(item.to_dataset()) + + @property + def PETFrameCorrectionFactorsSequence(self) -> Optional[List[PETFrameCorrectionFactorsSequenceItem]]: + if "PETFrameCorrectionFactorsSequence" in self._dataset: + if len(self._PETFrameCorrectionFactorsSequence) == len(self._dataset.PETFrameCorrectionFactorsSequence): + return self._PETFrameCorrectionFactorsSequence + else: + return [PETFrameCorrectionFactorsSequenceItem(x) for x in self._dataset.PETFrameCorrectionFactorsSequence] + return None + + @PETFrameCorrectionFactorsSequence.setter + def PETFrameCorrectionFactorsSequence(self, value: Optional[List[PETFrameCorrectionFactorsSequenceItem]]): + if value is None: + self._PETFrameCorrectionFactorsSequence = [] + if "PETFrameCorrectionFactorsSequence" in self._dataset: + del self._dataset.PETFrameCorrectionFactorsSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameCorrectionFactorsSequenceItem) for item in value): + raise ValueError( + "PETFrameCorrectionFactorsSequence must be a list of PETFrameCorrectionFactorsSequenceItem objects" + ) + else: + self._PETFrameCorrectionFactorsSequence = value + if "PETFrameCorrectionFactorsSequence" not in self._dataset: + self._dataset.PETFrameCorrectionFactorsSequence = pydicom.Sequence() + self._dataset.PETFrameCorrectionFactorsSequence.clear() + self._dataset.PETFrameCorrectionFactorsSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameCorrectionFactors(self, item: PETFrameCorrectionFactorsSequenceItem): + if not isinstance(item, PETFrameCorrectionFactorsSequenceItem): + raise ValueError("Item must be an instance of PETFrameCorrectionFactorsSequenceItem") + self._PETFrameCorrectionFactorsSequence.append(item) + if "PETFrameCorrectionFactorsSequence" not in self._dataset: + self._dataset.PETFrameCorrectionFactorsSequence = pydicom.Sequence() + self._dataset.PETFrameCorrectionFactorsSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalUsageSequence(self) -> Optional[List[RadiopharmaceuticalUsageSequenceItem]]: + if "RadiopharmaceuticalUsageSequence" in self._dataset: + if len(self._RadiopharmaceuticalUsageSequence) == len(self._dataset.RadiopharmaceuticalUsageSequence): + return self._RadiopharmaceuticalUsageSequence + else: + return [RadiopharmaceuticalUsageSequenceItem(x) for x in self._dataset.RadiopharmaceuticalUsageSequence] + return None + + @RadiopharmaceuticalUsageSequence.setter + def RadiopharmaceuticalUsageSequence(self, value: Optional[List[RadiopharmaceuticalUsageSequenceItem]]): + if value is None: + self._RadiopharmaceuticalUsageSequence = [] + if "RadiopharmaceuticalUsageSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiopharmaceuticalUsageSequenceItem) for item in value): + raise ValueError("RadiopharmaceuticalUsageSequence must be a list of RadiopharmaceuticalUsageSequenceItem objects") + else: + self._RadiopharmaceuticalUsageSequence = value + if "RadiopharmaceuticalUsageSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalUsageSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalUsageSequence.clear() + self._dataset.RadiopharmaceuticalUsageSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalUsage(self, item: RadiopharmaceuticalUsageSequenceItem): + if not isinstance(item, RadiopharmaceuticalUsageSequenceItem): + raise ValueError("Item must be an instance of RadiopharmaceuticalUsageSequenceItem") + self._RadiopharmaceuticalUsageSequence.append(item) + if "RadiopharmaceuticalUsageSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalUsageSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalUsageSequence.append(item.to_dataset()) + + @property + def PETReconstructionSequence(self) -> Optional[List[PETReconstructionSequenceItem]]: + if "PETReconstructionSequence" in self._dataset: + if len(self._PETReconstructionSequence) == len(self._dataset.PETReconstructionSequence): + return self._PETReconstructionSequence + else: + return [PETReconstructionSequenceItem(x) for x in self._dataset.PETReconstructionSequence] + return None + + @PETReconstructionSequence.setter + def PETReconstructionSequence(self, value: Optional[List[PETReconstructionSequenceItem]]): + if value is None: + self._PETReconstructionSequence = [] + if "PETReconstructionSequence" in self._dataset: + del self._dataset.PETReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, PETReconstructionSequenceItem) for item in value): + raise ValueError("PETReconstructionSequence must be a list of PETReconstructionSequenceItem objects") + else: + self._PETReconstructionSequence = value + if "PETReconstructionSequence" not in self._dataset: + self._dataset.PETReconstructionSequence = pydicom.Sequence() + self._dataset.PETReconstructionSequence.clear() + self._dataset.PETReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_PETReconstruction(self, item: PETReconstructionSequenceItem): + if not isinstance(item, PETReconstructionSequenceItem): + raise ValueError("Item must be an instance of PETReconstructionSequenceItem") + self._PETReconstructionSequence.append(item) + if "PETReconstructionSequence" not in self._dataset: + self._dataset.PETReconstructionSequence = pydicom.Sequence() + self._dataset.PETReconstructionSequence.append(item.to_dataset()) + + @property + def PETFrameTypeSequence(self) -> Optional[List[PETFrameTypeSequenceItem]]: + if "PETFrameTypeSequence" in self._dataset: + if len(self._PETFrameTypeSequence) == len(self._dataset.PETFrameTypeSequence): + return self._PETFrameTypeSequence + else: + return [PETFrameTypeSequenceItem(x) for x in self._dataset.PETFrameTypeSequence] + return None + + @PETFrameTypeSequence.setter + def PETFrameTypeSequence(self, value: Optional[List[PETFrameTypeSequenceItem]]): + if value is None: + self._PETFrameTypeSequence = [] + if "PETFrameTypeSequence" in self._dataset: + del self._dataset.PETFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameTypeSequenceItem) for item in value): + raise ValueError("PETFrameTypeSequence must be a list of PETFrameTypeSequenceItem objects") + else: + self._PETFrameTypeSequence = value + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.clear() + self._dataset.PETFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameType(self, item: PETFrameTypeSequenceItem): + if not isinstance(item, PETFrameTypeSequenceItem): + raise ValueError("Item must be an instance of PETFrameTypeSequenceItem") + self._PETFrameTypeSequence.append(item) + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.append(item.to_dataset()) + + @property + def PatientPhysiologicalStateSequence(self) -> Optional[List[PatientPhysiologicalStateSequenceItem]]: + if "PatientPhysiologicalStateSequence" in self._dataset: + if len(self._PatientPhysiologicalStateSequence) == len(self._dataset.PatientPhysiologicalStateSequence): + return self._PatientPhysiologicalStateSequence + else: + return [PatientPhysiologicalStateSequenceItem(x) for x in self._dataset.PatientPhysiologicalStateSequence] + return None + + @PatientPhysiologicalStateSequence.setter + def PatientPhysiologicalStateSequence(self, value: Optional[List[PatientPhysiologicalStateSequenceItem]]): + if value is None: + self._PatientPhysiologicalStateSequence = [] + if "PatientPhysiologicalStateSequence" in self._dataset: + del self._dataset.PatientPhysiologicalStateSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientPhysiologicalStateSequenceItem) for item in value): + raise ValueError( + "PatientPhysiologicalStateSequence must be a list of PatientPhysiologicalStateSequenceItem objects" + ) + else: + self._PatientPhysiologicalStateSequence = value + if "PatientPhysiologicalStateSequence" not in self._dataset: + self._dataset.PatientPhysiologicalStateSequence = pydicom.Sequence() + self._dataset.PatientPhysiologicalStateSequence.clear() + self._dataset.PatientPhysiologicalStateSequence.extend([item.to_dataset() for item in value]) + + def add_PatientPhysiologicalState(self, item: PatientPhysiologicalStateSequenceItem): + if not isinstance(item, PatientPhysiologicalStateSequenceItem): + raise ValueError("Item must be an instance of PatientPhysiologicalStateSequenceItem") + self._PatientPhysiologicalStateSequence.append(item) + if "PatientPhysiologicalStateSequence" not in self._dataset: + self._dataset.PatientPhysiologicalStateSequence = pydicom.Sequence() + self._dataset.PatientPhysiologicalStateSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_7.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_7.py new file mode 100644 index 0000000..4913e13 --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_7.py @@ -0,0 +1,634 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .image_data_type_sequence_item import ImageDataTypeSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_orientation_volume_sequence_item import PlaneOrientationVolumeSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_volume_sequence_item import PlanePositionVolumeSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .us_image_description_sequence_item import USImageDescriptionSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._USImageDescriptionSequence: List[USImageDescriptionSequenceItem] = [] + self._ImageDataTypeSequence: List[ImageDataTypeSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PlanePositionVolumeSequence: List[PlanePositionVolumeSequenceItem] = [] + self._PlaneOrientationVolumeSequence: List[PlaneOrientationVolumeSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def USImageDescriptionSequence(self) -> Optional[List[USImageDescriptionSequenceItem]]: + if "USImageDescriptionSequence" in self._dataset: + if len(self._USImageDescriptionSequence) == len(self._dataset.USImageDescriptionSequence): + return self._USImageDescriptionSequence + else: + return [USImageDescriptionSequenceItem(x) for x in self._dataset.USImageDescriptionSequence] + return None + + @USImageDescriptionSequence.setter + def USImageDescriptionSequence(self, value: Optional[List[USImageDescriptionSequenceItem]]): + if value is None: + self._USImageDescriptionSequence = [] + if "USImageDescriptionSequence" in self._dataset: + del self._dataset.USImageDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, USImageDescriptionSequenceItem) for item in value): + raise ValueError("USImageDescriptionSequence must be a list of USImageDescriptionSequenceItem objects") + else: + self._USImageDescriptionSequence = value + if "USImageDescriptionSequence" not in self._dataset: + self._dataset.USImageDescriptionSequence = pydicom.Sequence() + self._dataset.USImageDescriptionSequence.clear() + self._dataset.USImageDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_USImageDescription(self, item: USImageDescriptionSequenceItem): + if not isinstance(item, USImageDescriptionSequenceItem): + raise ValueError("Item must be an instance of USImageDescriptionSequenceItem") + self._USImageDescriptionSequence.append(item) + if "USImageDescriptionSequence" not in self._dataset: + self._dataset.USImageDescriptionSequence = pydicom.Sequence() + self._dataset.USImageDescriptionSequence.append(item.to_dataset()) + + @property + def ImageDataTypeSequence(self) -> Optional[List[ImageDataTypeSequenceItem]]: + if "ImageDataTypeSequence" in self._dataset: + if len(self._ImageDataTypeSequence) == len(self._dataset.ImageDataTypeSequence): + return self._ImageDataTypeSequence + else: + return [ImageDataTypeSequenceItem(x) for x in self._dataset.ImageDataTypeSequence] + return None + + @ImageDataTypeSequence.setter + def ImageDataTypeSequence(self, value: Optional[List[ImageDataTypeSequenceItem]]): + if value is None: + self._ImageDataTypeSequence = [] + if "ImageDataTypeSequence" in self._dataset: + del self._dataset.ImageDataTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageDataTypeSequenceItem) for item in value): + raise ValueError("ImageDataTypeSequence must be a list of ImageDataTypeSequenceItem objects") + else: + self._ImageDataTypeSequence = value + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.clear() + self._dataset.ImageDataTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ImageDataType(self, item: ImageDataTypeSequenceItem): + if not isinstance(item, ImageDataTypeSequenceItem): + raise ValueError("Item must be an instance of ImageDataTypeSequenceItem") + self._ImageDataTypeSequence.append(item) + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PlanePositionVolumeSequence(self) -> Optional[List[PlanePositionVolumeSequenceItem]]: + if "PlanePositionVolumeSequence" in self._dataset: + if len(self._PlanePositionVolumeSequence) == len(self._dataset.PlanePositionVolumeSequence): + return self._PlanePositionVolumeSequence + else: + return [PlanePositionVolumeSequenceItem(x) for x in self._dataset.PlanePositionVolumeSequence] + return None + + @PlanePositionVolumeSequence.setter + def PlanePositionVolumeSequence(self, value: Optional[List[PlanePositionVolumeSequenceItem]]): + if value is None: + self._PlanePositionVolumeSequence = [] + if "PlanePositionVolumeSequence" in self._dataset: + del self._dataset.PlanePositionVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionVolumeSequenceItem) for item in value): + raise ValueError("PlanePositionVolumeSequence must be a list of PlanePositionVolumeSequenceItem objects") + else: + self._PlanePositionVolumeSequence = value + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.clear() + self._dataset.PlanePositionVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionVolume(self, item: PlanePositionVolumeSequenceItem): + if not isinstance(item, PlanePositionVolumeSequenceItem): + raise ValueError("Item must be an instance of PlanePositionVolumeSequenceItem") + self._PlanePositionVolumeSequence.append(item) + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.append(item.to_dataset()) + + @property + def PlaneOrientationVolumeSequence(self) -> Optional[List[PlaneOrientationVolumeSequenceItem]]: + if "PlaneOrientationVolumeSequence" in self._dataset: + if len(self._PlaneOrientationVolumeSequence) == len(self._dataset.PlaneOrientationVolumeSequence): + return self._PlaneOrientationVolumeSequence + else: + return [PlaneOrientationVolumeSequenceItem(x) for x in self._dataset.PlaneOrientationVolumeSequence] + return None + + @PlaneOrientationVolumeSequence.setter + def PlaneOrientationVolumeSequence(self, value: Optional[List[PlaneOrientationVolumeSequenceItem]]): + if value is None: + self._PlaneOrientationVolumeSequence = [] + if "PlaneOrientationVolumeSequence" in self._dataset: + del self._dataset.PlaneOrientationVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationVolumeSequenceItem) for item in value): + raise ValueError("PlaneOrientationVolumeSequence must be a list of PlaneOrientationVolumeSequenceItem objects") + else: + self._PlaneOrientationVolumeSequence = value + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.clear() + self._dataset.PlaneOrientationVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientationVolume(self, item: PlaneOrientationVolumeSequenceItem): + if not isinstance(item, PlaneOrientationVolumeSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationVolumeSequenceItem") + self._PlaneOrientationVolumeSequence.append(item) + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_8.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_8.py new file mode 100644 index 0000000..ab5d78d --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_8.py @@ -0,0 +1,318 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_9.py b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_9.py new file mode 100644 index 0000000..ff75d0f --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_frame_functional_groups_sequence_item_9.py @@ -0,0 +1,376 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .intravascular_frame_content_sequence_item import ( + IntravascularFrameContentSequenceItem, +) +from .intravascular_oct_frame_content_sequence_item import ( + IntravascularOCTFrameContentSequenceItem, +) +from .intravascular_oct_frame_type_sequence_item import ( + IntravascularOCTFrameTypeSequenceItem, +) +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem + + +class PerFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._IntravascularOCTFrameTypeSequence: List[IntravascularOCTFrameTypeSequenceItem] = [] + self._IntravascularFrameContentSequence: List[IntravascularFrameContentSequenceItem] = [] + self._IntravascularOCTFrameContentSequence: List[IntravascularOCTFrameContentSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def IntravascularOCTFrameTypeSequence(self) -> Optional[List[IntravascularOCTFrameTypeSequenceItem]]: + if "IntravascularOCTFrameTypeSequence" in self._dataset: + if len(self._IntravascularOCTFrameTypeSequence) == len(self._dataset.IntravascularOCTFrameTypeSequence): + return self._IntravascularOCTFrameTypeSequence + else: + return [IntravascularOCTFrameTypeSequenceItem(x) for x in self._dataset.IntravascularOCTFrameTypeSequence] + return None + + @IntravascularOCTFrameTypeSequence.setter + def IntravascularOCTFrameTypeSequence(self, value: Optional[List[IntravascularOCTFrameTypeSequenceItem]]): + if value is None: + self._IntravascularOCTFrameTypeSequence = [] + if "IntravascularOCTFrameTypeSequence" in self._dataset: + del self._dataset.IntravascularOCTFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, IntravascularOCTFrameTypeSequenceItem) for item in value): + raise ValueError( + "IntravascularOCTFrameTypeSequence must be a list of IntravascularOCTFrameTypeSequenceItem objects" + ) + else: + self._IntravascularOCTFrameTypeSequence = value + if "IntravascularOCTFrameTypeSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameTypeSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameTypeSequence.clear() + self._dataset.IntravascularOCTFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_IntravascularOCTFrameType(self, item: IntravascularOCTFrameTypeSequenceItem): + if not isinstance(item, IntravascularOCTFrameTypeSequenceItem): + raise ValueError("Item must be an instance of IntravascularOCTFrameTypeSequenceItem") + self._IntravascularOCTFrameTypeSequence.append(item) + if "IntravascularOCTFrameTypeSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameTypeSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameTypeSequence.append(item.to_dataset()) + + @property + def IntravascularFrameContentSequence(self) -> Optional[List[IntravascularFrameContentSequenceItem]]: + if "IntravascularFrameContentSequence" in self._dataset: + if len(self._IntravascularFrameContentSequence) == len(self._dataset.IntravascularFrameContentSequence): + return self._IntravascularFrameContentSequence + else: + return [IntravascularFrameContentSequenceItem(x) for x in self._dataset.IntravascularFrameContentSequence] + return None + + @IntravascularFrameContentSequence.setter + def IntravascularFrameContentSequence(self, value: Optional[List[IntravascularFrameContentSequenceItem]]): + if value is None: + self._IntravascularFrameContentSequence = [] + if "IntravascularFrameContentSequence" in self._dataset: + del self._dataset.IntravascularFrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, IntravascularFrameContentSequenceItem) for item in value): + raise ValueError( + "IntravascularFrameContentSequence must be a list of IntravascularFrameContentSequenceItem objects" + ) + else: + self._IntravascularFrameContentSequence = value + if "IntravascularFrameContentSequence" not in self._dataset: + self._dataset.IntravascularFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularFrameContentSequence.clear() + self._dataset.IntravascularFrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_IntravascularFrameContent(self, item: IntravascularFrameContentSequenceItem): + if not isinstance(item, IntravascularFrameContentSequenceItem): + raise ValueError("Item must be an instance of IntravascularFrameContentSequenceItem") + self._IntravascularFrameContentSequence.append(item) + if "IntravascularFrameContentSequence" not in self._dataset: + self._dataset.IntravascularFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularFrameContentSequence.append(item.to_dataset()) + + @property + def IntravascularOCTFrameContentSequence(self) -> Optional[List[IntravascularOCTFrameContentSequenceItem]]: + if "IntravascularOCTFrameContentSequence" in self._dataset: + if len(self._IntravascularOCTFrameContentSequence) == len(self._dataset.IntravascularOCTFrameContentSequence): + return self._IntravascularOCTFrameContentSequence + else: + return [ + IntravascularOCTFrameContentSequenceItem(x) for x in self._dataset.IntravascularOCTFrameContentSequence + ] + return None + + @IntravascularOCTFrameContentSequence.setter + def IntravascularOCTFrameContentSequence(self, value: Optional[List[IntravascularOCTFrameContentSequenceItem]]): + if value is None: + self._IntravascularOCTFrameContentSequence = [] + if "IntravascularOCTFrameContentSequence" in self._dataset: + del self._dataset.IntravascularOCTFrameContentSequence + elif not isinstance(value, list) or not all( + isinstance(item, IntravascularOCTFrameContentSequenceItem) for item in value + ): + raise ValueError( + "IntravascularOCTFrameContentSequence must be a list of IntravascularOCTFrameContentSequenceItem objects" + ) + else: + self._IntravascularOCTFrameContentSequence = value + if "IntravascularOCTFrameContentSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameContentSequence.clear() + self._dataset.IntravascularOCTFrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_IntravascularOCTFrameContent(self, item: IntravascularOCTFrameContentSequenceItem): + if not isinstance(item, IntravascularOCTFrameContentSequenceItem): + raise ValueError("Item must be an instance of IntravascularOCTFrameContentSequenceItem") + self._IntravascularOCTFrameContentSequence.append(item) + if "IntravascularOCTFrameContentSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameContentSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item.py new file mode 100644 index 0000000..60500dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item.py @@ -0,0 +1,236 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PerProjectionAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def FrameAcquisitionDuration(self) -> Optional[float]: + if "FrameAcquisitionDuration" in self._dataset: + return self._dataset.FrameAcquisitionDuration + return None + + @FrameAcquisitionDuration.setter + def FrameAcquisitionDuration(self, value: Optional[float]): + if value is None: + if "FrameAcquisitionDuration" in self._dataset: + del self._dataset.FrameAcquisitionDuration + else: + self._dataset.FrameAcquisitionDuration = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def PositionerIsocenterPrimaryAngle(self) -> Optional[float]: + if "PositionerIsocenterPrimaryAngle" in self._dataset: + return self._dataset.PositionerIsocenterPrimaryAngle + return None + + @PositionerIsocenterPrimaryAngle.setter + def PositionerIsocenterPrimaryAngle(self, value: Optional[float]): + if value is None: + if "PositionerIsocenterPrimaryAngle" in self._dataset: + del self._dataset.PositionerIsocenterPrimaryAngle + else: + self._dataset.PositionerIsocenterPrimaryAngle = value + + @property + def PositionerIsocenterSecondaryAngle(self) -> Optional[float]: + if "PositionerIsocenterSecondaryAngle" in self._dataset: + return self._dataset.PositionerIsocenterSecondaryAngle + return None + + @PositionerIsocenterSecondaryAngle.setter + def PositionerIsocenterSecondaryAngle(self, value: Optional[float]): + if value is None: + if "PositionerIsocenterSecondaryAngle" in self._dataset: + del self._dataset.PositionerIsocenterSecondaryAngle + else: + self._dataset.PositionerIsocenterSecondaryAngle = value + + @property + def PositionerIsocenterDetectorRotationAngle(self) -> Optional[float]: + if "PositionerIsocenterDetectorRotationAngle" in self._dataset: + return self._dataset.PositionerIsocenterDetectorRotationAngle + return None + + @PositionerIsocenterDetectorRotationAngle.setter + def PositionerIsocenterDetectorRotationAngle(self, value: Optional[float]): + if value is None: + if "PositionerIsocenterDetectorRotationAngle" in self._dataset: + del self._dataset.PositionerIsocenterDetectorRotationAngle + else: + self._dataset.PositionerIsocenterDetectorRotationAngle = value diff --git a/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_1.py b/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_1.py new file mode 100644 index 0000000..eaf198b --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_1.py @@ -0,0 +1,166 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PerProjectionAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def FrameAcquisitionDuration(self) -> Optional[float]: + if "FrameAcquisitionDuration" in self._dataset: + return self._dataset.FrameAcquisitionDuration + return None + + @FrameAcquisitionDuration.setter + def FrameAcquisitionDuration(self, value: Optional[float]): + if value is None: + if "FrameAcquisitionDuration" in self._dataset: + del self._dataset.FrameAcquisitionDuration + else: + self._dataset.FrameAcquisitionDuration = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value diff --git a/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_2.py b/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_2.py new file mode 100644 index 0000000..4d8f65f --- /dev/null +++ b/tdwii_plus_examples/domain_model/per_projection_acquisition_sequence_item_2.py @@ -0,0 +1,348 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PerProjectionAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def RelativeXRayExposure(self) -> Optional[int]: + if "RelativeXRayExposure" in self._dataset: + return self._dataset.RelativeXRayExposure + return None + + @RelativeXRayExposure.setter + def RelativeXRayExposure(self, value: Optional[int]): + if value is None: + if "RelativeXRayExposure" in self._dataset: + del self._dataset.RelativeXRayExposure + else: + self._dataset.RelativeXRayExposure = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def FrameAcquisitionDuration(self) -> Optional[float]: + if "FrameAcquisitionDuration" in self._dataset: + return self._dataset.FrameAcquisitionDuration + return None + + @FrameAcquisitionDuration.setter + def FrameAcquisitionDuration(self, value: Optional[float]): + if value is None: + if "FrameAcquisitionDuration" in self._dataset: + del self._dataset.FrameAcquisitionDuration + else: + self._dataset.FrameAcquisitionDuration = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def PositionerPrimaryAngleDirection(self) -> Optional[str]: + if "PositionerPrimaryAngleDirection" in self._dataset: + return self._dataset.PositionerPrimaryAngleDirection + return None + + @PositionerPrimaryAngleDirection.setter + def PositionerPrimaryAngleDirection(self, value: Optional[str]): + if value is None: + if "PositionerPrimaryAngleDirection" in self._dataset: + del self._dataset.PositionerPrimaryAngleDirection + else: + self._dataset.PositionerPrimaryAngleDirection = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value diff --git a/tdwii_plus_examples/domain_model/performed_imaging_agent_administration_sr.py b/tdwii_plus_examples/domain_model/performed_imaging_agent_administration_sr.py new file mode 100644 index 0000000..ee85fa7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/performed_imaging_agent_administration_sr.py @@ -0,0 +1,4673 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class PerformedImagingAgentAdministrationSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/performed_processing_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/performed_processing_parameters_sequence_item.py new file mode 100644 index 0000000..85f7223 --- /dev/null +++ b/tdwii_plus_examples/domain_model/performed_processing_parameters_sequence_item.py @@ -0,0 +1,363 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_item_modifier_sequence_item import ContentItemModifierSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class PerformedProcessingParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ContentItemModifierSequence: List[ContentItemModifierSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ContentItemModifierSequence(self) -> Optional[List[ContentItemModifierSequenceItem]]: + if "ContentItemModifierSequence" in self._dataset: + if len(self._ContentItemModifierSequence) == len(self._dataset.ContentItemModifierSequence): + return self._ContentItemModifierSequence + else: + return [ContentItemModifierSequenceItem(x) for x in self._dataset.ContentItemModifierSequence] + return None + + @ContentItemModifierSequence.setter + def ContentItemModifierSequence(self, value: Optional[List[ContentItemModifierSequenceItem]]): + if value is None: + self._ContentItemModifierSequence = [] + if "ContentItemModifierSequence" in self._dataset: + del self._dataset.ContentItemModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentItemModifierSequenceItem) for item in value): + raise ValueError("ContentItemModifierSequence must be a list of ContentItemModifierSequenceItem objects") + else: + self._ContentItemModifierSequence = value + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.clear() + self._dataset.ContentItemModifierSequence.extend([item.to_dataset() for item in value]) + + def add_ContentItemModifier(self, item: ContentItemModifierSequenceItem): + if not isinstance(item, ContentItemModifierSequenceItem): + raise ValueError("Item must be an instance of ContentItemModifierSequenceItem") + self._ContentItemModifierSequence.append(item) + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/performing_physician_identification_sequence_item.py b/tdwii_plus_examples/domain_model/performing_physician_identification_sequence_item.py new file mode 100644 index 0000000..3e87429 --- /dev/null +++ b/tdwii_plus_examples/domain_model/performing_physician_identification_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PerformingPhysicianIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/pertinent_documents_sequence_item.py b/tdwii_plus_examples/domain_model/pertinent_documents_sequence_item.py new file mode 100644 index 0000000..d87e5ef --- /dev/null +++ b/tdwii_plus_examples/domain_model/pertinent_documents_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PertinentDocumentsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def HL7InstanceIdentifier(self) -> Optional[str]: + if "HL7InstanceIdentifier" in self._dataset: + return self._dataset.HL7InstanceIdentifier + return None + + @HL7InstanceIdentifier.setter + def HL7InstanceIdentifier(self, value: Optional[str]): + if value is None: + if "HL7InstanceIdentifier" in self._dataset: + del self._dataset.HL7InstanceIdentifier + else: + self._dataset.HL7InstanceIdentifier = value + + @property + def RetrieveURI(self) -> Optional[str]: + if "RetrieveURI" in self._dataset: + return self._dataset.RetrieveURI + return None + + @RetrieveURI.setter + def RetrieveURI(self, value: Optional[str]): + if value is None: + if "RetrieveURI" in self._dataset: + del self._dataset.RetrieveURI + else: + self._dataset.RetrieveURI = value diff --git a/tdwii_plus_examples/domain_model/pertinent_other_evidence_sequence_item.py b/tdwii_plus_examples/domain_model/pertinent_other_evidence_sequence_item.py new file mode 100644 index 0000000..60b58e7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pertinent_other_evidence_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class PertinentOtherEvidenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/pertinent_resources_sequence_item.py b/tdwii_plus_examples/domain_model/pertinent_resources_sequence_item.py new file mode 100644 index 0000000..58ac504 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pertinent_resources_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PertinentResourcesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ResourceDescription(self) -> Optional[str]: + if "ResourceDescription" in self._dataset: + return self._dataset.ResourceDescription + return None + + @ResourceDescription.setter + def ResourceDescription(self, value: Optional[str]): + if value is None: + if "ResourceDescription" in self._dataset: + del self._dataset.ResourceDescription + else: + self._dataset.ResourceDescription = value + + @property + def RetrieveURI(self) -> Optional[str]: + if "RetrieveURI" in self._dataset: + return self._dataset.RetrieveURI + return None + + @RetrieveURI.setter + def RetrieveURI(self, value: Optional[str]): + if value is None: + if "RetrieveURI" in self._dataset: + del self._dataset.RetrieveURI + else: + self._dataset.RetrieveURI = value diff --git a/tdwii_plus_examples/domain_model/pet_detector_motion_details_sequence_item.py b/tdwii_plus_examples/domain_model/pet_detector_motion_details_sequence_item.py new file mode 100644 index 0000000..ab8757f --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_detector_motion_details_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETDetectorMotionDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RotationDirection(self) -> Optional[str]: + if "RotationDirection" in self._dataset: + return self._dataset.RotationDirection + return None + + @RotationDirection.setter + def RotationDirection(self, value: Optional[str]): + if value is None: + if "RotationDirection" in self._dataset: + del self._dataset.RotationDirection + else: + self._dataset.RotationDirection = value + + @property + def RevolutionTime(self) -> Optional[float]: + if "RevolutionTime" in self._dataset: + return self._dataset.RevolutionTime + return None + + @RevolutionTime.setter + def RevolutionTime(self, value: Optional[float]): + if value is None: + if "RevolutionTime" in self._dataset: + del self._dataset.RevolutionTime + else: + self._dataset.RevolutionTime = value diff --git a/tdwii_plus_examples/domain_model/pet_frame_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/pet_frame_acquisition_sequence_item.py new file mode 100644 index 0000000..f198003 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_frame_acquisition_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETFrameAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataCollectionDiameter(self) -> Optional[Decimal]: + if "DataCollectionDiameter" in self._dataset: + return self._dataset.DataCollectionDiameter + return None + + @DataCollectionDiameter.setter + def DataCollectionDiameter(self, value: Optional[Decimal]): + if value is None: + if "DataCollectionDiameter" in self._dataset: + del self._dataset.DataCollectionDiameter + else: + self._dataset.DataCollectionDiameter = value + + @property + def GantryDetectorTilt(self) -> Optional[Decimal]: + if "GantryDetectorTilt" in self._dataset: + return self._dataset.GantryDetectorTilt + return None + + @GantryDetectorTilt.setter + def GantryDetectorTilt(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorTilt" in self._dataset: + del self._dataset.GantryDetectorTilt + else: + self._dataset.GantryDetectorTilt = value + + @property + def GantryDetectorSlew(self) -> Optional[Decimal]: + if "GantryDetectorSlew" in self._dataset: + return self._dataset.GantryDetectorSlew + return None + + @GantryDetectorSlew.setter + def GantryDetectorSlew(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorSlew" in self._dataset: + del self._dataset.GantryDetectorSlew + else: + self._dataset.GantryDetectorSlew = value + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value diff --git a/tdwii_plus_examples/domain_model/pet_frame_correction_factors_sequence_item.py b/tdwii_plus_examples/domain_model/pet_frame_correction_factors_sequence_item.py new file mode 100644 index 0000000..8d31a3b --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_frame_correction_factors_sequence_item.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETFrameCorrectionFactorsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PrimaryPromptsCountsAccumulated(self) -> Optional[int]: + if "PrimaryPromptsCountsAccumulated" in self._dataset: + return self._dataset.PrimaryPromptsCountsAccumulated + return None + + @PrimaryPromptsCountsAccumulated.setter + def PrimaryPromptsCountsAccumulated(self, value: Optional[int]): + if value is None: + if "PrimaryPromptsCountsAccumulated" in self._dataset: + del self._dataset.PrimaryPromptsCountsAccumulated + else: + self._dataset.PrimaryPromptsCountsAccumulated = value + + @property + def SliceSensitivityFactor(self) -> Optional[Decimal]: + if "SliceSensitivityFactor" in self._dataset: + return self._dataset.SliceSensitivityFactor + return None + + @SliceSensitivityFactor.setter + def SliceSensitivityFactor(self, value: Optional[Decimal]): + if value is None: + if "SliceSensitivityFactor" in self._dataset: + del self._dataset.SliceSensitivityFactor + else: + self._dataset.SliceSensitivityFactor = value + + @property + def DecayFactor(self) -> Optional[Decimal]: + if "DecayFactor" in self._dataset: + return self._dataset.DecayFactor + return None + + @DecayFactor.setter + def DecayFactor(self, value: Optional[Decimal]): + if value is None: + if "DecayFactor" in self._dataset: + del self._dataset.DecayFactor + else: + self._dataset.DecayFactor = value + + @property + def ScatterFractionFactor(self) -> Optional[Decimal]: + if "ScatterFractionFactor" in self._dataset: + return self._dataset.ScatterFractionFactor + return None + + @ScatterFractionFactor.setter + def ScatterFractionFactor(self, value: Optional[Decimal]): + if value is None: + if "ScatterFractionFactor" in self._dataset: + del self._dataset.ScatterFractionFactor + else: + self._dataset.ScatterFractionFactor = value + + @property + def DeadTimeFactor(self) -> Optional[Decimal]: + if "DeadTimeFactor" in self._dataset: + return self._dataset.DeadTimeFactor + return None + + @DeadTimeFactor.setter + def DeadTimeFactor(self, value: Optional[Decimal]): + if value is None: + if "DeadTimeFactor" in self._dataset: + del self._dataset.DeadTimeFactor + else: + self._dataset.DeadTimeFactor = value diff --git a/tdwii_plus_examples/domain_model/pet_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/pet_frame_type_sequence_item.py new file mode 100644 index 0000000..c2a6b50 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_frame_type_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value diff --git a/tdwii_plus_examples/domain_model/pet_position_sequence_item.py b/tdwii_plus_examples/domain_model/pet_position_sequence_item.py new file mode 100644 index 0000000..4a028d0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_position_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataCollectionCenterPatient(self) -> Optional[List[float]]: + if "DataCollectionCenterPatient" in self._dataset: + return self._dataset.DataCollectionCenterPatient + return None + + @DataCollectionCenterPatient.setter + def DataCollectionCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "DataCollectionCenterPatient" in self._dataset: + del self._dataset.DataCollectionCenterPatient + else: + self._dataset.DataCollectionCenterPatient = value + + @property + def ReconstructionTargetCenterPatient(self) -> Optional[List[float]]: + if "ReconstructionTargetCenterPatient" in self._dataset: + return self._dataset.ReconstructionTargetCenterPatient + return None + + @ReconstructionTargetCenterPatient.setter + def ReconstructionTargetCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionTargetCenterPatient" in self._dataset: + del self._dataset.ReconstructionTargetCenterPatient + else: + self._dataset.ReconstructionTargetCenterPatient = value + + @property + def TablePosition(self) -> Optional[float]: + if "TablePosition" in self._dataset: + return self._dataset.TablePosition + return None + + @TablePosition.setter + def TablePosition(self, value: Optional[float]): + if value is None: + if "TablePosition" in self._dataset: + del self._dataset.TablePosition + else: + self._dataset.TablePosition = value diff --git a/tdwii_plus_examples/domain_model/pet_reconstruction_sequence_item.py b/tdwii_plus_examples/domain_model/pet_reconstruction_sequence_item.py new file mode 100644 index 0000000..9de3ada --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_reconstruction_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETReconstructionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def ReconstructionAlgorithm(self) -> Optional[str]: + if "ReconstructionAlgorithm" in self._dataset: + return self._dataset.ReconstructionAlgorithm + return None + + @ReconstructionAlgorithm.setter + def ReconstructionAlgorithm(self, value: Optional[str]): + if value is None: + if "ReconstructionAlgorithm" in self._dataset: + del self._dataset.ReconstructionAlgorithm + else: + self._dataset.ReconstructionAlgorithm = value + + @property + def ReconstructionFieldOfView(self) -> Optional[List[float]]: + if "ReconstructionFieldOfView" in self._dataset: + return self._dataset.ReconstructionFieldOfView + return None + + @ReconstructionFieldOfView.setter + def ReconstructionFieldOfView(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionFieldOfView" in self._dataset: + del self._dataset.ReconstructionFieldOfView + else: + self._dataset.ReconstructionFieldOfView = value + + @property + def NumberOfIterations(self) -> Optional[int]: + if "NumberOfIterations" in self._dataset: + return self._dataset.NumberOfIterations + return None + + @NumberOfIterations.setter + def NumberOfIterations(self, value: Optional[int]): + if value is None: + if "NumberOfIterations" in self._dataset: + del self._dataset.NumberOfIterations + else: + self._dataset.NumberOfIterations = value + + @property + def NumberOfSubsets(self) -> Optional[int]: + if "NumberOfSubsets" in self._dataset: + return self._dataset.NumberOfSubsets + return None + + @NumberOfSubsets.setter + def NumberOfSubsets(self, value: Optional[int]): + if value is None: + if "NumberOfSubsets" in self._dataset: + del self._dataset.NumberOfSubsets + else: + self._dataset.NumberOfSubsets = value + + @property + def ReconstructionType(self) -> Optional[str]: + if "ReconstructionType" in self._dataset: + return self._dataset.ReconstructionType + return None + + @ReconstructionType.setter + def ReconstructionType(self, value: Optional[str]): + if value is None: + if "ReconstructionType" in self._dataset: + del self._dataset.ReconstructionType + else: + self._dataset.ReconstructionType = value + + @property + def IterativeReconstructionMethod(self) -> Optional[str]: + if "IterativeReconstructionMethod" in self._dataset: + return self._dataset.IterativeReconstructionMethod + return None + + @IterativeReconstructionMethod.setter + def IterativeReconstructionMethod(self, value: Optional[str]): + if value is None: + if "IterativeReconstructionMethod" in self._dataset: + del self._dataset.IterativeReconstructionMethod + else: + self._dataset.IterativeReconstructionMethod = value diff --git a/tdwii_plus_examples/domain_model/pet_table_dynamics_sequence_item.py b/tdwii_plus_examples/domain_model/pet_table_dynamics_sequence_item.py new file mode 100644 index 0000000..9e1feaf --- /dev/null +++ b/tdwii_plus_examples/domain_model/pet_table_dynamics_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PETTableDynamicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TableSpeed(self) -> Optional[float]: + if "TableSpeed" in self._dataset: + return self._dataset.TableSpeed + return None + + @TableSpeed.setter + def TableSpeed(self, value: Optional[float]): + if value is None: + if "TableSpeed" in self._dataset: + del self._dataset.TableSpeed + else: + self._dataset.TableSpeed = value diff --git a/tdwii_plus_examples/domain_model/phase_information_sequence_item.py b/tdwii_plus_examples/domain_model/phase_information_sequence_item.py new file mode 100644 index 0000000..1a742d4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/phase_information_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PhaseInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def NumberOfFramesInPhase(self) -> Optional[int]: + if "NumberOfFramesInPhase" in self._dataset: + return self._dataset.NumberOfFramesInPhase + return None + + @NumberOfFramesInPhase.setter + def NumberOfFramesInPhase(self, value: Optional[int]): + if value is None: + if "NumberOfFramesInPhase" in self._dataset: + del self._dataset.NumberOfFramesInPhase + else: + self._dataset.NumberOfFramesInPhase = value + + @property + def PhaseDelay(self) -> Optional[int]: + if "PhaseDelay" in self._dataset: + return self._dataset.PhaseDelay + return None + + @PhaseDelay.setter + def PhaseDelay(self, value: Optional[int]): + if value is None: + if "PhaseDelay" in self._dataset: + del self._dataset.PhaseDelay + else: + self._dataset.PhaseDelay = value + + @property + def PauseBetweenFrames(self) -> Optional[int]: + if "PauseBetweenFrames" in self._dataset: + return self._dataset.PauseBetweenFrames + return None + + @PauseBetweenFrames.setter + def PauseBetweenFrames(self, value: Optional[int]): + if value is None: + if "PauseBetweenFrames" in self._dataset: + del self._dataset.PauseBetweenFrames + else: + self._dataset.PauseBetweenFrames = value + + @property + def PhaseDescription(self) -> Optional[str]: + if "PhaseDescription" in self._dataset: + return self._dataset.PhaseDescription + return None + + @PhaseDescription.setter + def PhaseDescription(self, value: Optional[str]): + if value is None: + if "PhaseDescription" in self._dataset: + del self._dataset.PhaseDescription + else: + self._dataset.PhaseDescription = value + + @property + def TriggerVector(self) -> Optional[List[int]]: + if "TriggerVector" in self._dataset: + return self._dataset.TriggerVector + return None + + @TriggerVector.setter + def TriggerVector(self, value: Optional[List[int]]): + if value is None: + if "TriggerVector" in self._dataset: + del self._dataset.TriggerVector + else: + self._dataset.TriggerVector = value + + @property + def NumberOfTriggersInPhase(self) -> Optional[int]: + if "NumberOfTriggersInPhase" in self._dataset: + return self._dataset.NumberOfTriggersInPhase + return None + + @NumberOfTriggersInPhase.setter + def NumberOfTriggersInPhase(self, value: Optional[int]): + if value is None: + if "NumberOfTriggersInPhase" in self._dataset: + del self._dataset.NumberOfTriggersInPhase + else: + self._dataset.NumberOfTriggersInPhase = value diff --git a/tdwii_plus_examples/domain_model/photoacoustic_excitation_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/photoacoustic_excitation_characteristics_sequence_item.py new file mode 100644 index 0000000..2121f12 --- /dev/null +++ b/tdwii_plus_examples/domain_model/photoacoustic_excitation_characteristics_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PhotoacousticExcitationCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ExcitationSpectralWidth(self) -> Optional[float]: + if "ExcitationSpectralWidth" in self._dataset: + return self._dataset.ExcitationSpectralWidth + return None + + @ExcitationSpectralWidth.setter + def ExcitationSpectralWidth(self, value: Optional[float]): + if value is None: + if "ExcitationSpectralWidth" in self._dataset: + del self._dataset.ExcitationSpectralWidth + else: + self._dataset.ExcitationSpectralWidth = value + + @property + def ExcitationEnergy(self) -> Optional[float]: + if "ExcitationEnergy" in self._dataset: + return self._dataset.ExcitationEnergy + return None + + @ExcitationEnergy.setter + def ExcitationEnergy(self, value: Optional[float]): + if value is None: + if "ExcitationEnergy" in self._dataset: + del self._dataset.ExcitationEnergy + else: + self._dataset.ExcitationEnergy = value + + @property + def ExcitationPulseDuration(self) -> Optional[float]: + if "ExcitationPulseDuration" in self._dataset: + return self._dataset.ExcitationPulseDuration + return None + + @ExcitationPulseDuration.setter + def ExcitationPulseDuration(self, value: Optional[float]): + if value is None: + if "ExcitationPulseDuration" in self._dataset: + del self._dataset.ExcitationPulseDuration + else: + self._dataset.ExcitationPulseDuration = value + + @property + def ExcitationWavelength(self) -> Optional[float]: + if "ExcitationWavelength" in self._dataset: + return self._dataset.ExcitationWavelength + return None + + @ExcitationWavelength.setter + def ExcitationWavelength(self, value: Optional[float]): + if value is None: + if "ExcitationWavelength" in self._dataset: + del self._dataset.ExcitationWavelength + else: + self._dataset.ExcitationWavelength = value diff --git a/tdwii_plus_examples/domain_model/photoacoustic_image.py b/tdwii_plus_examples/domain_model/photoacoustic_image.py new file mode 100644 index 0000000..5eaaac8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/photoacoustic_image.py @@ -0,0 +1,6564 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .excitation_wavelength_sequence_item import ExcitationWavelengthSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .transducer_response_sequence_item import TransducerResponseSequenceItem +from .transducer_technology_sequence_item import TransducerTechnologySequenceItem +from .udi_sequence_item import UDISequenceItem + + +class PhotoacousticImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._TransducerGeometryCodeSequence: List[CodeSequenceItem] = [] + self._TransducerResponseSequence: List[TransducerResponseSequenceItem] = [] + self._TransducerTechnologySequence: List[TransducerTechnologySequenceItem] = [] + self._ExcitationWavelengthSequence: List[ExcitationWavelengthSequenceItem] = [] + self._AcousticCouplingMediumCodeSequence: List[CodeSequenceItem] = [] + self._IlluminationTypeCodeSequence: List[CodeSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._SoundSpeedCorrectionMechanismCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def PositionMeasuringDeviceUsed(self) -> Optional[str]: + if "PositionMeasuringDeviceUsed" in self._dataset: + return self._dataset.PositionMeasuringDeviceUsed + return None + + @PositionMeasuringDeviceUsed.setter + def PositionMeasuringDeviceUsed(self, value: Optional[str]): + if value is None: + if "PositionMeasuringDeviceUsed" in self._dataset: + del self._dataset.PositionMeasuringDeviceUsed + else: + self._dataset.PositionMeasuringDeviceUsed = value + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def UltrasoundAcquisitionGeometry(self) -> Optional[str]: + if "UltrasoundAcquisitionGeometry" in self._dataset: + return self._dataset.UltrasoundAcquisitionGeometry + return None + + @UltrasoundAcquisitionGeometry.setter + def UltrasoundAcquisitionGeometry(self, value: Optional[str]): + if value is None: + if "UltrasoundAcquisitionGeometry" in self._dataset: + del self._dataset.UltrasoundAcquisitionGeometry + else: + self._dataset.UltrasoundAcquisitionGeometry = value + + @property + def ApexPosition(self) -> Optional[List[float]]: + if "ApexPosition" in self._dataset: + return self._dataset.ApexPosition + return None + + @ApexPosition.setter + def ApexPosition(self, value: Optional[List[float]]): + if value is None: + if "ApexPosition" in self._dataset: + del self._dataset.ApexPosition + else: + self._dataset.ApexPosition = value + + @property + def VolumeToTransducerMappingMatrix(self) -> Optional[List[float]]: + if "VolumeToTransducerMappingMatrix" in self._dataset: + return self._dataset.VolumeToTransducerMappingMatrix + return None + + @VolumeToTransducerMappingMatrix.setter + def VolumeToTransducerMappingMatrix(self, value: Optional[List[float]]): + if value is None: + if "VolumeToTransducerMappingMatrix" in self._dataset: + del self._dataset.VolumeToTransducerMappingMatrix + else: + self._dataset.VolumeToTransducerMappingMatrix = value + + @property + def VolumeToTableMappingMatrix(self) -> Optional[List[float]]: + if "VolumeToTableMappingMatrix" in self._dataset: + return self._dataset.VolumeToTableMappingMatrix + return None + + @VolumeToTableMappingMatrix.setter + def VolumeToTableMappingMatrix(self, value: Optional[List[float]]): + if value is None: + if "VolumeToTableMappingMatrix" in self._dataset: + del self._dataset.VolumeToTableMappingMatrix + else: + self._dataset.VolumeToTableMappingMatrix = value + + @property + def VolumeToTransducerRelationship(self) -> Optional[str]: + if "VolumeToTransducerRelationship" in self._dataset: + return self._dataset.VolumeToTransducerRelationship + return None + + @VolumeToTransducerRelationship.setter + def VolumeToTransducerRelationship(self, value: Optional[str]): + if value is None: + if "VolumeToTransducerRelationship" in self._dataset: + del self._dataset.VolumeToTransducerRelationship + else: + self._dataset.VolumeToTransducerRelationship = value + + @property + def PatientFrameOfReferenceSource(self) -> Optional[str]: + if "PatientFrameOfReferenceSource" in self._dataset: + return self._dataset.PatientFrameOfReferenceSource + return None + + @PatientFrameOfReferenceSource.setter + def PatientFrameOfReferenceSource(self, value: Optional[str]): + if value is None: + if "PatientFrameOfReferenceSource" in self._dataset: + del self._dataset.PatientFrameOfReferenceSource + else: + self._dataset.PatientFrameOfReferenceSource = value + + @property + def VolumeFrameOfReferenceUID(self) -> Optional[str]: + if "VolumeFrameOfReferenceUID" in self._dataset: + return self._dataset.VolumeFrameOfReferenceUID + return None + + @VolumeFrameOfReferenceUID.setter + def VolumeFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "VolumeFrameOfReferenceUID" in self._dataset: + del self._dataset.VolumeFrameOfReferenceUID + else: + self._dataset.VolumeFrameOfReferenceUID = value + + @property + def TableFrameOfReferenceUID(self) -> Optional[str]: + if "TableFrameOfReferenceUID" in self._dataset: + return self._dataset.TableFrameOfReferenceUID + return None + + @TableFrameOfReferenceUID.setter + def TableFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "TableFrameOfReferenceUID" in self._dataset: + del self._dataset.TableFrameOfReferenceUID + else: + self._dataset.TableFrameOfReferenceUID = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def TransducerGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TransducerGeometryCodeSequence" in self._dataset: + if len(self._TransducerGeometryCodeSequence) == len(self._dataset.TransducerGeometryCodeSequence): + return self._TransducerGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TransducerGeometryCodeSequence] + return None + + @TransducerGeometryCodeSequence.setter + def TransducerGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TransducerGeometryCodeSequence = [] + if "TransducerGeometryCodeSequence" in self._dataset: + del self._dataset.TransducerGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TransducerGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TransducerGeometryCodeSequence = value + if "TransducerGeometryCodeSequence" not in self._dataset: + self._dataset.TransducerGeometryCodeSequence = pydicom.Sequence() + self._dataset.TransducerGeometryCodeSequence.clear() + self._dataset.TransducerGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TransducerGeometryCodeSequence.append(item) + if "TransducerGeometryCodeSequence" not in self._dataset: + self._dataset.TransducerGeometryCodeSequence = pydicom.Sequence() + self._dataset.TransducerGeometryCodeSequence.append(item.to_dataset()) + + @property + def TransducerResponseSequence(self) -> Optional[List[TransducerResponseSequenceItem]]: + if "TransducerResponseSequence" in self._dataset: + if len(self._TransducerResponseSequence) == len(self._dataset.TransducerResponseSequence): + return self._TransducerResponseSequence + else: + return [TransducerResponseSequenceItem(x) for x in self._dataset.TransducerResponseSequence] + return None + + @TransducerResponseSequence.setter + def TransducerResponseSequence(self, value: Optional[List[TransducerResponseSequenceItem]]): + if value is None: + self._TransducerResponseSequence = [] + if "TransducerResponseSequence" in self._dataset: + del self._dataset.TransducerResponseSequence + elif not isinstance(value, list) or not all(isinstance(item, TransducerResponseSequenceItem) for item in value): + raise ValueError("TransducerResponseSequence must be a list of TransducerResponseSequenceItem objects") + else: + self._TransducerResponseSequence = value + if "TransducerResponseSequence" not in self._dataset: + self._dataset.TransducerResponseSequence = pydicom.Sequence() + self._dataset.TransducerResponseSequence.clear() + self._dataset.TransducerResponseSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerResponse(self, item: TransducerResponseSequenceItem): + if not isinstance(item, TransducerResponseSequenceItem): + raise ValueError("Item must be an instance of TransducerResponseSequenceItem") + self._TransducerResponseSequence.append(item) + if "TransducerResponseSequence" not in self._dataset: + self._dataset.TransducerResponseSequence = pydicom.Sequence() + self._dataset.TransducerResponseSequence.append(item.to_dataset()) + + @property + def TransducerTechnologySequence(self) -> Optional[List[TransducerTechnologySequenceItem]]: + if "TransducerTechnologySequence" in self._dataset: + if len(self._TransducerTechnologySequence) == len(self._dataset.TransducerTechnologySequence): + return self._TransducerTechnologySequence + else: + return [TransducerTechnologySequenceItem(x) for x in self._dataset.TransducerTechnologySequence] + return None + + @TransducerTechnologySequence.setter + def TransducerTechnologySequence(self, value: Optional[List[TransducerTechnologySequenceItem]]): + if value is None: + self._TransducerTechnologySequence = [] + if "TransducerTechnologySequence" in self._dataset: + del self._dataset.TransducerTechnologySequence + elif not isinstance(value, list) or not all(isinstance(item, TransducerTechnologySequenceItem) for item in value): + raise ValueError("TransducerTechnologySequence must be a list of TransducerTechnologySequenceItem objects") + else: + self._TransducerTechnologySequence = value + if "TransducerTechnologySequence" not in self._dataset: + self._dataset.TransducerTechnologySequence = pydicom.Sequence() + self._dataset.TransducerTechnologySequence.clear() + self._dataset.TransducerTechnologySequence.extend([item.to_dataset() for item in value]) + + def add_TransducerTechnology(self, item: TransducerTechnologySequenceItem): + if not isinstance(item, TransducerTechnologySequenceItem): + raise ValueError("Item must be an instance of TransducerTechnologySequenceItem") + self._TransducerTechnologySequence.append(item) + if "TransducerTechnologySequence" not in self._dataset: + self._dataset.TransducerTechnologySequence = pydicom.Sequence() + self._dataset.TransducerTechnologySequence.append(item.to_dataset()) + + @property + def ExcitationWavelengthSequence(self) -> Optional[List[ExcitationWavelengthSequenceItem]]: + if "ExcitationWavelengthSequence" in self._dataset: + if len(self._ExcitationWavelengthSequence) == len(self._dataset.ExcitationWavelengthSequence): + return self._ExcitationWavelengthSequence + else: + return [ExcitationWavelengthSequenceItem(x) for x in self._dataset.ExcitationWavelengthSequence] + return None + + @ExcitationWavelengthSequence.setter + def ExcitationWavelengthSequence(self, value: Optional[List[ExcitationWavelengthSequenceItem]]): + if value is None: + self._ExcitationWavelengthSequence = [] + if "ExcitationWavelengthSequence" in self._dataset: + del self._dataset.ExcitationWavelengthSequence + elif not isinstance(value, list) or not all(isinstance(item, ExcitationWavelengthSequenceItem) for item in value): + raise ValueError("ExcitationWavelengthSequence must be a list of ExcitationWavelengthSequenceItem objects") + else: + self._ExcitationWavelengthSequence = value + if "ExcitationWavelengthSequence" not in self._dataset: + self._dataset.ExcitationWavelengthSequence = pydicom.Sequence() + self._dataset.ExcitationWavelengthSequence.clear() + self._dataset.ExcitationWavelengthSequence.extend([item.to_dataset() for item in value]) + + def add_ExcitationWavelength(self, item: ExcitationWavelengthSequenceItem): + if not isinstance(item, ExcitationWavelengthSequenceItem): + raise ValueError("Item must be an instance of ExcitationWavelengthSequenceItem") + self._ExcitationWavelengthSequence.append(item) + if "ExcitationWavelengthSequence" not in self._dataset: + self._dataset.ExcitationWavelengthSequence = pydicom.Sequence() + self._dataset.ExcitationWavelengthSequence.append(item.to_dataset()) + + @property + def IlluminationTranslationFlag(self) -> Optional[str]: + if "IlluminationTranslationFlag" in self._dataset: + return self._dataset.IlluminationTranslationFlag + return None + + @IlluminationTranslationFlag.setter + def IlluminationTranslationFlag(self, value: Optional[str]): + if value is None: + if "IlluminationTranslationFlag" in self._dataset: + del self._dataset.IlluminationTranslationFlag + else: + self._dataset.IlluminationTranslationFlag = value + + @property + def AcousticCouplingMediumFlag(self) -> Optional[str]: + if "AcousticCouplingMediumFlag" in self._dataset: + return self._dataset.AcousticCouplingMediumFlag + return None + + @AcousticCouplingMediumFlag.setter + def AcousticCouplingMediumFlag(self, value: Optional[str]): + if value is None: + if "AcousticCouplingMediumFlag" in self._dataset: + del self._dataset.AcousticCouplingMediumFlag + else: + self._dataset.AcousticCouplingMediumFlag = value + + @property + def AcousticCouplingMediumCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcousticCouplingMediumCodeSequence" in self._dataset: + if len(self._AcousticCouplingMediumCodeSequence) == len(self._dataset.AcousticCouplingMediumCodeSequence): + return self._AcousticCouplingMediumCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcousticCouplingMediumCodeSequence] + return None + + @AcousticCouplingMediumCodeSequence.setter + def AcousticCouplingMediumCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcousticCouplingMediumCodeSequence = [] + if "AcousticCouplingMediumCodeSequence" in self._dataset: + del self._dataset.AcousticCouplingMediumCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcousticCouplingMediumCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcousticCouplingMediumCodeSequence = value + if "AcousticCouplingMediumCodeSequence" not in self._dataset: + self._dataset.AcousticCouplingMediumCodeSequence = pydicom.Sequence() + self._dataset.AcousticCouplingMediumCodeSequence.clear() + self._dataset.AcousticCouplingMediumCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcousticCouplingMediumCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcousticCouplingMediumCodeSequence.append(item) + if "AcousticCouplingMediumCodeSequence" not in self._dataset: + self._dataset.AcousticCouplingMediumCodeSequence = pydicom.Sequence() + self._dataset.AcousticCouplingMediumCodeSequence.append(item.to_dataset()) + + @property + def AcousticCouplingMediumTemperature(self) -> Optional[float]: + if "AcousticCouplingMediumTemperature" in self._dataset: + return self._dataset.AcousticCouplingMediumTemperature + return None + + @AcousticCouplingMediumTemperature.setter + def AcousticCouplingMediumTemperature(self, value: Optional[float]): + if value is None: + if "AcousticCouplingMediumTemperature" in self._dataset: + del self._dataset.AcousticCouplingMediumTemperature + else: + self._dataset.AcousticCouplingMediumTemperature = value + + @property + def IlluminationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationTypeCodeSequence" in self._dataset: + if len(self._IlluminationTypeCodeSequence) == len(self._dataset.IlluminationTypeCodeSequence): + return self._IlluminationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationTypeCodeSequence] + return None + + @IlluminationTypeCodeSequence.setter + def IlluminationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationTypeCodeSequence = [] + if "IlluminationTypeCodeSequence" in self._dataset: + del self._dataset.IlluminationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationTypeCodeSequence = value + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.clear() + self._dataset.IlluminationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationTypeCodeSequence.append(item) + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.append(item.to_dataset()) + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def SoundSpeedCorrectionMechanismCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SoundSpeedCorrectionMechanismCodeSequence" in self._dataset: + if len(self._SoundSpeedCorrectionMechanismCodeSequence) == len( + self._dataset.SoundSpeedCorrectionMechanismCodeSequence + ): + return self._SoundSpeedCorrectionMechanismCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SoundSpeedCorrectionMechanismCodeSequence] + return None + + @SoundSpeedCorrectionMechanismCodeSequence.setter + def SoundSpeedCorrectionMechanismCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SoundSpeedCorrectionMechanismCodeSequence = [] + if "SoundSpeedCorrectionMechanismCodeSequence" in self._dataset: + del self._dataset.SoundSpeedCorrectionMechanismCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SoundSpeedCorrectionMechanismCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SoundSpeedCorrectionMechanismCodeSequence = value + if "SoundSpeedCorrectionMechanismCodeSequence" not in self._dataset: + self._dataset.SoundSpeedCorrectionMechanismCodeSequence = pydicom.Sequence() + self._dataset.SoundSpeedCorrectionMechanismCodeSequence.clear() + self._dataset.SoundSpeedCorrectionMechanismCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SoundSpeedCorrectionMechanismCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SoundSpeedCorrectionMechanismCodeSequence.append(item) + if "SoundSpeedCorrectionMechanismCodeSequence" not in self._dataset: + self._dataset.SoundSpeedCorrectionMechanismCodeSequence = pydicom.Sequence() + self._dataset.SoundSpeedCorrectionMechanismCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/photoacoustic_image_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/photoacoustic_image_frame_type_sequence_item.py new file mode 100644 index 0000000..36f6807 --- /dev/null +++ b/tdwii_plus_examples/domain_model/photoacoustic_image_frame_type_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PhotoacousticImageFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value diff --git a/tdwii_plus_examples/domain_model/physicians_of_record_identification_sequence_item.py b/tdwii_plus_examples/domain_model/physicians_of_record_identification_sequence_item.py new file mode 100644 index 0000000..3c19062 --- /dev/null +++ b/tdwii_plus_examples/domain_model/physicians_of_record_identification_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PhysiciansOfRecordIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/physicians_reading_study_identification_sequence_item.py b/tdwii_plus_examples/domain_model/physicians_reading_study_identification_sequence_item.py new file mode 100644 index 0000000..582fd23 --- /dev/null +++ b/tdwii_plus_examples/domain_model/physicians_reading_study_identification_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PhysiciansReadingStudyIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/pixel_intensity_relationship_lut_sequence_item.py b/tdwii_plus_examples/domain_model/pixel_intensity_relationship_lut_sequence_item.py new file mode 100644 index 0000000..4f410af --- /dev/null +++ b/tdwii_plus_examples/domain_model/pixel_intensity_relationship_lut_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PixelIntensityRelationshipLUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LUTDescriptor(self) -> Optional[List[int]]: + if "LUTDescriptor" in self._dataset: + return self._dataset.LUTDescriptor + return None + + @LUTDescriptor.setter + def LUTDescriptor(self, value: Optional[List[int]]): + if value is None: + if "LUTDescriptor" in self._dataset: + del self._dataset.LUTDescriptor + else: + self._dataset.LUTDescriptor = value + + @property + def LUTData(self) -> Optional[List[int | bytes]]: + if "LUTData" in self._dataset: + return self._dataset.LUTData + return None + + @LUTData.setter + def LUTData(self, value: Optional[List[int | bytes]]): + if value is None: + if "LUTData" in self._dataset: + del self._dataset.LUTData + else: + self._dataset.LUTData = value + + @property + def LUTFunction(self) -> Optional[str]: + if "LUTFunction" in self._dataset: + return self._dataset.LUTFunction + return None + + @LUTFunction.setter + def LUTFunction(self, value: Optional[str]): + if value is None: + if "LUTFunction" in self._dataset: + del self._dataset.LUTFunction + else: + self._dataset.LUTFunction = value + + @property + def LUTFrameRange(self) -> Optional[List[int]]: + if "LUTFrameRange" in self._dataset: + return self._dataset.LUTFrameRange + return None + + @LUTFrameRange.setter + def LUTFrameRange(self, value: Optional[List[int]]): + if value is None: + if "LUTFrameRange" in self._dataset: + del self._dataset.LUTFrameRange + else: + self._dataset.LUTFrameRange = value diff --git a/tdwii_plus_examples/domain_model/pixel_measures_sequence_item.py b/tdwii_plus_examples/domain_model/pixel_measures_sequence_item.py new file mode 100644 index 0000000..ceb9e52 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pixel_measures_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PixelMeasuresSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value diff --git a/tdwii_plus_examples/domain_model/pixel_shift_sequence_item.py b/tdwii_plus_examples/domain_model/pixel_shift_sequence_item.py new file mode 100644 index 0000000..56c42ef --- /dev/null +++ b/tdwii_plus_examples/domain_model/pixel_shift_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .region_pixel_shift_sequence_item import RegionPixelShiftSequenceItem + + +class PixelShiftSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RegionPixelShiftSequence: List[RegionPixelShiftSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RegionPixelShiftSequence(self) -> Optional[List[RegionPixelShiftSequenceItem]]: + if "RegionPixelShiftSequence" in self._dataset: + if len(self._RegionPixelShiftSequence) == len(self._dataset.RegionPixelShiftSequence): + return self._RegionPixelShiftSequence + else: + return [RegionPixelShiftSequenceItem(x) for x in self._dataset.RegionPixelShiftSequence] + return None + + @RegionPixelShiftSequence.setter + def RegionPixelShiftSequence(self, value: Optional[List[RegionPixelShiftSequenceItem]]): + if value is None: + self._RegionPixelShiftSequence = [] + if "RegionPixelShiftSequence" in self._dataset: + del self._dataset.RegionPixelShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, RegionPixelShiftSequenceItem) for item in value): + raise ValueError("RegionPixelShiftSequence must be a list of RegionPixelShiftSequenceItem objects") + else: + self._RegionPixelShiftSequence = value + if "RegionPixelShiftSequence" not in self._dataset: + self._dataset.RegionPixelShiftSequence = pydicom.Sequence() + self._dataset.RegionPixelShiftSequence.clear() + self._dataset.RegionPixelShiftSequence.extend([item.to_dataset() for item in value]) + + def add_RegionPixelShift(self, item: RegionPixelShiftSequenceItem): + if not isinstance(item, RegionPixelShiftSequenceItem): + raise ValueError("Item must be an instance of RegionPixelShiftSequenceItem") + self._RegionPixelShiftSequence.append(item) + if "RegionPixelShiftSequence" not in self._dataset: + self._dataset.RegionPixelShiftSequence = pydicom.Sequence() + self._dataset.RegionPixelShiftSequence.append(item.to_dataset()) + + @property + def PixelShiftFrameRange(self) -> Optional[List[int]]: + if "PixelShiftFrameRange" in self._dataset: + return self._dataset.PixelShiftFrameRange + return None + + @PixelShiftFrameRange.setter + def PixelShiftFrameRange(self, value: Optional[List[int]]): + if value is None: + if "PixelShiftFrameRange" in self._dataset: + del self._dataset.PixelShiftFrameRange + else: + self._dataset.PixelShiftFrameRange = value diff --git a/tdwii_plus_examples/domain_model/pixel_value_mapping_to_coded_concept_sequence_item.py b/tdwii_plus_examples/domain_model/pixel_value_mapping_to_coded_concept_sequence_item.py new file mode 100644 index 0000000..00bda13 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pixel_value_mapping_to_coded_concept_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PixelValueMappingToCodedConceptSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PixelValueMappingCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MappedPixelValue(self) -> Optional[int]: + if "MappedPixelValue" in self._dataset: + return self._dataset.MappedPixelValue + return None + + @MappedPixelValue.setter + def MappedPixelValue(self, value: Optional[int]): + if value is None: + if "MappedPixelValue" in self._dataset: + del self._dataset.MappedPixelValue + else: + self._dataset.MappedPixelValue = value + + @property + def PixelValueMappingExplanation(self) -> Optional[str]: + if "PixelValueMappingExplanation" in self._dataset: + return self._dataset.PixelValueMappingExplanation + return None + + @PixelValueMappingExplanation.setter + def PixelValueMappingExplanation(self, value: Optional[str]): + if value is None: + if "PixelValueMappingExplanation" in self._dataset: + del self._dataset.PixelValueMappingExplanation + else: + self._dataset.PixelValueMappingExplanation = value + + @property + def PixelValueMappingCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PixelValueMappingCodeSequence" in self._dataset: + if len(self._PixelValueMappingCodeSequence) == len(self._dataset.PixelValueMappingCodeSequence): + return self._PixelValueMappingCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PixelValueMappingCodeSequence] + return None + + @PixelValueMappingCodeSequence.setter + def PixelValueMappingCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PixelValueMappingCodeSequence = [] + if "PixelValueMappingCodeSequence" in self._dataset: + del self._dataset.PixelValueMappingCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PixelValueMappingCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PixelValueMappingCodeSequence = value + if "PixelValueMappingCodeSequence" not in self._dataset: + self._dataset.PixelValueMappingCodeSequence = pydicom.Sequence() + self._dataset.PixelValueMappingCodeSequence.clear() + self._dataset.PixelValueMappingCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueMappingCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PixelValueMappingCodeSequence.append(item) + if "PixelValueMappingCodeSequence" not in self._dataset: + self._dataset.PixelValueMappingCodeSequence = pydicom.Sequence() + self._dataset.PixelValueMappingCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/pixel_value_transformation_sequence_item.py b/tdwii_plus_examples/domain_model/pixel_value_transformation_sequence_item.py new file mode 100644 index 0000000..ec94e4c --- /dev/null +++ b/tdwii_plus_examples/domain_model/pixel_value_transformation_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PixelValueTransformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value diff --git a/tdwii_plus_examples/domain_model/plan_overview_sequence_item.py b/tdwii_plus_examples/domain_model/plan_overview_sequence_item.py new file mode 100644 index 0000000..9901d41 --- /dev/null +++ b/tdwii_plus_examples/domain_model/plan_overview_sequence_item.py @@ -0,0 +1,218 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .prescription_overview_sequence_item import PrescriptionOverviewSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_structure_set_sequence_item import ReferencedStructureSetSequenceItem + + +class PlanOverviewSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedStructureSetSequence: List[ReferencedStructureSetSequenceItem] = [] + self._PrescriptionOverviewSequence: List[PrescriptionOverviewSequenceItem] = [] + self._TreatmentSiteCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def CurrentFractionNumber(self) -> Optional[int]: + if "CurrentFractionNumber" in self._dataset: + return self._dataset.CurrentFractionNumber + return None + + @CurrentFractionNumber.setter + def CurrentFractionNumber(self, value: Optional[int]): + if value is None: + if "CurrentFractionNumber" in self._dataset: + del self._dataset.CurrentFractionNumber + else: + self._dataset.CurrentFractionNumber = value + + @property + def RTPlanLabel(self) -> Optional[str]: + if "RTPlanLabel" in self._dataset: + return self._dataset.RTPlanLabel + return None + + @RTPlanLabel.setter + def RTPlanLabel(self, value: Optional[str]): + if value is None: + if "RTPlanLabel" in self._dataset: + del self._dataset.RTPlanLabel + else: + self._dataset.RTPlanLabel = value + + @property + def ReferencedStructureSetSequence(self) -> Optional[List[ReferencedStructureSetSequenceItem]]: + if "ReferencedStructureSetSequence" in self._dataset: + if len(self._ReferencedStructureSetSequence) == len(self._dataset.ReferencedStructureSetSequence): + return self._ReferencedStructureSetSequence + else: + return [ReferencedStructureSetSequenceItem(x) for x in self._dataset.ReferencedStructureSetSequence] + return None + + @ReferencedStructureSetSequence.setter + def ReferencedStructureSetSequence(self, value: Optional[List[ReferencedStructureSetSequenceItem]]): + if value is None: + self._ReferencedStructureSetSequence = [] + if "ReferencedStructureSetSequence" in self._dataset: + del self._dataset.ReferencedStructureSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStructureSetSequenceItem) for item in value): + raise ValueError("ReferencedStructureSetSequence must be a list of ReferencedStructureSetSequenceItem objects") + else: + self._ReferencedStructureSetSequence = value + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.clear() + self._dataset.ReferencedStructureSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStructureSet(self, item: ReferencedStructureSetSequenceItem): + if not isinstance(item, ReferencedStructureSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedStructureSetSequenceItem") + self._ReferencedStructureSetSequence.append(item) + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.append(item.to_dataset()) + + @property + def PrescriptionOverviewSequence(self) -> Optional[List[PrescriptionOverviewSequenceItem]]: + if "PrescriptionOverviewSequence" in self._dataset: + if len(self._PrescriptionOverviewSequence) == len(self._dataset.PrescriptionOverviewSequence): + return self._PrescriptionOverviewSequence + else: + return [PrescriptionOverviewSequenceItem(x) for x in self._dataset.PrescriptionOverviewSequence] + return None + + @PrescriptionOverviewSequence.setter + def PrescriptionOverviewSequence(self, value: Optional[List[PrescriptionOverviewSequenceItem]]): + if value is None: + self._PrescriptionOverviewSequence = [] + if "PrescriptionOverviewSequence" in self._dataset: + del self._dataset.PrescriptionOverviewSequence + elif not isinstance(value, list) or not all(isinstance(item, PrescriptionOverviewSequenceItem) for item in value): + raise ValueError("PrescriptionOverviewSequence must be a list of PrescriptionOverviewSequenceItem objects") + else: + self._PrescriptionOverviewSequence = value + if "PrescriptionOverviewSequence" not in self._dataset: + self._dataset.PrescriptionOverviewSequence = pydicom.Sequence() + self._dataset.PrescriptionOverviewSequence.clear() + self._dataset.PrescriptionOverviewSequence.extend([item.to_dataset() for item in value]) + + def add_PrescriptionOverview(self, item: PrescriptionOverviewSequenceItem): + if not isinstance(item, PrescriptionOverviewSequenceItem): + raise ValueError("Item must be an instance of PrescriptionOverviewSequenceItem") + self._PrescriptionOverviewSequence.append(item) + if "PrescriptionOverviewSequence" not in self._dataset: + self._dataset.PrescriptionOverviewSequence = pydicom.Sequence() + self._dataset.PrescriptionOverviewSequence.append(item.to_dataset()) + + @property + def PlanOverviewIndex(self) -> Optional[int]: + if "PlanOverviewIndex" in self._dataset: + return self._dataset.PlanOverviewIndex + return None + + @PlanOverviewIndex.setter + def PlanOverviewIndex(self, value: Optional[int]): + if value is None: + if "PlanOverviewIndex" in self._dataset: + del self._dataset.PlanOverviewIndex + else: + self._dataset.PlanOverviewIndex = value + + @property + def NumberOfFractionsIncluded(self) -> Optional[int]: + if "NumberOfFractionsIncluded" in self._dataset: + return self._dataset.NumberOfFractionsIncluded + return None + + @NumberOfFractionsIncluded.setter + def NumberOfFractionsIncluded(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsIncluded" in self._dataset: + del self._dataset.NumberOfFractionsIncluded + else: + self._dataset.NumberOfFractionsIncluded = value + + @property + def TreatmentSite(self) -> Optional[str]: + if "TreatmentSite" in self._dataset: + return self._dataset.TreatmentSite + return None + + @TreatmentSite.setter + def TreatmentSite(self, value: Optional[str]): + if value is None: + if "TreatmentSite" in self._dataset: + del self._dataset.TreatmentSite + else: + self._dataset.TreatmentSite = value + + @property + def TreatmentSiteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentSiteCodeSequence" in self._dataset: + if len(self._TreatmentSiteCodeSequence) == len(self._dataset.TreatmentSiteCodeSequence): + return self._TreatmentSiteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentSiteCodeSequence] + return None + + @TreatmentSiteCodeSequence.setter + def TreatmentSiteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentSiteCodeSequence = [] + if "TreatmentSiteCodeSequence" in self._dataset: + del self._dataset.TreatmentSiteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentSiteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentSiteCodeSequence = value + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.clear() + self._dataset.TreatmentSiteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSiteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentSiteCodeSequence.append(item) + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/planar_mpr_volumetric_presentation_state.py b/tdwii_plus_examples/domain_model/planar_mpr_volumetric_presentation_state.py new file mode 100644 index 0000000..7f8cdbf --- /dev/null +++ b/tdwii_plus_examples/domain_model/planar_mpr_volumetric_presentation_state.py @@ -0,0 +1,5139 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .animation_curve_sequence_item import AnimationCurveSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .presentation_state_classification_component_sequence_item import ( + PresentationStateClassificationComponentSequenceItem, +) +from .presentation_state_compositor_component_sequence_item import ( + PresentationStateCompositorComponentSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .rendered_image_reference_sequence_item import RenderedImageReferenceSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .volume_cropping_sequence_item import VolumeCroppingSequenceItem +from .volumetric_annotation_sequence_item import VolumetricAnnotationSequenceItem +from .volumetric_presentation_input_annotation_sequence_item import ( + VolumetricPresentationInputAnnotationSequenceItem, +) +from .volumetric_presentation_input_set_sequence_item import ( + VolumetricPresentationInputSetSequenceItem, +) +from .volumetric_presentation_state_input_sequence_item import ( + VolumetricPresentationStateInputSequenceItem, +) + + +class PlanarMprVolumetricPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._RenderedImageReferenceSequence: List[RenderedImageReferenceSequenceItem] = [] + self._AnimationCurveSequence: List[AnimationCurveSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._VolumeCroppingSequence: List[VolumeCroppingSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._VolumetricPresentationStateInputSequence: List[VolumetricPresentationStateInputSequenceItem] = [] + self._VolumetricPresentationInputSetSequence: List[VolumetricPresentationInputSetSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._VolumetricAnnotationSequence: List[VolumetricAnnotationSequenceItem] = [] + self._VolumetricPresentationInputAnnotationSequence: List[VolumetricPresentationInputAnnotationSequenceItem] = [] + self._PresentationStateClassificationComponentSequence: List[PresentationStateClassificationComponentSequenceItem] = [] + self._PresentationStateCompositorComponentSequence: List[PresentationStateCompositorComponentSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def PresentationDisplayCollectionUID(self) -> Optional[str]: + if "PresentationDisplayCollectionUID" in self._dataset: + return self._dataset.PresentationDisplayCollectionUID + return None + + @PresentationDisplayCollectionUID.setter + def PresentationDisplayCollectionUID(self, value: Optional[str]): + if value is None: + if "PresentationDisplayCollectionUID" in self._dataset: + del self._dataset.PresentationDisplayCollectionUID + else: + self._dataset.PresentationDisplayCollectionUID = value + + @property + def PresentationSequenceCollectionUID(self) -> Optional[str]: + if "PresentationSequenceCollectionUID" in self._dataset: + return self._dataset.PresentationSequenceCollectionUID + return None + + @PresentationSequenceCollectionUID.setter + def PresentationSequenceCollectionUID(self, value: Optional[str]): + if value is None: + if "PresentationSequenceCollectionUID" in self._dataset: + del self._dataset.PresentationSequenceCollectionUID + else: + self._dataset.PresentationSequenceCollectionUID = value + + @property + def PresentationSequencePositionIndex(self) -> Optional[int]: + if "PresentationSequencePositionIndex" in self._dataset: + return self._dataset.PresentationSequencePositionIndex + return None + + @PresentationSequencePositionIndex.setter + def PresentationSequencePositionIndex(self, value: Optional[int]): + if value is None: + if "PresentationSequencePositionIndex" in self._dataset: + del self._dataset.PresentationSequencePositionIndex + else: + self._dataset.PresentationSequencePositionIndex = value + + @property + def RenderedImageReferenceSequence(self) -> Optional[List[RenderedImageReferenceSequenceItem]]: + if "RenderedImageReferenceSequence" in self._dataset: + if len(self._RenderedImageReferenceSequence) == len(self._dataset.RenderedImageReferenceSequence): + return self._RenderedImageReferenceSequence + else: + return [RenderedImageReferenceSequenceItem(x) for x in self._dataset.RenderedImageReferenceSequence] + return None + + @RenderedImageReferenceSequence.setter + def RenderedImageReferenceSequence(self, value: Optional[List[RenderedImageReferenceSequenceItem]]): + if value is None: + self._RenderedImageReferenceSequence = [] + if "RenderedImageReferenceSequence" in self._dataset: + del self._dataset.RenderedImageReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, RenderedImageReferenceSequenceItem) for item in value): + raise ValueError("RenderedImageReferenceSequence must be a list of RenderedImageReferenceSequenceItem objects") + else: + self._RenderedImageReferenceSequence = value + if "RenderedImageReferenceSequence" not in self._dataset: + self._dataset.RenderedImageReferenceSequence = pydicom.Sequence() + self._dataset.RenderedImageReferenceSequence.clear() + self._dataset.RenderedImageReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_RenderedImageReference(self, item: RenderedImageReferenceSequenceItem): + if not isinstance(item, RenderedImageReferenceSequenceItem): + raise ValueError("Item must be an instance of RenderedImageReferenceSequenceItem") + self._RenderedImageReferenceSequence.append(item) + if "RenderedImageReferenceSequence" not in self._dataset: + self._dataset.RenderedImageReferenceSequence = pydicom.Sequence() + self._dataset.RenderedImageReferenceSequence.append(item.to_dataset()) + + @property + def PresentationAnimationStyle(self) -> Optional[str]: + if "PresentationAnimationStyle" in self._dataset: + return self._dataset.PresentationAnimationStyle + return None + + @PresentationAnimationStyle.setter + def PresentationAnimationStyle(self, value: Optional[str]): + if value is None: + if "PresentationAnimationStyle" in self._dataset: + del self._dataset.PresentationAnimationStyle + else: + self._dataset.PresentationAnimationStyle = value + + @property + def RecommendedAnimationRate(self) -> Optional[float]: + if "RecommendedAnimationRate" in self._dataset: + return self._dataset.RecommendedAnimationRate + return None + + @RecommendedAnimationRate.setter + def RecommendedAnimationRate(self, value: Optional[float]): + if value is None: + if "RecommendedAnimationRate" in self._dataset: + del self._dataset.RecommendedAnimationRate + else: + self._dataset.RecommendedAnimationRate = value + + @property + def AnimationCurveSequence(self) -> Optional[List[AnimationCurveSequenceItem]]: + if "AnimationCurveSequence" in self._dataset: + if len(self._AnimationCurveSequence) == len(self._dataset.AnimationCurveSequence): + return self._AnimationCurveSequence + else: + return [AnimationCurveSequenceItem(x) for x in self._dataset.AnimationCurveSequence] + return None + + @AnimationCurveSequence.setter + def AnimationCurveSequence(self, value: Optional[List[AnimationCurveSequenceItem]]): + if value is None: + self._AnimationCurveSequence = [] + if "AnimationCurveSequence" in self._dataset: + del self._dataset.AnimationCurveSequence + elif not isinstance(value, list) or not all(isinstance(item, AnimationCurveSequenceItem) for item in value): + raise ValueError("AnimationCurveSequence must be a list of AnimationCurveSequenceItem objects") + else: + self._AnimationCurveSequence = value + if "AnimationCurveSequence" not in self._dataset: + self._dataset.AnimationCurveSequence = pydicom.Sequence() + self._dataset.AnimationCurveSequence.clear() + self._dataset.AnimationCurveSequence.extend([item.to_dataset() for item in value]) + + def add_AnimationCurve(self, item: AnimationCurveSequenceItem): + if not isinstance(item, AnimationCurveSequenceItem): + raise ValueError("Item must be an instance of AnimationCurveSequenceItem") + self._AnimationCurveSequence.append(item) + if "AnimationCurveSequence" not in self._dataset: + self._dataset.AnimationCurveSequence = pydicom.Sequence() + self._dataset.AnimationCurveSequence.append(item.to_dataset()) + + @property + def AnimationStepSize(self) -> Optional[float]: + if "AnimationStepSize" in self._dataset: + return self._dataset.AnimationStepSize + return None + + @AnimationStepSize.setter + def AnimationStepSize(self, value: Optional[float]): + if value is None: + if "AnimationStepSize" in self._dataset: + del self._dataset.AnimationStepSize + else: + self._dataset.AnimationStepSize = value + + @property + def SwivelRange(self) -> Optional[float]: + if "SwivelRange" in self._dataset: + return self._dataset.SwivelRange + return None + + @SwivelRange.setter + def SwivelRange(self, value: Optional[float]): + if value is None: + if "SwivelRange" in self._dataset: + del self._dataset.SwivelRange + else: + self._dataset.SwivelRange = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def VolumeCroppingSequence(self) -> Optional[List[VolumeCroppingSequenceItem]]: + if "VolumeCroppingSequence" in self._dataset: + if len(self._VolumeCroppingSequence) == len(self._dataset.VolumeCroppingSequence): + return self._VolumeCroppingSequence + else: + return [VolumeCroppingSequenceItem(x) for x in self._dataset.VolumeCroppingSequence] + return None + + @VolumeCroppingSequence.setter + def VolumeCroppingSequence(self, value: Optional[List[VolumeCroppingSequenceItem]]): + if value is None: + self._VolumeCroppingSequence = [] + if "VolumeCroppingSequence" in self._dataset: + del self._dataset.VolumeCroppingSequence + elif not isinstance(value, list) or not all(isinstance(item, VolumeCroppingSequenceItem) for item in value): + raise ValueError("VolumeCroppingSequence must be a list of VolumeCroppingSequenceItem objects") + else: + self._VolumeCroppingSequence = value + if "VolumeCroppingSequence" not in self._dataset: + self._dataset.VolumeCroppingSequence = pydicom.Sequence() + self._dataset.VolumeCroppingSequence.clear() + self._dataset.VolumeCroppingSequence.extend([item.to_dataset() for item in value]) + + def add_VolumeCropping(self, item: VolumeCroppingSequenceItem): + if not isinstance(item, VolumeCroppingSequenceItem): + raise ValueError("Item must be an instance of VolumeCroppingSequenceItem") + self._VolumeCroppingSequence.append(item) + if "VolumeCroppingSequence" not in self._dataset: + self._dataset.VolumeCroppingSequence = pydicom.Sequence() + self._dataset.VolumeCroppingSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def MultiPlanarReconstructionStyle(self) -> Optional[str]: + if "MultiPlanarReconstructionStyle" in self._dataset: + return self._dataset.MultiPlanarReconstructionStyle + return None + + @MultiPlanarReconstructionStyle.setter + def MultiPlanarReconstructionStyle(self, value: Optional[str]): + if value is None: + if "MultiPlanarReconstructionStyle" in self._dataset: + del self._dataset.MultiPlanarReconstructionStyle + else: + self._dataset.MultiPlanarReconstructionStyle = value + + @property + def MPRThicknessType(self) -> Optional[str]: + if "MPRThicknessType" in self._dataset: + return self._dataset.MPRThicknessType + return None + + @MPRThicknessType.setter + def MPRThicknessType(self, value: Optional[str]): + if value is None: + if "MPRThicknessType" in self._dataset: + del self._dataset.MPRThicknessType + else: + self._dataset.MPRThicknessType = value + + @property + def MPRSlabThickness(self) -> Optional[float]: + if "MPRSlabThickness" in self._dataset: + return self._dataset.MPRSlabThickness + return None + + @MPRSlabThickness.setter + def MPRSlabThickness(self, value: Optional[float]): + if value is None: + if "MPRSlabThickness" in self._dataset: + del self._dataset.MPRSlabThickness + else: + self._dataset.MPRSlabThickness = value + + @property + def MPRTopLeftHandCorner(self) -> Optional[List[float]]: + if "MPRTopLeftHandCorner" in self._dataset: + return self._dataset.MPRTopLeftHandCorner + return None + + @MPRTopLeftHandCorner.setter + def MPRTopLeftHandCorner(self, value: Optional[List[float]]): + if value is None: + if "MPRTopLeftHandCorner" in self._dataset: + del self._dataset.MPRTopLeftHandCorner + else: + self._dataset.MPRTopLeftHandCorner = value + + @property + def MPRViewWidthDirection(self) -> Optional[List[float]]: + if "MPRViewWidthDirection" in self._dataset: + return self._dataset.MPRViewWidthDirection + return None + + @MPRViewWidthDirection.setter + def MPRViewWidthDirection(self, value: Optional[List[float]]): + if value is None: + if "MPRViewWidthDirection" in self._dataset: + del self._dataset.MPRViewWidthDirection + else: + self._dataset.MPRViewWidthDirection = value + + @property + def MPRViewWidth(self) -> Optional[float]: + if "MPRViewWidth" in self._dataset: + return self._dataset.MPRViewWidth + return None + + @MPRViewWidth.setter + def MPRViewWidth(self, value: Optional[float]): + if value is None: + if "MPRViewWidth" in self._dataset: + del self._dataset.MPRViewWidth + else: + self._dataset.MPRViewWidth = value + + @property + def MPRViewHeightDirection(self) -> Optional[List[float]]: + if "MPRViewHeightDirection" in self._dataset: + return self._dataset.MPRViewHeightDirection + return None + + @MPRViewHeightDirection.setter + def MPRViewHeightDirection(self, value: Optional[List[float]]): + if value is None: + if "MPRViewHeightDirection" in self._dataset: + del self._dataset.MPRViewHeightDirection + else: + self._dataset.MPRViewHeightDirection = value + + @property + def MPRViewHeight(self) -> Optional[float]: + if "MPRViewHeight" in self._dataset: + return self._dataset.MPRViewHeight + return None + + @MPRViewHeight.setter + def MPRViewHeight(self, value: Optional[float]): + if value is None: + if "MPRViewHeight" in self._dataset: + del self._dataset.MPRViewHeight + else: + self._dataset.MPRViewHeight = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationStateInputSequence(self) -> Optional[List[VolumetricPresentationStateInputSequenceItem]]: + if "VolumetricPresentationStateInputSequence" in self._dataset: + if len(self._VolumetricPresentationStateInputSequence) == len( + self._dataset.VolumetricPresentationStateInputSequence + ): + return self._VolumetricPresentationStateInputSequence + else: + return [ + VolumetricPresentationStateInputSequenceItem(x) + for x in self._dataset.VolumetricPresentationStateInputSequence + ] + return None + + @VolumetricPresentationStateInputSequence.setter + def VolumetricPresentationStateInputSequence(self, value: Optional[List[VolumetricPresentationStateInputSequenceItem]]): + if value is None: + self._VolumetricPresentationStateInputSequence = [] + if "VolumetricPresentationStateInputSequence" in self._dataset: + del self._dataset.VolumetricPresentationStateInputSequence + elif not isinstance(value, list) or not all( + isinstance(item, VolumetricPresentationStateInputSequenceItem) for item in value + ): + raise ValueError( + "VolumetricPresentationStateInputSequence must be a list of VolumetricPresentationStateInputSequenceItem" + " objects" + ) + else: + self._VolumetricPresentationStateInputSequence = value + if "VolumetricPresentationStateInputSequence" not in self._dataset: + self._dataset.VolumetricPresentationStateInputSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationStateInputSequence.clear() + self._dataset.VolumetricPresentationStateInputSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricPresentationStateInput(self, item: VolumetricPresentationStateInputSequenceItem): + if not isinstance(item, VolumetricPresentationStateInputSequenceItem): + raise ValueError("Item must be an instance of VolumetricPresentationStateInputSequenceItem") + self._VolumetricPresentationStateInputSequence.append(item) + if "VolumetricPresentationStateInputSequence" not in self._dataset: + self._dataset.VolumetricPresentationStateInputSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationStateInputSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationInputSetSequence(self) -> Optional[List[VolumetricPresentationInputSetSequenceItem]]: + if "VolumetricPresentationInputSetSequence" in self._dataset: + if len(self._VolumetricPresentationInputSetSequence) == len(self._dataset.VolumetricPresentationInputSetSequence): + return self._VolumetricPresentationInputSetSequence + else: + return [ + VolumetricPresentationInputSetSequenceItem(x) for x in self._dataset.VolumetricPresentationInputSetSequence + ] + return None + + @VolumetricPresentationInputSetSequence.setter + def VolumetricPresentationInputSetSequence(self, value: Optional[List[VolumetricPresentationInputSetSequenceItem]]): + if value is None: + self._VolumetricPresentationInputSetSequence = [] + if "VolumetricPresentationInputSetSequence" in self._dataset: + del self._dataset.VolumetricPresentationInputSetSequence + elif not isinstance(value, list) or not all( + isinstance(item, VolumetricPresentationInputSetSequenceItem) for item in value + ): + raise ValueError( + "VolumetricPresentationInputSetSequence must be a list of VolumetricPresentationInputSetSequenceItem objects" + ) + else: + self._VolumetricPresentationInputSetSequence = value + if "VolumetricPresentationInputSetSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputSetSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputSetSequence.clear() + self._dataset.VolumetricPresentationInputSetSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricPresentationInputSet(self, item: VolumetricPresentationInputSetSequenceItem): + if not isinstance(item, VolumetricPresentationInputSetSequenceItem): + raise ValueError("Item must be an instance of VolumetricPresentationInputSetSequenceItem") + self._VolumetricPresentationInputSetSequence.append(item) + if "VolumetricPresentationInputSetSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputSetSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputSetSequence.append(item.to_dataset()) + + @property + def GlobalCrop(self) -> Optional[str]: + if "GlobalCrop" in self._dataset: + return self._dataset.GlobalCrop + return None + + @GlobalCrop.setter + def GlobalCrop(self, value: Optional[str]): + if value is None: + if "GlobalCrop" in self._dataset: + del self._dataset.GlobalCrop + else: + self._dataset.GlobalCrop = value + + @property + def GlobalCroppingSpecificationIndex(self) -> Optional[List[int]]: + if "GlobalCroppingSpecificationIndex" in self._dataset: + return self._dataset.GlobalCroppingSpecificationIndex + return None + + @GlobalCroppingSpecificationIndex.setter + def GlobalCroppingSpecificationIndex(self, value: Optional[List[int]]): + if value is None: + if "GlobalCroppingSpecificationIndex" in self._dataset: + del self._dataset.GlobalCroppingSpecificationIndex + else: + self._dataset.GlobalCroppingSpecificationIndex = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def VolumetricAnnotationSequence(self) -> Optional[List[VolumetricAnnotationSequenceItem]]: + if "VolumetricAnnotationSequence" in self._dataset: + if len(self._VolumetricAnnotationSequence) == len(self._dataset.VolumetricAnnotationSequence): + return self._VolumetricAnnotationSequence + else: + return [VolumetricAnnotationSequenceItem(x) for x in self._dataset.VolumetricAnnotationSequence] + return None + + @VolumetricAnnotationSequence.setter + def VolumetricAnnotationSequence(self, value: Optional[List[VolumetricAnnotationSequenceItem]]): + if value is None: + self._VolumetricAnnotationSequence = [] + if "VolumetricAnnotationSequence" in self._dataset: + del self._dataset.VolumetricAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, VolumetricAnnotationSequenceItem) for item in value): + raise ValueError("VolumetricAnnotationSequence must be a list of VolumetricAnnotationSequenceItem objects") + else: + self._VolumetricAnnotationSequence = value + if "VolumetricAnnotationSequence" not in self._dataset: + self._dataset.VolumetricAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricAnnotationSequence.clear() + self._dataset.VolumetricAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricAnnotation(self, item: VolumetricAnnotationSequenceItem): + if not isinstance(item, VolumetricAnnotationSequenceItem): + raise ValueError("Item must be an instance of VolumetricAnnotationSequenceItem") + self._VolumetricAnnotationSequence.append(item) + if "VolumetricAnnotationSequence" not in self._dataset: + self._dataset.VolumetricAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricAnnotationSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationInputAnnotationSequence( + self, + ) -> Optional[List[VolumetricPresentationInputAnnotationSequenceItem]]: + if "VolumetricPresentationInputAnnotationSequence" in self._dataset: + if len(self._VolumetricPresentationInputAnnotationSequence) == len( + self._dataset.VolumetricPresentationInputAnnotationSequence + ): + return self._VolumetricPresentationInputAnnotationSequence + else: + return [ + VolumetricPresentationInputAnnotationSequenceItem(x) + for x in self._dataset.VolumetricPresentationInputAnnotationSequence + ] + return None + + @VolumetricPresentationInputAnnotationSequence.setter + def VolumetricPresentationInputAnnotationSequence( + self, value: Optional[List[VolumetricPresentationInputAnnotationSequenceItem]] + ): + if value is None: + self._VolumetricPresentationInputAnnotationSequence = [] + if "VolumetricPresentationInputAnnotationSequence" in self._dataset: + del self._dataset.VolumetricPresentationInputAnnotationSequence + elif not isinstance(value, list) or not all( + isinstance(item, VolumetricPresentationInputAnnotationSequenceItem) for item in value + ): + raise ValueError( + "VolumetricPresentationInputAnnotationSequence must be a list of" + " VolumetricPresentationInputAnnotationSequenceItem objects" + ) + else: + self._VolumetricPresentationInputAnnotationSequence = value + if "VolumetricPresentationInputAnnotationSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputAnnotationSequence.clear() + self._dataset.VolumetricPresentationInputAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricPresentationInputAnnotation(self, item: VolumetricPresentationInputAnnotationSequenceItem): + if not isinstance(item, VolumetricPresentationInputAnnotationSequenceItem): + raise ValueError("Item must be an instance of VolumetricPresentationInputAnnotationSequenceItem") + self._VolumetricPresentationInputAnnotationSequence.append(item) + if "VolumetricPresentationInputAnnotationSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputAnnotationSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PresentationStateClassificationComponentSequence( + self, + ) -> Optional[List[PresentationStateClassificationComponentSequenceItem]]: + if "PresentationStateClassificationComponentSequence" in self._dataset: + if len(self._PresentationStateClassificationComponentSequence) == len( + self._dataset.PresentationStateClassificationComponentSequence + ): + return self._PresentationStateClassificationComponentSequence + else: + return [ + PresentationStateClassificationComponentSequenceItem(x) + for x in self._dataset.PresentationStateClassificationComponentSequence + ] + return None + + @PresentationStateClassificationComponentSequence.setter + def PresentationStateClassificationComponentSequence( + self, value: Optional[List[PresentationStateClassificationComponentSequenceItem]] + ): + if value is None: + self._PresentationStateClassificationComponentSequence = [] + if "PresentationStateClassificationComponentSequence" in self._dataset: + del self._dataset.PresentationStateClassificationComponentSequence + elif not isinstance(value, list) or not all( + isinstance(item, PresentationStateClassificationComponentSequenceItem) for item in value + ): + raise ValueError( + "PresentationStateClassificationComponentSequence must be a list of" + " PresentationStateClassificationComponentSequenceItem objects" + ) + else: + self._PresentationStateClassificationComponentSequence = value + if "PresentationStateClassificationComponentSequence" not in self._dataset: + self._dataset.PresentationStateClassificationComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateClassificationComponentSequence.clear() + self._dataset.PresentationStateClassificationComponentSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationStateClassificationComponent(self, item: PresentationStateClassificationComponentSequenceItem): + if not isinstance(item, PresentationStateClassificationComponentSequenceItem): + raise ValueError("Item must be an instance of PresentationStateClassificationComponentSequenceItem") + self._PresentationStateClassificationComponentSequence.append(item) + if "PresentationStateClassificationComponentSequence" not in self._dataset: + self._dataset.PresentationStateClassificationComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateClassificationComponentSequence.append(item.to_dataset()) + + @property + def PresentationStateCompositorComponentSequence(self) -> Optional[List[PresentationStateCompositorComponentSequenceItem]]: + if "PresentationStateCompositorComponentSequence" in self._dataset: + if len(self._PresentationStateCompositorComponentSequence) == len( + self._dataset.PresentationStateCompositorComponentSequence + ): + return self._PresentationStateCompositorComponentSequence + else: + return [ + PresentationStateCompositorComponentSequenceItem(x) + for x in self._dataset.PresentationStateCompositorComponentSequence + ] + return None + + @PresentationStateCompositorComponentSequence.setter + def PresentationStateCompositorComponentSequence( + self, value: Optional[List[PresentationStateCompositorComponentSequenceItem]] + ): + if value is None: + self._PresentationStateCompositorComponentSequence = [] + if "PresentationStateCompositorComponentSequence" in self._dataset: + del self._dataset.PresentationStateCompositorComponentSequence + elif not isinstance(value, list) or not all( + isinstance(item, PresentationStateCompositorComponentSequenceItem) for item in value + ): + raise ValueError( + "PresentationStateCompositorComponentSequence must be a list of" + " PresentationStateCompositorComponentSequenceItem objects" + ) + else: + self._PresentationStateCompositorComponentSequence = value + if "PresentationStateCompositorComponentSequence" not in self._dataset: + self._dataset.PresentationStateCompositorComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateCompositorComponentSequence.clear() + self._dataset.PresentationStateCompositorComponentSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationStateCompositorComponent(self, item: PresentationStateCompositorComponentSequenceItem): + if not isinstance(item, PresentationStateCompositorComponentSequenceItem): + raise ValueError("Item must be an instance of PresentationStateCompositorComponentSequenceItem") + self._PresentationStateCompositorComponentSequence.append(item) + if "PresentationStateCompositorComponentSequence" not in self._dataset: + self._dataset.PresentationStateCompositorComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateCompositorComponentSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/plane_orientation_sequence_item.py b/tdwii_plus_examples/domain_model/plane_orientation_sequence_item.py new file mode 100644 index 0000000..4f91e4b --- /dev/null +++ b/tdwii_plus_examples/domain_model/plane_orientation_sequence_item.py @@ -0,0 +1,26 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PlaneOrientationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value diff --git a/tdwii_plus_examples/domain_model/plane_orientation_volume_sequence_item.py b/tdwii_plus_examples/domain_model/plane_orientation_volume_sequence_item.py new file mode 100644 index 0000000..a71ac76 --- /dev/null +++ b/tdwii_plus_examples/domain_model/plane_orientation_volume_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PlaneOrientationVolumeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageOrientationVolume(self) -> Optional[List[float]]: + if "ImageOrientationVolume" in self._dataset: + return self._dataset.ImageOrientationVolume + return None + + @ImageOrientationVolume.setter + def ImageOrientationVolume(self, value: Optional[List[float]]): + if value is None: + if "ImageOrientationVolume" in self._dataset: + del self._dataset.ImageOrientationVolume + else: + self._dataset.ImageOrientationVolume = value diff --git a/tdwii_plus_examples/domain_model/plane_position_sequence_item.py b/tdwii_plus_examples/domain_model/plane_position_sequence_item.py new file mode 100644 index 0000000..3c70e66 --- /dev/null +++ b/tdwii_plus_examples/domain_model/plane_position_sequence_item.py @@ -0,0 +1,26 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PlanePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value diff --git a/tdwii_plus_examples/domain_model/plane_position_slide_sequence_item.py b/tdwii_plus_examples/domain_model/plane_position_slide_sequence_item.py new file mode 100644 index 0000000..d4fdc18 --- /dev/null +++ b/tdwii_plus_examples/domain_model/plane_position_slide_sequence_item.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PlanePositionSlideSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def XOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "XOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.XOffsetInSlideCoordinateSystem + return None + + @XOffsetInSlideCoordinateSystem.setter + def XOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "XOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.XOffsetInSlideCoordinateSystem + else: + self._dataset.XOffsetInSlideCoordinateSystem = value + + @property + def YOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "YOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.YOffsetInSlideCoordinateSystem + return None + + @YOffsetInSlideCoordinateSystem.setter + def YOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "YOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.YOffsetInSlideCoordinateSystem + else: + self._dataset.YOffsetInSlideCoordinateSystem = value + + @property + def ZOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "ZOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.ZOffsetInSlideCoordinateSystem + return None + + @ZOffsetInSlideCoordinateSystem.setter + def ZOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "ZOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.ZOffsetInSlideCoordinateSystem + else: + self._dataset.ZOffsetInSlideCoordinateSystem = value + + @property + def ColumnPositionInTotalImagePixelMatrix(self) -> Optional[int]: + if "ColumnPositionInTotalImagePixelMatrix" in self._dataset: + return self._dataset.ColumnPositionInTotalImagePixelMatrix + return None + + @ColumnPositionInTotalImagePixelMatrix.setter + def ColumnPositionInTotalImagePixelMatrix(self, value: Optional[int]): + if value is None: + if "ColumnPositionInTotalImagePixelMatrix" in self._dataset: + del self._dataset.ColumnPositionInTotalImagePixelMatrix + else: + self._dataset.ColumnPositionInTotalImagePixelMatrix = value + + @property + def RowPositionInTotalImagePixelMatrix(self) -> Optional[int]: + if "RowPositionInTotalImagePixelMatrix" in self._dataset: + return self._dataset.RowPositionInTotalImagePixelMatrix + return None + + @RowPositionInTotalImagePixelMatrix.setter + def RowPositionInTotalImagePixelMatrix(self, value: Optional[int]): + if value is None: + if "RowPositionInTotalImagePixelMatrix" in self._dataset: + del self._dataset.RowPositionInTotalImagePixelMatrix + else: + self._dataset.RowPositionInTotalImagePixelMatrix = value diff --git a/tdwii_plus_examples/domain_model/plane_position_volume_sequence_item.py b/tdwii_plus_examples/domain_model/plane_position_volume_sequence_item.py new file mode 100644 index 0000000..eb829ed --- /dev/null +++ b/tdwii_plus_examples/domain_model/plane_position_volume_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PlanePositionVolumeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagePositionVolume(self) -> Optional[List[float]]: + if "ImagePositionVolume" in self._dataset: + return self._dataset.ImagePositionVolume + return None + + @ImagePositionVolume.setter + def ImagePositionVolume(self, value: Optional[List[float]]): + if value is None: + if "ImagePositionVolume" in self._dataset: + del self._dataset.ImagePositionVolume + else: + self._dataset.ImagePositionVolume = value diff --git a/tdwii_plus_examples/domain_model/planned_imaging_agent_administration_sr.py b/tdwii_plus_examples/domain_model/planned_imaging_agent_administration_sr.py new file mode 100644 index 0000000..01ea654 --- /dev/null +++ b/tdwii_plus_examples/domain_model/planned_imaging_agent_administration_sr.py @@ -0,0 +1,4561 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class PlannedImagingAgentAdministrationSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/planned_verification_image_sequence_item.py b/tdwii_plus_examples/domain_model/planned_verification_image_sequence_item.py new file mode 100644 index 0000000..c7ac2d8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/planned_verification_image_sequence_item.py @@ -0,0 +1,152 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PlannedVerificationImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTImagePlane(self) -> Optional[str]: + if "RTImagePlane" in self._dataset: + return self._dataset.RTImagePlane + return None + + @RTImagePlane.setter + def RTImagePlane(self, value: Optional[str]): + if value is None: + if "RTImagePlane" in self._dataset: + del self._dataset.RTImagePlane + else: + self._dataset.RTImagePlane = value + + @property + def XRayImageReceptorAngle(self) -> Optional[Decimal]: + if "XRayImageReceptorAngle" in self._dataset: + return self._dataset.XRayImageReceptorAngle + return None + + @XRayImageReceptorAngle.setter + def XRayImageReceptorAngle(self, value: Optional[Decimal]): + if value is None: + if "XRayImageReceptorAngle" in self._dataset: + del self._dataset.XRayImageReceptorAngle + else: + self._dataset.XRayImageReceptorAngle = value + + @property + def RTImageOrientation(self) -> Optional[List[Decimal]]: + if "RTImageOrientation" in self._dataset: + return self._dataset.RTImageOrientation + return None + + @RTImageOrientation.setter + def RTImageOrientation(self, value: Optional[List[Decimal]]): + if value is None: + if "RTImageOrientation" in self._dataset: + del self._dataset.RTImageOrientation + else: + self._dataset.RTImageOrientation = value + + @property + def RTImagePosition(self) -> Optional[List[Decimal]]: + if "RTImagePosition" in self._dataset: + return self._dataset.RTImagePosition + return None + + @RTImagePosition.setter + def RTImagePosition(self, value: Optional[List[Decimal]]): + if value is None: + if "RTImagePosition" in self._dataset: + del self._dataset.RTImagePosition + else: + self._dataset.RTImagePosition = value + + @property + def RTImageSID(self) -> Optional[Decimal]: + if "RTImageSID" in self._dataset: + return self._dataset.RTImageSID + return None + + @RTImageSID.setter + def RTImageSID(self, value: Optional[Decimal]): + if value is None: + if "RTImageSID" in self._dataset: + del self._dataset.RTImageSID + else: + self._dataset.RTImageSID = value + + @property + def MetersetExposure(self) -> Optional[Decimal]: + if "MetersetExposure" in self._dataset: + return self._dataset.MetersetExposure + return None + + @MetersetExposure.setter + def MetersetExposure(self, value: Optional[Decimal]): + if value is None: + if "MetersetExposure" in self._dataset: + del self._dataset.MetersetExposure + else: + self._dataset.MetersetExposure = value + + @property + def ImagingDeviceSpecificAcquisitionParameters(self) -> Optional[List[str]]: + if "ImagingDeviceSpecificAcquisitionParameters" in self._dataset: + return self._dataset.ImagingDeviceSpecificAcquisitionParameters + return None + + @ImagingDeviceSpecificAcquisitionParameters.setter + def ImagingDeviceSpecificAcquisitionParameters(self, value: Optional[List[str]]): + if value is None: + if "ImagingDeviceSpecificAcquisitionParameters" in self._dataset: + del self._dataset.ImagingDeviceSpecificAcquisitionParameters + else: + self._dataset.ImagingDeviceSpecificAcquisitionParameters = value + + @property + def ReferencedReferenceImageNumber(self) -> Optional[int]: + if "ReferencedReferenceImageNumber" in self._dataset: + return self._dataset.ReferencedReferenceImageNumber + return None + + @ReferencedReferenceImageNumber.setter + def ReferencedReferenceImageNumber(self, value: Optional[int]): + if value is None: + if "ReferencedReferenceImageNumber" in self._dataset: + del self._dataset.ReferencedReferenceImageNumber + else: + self._dataset.ReferencedReferenceImageNumber = value + + @property + def StartCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "StartCumulativeMetersetWeight" in self._dataset: + return self._dataset.StartCumulativeMetersetWeight + return None + + @StartCumulativeMetersetWeight.setter + def StartCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "StartCumulativeMetersetWeight" in self._dataset: + del self._dataset.StartCumulativeMetersetWeight + else: + self._dataset.StartCumulativeMetersetWeight = value + + @property + def EndCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "EndCumulativeMetersetWeight" in self._dataset: + return self._dataset.EndCumulativeMetersetWeight + return None + + @EndCumulativeMetersetWeight.setter + def EndCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "EndCumulativeMetersetWeight" in self._dataset: + del self._dataset.EndCumulativeMetersetWeight + else: + self._dataset.EndCumulativeMetersetWeight = value diff --git a/tdwii_plus_examples/domain_model/planning_input_information_sequence_item.py b/tdwii_plus_examples/domain_model/planning_input_information_sequence_item.py new file mode 100644 index 0000000..9dd967f --- /dev/null +++ b/tdwii_plus_examples/domain_model/planning_input_information_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem + + +class PlanningInputInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/position_acquisition_template_identification_sequence_item.py b/tdwii_plus_examples/domain_model/position_acquisition_template_identification_sequence_item.py new file mode 100644 index 0000000..472a419 --- /dev/null +++ b/tdwii_plus_examples/domain_model/position_acquisition_template_identification_sequence_item.py @@ -0,0 +1,90 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PositionAcquisitionTemplateIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PositionAcquisitionTemplateCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PositionAcquisitionTemplateID(self) -> Optional[str]: + if "PositionAcquisitionTemplateID" in self._dataset: + return self._dataset.PositionAcquisitionTemplateID + return None + + @PositionAcquisitionTemplateID.setter + def PositionAcquisitionTemplateID(self, value: Optional[str]): + if value is None: + if "PositionAcquisitionTemplateID" in self._dataset: + del self._dataset.PositionAcquisitionTemplateID + else: + self._dataset.PositionAcquisitionTemplateID = value + + @property + def PositionAcquisitionTemplateName(self) -> Optional[str]: + if "PositionAcquisitionTemplateName" in self._dataset: + return self._dataset.PositionAcquisitionTemplateName + return None + + @PositionAcquisitionTemplateName.setter + def PositionAcquisitionTemplateName(self, value: Optional[str]): + if value is None: + if "PositionAcquisitionTemplateName" in self._dataset: + del self._dataset.PositionAcquisitionTemplateName + else: + self._dataset.PositionAcquisitionTemplateName = value + + @property + def PositionAcquisitionTemplateCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PositionAcquisitionTemplateCodeSequence" in self._dataset: + if len(self._PositionAcquisitionTemplateCodeSequence) == len( + self._dataset.PositionAcquisitionTemplateCodeSequence + ): + return self._PositionAcquisitionTemplateCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PositionAcquisitionTemplateCodeSequence] + return None + + @PositionAcquisitionTemplateCodeSequence.setter + def PositionAcquisitionTemplateCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PositionAcquisitionTemplateCodeSequence = [] + if "PositionAcquisitionTemplateCodeSequence" in self._dataset: + del self._dataset.PositionAcquisitionTemplateCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PositionAcquisitionTemplateCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PositionAcquisitionTemplateCodeSequence = value + if "PositionAcquisitionTemplateCodeSequence" not in self._dataset: + self._dataset.PositionAcquisitionTemplateCodeSequence = pydicom.Sequence() + self._dataset.PositionAcquisitionTemplateCodeSequence.clear() + self._dataset.PositionAcquisitionTemplateCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PositionAcquisitionTemplateCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PositionAcquisitionTemplateCodeSequence.append(item) + if "PositionAcquisitionTemplateCodeSequence" not in self._dataset: + self._dataset.PositionAcquisitionTemplateCodeSequence = pydicom.Sequence() + self._dataset.PositionAcquisitionTemplateCodeSequence.append(item.to_dataset()) + + @property + def PositionAcquisitionTemplateDescription(self) -> Optional[str]: + if "PositionAcquisitionTemplateDescription" in self._dataset: + return self._dataset.PositionAcquisitionTemplateDescription + return None + + @PositionAcquisitionTemplateDescription.setter + def PositionAcquisitionTemplateDescription(self, value: Optional[str]): + if value is None: + if "PositionAcquisitionTemplateDescription" in self._dataset: + del self._dataset.PositionAcquisitionTemplateDescription + else: + self._dataset.PositionAcquisitionTemplateDescription = value diff --git a/tdwii_plus_examples/domain_model/positioner_position_sequence_item.py b/tdwii_plus_examples/domain_model/positioner_position_sequence_item.py new file mode 100644 index 0000000..22ae79d --- /dev/null +++ b/tdwii_plus_examples/domain_model/positioner_position_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PositionerPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def ColumnAngulationPatient(self) -> Optional[float]: + if "ColumnAngulationPatient" in self._dataset: + return self._dataset.ColumnAngulationPatient + return None + + @ColumnAngulationPatient.setter + def ColumnAngulationPatient(self, value: Optional[float]): + if value is None: + if "ColumnAngulationPatient" in self._dataset: + del self._dataset.ColumnAngulationPatient + else: + self._dataset.ColumnAngulationPatient = value diff --git a/tdwii_plus_examples/domain_model/positioning_landmark_sequence_item.py b/tdwii_plus_examples/domain_model/positioning_landmark_sequence_item.py new file mode 100644 index 0000000..0c95a90 --- /dev/null +++ b/tdwii_plus_examples/domain_model/positioning_landmark_sequence_item.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PositioningLandmarkSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferenceBasisCodeSequence: List[CodeSequenceItem] = [] + self._ReferenceGeometryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferenceLocationLabel(self) -> Optional[str]: + if "ReferenceLocationLabel" in self._dataset: + return self._dataset.ReferenceLocationLabel + return None + + @ReferenceLocationLabel.setter + def ReferenceLocationLabel(self, value: Optional[str]): + if value is None: + if "ReferenceLocationLabel" in self._dataset: + del self._dataset.ReferenceLocationLabel + else: + self._dataset.ReferenceLocationLabel = value + + @property + def ReferenceLocationDescription(self) -> Optional[str]: + if "ReferenceLocationDescription" in self._dataset: + return self._dataset.ReferenceLocationDescription + return None + + @ReferenceLocationDescription.setter + def ReferenceLocationDescription(self, value: Optional[str]): + if value is None: + if "ReferenceLocationDescription" in self._dataset: + del self._dataset.ReferenceLocationDescription + else: + self._dataset.ReferenceLocationDescription = value + + @property + def ReferenceBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceBasisCodeSequence" in self._dataset: + if len(self._ReferenceBasisCodeSequence) == len(self._dataset.ReferenceBasisCodeSequence): + return self._ReferenceBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceBasisCodeSequence] + return None + + @ReferenceBasisCodeSequence.setter + def ReferenceBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceBasisCodeSequence = [] + if "ReferenceBasisCodeSequence" in self._dataset: + del self._dataset.ReferenceBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceBasisCodeSequence = value + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.clear() + self._dataset.ReferenceBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceBasisCodeSequence.append(item) + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.append(item.to_dataset()) + + @property + def ReferenceGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceGeometryCodeSequence" in self._dataset: + if len(self._ReferenceGeometryCodeSequence) == len(self._dataset.ReferenceGeometryCodeSequence): + return self._ReferenceGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceGeometryCodeSequence] + return None + + @ReferenceGeometryCodeSequence.setter + def ReferenceGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceGeometryCodeSequence = [] + if "ReferenceGeometryCodeSequence" in self._dataset: + del self._dataset.ReferenceGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceGeometryCodeSequence = value + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.clear() + self._dataset.ReferenceGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceGeometryCodeSequence.append(item) + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.append(item.to_dataset()) + + @property + def OffsetDistance(self) -> Optional[Decimal]: + if "OffsetDistance" in self._dataset: + return self._dataset.OffsetDistance + return None + + @OffsetDistance.setter + def OffsetDistance(self, value: Optional[Decimal]): + if value is None: + if "OffsetDistance" in self._dataset: + del self._dataset.OffsetDistance + else: + self._dataset.OffsetDistance = value + + @property + def OffsetDirection(self) -> Optional[str]: + if "OffsetDirection" in self._dataset: + return self._dataset.OffsetDirection + return None + + @OffsetDirection.setter + def OffsetDirection(self, value: Optional[str]): + if value is None: + if "OffsetDirection" in self._dataset: + del self._dataset.OffsetDirection + else: + self._dataset.OffsetDirection = value diff --git a/tdwii_plus_examples/domain_model/positron_emission_tomography_image.py b/tdwii_plus_examples/domain_model/positron_emission_tomography_image.py new file mode 100644 index 0000000..b64512a --- /dev/null +++ b/tdwii_plus_examples/domain_model/positron_emission_tomography_image.py @@ -0,0 +1,7033 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .energy_window_range_sequence_item import EnergyWindowRangeSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_drug_information_sequence_item import ( + InterventionDrugInformationSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiopharmaceutical_information_sequence_item import ( + RadiopharmaceuticalInformationSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class PositronEmissionTomographyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InterventionDrugInformationSequence: List[InterventionDrugInformationSequenceItem] = [] + self._RadiopharmaceuticalInformationSequence: List[RadiopharmaceuticalInformationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._EnergyWindowRangeSequence: List[EnergyWindowRangeSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InterventionDrugInformationSequence(self) -> Optional[List[InterventionDrugInformationSequenceItem]]: + if "InterventionDrugInformationSequence" in self._dataset: + if len(self._InterventionDrugInformationSequence) == len(self._dataset.InterventionDrugInformationSequence): + return self._InterventionDrugInformationSequence + else: + return [InterventionDrugInformationSequenceItem(x) for x in self._dataset.InterventionDrugInformationSequence] + return None + + @InterventionDrugInformationSequence.setter + def InterventionDrugInformationSequence(self, value: Optional[List[InterventionDrugInformationSequenceItem]]): + if value is None: + self._InterventionDrugInformationSequence = [] + if "InterventionDrugInformationSequence" in self._dataset: + del self._dataset.InterventionDrugInformationSequence + elif not isinstance(value, list) or not all( + isinstance(item, InterventionDrugInformationSequenceItem) for item in value + ): + raise ValueError( + "InterventionDrugInformationSequence must be a list of InterventionDrugInformationSequenceItem objects" + ) + else: + self._InterventionDrugInformationSequence = value + if "InterventionDrugInformationSequence" not in self._dataset: + self._dataset.InterventionDrugInformationSequence = pydicom.Sequence() + self._dataset.InterventionDrugInformationSequence.clear() + self._dataset.InterventionDrugInformationSequence.extend([item.to_dataset() for item in value]) + + def add_InterventionDrugInformation(self, item: InterventionDrugInformationSequenceItem): + if not isinstance(item, InterventionDrugInformationSequenceItem): + raise ValueError("Item must be an instance of InterventionDrugInformationSequenceItem") + self._InterventionDrugInformationSequence.append(item) + if "InterventionDrugInformationSequence" not in self._dataset: + self._dataset.InterventionDrugInformationSequence = pydicom.Sequence() + self._dataset.InterventionDrugInformationSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalInformationSequence(self) -> Optional[List[RadiopharmaceuticalInformationSequenceItem]]: + if "RadiopharmaceuticalInformationSequence" in self._dataset: + if len(self._RadiopharmaceuticalInformationSequence) == len(self._dataset.RadiopharmaceuticalInformationSequence): + return self._RadiopharmaceuticalInformationSequence + else: + return [ + RadiopharmaceuticalInformationSequenceItem(x) for x in self._dataset.RadiopharmaceuticalInformationSequence + ] + return None + + @RadiopharmaceuticalInformationSequence.setter + def RadiopharmaceuticalInformationSequence(self, value: Optional[List[RadiopharmaceuticalInformationSequenceItem]]): + if value is None: + self._RadiopharmaceuticalInformationSequence = [] + if "RadiopharmaceuticalInformationSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalInformationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiopharmaceuticalInformationSequenceItem) for item in value + ): + raise ValueError( + "RadiopharmaceuticalInformationSequence must be a list of RadiopharmaceuticalInformationSequenceItem objects" + ) + else: + self._RadiopharmaceuticalInformationSequence = value + if "RadiopharmaceuticalInformationSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalInformationSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalInformationSequence.clear() + self._dataset.RadiopharmaceuticalInformationSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalInformation(self, item: RadiopharmaceuticalInformationSequenceItem): + if not isinstance(item, RadiopharmaceuticalInformationSequenceItem): + raise ValueError("Item must be an instance of RadiopharmaceuticalInformationSequenceItem") + self._RadiopharmaceuticalInformationSequence.append(item) + if "RadiopharmaceuticalInformationSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalInformationSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalInformationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def AcquisitionTerminationCondition(self) -> Optional[str]: + if "AcquisitionTerminationCondition" in self._dataset: + return self._dataset.AcquisitionTerminationCondition + return None + + @AcquisitionTerminationCondition.setter + def AcquisitionTerminationCondition(self, value: Optional[str]): + if value is None: + if "AcquisitionTerminationCondition" in self._dataset: + del self._dataset.AcquisitionTerminationCondition + else: + self._dataset.AcquisitionTerminationCondition = value + + @property + def AcquisitionStartCondition(self) -> Optional[str]: + if "AcquisitionStartCondition" in self._dataset: + return self._dataset.AcquisitionStartCondition + return None + + @AcquisitionStartCondition.setter + def AcquisitionStartCondition(self, value: Optional[str]): + if value is None: + if "AcquisitionStartCondition" in self._dataset: + del self._dataset.AcquisitionStartCondition + else: + self._dataset.AcquisitionStartCondition = value + + @property + def AcquisitionStartConditionData(self) -> Optional[int]: + if "AcquisitionStartConditionData" in self._dataset: + return self._dataset.AcquisitionStartConditionData + return None + + @AcquisitionStartConditionData.setter + def AcquisitionStartConditionData(self, value: Optional[int]): + if value is None: + if "AcquisitionStartConditionData" in self._dataset: + del self._dataset.AcquisitionStartConditionData + else: + self._dataset.AcquisitionStartConditionData = value + + @property + def AcquisitionTerminationConditionData(self) -> Optional[int]: + if "AcquisitionTerminationConditionData" in self._dataset: + return self._dataset.AcquisitionTerminationConditionData + return None + + @AcquisitionTerminationConditionData.setter + def AcquisitionTerminationConditionData(self, value: Optional[int]): + if value is None: + if "AcquisitionTerminationConditionData" in self._dataset: + del self._dataset.AcquisitionTerminationConditionData + else: + self._dataset.AcquisitionTerminationConditionData = value + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def GantryDetectorTilt(self) -> Optional[Decimal]: + if "GantryDetectorTilt" in self._dataset: + return self._dataset.GantryDetectorTilt + return None + + @GantryDetectorTilt.setter + def GantryDetectorTilt(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorTilt" in self._dataset: + del self._dataset.GantryDetectorTilt + else: + self._dataset.GantryDetectorTilt = value + + @property + def GantryDetectorSlew(self) -> Optional[Decimal]: + if "GantryDetectorSlew" in self._dataset: + return self._dataset.GantryDetectorSlew + return None + + @GantryDetectorSlew.setter + def GantryDetectorSlew(self, value: Optional[Decimal]): + if value is None: + if "GantryDetectorSlew" in self._dataset: + del self._dataset.GantryDetectorSlew + else: + self._dataset.GantryDetectorSlew = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def CollimatorGridName(self) -> Optional[str]: + if "CollimatorGridName" in self._dataset: + return self._dataset.CollimatorGridName + return None + + @CollimatorGridName.setter + def CollimatorGridName(self, value: Optional[str]): + if value is None: + if "CollimatorGridName" in self._dataset: + del self._dataset.CollimatorGridName + else: + self._dataset.CollimatorGridName = value + + @property + def CollimatorType(self) -> Optional[str]: + if "CollimatorType" in self._dataset: + return self._dataset.CollimatorType + return None + + @CollimatorType.setter + def CollimatorType(self, value: Optional[str]): + if value is None: + if "CollimatorType" in self._dataset: + del self._dataset.CollimatorType + else: + self._dataset.CollimatorType = value + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def CorrectedImage(self) -> Optional[List[str]]: + if "CorrectedImage" in self._dataset: + return self._dataset.CorrectedImage + return None + + @CorrectedImage.setter + def CorrectedImage(self, value: Optional[List[str]]): + if value is None: + if "CorrectedImage" in self._dataset: + del self._dataset.CorrectedImage + else: + self._dataset.CorrectedImage = value + + @property + def EnergyWindowRangeSequence(self) -> Optional[List[EnergyWindowRangeSequenceItem]]: + if "EnergyWindowRangeSequence" in self._dataset: + if len(self._EnergyWindowRangeSequence) == len(self._dataset.EnergyWindowRangeSequence): + return self._EnergyWindowRangeSequence + else: + return [EnergyWindowRangeSequenceItem(x) for x in self._dataset.EnergyWindowRangeSequence] + return None + + @EnergyWindowRangeSequence.setter + def EnergyWindowRangeSequence(self, value: Optional[List[EnergyWindowRangeSequenceItem]]): + if value is None: + self._EnergyWindowRangeSequence = [] + if "EnergyWindowRangeSequence" in self._dataset: + del self._dataset.EnergyWindowRangeSequence + elif not isinstance(value, list) or not all(isinstance(item, EnergyWindowRangeSequenceItem) for item in value): + raise ValueError("EnergyWindowRangeSequence must be a list of EnergyWindowRangeSequenceItem objects") + else: + self._EnergyWindowRangeSequence = value + if "EnergyWindowRangeSequence" not in self._dataset: + self._dataset.EnergyWindowRangeSequence = pydicom.Sequence() + self._dataset.EnergyWindowRangeSequence.clear() + self._dataset.EnergyWindowRangeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyWindowRange(self, item: EnergyWindowRangeSequenceItem): + if not isinstance(item, EnergyWindowRangeSequenceItem): + raise ValueError("Item must be an instance of EnergyWindowRangeSequenceItem") + self._EnergyWindowRangeSequence.append(item) + if "EnergyWindowRangeSequence" not in self._dataset: + self._dataset.EnergyWindowRangeSequence = pydicom.Sequence() + self._dataset.EnergyWindowRangeSequence.append(item.to_dataset()) + + @property + def NumberOfRRIntervals(self) -> Optional[int]: + if "NumberOfRRIntervals" in self._dataset: + return self._dataset.NumberOfRRIntervals + return None + + @NumberOfRRIntervals.setter + def NumberOfRRIntervals(self, value: Optional[int]): + if value is None: + if "NumberOfRRIntervals" in self._dataset: + del self._dataset.NumberOfRRIntervals + else: + self._dataset.NumberOfRRIntervals = value + + @property + def NumberOfTimeSlots(self) -> Optional[int]: + if "NumberOfTimeSlots" in self._dataset: + return self._dataset.NumberOfTimeSlots + return None + + @NumberOfTimeSlots.setter + def NumberOfTimeSlots(self, value: Optional[int]): + if value is None: + if "NumberOfTimeSlots" in self._dataset: + del self._dataset.NumberOfTimeSlots + else: + self._dataset.NumberOfTimeSlots = value + + @property + def NumberOfSlices(self) -> Optional[int]: + if "NumberOfSlices" in self._dataset: + return self._dataset.NumberOfSlices + return None + + @NumberOfSlices.setter + def NumberOfSlices(self, value: Optional[int]): + if value is None: + if "NumberOfSlices" in self._dataset: + del self._dataset.NumberOfSlices + else: + self._dataset.NumberOfSlices = value + + @property + def NumberOfTimeSlices(self) -> Optional[int]: + if "NumberOfTimeSlices" in self._dataset: + return self._dataset.NumberOfTimeSlices + return None + + @NumberOfTimeSlices.setter + def NumberOfTimeSlices(self, value: Optional[int]): + if value is None: + if "NumberOfTimeSlices" in self._dataset: + del self._dataset.NumberOfTimeSlices + else: + self._dataset.NumberOfTimeSlices = value + + @property + def TypeOfDetectorMotion(self) -> Optional[str]: + if "TypeOfDetectorMotion" in self._dataset: + return self._dataset.TypeOfDetectorMotion + return None + + @TypeOfDetectorMotion.setter + def TypeOfDetectorMotion(self, value: Optional[str]): + if value is None: + if "TypeOfDetectorMotion" in self._dataset: + del self._dataset.TypeOfDetectorMotion + else: + self._dataset.TypeOfDetectorMotion = value + + @property + def ScanProgressionDirection(self) -> Optional[str]: + if "ScanProgressionDirection" in self._dataset: + return self._dataset.ScanProgressionDirection + return None + + @ScanProgressionDirection.setter + def ScanProgressionDirection(self, value: Optional[str]): + if value is None: + if "ScanProgressionDirection" in self._dataset: + del self._dataset.ScanProgressionDirection + else: + self._dataset.ScanProgressionDirection = value + + @property + def SeriesType(self) -> Optional[List[str]]: + if "SeriesType" in self._dataset: + return self._dataset.SeriesType + return None + + @SeriesType.setter + def SeriesType(self, value: Optional[List[str]]): + if value is None: + if "SeriesType" in self._dataset: + del self._dataset.SeriesType + else: + self._dataset.SeriesType = value + + @property + def Units(self) -> Optional[str]: + if "Units" in self._dataset: + return self._dataset.Units + return None + + @Units.setter + def Units(self, value: Optional[str]): + if value is None: + if "Units" in self._dataset: + del self._dataset.Units + else: + self._dataset.Units = value + + @property + def CountsSource(self) -> Optional[str]: + if "CountsSource" in self._dataset: + return self._dataset.CountsSource + return None + + @CountsSource.setter + def CountsSource(self, value: Optional[str]): + if value is None: + if "CountsSource" in self._dataset: + del self._dataset.CountsSource + else: + self._dataset.CountsSource = value + + @property + def ReprojectionMethod(self) -> Optional[str]: + if "ReprojectionMethod" in self._dataset: + return self._dataset.ReprojectionMethod + return None + + @ReprojectionMethod.setter + def ReprojectionMethod(self, value: Optional[str]): + if value is None: + if "ReprojectionMethod" in self._dataset: + del self._dataset.ReprojectionMethod + else: + self._dataset.ReprojectionMethod = value + + @property + def SUVType(self) -> Optional[str]: + if "SUVType" in self._dataset: + return self._dataset.SUVType + return None + + @SUVType.setter + def SUVType(self, value: Optional[str]): + if value is None: + if "SUVType" in self._dataset: + del self._dataset.SUVType + else: + self._dataset.SUVType = value + + @property + def RandomsCorrectionMethod(self) -> Optional[str]: + if "RandomsCorrectionMethod" in self._dataset: + return self._dataset.RandomsCorrectionMethod + return None + + @RandomsCorrectionMethod.setter + def RandomsCorrectionMethod(self, value: Optional[str]): + if value is None: + if "RandomsCorrectionMethod" in self._dataset: + del self._dataset.RandomsCorrectionMethod + else: + self._dataset.RandomsCorrectionMethod = value + + @property + def AttenuationCorrectionMethod(self) -> Optional[str]: + if "AttenuationCorrectionMethod" in self._dataset: + return self._dataset.AttenuationCorrectionMethod + return None + + @AttenuationCorrectionMethod.setter + def AttenuationCorrectionMethod(self, value: Optional[str]): + if value is None: + if "AttenuationCorrectionMethod" in self._dataset: + del self._dataset.AttenuationCorrectionMethod + else: + self._dataset.AttenuationCorrectionMethod = value + + @property + def DecayCorrection(self) -> Optional[str]: + if "DecayCorrection" in self._dataset: + return self._dataset.DecayCorrection + return None + + @DecayCorrection.setter + def DecayCorrection(self, value: Optional[str]): + if value is None: + if "DecayCorrection" in self._dataset: + del self._dataset.DecayCorrection + else: + self._dataset.DecayCorrection = value + + @property + def ReconstructionMethod(self) -> Optional[str]: + if "ReconstructionMethod" in self._dataset: + return self._dataset.ReconstructionMethod + return None + + @ReconstructionMethod.setter + def ReconstructionMethod(self, value: Optional[str]): + if value is None: + if "ReconstructionMethod" in self._dataset: + del self._dataset.ReconstructionMethod + else: + self._dataset.ReconstructionMethod = value + + @property + def DetectorLinesOfResponseUsed(self) -> Optional[str]: + if "DetectorLinesOfResponseUsed" in self._dataset: + return self._dataset.DetectorLinesOfResponseUsed + return None + + @DetectorLinesOfResponseUsed.setter + def DetectorLinesOfResponseUsed(self, value: Optional[str]): + if value is None: + if "DetectorLinesOfResponseUsed" in self._dataset: + del self._dataset.DetectorLinesOfResponseUsed + else: + self._dataset.DetectorLinesOfResponseUsed = value + + @property + def ScatterCorrectionMethod(self) -> Optional[str]: + if "ScatterCorrectionMethod" in self._dataset: + return self._dataset.ScatterCorrectionMethod + return None + + @ScatterCorrectionMethod.setter + def ScatterCorrectionMethod(self, value: Optional[str]): + if value is None: + if "ScatterCorrectionMethod" in self._dataset: + del self._dataset.ScatterCorrectionMethod + else: + self._dataset.ScatterCorrectionMethod = value + + @property + def AxialAcceptance(self) -> Optional[Decimal]: + if "AxialAcceptance" in self._dataset: + return self._dataset.AxialAcceptance + return None + + @AxialAcceptance.setter + def AxialAcceptance(self, value: Optional[Decimal]): + if value is None: + if "AxialAcceptance" in self._dataset: + del self._dataset.AxialAcceptance + else: + self._dataset.AxialAcceptance = value + + @property + def AxialMash(self) -> Optional[List[int]]: + if "AxialMash" in self._dataset: + return self._dataset.AxialMash + return None + + @AxialMash.setter + def AxialMash(self, value: Optional[List[int]]): + if value is None: + if "AxialMash" in self._dataset: + del self._dataset.AxialMash + else: + self._dataset.AxialMash = value + + @property + def TransverseMash(self) -> Optional[int]: + if "TransverseMash" in self._dataset: + return self._dataset.TransverseMash + return None + + @TransverseMash.setter + def TransverseMash(self, value: Optional[int]): + if value is None: + if "TransverseMash" in self._dataset: + del self._dataset.TransverseMash + else: + self._dataset.TransverseMash = value + + @property + def DetectorElementSize(self) -> Optional[List[Decimal]]: + if "DetectorElementSize" in self._dataset: + return self._dataset.DetectorElementSize + return None + + @DetectorElementSize.setter + def DetectorElementSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSize" in self._dataset: + del self._dataset.DetectorElementSize + else: + self._dataset.DetectorElementSize = value + + @property + def CoincidenceWindowWidth(self) -> Optional[Decimal]: + if "CoincidenceWindowWidth" in self._dataset: + return self._dataset.CoincidenceWindowWidth + return None + + @CoincidenceWindowWidth.setter + def CoincidenceWindowWidth(self, value: Optional[Decimal]): + if value is None: + if "CoincidenceWindowWidth" in self._dataset: + del self._dataset.CoincidenceWindowWidth + else: + self._dataset.CoincidenceWindowWidth = value + + @property + def SecondaryCountsType(self) -> Optional[List[str]]: + if "SecondaryCountsType" in self._dataset: + return self._dataset.SecondaryCountsType + return None + + @SecondaryCountsType.setter + def SecondaryCountsType(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCountsType" in self._dataset: + del self._dataset.SecondaryCountsType + else: + self._dataset.SecondaryCountsType = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def BeatRejectionFlag(self) -> Optional[str]: + if "BeatRejectionFlag" in self._dataset: + return self._dataset.BeatRejectionFlag + return None + + @BeatRejectionFlag.setter + def BeatRejectionFlag(self, value: Optional[str]): + if value is None: + if "BeatRejectionFlag" in self._dataset: + del self._dataset.BeatRejectionFlag + else: + self._dataset.BeatRejectionFlag = value + + @property + def PVCRejection(self) -> Optional[str]: + if "PVCRejection" in self._dataset: + return self._dataset.PVCRejection + return None + + @PVCRejection.setter + def PVCRejection(self, value: Optional[str]): + if value is None: + if "PVCRejection" in self._dataset: + del self._dataset.PVCRejection + else: + self._dataset.PVCRejection = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def HeartRate(self) -> Optional[int]: + if "HeartRate" in self._dataset: + return self._dataset.HeartRate + return None + + @HeartRate.setter + def HeartRate(self, value: Optional[int]): + if value is None: + if "HeartRate" in self._dataset: + del self._dataset.HeartRate + else: + self._dataset.HeartRate = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def SliceLocation(self) -> Optional[Decimal]: + if "SliceLocation" in self._dataset: + return self._dataset.SliceLocation + return None + + @SliceLocation.setter + def SliceLocation(self, value: Optional[Decimal]): + if value is None: + if "SliceLocation" in self._dataset: + del self._dataset.SliceLocation + else: + self._dataset.SliceLocation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def TriggerTime(self) -> Optional[Decimal]: + if "TriggerTime" in self._dataset: + return self._dataset.TriggerTime + return None + + @TriggerTime.setter + def TriggerTime(self, value: Optional[Decimal]): + if value is None: + if "TriggerTime" in self._dataset: + del self._dataset.TriggerTime + else: + self._dataset.TriggerTime = value + + @property + def NominalInterval(self) -> Optional[int]: + if "NominalInterval" in self._dataset: + return self._dataset.NominalInterval + return None + + @NominalInterval.setter + def NominalInterval(self, value: Optional[int]): + if value is None: + if "NominalInterval" in self._dataset: + del self._dataset.NominalInterval + else: + self._dataset.NominalInterval = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def FrameReferenceTime(self) -> Optional[Decimal]: + if "FrameReferenceTime" in self._dataset: + return self._dataset.FrameReferenceTime + return None + + @FrameReferenceTime.setter + def FrameReferenceTime(self, value: Optional[Decimal]): + if value is None: + if "FrameReferenceTime" in self._dataset: + del self._dataset.FrameReferenceTime + else: + self._dataset.FrameReferenceTime = value + + @property + def PrimaryPromptsCountsAccumulated(self) -> Optional[int]: + if "PrimaryPromptsCountsAccumulated" in self._dataset: + return self._dataset.PrimaryPromptsCountsAccumulated + return None + + @PrimaryPromptsCountsAccumulated.setter + def PrimaryPromptsCountsAccumulated(self, value: Optional[int]): + if value is None: + if "PrimaryPromptsCountsAccumulated" in self._dataset: + del self._dataset.PrimaryPromptsCountsAccumulated + else: + self._dataset.PrimaryPromptsCountsAccumulated = value + + @property + def SecondaryCountsAccumulated(self) -> Optional[List[int]]: + if "SecondaryCountsAccumulated" in self._dataset: + return self._dataset.SecondaryCountsAccumulated + return None + + @SecondaryCountsAccumulated.setter + def SecondaryCountsAccumulated(self, value: Optional[List[int]]): + if value is None: + if "SecondaryCountsAccumulated" in self._dataset: + del self._dataset.SecondaryCountsAccumulated + else: + self._dataset.SecondaryCountsAccumulated = value + + @property + def SliceSensitivityFactor(self) -> Optional[Decimal]: + if "SliceSensitivityFactor" in self._dataset: + return self._dataset.SliceSensitivityFactor + return None + + @SliceSensitivityFactor.setter + def SliceSensitivityFactor(self, value: Optional[Decimal]): + if value is None: + if "SliceSensitivityFactor" in self._dataset: + del self._dataset.SliceSensitivityFactor + else: + self._dataset.SliceSensitivityFactor = value + + @property + def DecayFactor(self) -> Optional[Decimal]: + if "DecayFactor" in self._dataset: + return self._dataset.DecayFactor + return None + + @DecayFactor.setter + def DecayFactor(self, value: Optional[Decimal]): + if value is None: + if "DecayFactor" in self._dataset: + del self._dataset.DecayFactor + else: + self._dataset.DecayFactor = value + + @property + def DoseCalibrationFactor(self) -> Optional[Decimal]: + if "DoseCalibrationFactor" in self._dataset: + return self._dataset.DoseCalibrationFactor + return None + + @DoseCalibrationFactor.setter + def DoseCalibrationFactor(self, value: Optional[Decimal]): + if value is None: + if "DoseCalibrationFactor" in self._dataset: + del self._dataset.DoseCalibrationFactor + else: + self._dataset.DoseCalibrationFactor = value + + @property + def ScatterFractionFactor(self) -> Optional[Decimal]: + if "ScatterFractionFactor" in self._dataset: + return self._dataset.ScatterFractionFactor + return None + + @ScatterFractionFactor.setter + def ScatterFractionFactor(self, value: Optional[Decimal]): + if value is None: + if "ScatterFractionFactor" in self._dataset: + del self._dataset.ScatterFractionFactor + else: + self._dataset.ScatterFractionFactor = value + + @property + def DeadTimeFactor(self) -> Optional[Decimal]: + if "DeadTimeFactor" in self._dataset: + return self._dataset.DeadTimeFactor + return None + + @DeadTimeFactor.setter + def DeadTimeFactor(self, value: Optional[Decimal]): + if value is None: + if "DeadTimeFactor" in self._dataset: + del self._dataset.DeadTimeFactor + else: + self._dataset.DeadTimeFactor = value + + @property + def ImageIndex(self) -> Optional[int]: + if "ImageIndex" in self._dataset: + return self._dataset.ImageIndex + return None + + @ImageIndex.setter + def ImageIndex(self, value: Optional[int]): + if value is None: + if "ImageIndex" in self._dataset: + del self._dataset.ImageIndex + else: + self._dataset.ImageIndex = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/post_deformation_matrix_registration_sequence_item.py b/tdwii_plus_examples/domain_model/post_deformation_matrix_registration_sequence_item.py new file mode 100644 index 0000000..5d92b80 --- /dev/null +++ b/tdwii_plus_examples/domain_model/post_deformation_matrix_registration_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PostDeformationMatrixRegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameOfReferenceTransformationMatrixType(self) -> Optional[str]: + if "FrameOfReferenceTransformationMatrixType" in self._dataset: + return self._dataset.FrameOfReferenceTransformationMatrixType + return None + + @FrameOfReferenceTransformationMatrixType.setter + def FrameOfReferenceTransformationMatrixType(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationMatrixType" in self._dataset: + del self._dataset.FrameOfReferenceTransformationMatrixType + else: + self._dataset.FrameOfReferenceTransformationMatrixType = value + + @property + def FrameOfReferenceTransformationMatrix(self) -> Optional[List[Decimal]]: + if "FrameOfReferenceTransformationMatrix" in self._dataset: + return self._dataset.FrameOfReferenceTransformationMatrix + return None + + @FrameOfReferenceTransformationMatrix.setter + def FrameOfReferenceTransformationMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameOfReferenceTransformationMatrix" in self._dataset: + del self._dataset.FrameOfReferenceTransformationMatrix + else: + self._dataset.FrameOfReferenceTransformationMatrix = value diff --git a/tdwii_plus_examples/domain_model/pre_deformation_matrix_registration_sequence_item.py b/tdwii_plus_examples/domain_model/pre_deformation_matrix_registration_sequence_item.py new file mode 100644 index 0000000..cce8906 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pre_deformation_matrix_registration_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class PreDeformationMatrixRegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameOfReferenceTransformationMatrixType(self) -> Optional[str]: + if "FrameOfReferenceTransformationMatrixType" in self._dataset: + return self._dataset.FrameOfReferenceTransformationMatrixType + return None + + @FrameOfReferenceTransformationMatrixType.setter + def FrameOfReferenceTransformationMatrixType(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationMatrixType" in self._dataset: + del self._dataset.FrameOfReferenceTransformationMatrixType + else: + self._dataset.FrameOfReferenceTransformationMatrixType = value + + @property + def FrameOfReferenceTransformationMatrix(self) -> Optional[List[Decimal]]: + if "FrameOfReferenceTransformationMatrix" in self._dataset: + return self._dataset.FrameOfReferenceTransformationMatrix + return None + + @FrameOfReferenceTransformationMatrix.setter + def FrameOfReferenceTransformationMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameOfReferenceTransformationMatrix" in self._dataset: + del self._dataset.FrameOfReferenceTransformationMatrix + else: + self._dataset.FrameOfReferenceTransformationMatrix = value diff --git a/tdwii_plus_examples/domain_model/predecessor_documents_sequence_item.py b/tdwii_plus_examples/domain_model/predecessor_documents_sequence_item.py new file mode 100644 index 0000000..7ecfcb0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/predecessor_documents_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class PredecessorDocumentsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/predecessor_protocol_sequence_item.py b/tdwii_plus_examples/domain_model/predecessor_protocol_sequence_item.py new file mode 100644 index 0000000..453b231 --- /dev/null +++ b/tdwii_plus_examples/domain_model/predecessor_protocol_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PredecessorProtocolSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/predecessor_structure_set_sequence_item.py b/tdwii_plus_examples/domain_model/predecessor_structure_set_sequence_item.py new file mode 100644 index 0000000..3376944 --- /dev/null +++ b/tdwii_plus_examples/domain_model/predecessor_structure_set_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PredecessorStructureSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/predicted_toric_error_sequence_item.py b/tdwii_plus_examples/domain_model/predicted_toric_error_sequence_item.py new file mode 100644 index 0000000..9726bd6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/predicted_toric_error_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PredictedToricErrorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value + + @property + def CylinderPower(self) -> Optional[float]: + if "CylinderPower" in self._dataset: + return self._dataset.CylinderPower + return None + + @CylinderPower.setter + def CylinderPower(self, value: Optional[float]): + if value is None: + if "CylinderPower" in self._dataset: + del self._dataset.CylinderPower + else: + self._dataset.CylinderPower = value diff --git a/tdwii_plus_examples/domain_model/prescription_notes_sequence_item.py b/tdwii_plus_examples/domain_model/prescription_notes_sequence_item.py new file mode 100644 index 0000000..2da1f59 --- /dev/null +++ b/tdwii_plus_examples/domain_model/prescription_notes_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class PrescriptionNotesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/prescription_overview_sequence_item.py b/tdwii_plus_examples/domain_model/prescription_overview_sequence_item.py new file mode 100644 index 0000000..71a867e --- /dev/null +++ b/tdwii_plus_examples/domain_model/prescription_overview_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PrescriptionOverviewSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def TotalPrescriptionDose(self) -> Optional[float]: + if "TotalPrescriptionDose" in self._dataset: + return self._dataset.TotalPrescriptionDose + return None + + @TotalPrescriptionDose.setter + def TotalPrescriptionDose(self, value: Optional[float]): + if value is None: + if "TotalPrescriptionDose" in self._dataset: + del self._dataset.TotalPrescriptionDose + else: + self._dataset.TotalPrescriptionDose = value + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value diff --git a/tdwii_plus_examples/domain_model/presentation_lut_sequence_item.py b/tdwii_plus_examples/domain_model/presentation_lut_sequence_item.py new file mode 100644 index 0000000..d5f02d7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/presentation_lut_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PresentationLUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LUTDescriptor(self) -> Optional[List[int]]: + if "LUTDescriptor" in self._dataset: + return self._dataset.LUTDescriptor + return None + + @LUTDescriptor.setter + def LUTDescriptor(self, value: Optional[List[int]]): + if value is None: + if "LUTDescriptor" in self._dataset: + del self._dataset.LUTDescriptor + else: + self._dataset.LUTDescriptor = value + + @property + def LUTExplanation(self) -> Optional[str]: + if "LUTExplanation" in self._dataset: + return self._dataset.LUTExplanation + return None + + @LUTExplanation.setter + def LUTExplanation(self, value: Optional[str]): + if value is None: + if "LUTExplanation" in self._dataset: + del self._dataset.LUTExplanation + else: + self._dataset.LUTExplanation = value + + @property + def LUTData(self) -> Optional[List[int | bytes]]: + if "LUTData" in self._dataset: + return self._dataset.LUTData + return None + + @LUTData.setter + def LUTData(self, value: Optional[List[int | bytes]]): + if value is None: + if "LUTData" in self._dataset: + del self._dataset.LUTData + else: + self._dataset.LUTData = value diff --git a/tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item.py b/tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item.py new file mode 100644 index 0000000..de72ca2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item.py @@ -0,0 +1,284 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .component_input_sequence_item import ComponentInputSequenceItem + + +class PresentationStateClassificationComponentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ComponentInputSequence: List[ComponentInputSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def AlphaPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "AlphaPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.AlphaPaletteColorLookupTableDescriptor + return None + + @AlphaPaletteColorLookupTableDescriptor.setter + def AlphaPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "AlphaPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.AlphaPaletteColorLookupTableDescriptor + else: + self._dataset.AlphaPaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def AlphaPaletteColorLookupTableData(self) -> Optional[bytes]: + if "AlphaPaletteColorLookupTableData" in self._dataset: + return self._dataset.AlphaPaletteColorLookupTableData + return None + + @AlphaPaletteColorLookupTableData.setter + def AlphaPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "AlphaPaletteColorLookupTableData" in self._dataset: + del self._dataset.AlphaPaletteColorLookupTableData + else: + self._dataset.AlphaPaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def SegmentedAlphaPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedAlphaPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedAlphaPaletteColorLookupTableData + return None + + @SegmentedAlphaPaletteColorLookupTableData.setter + def SegmentedAlphaPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedAlphaPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedAlphaPaletteColorLookupTableData + else: + self._dataset.SegmentedAlphaPaletteColorLookupTableData = value + + @property + def RGBLUTTransferFunction(self) -> Optional[str]: + if "RGBLUTTransferFunction" in self._dataset: + return self._dataset.RGBLUTTransferFunction + return None + + @RGBLUTTransferFunction.setter + def RGBLUTTransferFunction(self, value: Optional[str]): + if value is None: + if "RGBLUTTransferFunction" in self._dataset: + del self._dataset.RGBLUTTransferFunction + else: + self._dataset.RGBLUTTransferFunction = value + + @property + def AlphaLUTTransferFunction(self) -> Optional[str]: + if "AlphaLUTTransferFunction" in self._dataset: + return self._dataset.AlphaLUTTransferFunction + return None + + @AlphaLUTTransferFunction.setter + def AlphaLUTTransferFunction(self, value: Optional[str]): + if value is None: + if "AlphaLUTTransferFunction" in self._dataset: + del self._dataset.AlphaLUTTransferFunction + else: + self._dataset.AlphaLUTTransferFunction = value + + @property + def ComponentType(self) -> Optional[str]: + if "ComponentType" in self._dataset: + return self._dataset.ComponentType + return None + + @ComponentType.setter + def ComponentType(self, value: Optional[str]): + if value is None: + if "ComponentType" in self._dataset: + del self._dataset.ComponentType + else: + self._dataset.ComponentType = value + + @property + def ComponentInputSequence(self) -> Optional[List[ComponentInputSequenceItem]]: + if "ComponentInputSequence" in self._dataset: + if len(self._ComponentInputSequence) == len(self._dataset.ComponentInputSequence): + return self._ComponentInputSequence + else: + return [ComponentInputSequenceItem(x) for x in self._dataset.ComponentInputSequence] + return None + + @ComponentInputSequence.setter + def ComponentInputSequence(self, value: Optional[List[ComponentInputSequenceItem]]): + if value is None: + self._ComponentInputSequence = [] + if "ComponentInputSequence" in self._dataset: + del self._dataset.ComponentInputSequence + elif not isinstance(value, list) or not all(isinstance(item, ComponentInputSequenceItem) for item in value): + raise ValueError("ComponentInputSequence must be a list of ComponentInputSequenceItem objects") + else: + self._ComponentInputSequence = value + if "ComponentInputSequence" not in self._dataset: + self._dataset.ComponentInputSequence = pydicom.Sequence() + self._dataset.ComponentInputSequence.clear() + self._dataset.ComponentInputSequence.extend([item.to_dataset() for item in value]) + + def add_ComponentInput(self, item: ComponentInputSequenceItem): + if not isinstance(item, ComponentInputSequenceItem): + raise ValueError("Item must be an instance of ComponentInputSequenceItem") + self._ComponentInputSequence.append(item) + if "ComponentInputSequence" not in self._dataset: + self._dataset.ComponentInputSequence = pydicom.Sequence() + self._dataset.ComponentInputSequence.append(item.to_dataset()) + + @property + def RGBATransferFunctionDescription(self) -> Optional[str]: + if "RGBATransferFunctionDescription" in self._dataset: + return self._dataset.RGBATransferFunctionDescription + return None + + @RGBATransferFunctionDescription.setter + def RGBATransferFunctionDescription(self, value: Optional[str]): + if value is None: + if "RGBATransferFunctionDescription" in self._dataset: + del self._dataset.RGBATransferFunctionDescription + else: + self._dataset.RGBATransferFunctionDescription = value diff --git a/tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item_1.py b/tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item_1.py new file mode 100644 index 0000000..69daf99 --- /dev/null +++ b/tdwii_plus_examples/domain_model/presentation_state_classification_component_sequence_item_1.py @@ -0,0 +1,270 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .component_input_sequence_item import ComponentInputSequenceItem + + +class PresentationStateClassificationComponentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ComponentInputSequence: List[ComponentInputSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def AlphaPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "AlphaPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.AlphaPaletteColorLookupTableDescriptor + return None + + @AlphaPaletteColorLookupTableDescriptor.setter + def AlphaPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "AlphaPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.AlphaPaletteColorLookupTableDescriptor + else: + self._dataset.AlphaPaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def AlphaPaletteColorLookupTableData(self) -> Optional[bytes]: + if "AlphaPaletteColorLookupTableData" in self._dataset: + return self._dataset.AlphaPaletteColorLookupTableData + return None + + @AlphaPaletteColorLookupTableData.setter + def AlphaPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "AlphaPaletteColorLookupTableData" in self._dataset: + del self._dataset.AlphaPaletteColorLookupTableData + else: + self._dataset.AlphaPaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def SegmentedAlphaPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedAlphaPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedAlphaPaletteColorLookupTableData + return None + + @SegmentedAlphaPaletteColorLookupTableData.setter + def SegmentedAlphaPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedAlphaPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedAlphaPaletteColorLookupTableData + else: + self._dataset.SegmentedAlphaPaletteColorLookupTableData = value + + @property + def RGBLUTTransferFunction(self) -> Optional[str]: + if "RGBLUTTransferFunction" in self._dataset: + return self._dataset.RGBLUTTransferFunction + return None + + @RGBLUTTransferFunction.setter + def RGBLUTTransferFunction(self, value: Optional[str]): + if value is None: + if "RGBLUTTransferFunction" in self._dataset: + del self._dataset.RGBLUTTransferFunction + else: + self._dataset.RGBLUTTransferFunction = value + + @property + def AlphaLUTTransferFunction(self) -> Optional[str]: + if "AlphaLUTTransferFunction" in self._dataset: + return self._dataset.AlphaLUTTransferFunction + return None + + @AlphaLUTTransferFunction.setter + def AlphaLUTTransferFunction(self, value: Optional[str]): + if value is None: + if "AlphaLUTTransferFunction" in self._dataset: + del self._dataset.AlphaLUTTransferFunction + else: + self._dataset.AlphaLUTTransferFunction = value + + @property + def ComponentType(self) -> Optional[str]: + if "ComponentType" in self._dataset: + return self._dataset.ComponentType + return None + + @ComponentType.setter + def ComponentType(self, value: Optional[str]): + if value is None: + if "ComponentType" in self._dataset: + del self._dataset.ComponentType + else: + self._dataset.ComponentType = value + + @property + def ComponentInputSequence(self) -> Optional[List[ComponentInputSequenceItem]]: + if "ComponentInputSequence" in self._dataset: + if len(self._ComponentInputSequence) == len(self._dataset.ComponentInputSequence): + return self._ComponentInputSequence + else: + return [ComponentInputSequenceItem(x) for x in self._dataset.ComponentInputSequence] + return None + + @ComponentInputSequence.setter + def ComponentInputSequence(self, value: Optional[List[ComponentInputSequenceItem]]): + if value is None: + self._ComponentInputSequence = [] + if "ComponentInputSequence" in self._dataset: + del self._dataset.ComponentInputSequence + elif not isinstance(value, list) or not all(isinstance(item, ComponentInputSequenceItem) for item in value): + raise ValueError("ComponentInputSequence must be a list of ComponentInputSequenceItem objects") + else: + self._ComponentInputSequence = value + if "ComponentInputSequence" not in self._dataset: + self._dataset.ComponentInputSequence = pydicom.Sequence() + self._dataset.ComponentInputSequence.clear() + self._dataset.ComponentInputSequence.extend([item.to_dataset() for item in value]) + + def add_ComponentInput(self, item: ComponentInputSequenceItem): + if not isinstance(item, ComponentInputSequenceItem): + raise ValueError("Item must be an instance of ComponentInputSequenceItem") + self._ComponentInputSequence.append(item) + if "ComponentInputSequence" not in self._dataset: + self._dataset.ComponentInputSequence = pydicom.Sequence() + self._dataset.ComponentInputSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/presentation_state_compositor_component_sequence_item.py b/tdwii_plus_examples/domain_model/presentation_state_compositor_component_sequence_item.py new file mode 100644 index 0000000..e38ffe1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/presentation_state_compositor_component_sequence_item.py @@ -0,0 +1,50 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .weighting_transfer_function_sequence_item import ( + WeightingTransferFunctionSequenceItem, +) + + +class PresentationStateCompositorComponentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._WeightingTransferFunctionSequence: List[WeightingTransferFunctionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WeightingTransferFunctionSequence(self) -> Optional[List[WeightingTransferFunctionSequenceItem]]: + if "WeightingTransferFunctionSequence" in self._dataset: + if len(self._WeightingTransferFunctionSequence) == len(self._dataset.WeightingTransferFunctionSequence): + return self._WeightingTransferFunctionSequence + else: + return [WeightingTransferFunctionSequenceItem(x) for x in self._dataset.WeightingTransferFunctionSequence] + return None + + @WeightingTransferFunctionSequence.setter + def WeightingTransferFunctionSequence(self, value: Optional[List[WeightingTransferFunctionSequenceItem]]): + if value is None: + self._WeightingTransferFunctionSequence = [] + if "WeightingTransferFunctionSequence" in self._dataset: + del self._dataset.WeightingTransferFunctionSequence + elif not isinstance(value, list) or not all(isinstance(item, WeightingTransferFunctionSequenceItem) for item in value): + raise ValueError( + "WeightingTransferFunctionSequence must be a list of WeightingTransferFunctionSequenceItem objects" + ) + else: + self._WeightingTransferFunctionSequence = value + if "WeightingTransferFunctionSequence" not in self._dataset: + self._dataset.WeightingTransferFunctionSequence = pydicom.Sequence() + self._dataset.WeightingTransferFunctionSequence.clear() + self._dataset.WeightingTransferFunctionSequence.extend([item.to_dataset() for item in value]) + + def add_WeightingTransferFunction(self, item: WeightingTransferFunctionSequenceItem): + if not isinstance(item, WeightingTransferFunctionSequenceItem): + raise ValueError("Item must be an instance of WeightingTransferFunctionSequenceItem") + self._WeightingTransferFunctionSequence.append(item) + if "WeightingTransferFunctionSequence" not in self._dataset: + self._dataset.WeightingTransferFunctionSequence = pydicom.Sequence() + self._dataset.WeightingTransferFunctionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/primary_anatomic_structure_modifier_sequence_item.py b/tdwii_plus_examples/domain_model/primary_anatomic_structure_modifier_sequence_item.py new file mode 100644 index 0000000..d9ee303 --- /dev/null +++ b/tdwii_plus_examples/domain_model/primary_anatomic_structure_modifier_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PrimaryAnatomicStructureModifierSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item.py b/tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item.py new file mode 100644 index 0000000..4728165 --- /dev/null +++ b/tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item.py @@ -0,0 +1,302 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .primary_anatomic_structure_modifier_sequence_item import ( + PrimaryAnatomicStructureModifierSequenceItem, +) + + +class PrimaryAnatomicStructureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + self._PrimaryAnatomicStructureModifierSequence: List[PrimaryAnatomicStructureModifierSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value + + @property + def PrimaryAnatomicStructureModifierSequence(self) -> Optional[List[PrimaryAnatomicStructureModifierSequenceItem]]: + if "PrimaryAnatomicStructureModifierSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureModifierSequence) == len( + self._dataset.PrimaryAnatomicStructureModifierSequence + ): + return self._PrimaryAnatomicStructureModifierSequence + else: + return [ + PrimaryAnatomicStructureModifierSequenceItem(x) + for x in self._dataset.PrimaryAnatomicStructureModifierSequence + ] + return None + + @PrimaryAnatomicStructureModifierSequence.setter + def PrimaryAnatomicStructureModifierSequence(self, value: Optional[List[PrimaryAnatomicStructureModifierSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureModifierSequence = [] + if "PrimaryAnatomicStructureModifierSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureModifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrimaryAnatomicStructureModifierSequenceItem) for item in value + ): + raise ValueError( + "PrimaryAnatomicStructureModifierSequence must be a list of PrimaryAnatomicStructureModifierSequenceItem" + " objects" + ) + else: + self._PrimaryAnatomicStructureModifierSequence = value + if "PrimaryAnatomicStructureModifierSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureModifierSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureModifierSequence.clear() + self._dataset.PrimaryAnatomicStructureModifierSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructureModifier(self, item: PrimaryAnatomicStructureModifierSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureModifierSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureModifierSequenceItem") + self._PrimaryAnatomicStructureModifierSequence.append(item) + if "PrimaryAnatomicStructureModifierSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureModifierSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureModifierSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item_55.py b/tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item_55.py new file mode 100644 index 0000000..af05ca5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/primary_anatomic_structure_sequence_item_55.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class PrimaryAnatomicStructureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/primary_fluence_mode_sequence_item.py b/tdwii_plus_examples/domain_model/primary_fluence_mode_sequence_item.py new file mode 100644 index 0000000..16b949f --- /dev/null +++ b/tdwii_plus_examples/domain_model/primary_fluence_mode_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PrimaryFluenceModeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FluenceMode(self) -> Optional[str]: + if "FluenceMode" in self._dataset: + return self._dataset.FluenceMode + return None + + @FluenceMode.setter + def FluenceMode(self, value: Optional[str]): + if value is None: + if "FluenceMode" in self._dataset: + del self._dataset.FluenceMode + else: + self._dataset.FluenceMode = value + + @property + def FluenceModeID(self) -> Optional[str]: + if "FluenceModeID" in self._dataset: + return self._dataset.FluenceModeID + return None + + @FluenceModeID.setter + def FluenceModeID(self, value: Optional[str]): + if value is None: + if "FluenceModeID" in self._dataset: + del self._dataset.FluenceModeID + else: + self._dataset.FluenceModeID = value diff --git a/tdwii_plus_examples/domain_model/prior_treatment_reference_sequence_item.py b/tdwii_plus_examples/domain_model/prior_treatment_reference_sequence_item.py new file mode 100644 index 0000000..5389c98 --- /dev/null +++ b/tdwii_plus_examples/domain_model/prior_treatment_reference_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PriorTreatmentReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/prism_sequence_item.py b/tdwii_plus_examples/domain_model/prism_sequence_item.py new file mode 100644 index 0000000..4d82d6a --- /dev/null +++ b/tdwii_plus_examples/domain_model/prism_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PrismSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VertexDistance(self) -> Optional[float]: + if "VertexDistance" in self._dataset: + return self._dataset.VertexDistance + return None + + @VertexDistance.setter + def VertexDistance(self, value: Optional[float]): + if value is None: + if "VertexDistance" in self._dataset: + del self._dataset.VertexDistance + else: + self._dataset.VertexDistance = value + + @property + def HorizontalPrismPower(self) -> Optional[float]: + if "HorizontalPrismPower" in self._dataset: + return self._dataset.HorizontalPrismPower + return None + + @HorizontalPrismPower.setter + def HorizontalPrismPower(self, value: Optional[float]): + if value is None: + if "HorizontalPrismPower" in self._dataset: + del self._dataset.HorizontalPrismPower + else: + self._dataset.HorizontalPrismPower = value + + @property + def HorizontalPrismBase(self) -> Optional[str]: + if "HorizontalPrismBase" in self._dataset: + return self._dataset.HorizontalPrismBase + return None + + @HorizontalPrismBase.setter + def HorizontalPrismBase(self, value: Optional[str]): + if value is None: + if "HorizontalPrismBase" in self._dataset: + del self._dataset.HorizontalPrismBase + else: + self._dataset.HorizontalPrismBase = value + + @property + def VerticalPrismPower(self) -> Optional[float]: + if "VerticalPrismPower" in self._dataset: + return self._dataset.VerticalPrismPower + return None + + @VerticalPrismPower.setter + def VerticalPrismPower(self, value: Optional[float]): + if value is None: + if "VerticalPrismPower" in self._dataset: + del self._dataset.VerticalPrismPower + else: + self._dataset.VerticalPrismPower = value + + @property + def VerticalPrismBase(self) -> Optional[str]: + if "VerticalPrismBase" in self._dataset: + return self._dataset.VerticalPrismBase + return None + + @VerticalPrismBase.setter + def VerticalPrismBase(self, value: Optional[str]): + if value is None: + if "VerticalPrismBase" in self._dataset: + del self._dataset.VerticalPrismBase + else: + self._dataset.VerticalPrismBase = value diff --git a/tdwii_plus_examples/domain_model/private_data_element_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/private_data_element_characteristics_sequence_item.py new file mode 100644 index 0000000..97b38cc --- /dev/null +++ b/tdwii_plus_examples/domain_model/private_data_element_characteristics_sequence_item.py @@ -0,0 +1,144 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .deidentification_action_sequence_item import DeidentificationActionSequenceItem +from .private_data_element_definition_sequence_item import ( + PrivateDataElementDefinitionSequenceItem, +) + + +class PrivateDataElementCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeidentificationActionSequence: List[DeidentificationActionSequenceItem] = [] + self._PrivateDataElementDefinitionSequence: List[PrivateDataElementDefinitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PrivateGroupReference(self) -> Optional[int]: + if "PrivateGroupReference" in self._dataset: + return self._dataset.PrivateGroupReference + return None + + @PrivateGroupReference.setter + def PrivateGroupReference(self, value: Optional[int]): + if value is None: + if "PrivateGroupReference" in self._dataset: + del self._dataset.PrivateGroupReference + else: + self._dataset.PrivateGroupReference = value + + @property + def PrivateCreatorReference(self) -> Optional[str]: + if "PrivateCreatorReference" in self._dataset: + return self._dataset.PrivateCreatorReference + return None + + @PrivateCreatorReference.setter + def PrivateCreatorReference(self, value: Optional[str]): + if value is None: + if "PrivateCreatorReference" in self._dataset: + del self._dataset.PrivateCreatorReference + else: + self._dataset.PrivateCreatorReference = value + + @property + def BlockIdentifyingInformationStatus(self) -> Optional[str]: + if "BlockIdentifyingInformationStatus" in self._dataset: + return self._dataset.BlockIdentifyingInformationStatus + return None + + @BlockIdentifyingInformationStatus.setter + def BlockIdentifyingInformationStatus(self, value: Optional[str]): + if value is None: + if "BlockIdentifyingInformationStatus" in self._dataset: + del self._dataset.BlockIdentifyingInformationStatus + else: + self._dataset.BlockIdentifyingInformationStatus = value + + @property + def NonidentifyingPrivateElements(self) -> Optional[List[int]]: + if "NonidentifyingPrivateElements" in self._dataset: + return self._dataset.NonidentifyingPrivateElements + return None + + @NonidentifyingPrivateElements.setter + def NonidentifyingPrivateElements(self, value: Optional[List[int]]): + if value is None: + if "NonidentifyingPrivateElements" in self._dataset: + del self._dataset.NonidentifyingPrivateElements + else: + self._dataset.NonidentifyingPrivateElements = value + + @property + def DeidentificationActionSequence(self) -> Optional[List[DeidentificationActionSequenceItem]]: + if "DeidentificationActionSequence" in self._dataset: + if len(self._DeidentificationActionSequence) == len(self._dataset.DeidentificationActionSequence): + return self._DeidentificationActionSequence + else: + return [DeidentificationActionSequenceItem(x) for x in self._dataset.DeidentificationActionSequence] + return None + + @DeidentificationActionSequence.setter + def DeidentificationActionSequence(self, value: Optional[List[DeidentificationActionSequenceItem]]): + if value is None: + self._DeidentificationActionSequence = [] + if "DeidentificationActionSequence" in self._dataset: + del self._dataset.DeidentificationActionSequence + elif not isinstance(value, list) or not all(isinstance(item, DeidentificationActionSequenceItem) for item in value): + raise ValueError("DeidentificationActionSequence must be a list of DeidentificationActionSequenceItem objects") + else: + self._DeidentificationActionSequence = value + if "DeidentificationActionSequence" not in self._dataset: + self._dataset.DeidentificationActionSequence = pydicom.Sequence() + self._dataset.DeidentificationActionSequence.clear() + self._dataset.DeidentificationActionSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationAction(self, item: DeidentificationActionSequenceItem): + if not isinstance(item, DeidentificationActionSequenceItem): + raise ValueError("Item must be an instance of DeidentificationActionSequenceItem") + self._DeidentificationActionSequence.append(item) + if "DeidentificationActionSequence" not in self._dataset: + self._dataset.DeidentificationActionSequence = pydicom.Sequence() + self._dataset.DeidentificationActionSequence.append(item.to_dataset()) + + @property + def PrivateDataElementDefinitionSequence(self) -> Optional[List[PrivateDataElementDefinitionSequenceItem]]: + if "PrivateDataElementDefinitionSequence" in self._dataset: + if len(self._PrivateDataElementDefinitionSequence) == len(self._dataset.PrivateDataElementDefinitionSequence): + return self._PrivateDataElementDefinitionSequence + else: + return [ + PrivateDataElementDefinitionSequenceItem(x) for x in self._dataset.PrivateDataElementDefinitionSequence + ] + return None + + @PrivateDataElementDefinitionSequence.setter + def PrivateDataElementDefinitionSequence(self, value: Optional[List[PrivateDataElementDefinitionSequenceItem]]): + if value is None: + self._PrivateDataElementDefinitionSequence = [] + if "PrivateDataElementDefinitionSequence" in self._dataset: + del self._dataset.PrivateDataElementDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementDefinitionSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementDefinitionSequence must be a list of PrivateDataElementDefinitionSequenceItem objects" + ) + else: + self._PrivateDataElementDefinitionSequence = value + if "PrivateDataElementDefinitionSequence" not in self._dataset: + self._dataset.PrivateDataElementDefinitionSequence = pydicom.Sequence() + self._dataset.PrivateDataElementDefinitionSequence.clear() + self._dataset.PrivateDataElementDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementDefinition(self, item: PrivateDataElementDefinitionSequenceItem): + if not isinstance(item, PrivateDataElementDefinitionSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementDefinitionSequenceItem") + self._PrivateDataElementDefinitionSequence.append(item) + if "PrivateDataElementDefinitionSequence" not in self._dataset: + self._dataset.PrivateDataElementDefinitionSequence = pydicom.Sequence() + self._dataset.PrivateDataElementDefinitionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/private_data_element_definition_sequence_item.py b/tdwii_plus_examples/domain_model/private_data_element_definition_sequence_item.py new file mode 100644 index 0000000..c808bab --- /dev/null +++ b/tdwii_plus_examples/domain_model/private_data_element_definition_sequence_item.py @@ -0,0 +1,137 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class PrivateDataElementDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PrivateDataElement(self) -> Optional[int]: + if "PrivateDataElement" in self._dataset: + return self._dataset.PrivateDataElement + return None + + @PrivateDataElement.setter + def PrivateDataElement(self, value: Optional[int]): + if value is None: + if "PrivateDataElement" in self._dataset: + del self._dataset.PrivateDataElement + else: + self._dataset.PrivateDataElement = value + + @property + def PrivateDataElementValueMultiplicity(self) -> Optional[List[int]]: + if "PrivateDataElementValueMultiplicity" in self._dataset: + return self._dataset.PrivateDataElementValueMultiplicity + return None + + @PrivateDataElementValueMultiplicity.setter + def PrivateDataElementValueMultiplicity(self, value: Optional[List[int]]): + if value is None: + if "PrivateDataElementValueMultiplicity" in self._dataset: + del self._dataset.PrivateDataElementValueMultiplicity + else: + self._dataset.PrivateDataElementValueMultiplicity = value + + @property + def PrivateDataElementValueRepresentation(self) -> Optional[str]: + if "PrivateDataElementValueRepresentation" in self._dataset: + return self._dataset.PrivateDataElementValueRepresentation + return None + + @PrivateDataElementValueRepresentation.setter + def PrivateDataElementValueRepresentation(self, value: Optional[str]): + if value is None: + if "PrivateDataElementValueRepresentation" in self._dataset: + del self._dataset.PrivateDataElementValueRepresentation + else: + self._dataset.PrivateDataElementValueRepresentation = value + + @property + def PrivateDataElementNumberOfItems(self) -> Optional[List[int]]: + if "PrivateDataElementNumberOfItems" in self._dataset: + return self._dataset.PrivateDataElementNumberOfItems + return None + + @PrivateDataElementNumberOfItems.setter + def PrivateDataElementNumberOfItems(self, value: Optional[List[int]]): + if value is None: + if "PrivateDataElementNumberOfItems" in self._dataset: + del self._dataset.PrivateDataElementNumberOfItems + else: + self._dataset.PrivateDataElementNumberOfItems = value + + @property + def PrivateDataElementName(self) -> Optional[str]: + if "PrivateDataElementName" in self._dataset: + return self._dataset.PrivateDataElementName + return None + + @PrivateDataElementName.setter + def PrivateDataElementName(self, value: Optional[str]): + if value is None: + if "PrivateDataElementName" in self._dataset: + del self._dataset.PrivateDataElementName + else: + self._dataset.PrivateDataElementName = value + + @property + def PrivateDataElementKeyword(self) -> Optional[str]: + if "PrivateDataElementKeyword" in self._dataset: + return self._dataset.PrivateDataElementKeyword + return None + + @PrivateDataElementKeyword.setter + def PrivateDataElementKeyword(self, value: Optional[str]): + if value is None: + if "PrivateDataElementKeyword" in self._dataset: + del self._dataset.PrivateDataElementKeyword + else: + self._dataset.PrivateDataElementKeyword = value + + @property + def PrivateDataElementDescription(self) -> Optional[str]: + if "PrivateDataElementDescription" in self._dataset: + return self._dataset.PrivateDataElementDescription + return None + + @PrivateDataElementDescription.setter + def PrivateDataElementDescription(self, value: Optional[str]): + if value is None: + if "PrivateDataElementDescription" in self._dataset: + del self._dataset.PrivateDataElementDescription + else: + self._dataset.PrivateDataElementDescription = value + + @property + def PrivateDataElementEncoding(self) -> Optional[str]: + if "PrivateDataElementEncoding" in self._dataset: + return self._dataset.PrivateDataElementEncoding + return None + + @PrivateDataElementEncoding.setter + def PrivateDataElementEncoding(self, value: Optional[str]): + if value is None: + if "PrivateDataElementEncoding" in self._dataset: + del self._dataset.PrivateDataElementEncoding + else: + self._dataset.PrivateDataElementEncoding = value + + @property + def RetrieveURI(self) -> Optional[str]: + if "RetrieveURI" in self._dataset: + return self._dataset.RetrieveURI + return None + + @RetrieveURI.setter + def RetrieveURI(self, value: Optional[str]): + if value is None: + if "RetrieveURI" in self._dataset: + del self._dataset.RetrieveURI + else: + self._dataset.RetrieveURI = value diff --git a/tdwii_plus_examples/domain_model/procedure_log.py b/tdwii_plus_examples/domain_model/procedure_log.py new file mode 100644 index 0000000..c4ef589 --- /dev/null +++ b/tdwii_plus_examples/domain_model/procedure_log.py @@ -0,0 +1,4168 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class ProcedureLog: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/projection_imaging_acquisition_parameter_sequence_item.py b/tdwii_plus_examples/domain_model/projection_imaging_acquisition_parameter_sequence_item.py new file mode 100644 index 0000000..06c85fb --- /dev/null +++ b/tdwii_plus_examples/domain_model/projection_imaging_acquisition_parameter_sequence_item.py @@ -0,0 +1,184 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .imaging_aperture_sequence_item import ImagingApertureSequenceItem +from .imaging_device_location_matrix_sequence_item import ( + ImagingDeviceLocationMatrixSequenceItem, +) +from .imaging_device_location_parameter_sequence_item import ( + ImagingDeviceLocationParameterSequenceItem, +) + + +class ProjectionImagingAcquisitionParameterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ImagingDeviceLocationMatrixSequence: List[ImagingDeviceLocationMatrixSequenceItem] = [] + self._ImagingDeviceLocationParameterSequence: List[ImagingDeviceLocationParameterSequenceItem] = [] + self._ImagingApertureSequence: List[ImagingApertureSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagingSourceLocationSpecificationType(self) -> Optional[str]: + if "ImagingSourceLocationSpecificationType" in self._dataset: + return self._dataset.ImagingSourceLocationSpecificationType + return None + + @ImagingSourceLocationSpecificationType.setter + def ImagingSourceLocationSpecificationType(self, value: Optional[str]): + if value is None: + if "ImagingSourceLocationSpecificationType" in self._dataset: + del self._dataset.ImagingSourceLocationSpecificationType + else: + self._dataset.ImagingSourceLocationSpecificationType = value + + @property + def ImagingDeviceLocationMatrixSequence(self) -> Optional[List[ImagingDeviceLocationMatrixSequenceItem]]: + if "ImagingDeviceLocationMatrixSequence" in self._dataset: + if len(self._ImagingDeviceLocationMatrixSequence) == len(self._dataset.ImagingDeviceLocationMatrixSequence): + return self._ImagingDeviceLocationMatrixSequence + else: + return [ImagingDeviceLocationMatrixSequenceItem(x) for x in self._dataset.ImagingDeviceLocationMatrixSequence] + return None + + @ImagingDeviceLocationMatrixSequence.setter + def ImagingDeviceLocationMatrixSequence(self, value: Optional[List[ImagingDeviceLocationMatrixSequenceItem]]): + if value is None: + self._ImagingDeviceLocationMatrixSequence = [] + if "ImagingDeviceLocationMatrixSequence" in self._dataset: + del self._dataset.ImagingDeviceLocationMatrixSequence + elif not isinstance(value, list) or not all( + isinstance(item, ImagingDeviceLocationMatrixSequenceItem) for item in value + ): + raise ValueError( + "ImagingDeviceLocationMatrixSequence must be a list of ImagingDeviceLocationMatrixSequenceItem objects" + ) + else: + self._ImagingDeviceLocationMatrixSequence = value + if "ImagingDeviceLocationMatrixSequence" not in self._dataset: + self._dataset.ImagingDeviceLocationMatrixSequence = pydicom.Sequence() + self._dataset.ImagingDeviceLocationMatrixSequence.clear() + self._dataset.ImagingDeviceLocationMatrixSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingDeviceLocationMatrix(self, item: ImagingDeviceLocationMatrixSequenceItem): + if not isinstance(item, ImagingDeviceLocationMatrixSequenceItem): + raise ValueError("Item must be an instance of ImagingDeviceLocationMatrixSequenceItem") + self._ImagingDeviceLocationMatrixSequence.append(item) + if "ImagingDeviceLocationMatrixSequence" not in self._dataset: + self._dataset.ImagingDeviceLocationMatrixSequence = pydicom.Sequence() + self._dataset.ImagingDeviceLocationMatrixSequence.append(item.to_dataset()) + + @property + def ImagingDeviceLocationParameterSequence(self) -> Optional[List[ImagingDeviceLocationParameterSequenceItem]]: + if "ImagingDeviceLocationParameterSequence" in self._dataset: + if len(self._ImagingDeviceLocationParameterSequence) == len(self._dataset.ImagingDeviceLocationParameterSequence): + return self._ImagingDeviceLocationParameterSequence + else: + return [ + ImagingDeviceLocationParameterSequenceItem(x) for x in self._dataset.ImagingDeviceLocationParameterSequence + ] + return None + + @ImagingDeviceLocationParameterSequence.setter + def ImagingDeviceLocationParameterSequence(self, value: Optional[List[ImagingDeviceLocationParameterSequenceItem]]): + if value is None: + self._ImagingDeviceLocationParameterSequence = [] + if "ImagingDeviceLocationParameterSequence" in self._dataset: + del self._dataset.ImagingDeviceLocationParameterSequence + elif not isinstance(value, list) or not all( + isinstance(item, ImagingDeviceLocationParameterSequenceItem) for item in value + ): + raise ValueError( + "ImagingDeviceLocationParameterSequence must be a list of ImagingDeviceLocationParameterSequenceItem objects" + ) + else: + self._ImagingDeviceLocationParameterSequence = value + if "ImagingDeviceLocationParameterSequence" not in self._dataset: + self._dataset.ImagingDeviceLocationParameterSequence = pydicom.Sequence() + self._dataset.ImagingDeviceLocationParameterSequence.clear() + self._dataset.ImagingDeviceLocationParameterSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingDeviceLocationParameter(self, item: ImagingDeviceLocationParameterSequenceItem): + if not isinstance(item, ImagingDeviceLocationParameterSequenceItem): + raise ValueError("Item must be an instance of ImagingDeviceLocationParameterSequenceItem") + self._ImagingDeviceLocationParameterSequence.append(item) + if "ImagingDeviceLocationParameterSequence" not in self._dataset: + self._dataset.ImagingDeviceLocationParameterSequence = pydicom.Sequence() + self._dataset.ImagingDeviceLocationParameterSequence.append(item.to_dataset()) + + @property + def ImagingApertureSequence(self) -> Optional[List[ImagingApertureSequenceItem]]: + if "ImagingApertureSequence" in self._dataset: + if len(self._ImagingApertureSequence) == len(self._dataset.ImagingApertureSequence): + return self._ImagingApertureSequence + else: + return [ImagingApertureSequenceItem(x) for x in self._dataset.ImagingApertureSequence] + return None + + @ImagingApertureSequence.setter + def ImagingApertureSequence(self, value: Optional[List[ImagingApertureSequenceItem]]): + if value is None: + self._ImagingApertureSequence = [] + if "ImagingApertureSequence" in self._dataset: + del self._dataset.ImagingApertureSequence + elif not isinstance(value, list) or not all(isinstance(item, ImagingApertureSequenceItem) for item in value): + raise ValueError("ImagingApertureSequence must be a list of ImagingApertureSequenceItem objects") + else: + self._ImagingApertureSequence = value + if "ImagingApertureSequence" not in self._dataset: + self._dataset.ImagingApertureSequence = pydicom.Sequence() + self._dataset.ImagingApertureSequence.clear() + self._dataset.ImagingApertureSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingAperture(self, item: ImagingApertureSequenceItem): + if not isinstance(item, ImagingApertureSequenceItem): + raise ValueError("Item must be an instance of ImagingApertureSequenceItem") + self._ImagingApertureSequence.append(item) + if "ImagingApertureSequence" not in self._dataset: + self._dataset.ImagingApertureSequence = pydicom.Sequence() + self._dataset.ImagingApertureSequence.append(item.to_dataset()) + + @property + def ImagingApertureSpecificationType(self) -> Optional[str]: + if "ImagingApertureSpecificationType" in self._dataset: + return self._dataset.ImagingApertureSpecificationType + return None + + @ImagingApertureSpecificationType.setter + def ImagingApertureSpecificationType(self, value: Optional[str]): + if value is None: + if "ImagingApertureSpecificationType" in self._dataset: + del self._dataset.ImagingApertureSpecificationType + else: + self._dataset.ImagingApertureSpecificationType = value + + @property + def ImagingSourceToBeamModifierDefinitionPlaneDistance(self) -> Optional[float]: + if "ImagingSourceToBeamModifierDefinitionPlaneDistance" in self._dataset: + return self._dataset.ImagingSourceToBeamModifierDefinitionPlaneDistance + return None + + @ImagingSourceToBeamModifierDefinitionPlaneDistance.setter + def ImagingSourceToBeamModifierDefinitionPlaneDistance(self, value: Optional[float]): + if value is None: + if "ImagingSourceToBeamModifierDefinitionPlaneDistance" in self._dataset: + del self._dataset.ImagingSourceToBeamModifierDefinitionPlaneDistance + else: + self._dataset.ImagingSourceToBeamModifierDefinitionPlaneDistance = value + + @property + def ReferencedRadiationRTControlPointIndex(self) -> Optional[int]: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + return self._dataset.ReferencedRadiationRTControlPointIndex + return None + + @ReferencedRadiationRTControlPointIndex.setter + def ReferencedRadiationRTControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + del self._dataset.ReferencedRadiationRTControlPointIndex + else: + self._dataset.ReferencedRadiationRTControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/projection_pixel_calibration_sequence_item.py b/tdwii_plus_examples/domain_model/projection_pixel_calibration_sequence_item.py new file mode 100644 index 0000000..bd8c80f --- /dev/null +++ b/tdwii_plus_examples/domain_model/projection_pixel_calibration_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ProjectionPixelCalibrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value + + @property + def DistanceObjectToTableTop(self) -> Optional[float]: + if "DistanceObjectToTableTop" in self._dataset: + return self._dataset.DistanceObjectToTableTop + return None + + @DistanceObjectToTableTop.setter + def DistanceObjectToTableTop(self, value: Optional[float]): + if value is None: + if "DistanceObjectToTableTop" in self._dataset: + del self._dataset.DistanceObjectToTableTop + else: + self._dataset.DistanceObjectToTableTop = value + + @property + def ObjectPixelSpacingInCenterOfBeam(self) -> Optional[List[float]]: + if "ObjectPixelSpacingInCenterOfBeam" in self._dataset: + return self._dataset.ObjectPixelSpacingInCenterOfBeam + return None + + @ObjectPixelSpacingInCenterOfBeam.setter + def ObjectPixelSpacingInCenterOfBeam(self, value: Optional[List[float]]): + if value is None: + if "ObjectPixelSpacingInCenterOfBeam" in self._dataset: + del self._dataset.ObjectPixelSpacingInCenterOfBeam + else: + self._dataset.ObjectPixelSpacingInCenterOfBeam = value + + @property + def BeamAngle(self) -> Optional[float]: + if "BeamAngle" in self._dataset: + return self._dataset.BeamAngle + return None + + @BeamAngle.setter + def BeamAngle(self, value: Optional[float]): + if value is None: + if "BeamAngle" in self._dataset: + del self._dataset.BeamAngle + else: + self._dataset.BeamAngle = value diff --git a/tdwii_plus_examples/domain_model/protocol_context_sequence_item.py b/tdwii_plus_examples/domain_model/protocol_context_sequence_item.py new file mode 100644 index 0000000..05c2f9e --- /dev/null +++ b/tdwii_plus_examples/domain_model/protocol_context_sequence_item.py @@ -0,0 +1,363 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_item_modifier_sequence_item import ContentItemModifierSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class ProtocolContextSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ContentItemModifierSequence: List[ContentItemModifierSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ContentItemModifierSequence(self) -> Optional[List[ContentItemModifierSequenceItem]]: + if "ContentItemModifierSequence" in self._dataset: + if len(self._ContentItemModifierSequence) == len(self._dataset.ContentItemModifierSequence): + return self._ContentItemModifierSequence + else: + return [ContentItemModifierSequenceItem(x) for x in self._dataset.ContentItemModifierSequence] + return None + + @ContentItemModifierSequence.setter + def ContentItemModifierSequence(self, value: Optional[List[ContentItemModifierSequenceItem]]): + if value is None: + self._ContentItemModifierSequence = [] + if "ContentItemModifierSequence" in self._dataset: + del self._dataset.ContentItemModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentItemModifierSequenceItem) for item in value): + raise ValueError("ContentItemModifierSequence must be a list of ContentItemModifierSequenceItem objects") + else: + self._ContentItemModifierSequence = value + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.clear() + self._dataset.ContentItemModifierSequence.extend([item.to_dataset() for item in value]) + + def add_ContentItemModifier(self, item: ContentItemModifierSequenceItem): + if not isinstance(item, ContentItemModifierSequenceItem): + raise ValueError("Item must be an instance of ContentItemModifierSequenceItem") + self._ContentItemModifierSequence.append(item) + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/pseudo_color_softcopy_presentation_state.py b/tdwii_plus_examples/domain_model/pseudo_color_softcopy_presentation_state.py new file mode 100644 index 0000000..14fabcc --- /dev/null +++ b/tdwii_plus_examples/domain_model/pseudo_color_softcopy_presentation_state.py @@ -0,0 +1,5279 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .softcopy_voilut_sequence_item import SoftcopyVOILUTSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class PseudoColorSoftcopyPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._SoftcopyVOILUTSequence: List[SoftcopyVOILUTSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def OverlayActivationLayer(self) -> Optional[str]: + if "OverlayActivationLayer" in self._dataset: + return self._dataset.OverlayActivationLayer + return None + + @OverlayActivationLayer.setter + def OverlayActivationLayer(self, value: Optional[str]): + if value is None: + if "OverlayActivationLayer" in self._dataset: + del self._dataset.OverlayActivationLayer + else: + self._dataset.OverlayActivationLayer = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterOverlayGroup(self) -> Optional[int]: + if "ShutterOverlayGroup" in self._dataset: + return self._dataset.ShutterOverlayGroup + return None + + @ShutterOverlayGroup.setter + def ShutterOverlayGroup(self, value: Optional[int]): + if value is None: + if "ShutterOverlayGroup" in self._dataset: + del self._dataset.ShutterOverlayGroup + else: + self._dataset.ShutterOverlayGroup = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def SoftcopyVOILUTSequence(self) -> Optional[List[SoftcopyVOILUTSequenceItem]]: + if "SoftcopyVOILUTSequence" in self._dataset: + if len(self._SoftcopyVOILUTSequence) == len(self._dataset.SoftcopyVOILUTSequence): + return self._SoftcopyVOILUTSequence + else: + return [SoftcopyVOILUTSequenceItem(x) for x in self._dataset.SoftcopyVOILUTSequence] + return None + + @SoftcopyVOILUTSequence.setter + def SoftcopyVOILUTSequence(self, value: Optional[List[SoftcopyVOILUTSequenceItem]]): + if value is None: + self._SoftcopyVOILUTSequence = [] + if "SoftcopyVOILUTSequence" in self._dataset: + del self._dataset.SoftcopyVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, SoftcopyVOILUTSequenceItem) for item in value): + raise ValueError("SoftcopyVOILUTSequence must be a list of SoftcopyVOILUTSequenceItem objects") + else: + self._SoftcopyVOILUTSequence = value + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.clear() + self._dataset.SoftcopyVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_SoftcopyVOILUT(self, item: SoftcopyVOILUTSequenceItem): + if not isinstance(item, SoftcopyVOILUTSequenceItem): + raise ValueError("Item must be an instance of SoftcopyVOILUTSequenceItem") + self._SoftcopyVOILUTSequence.append(item) + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/pulse_specific_brachy_control_point_delivered_sequence_item.py b/tdwii_plus_examples/domain_model/pulse_specific_brachy_control_point_delivered_sequence_item.py new file mode 100644 index 0000000..ce35db6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/pulse_specific_brachy_control_point_delivered_sequence_item.py @@ -0,0 +1,128 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .brachy_pulse_control_point_delivered_sequence_item import ( + BrachyPulseControlPointDeliveredSequenceItem, +) + + +class PulseSpecificBrachyControlPointDeliveredSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BrachyPulseControlPointDeliveredSequence: List[BrachyPulseControlPointDeliveredSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SafePositionExitDate(self) -> Optional[str]: + if "SafePositionExitDate" in self._dataset: + return self._dataset.SafePositionExitDate + return None + + @SafePositionExitDate.setter + def SafePositionExitDate(self, value: Optional[str]): + if value is None: + if "SafePositionExitDate" in self._dataset: + del self._dataset.SafePositionExitDate + else: + self._dataset.SafePositionExitDate = value + + @property + def SafePositionExitTime(self) -> Optional[str]: + if "SafePositionExitTime" in self._dataset: + return self._dataset.SafePositionExitTime + return None + + @SafePositionExitTime.setter + def SafePositionExitTime(self, value: Optional[str]): + if value is None: + if "SafePositionExitTime" in self._dataset: + del self._dataset.SafePositionExitTime + else: + self._dataset.SafePositionExitTime = value + + @property + def SafePositionReturnDate(self) -> Optional[str]: + if "SafePositionReturnDate" in self._dataset: + return self._dataset.SafePositionReturnDate + return None + + @SafePositionReturnDate.setter + def SafePositionReturnDate(self, value: Optional[str]): + if value is None: + if "SafePositionReturnDate" in self._dataset: + del self._dataset.SafePositionReturnDate + else: + self._dataset.SafePositionReturnDate = value + + @property + def SafePositionReturnTime(self) -> Optional[str]: + if "SafePositionReturnTime" in self._dataset: + return self._dataset.SafePositionReturnTime + return None + + @SafePositionReturnTime.setter + def SafePositionReturnTime(self, value: Optional[str]): + if value is None: + if "SafePositionReturnTime" in self._dataset: + del self._dataset.SafePositionReturnTime + else: + self._dataset.SafePositionReturnTime = value + + @property + def PulseNumber(self) -> Optional[int]: + if "PulseNumber" in self._dataset: + return self._dataset.PulseNumber + return None + + @PulseNumber.setter + def PulseNumber(self, value: Optional[int]): + if value is None: + if "PulseNumber" in self._dataset: + del self._dataset.PulseNumber + else: + self._dataset.PulseNumber = value + + @property + def BrachyPulseControlPointDeliveredSequence(self) -> Optional[List[BrachyPulseControlPointDeliveredSequenceItem]]: + if "BrachyPulseControlPointDeliveredSequence" in self._dataset: + if len(self._BrachyPulseControlPointDeliveredSequence) == len( + self._dataset.BrachyPulseControlPointDeliveredSequence + ): + return self._BrachyPulseControlPointDeliveredSequence + else: + return [ + BrachyPulseControlPointDeliveredSequenceItem(x) + for x in self._dataset.BrachyPulseControlPointDeliveredSequence + ] + return None + + @BrachyPulseControlPointDeliveredSequence.setter + def BrachyPulseControlPointDeliveredSequence(self, value: Optional[List[BrachyPulseControlPointDeliveredSequenceItem]]): + if value is None: + self._BrachyPulseControlPointDeliveredSequence = [] + if "BrachyPulseControlPointDeliveredSequence" in self._dataset: + del self._dataset.BrachyPulseControlPointDeliveredSequence + elif not isinstance(value, list) or not all( + isinstance(item, BrachyPulseControlPointDeliveredSequenceItem) for item in value + ): + raise ValueError( + "BrachyPulseControlPointDeliveredSequence must be a list of BrachyPulseControlPointDeliveredSequenceItem" + " objects" + ) + else: + self._BrachyPulseControlPointDeliveredSequence = value + if "BrachyPulseControlPointDeliveredSequence" not in self._dataset: + self._dataset.BrachyPulseControlPointDeliveredSequence = pydicom.Sequence() + self._dataset.BrachyPulseControlPointDeliveredSequence.clear() + self._dataset.BrachyPulseControlPointDeliveredSequence.extend([item.to_dataset() for item in value]) + + def add_BrachyPulseControlPointDelivered(self, item: BrachyPulseControlPointDeliveredSequenceItem): + if not isinstance(item, BrachyPulseControlPointDeliveredSequenceItem): + raise ValueError("Item must be an instance of BrachyPulseControlPointDeliveredSequenceItem") + self._BrachyPulseControlPointDeliveredSequence.append(item) + if "BrachyPulseControlPointDeliveredSequence" not in self._dataset: + self._dataset.BrachyPulseControlPointDeliveredSequence = pydicom.Sequence() + self._dataset.BrachyPulseControlPointDeliveredSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/quantity_definition_sequence_item.py b/tdwii_plus_examples/domain_model/quantity_definition_sequence_item.py new file mode 100644 index 0000000..491ceef --- /dev/null +++ b/tdwii_plus_examples/domain_model/quantity_definition_sequence_item.py @@ -0,0 +1,363 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_item_modifier_sequence_item import ContentItemModifierSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class QuantityDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ContentItemModifierSequence: List[ContentItemModifierSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ContentItemModifierSequence(self) -> Optional[List[ContentItemModifierSequenceItem]]: + if "ContentItemModifierSequence" in self._dataset: + if len(self._ContentItemModifierSequence) == len(self._dataset.ContentItemModifierSequence): + return self._ContentItemModifierSequence + else: + return [ContentItemModifierSequenceItem(x) for x in self._dataset.ContentItemModifierSequence] + return None + + @ContentItemModifierSequence.setter + def ContentItemModifierSequence(self, value: Optional[List[ContentItemModifierSequenceItem]]): + if value is None: + self._ContentItemModifierSequence = [] + if "ContentItemModifierSequence" in self._dataset: + del self._dataset.ContentItemModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentItemModifierSequenceItem) for item in value): + raise ValueError("ContentItemModifierSequence must be a list of ContentItemModifierSequenceItem objects") + else: + self._ContentItemModifierSequence = value + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.clear() + self._dataset.ContentItemModifierSequence.extend([item.to_dataset() for item in value]) + + def add_ContentItemModifier(self, item: ContentItemModifierSequenceItem): + if not isinstance(item, ContentItemModifierSequenceItem): + raise ValueError("Item must be an instance of ContentItemModifierSequenceItem") + self._ContentItemModifierSequence.append(item) + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/radiation_device_configuration_and_commissioning_key_sequence_item.py b/tdwii_plus_examples/domain_model/radiation_device_configuration_and_commissioning_key_sequence_item.py new file mode 100644 index 0000000..8e4b825 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_device_configuration_and_commissioning_key_sequence_item.py @@ -0,0 +1,329 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class RadiationDeviceConfigurationAndCommissioningKeySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item.py b/tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item.py new file mode 100644 index 0000000..1d93111 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .conceptual_volume_sequence_item import ConceptualVolumeSequenceItem + + +class RadiationDoseIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptualVolumeSequence: List[ConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiationDoseIdentificationIndex(self) -> Optional[int]: + if "RadiationDoseIdentificationIndex" in self._dataset: + return self._dataset.RadiationDoseIdentificationIndex + return None + + @RadiationDoseIdentificationIndex.setter + def RadiationDoseIdentificationIndex(self, value: Optional[int]): + if value is None: + if "RadiationDoseIdentificationIndex" in self._dataset: + del self._dataset.RadiationDoseIdentificationIndex + else: + self._dataset.RadiationDoseIdentificationIndex = value + + @property + def RadiationDoseIdentificationLabel(self) -> Optional[str]: + if "RadiationDoseIdentificationLabel" in self._dataset: + return self._dataset.RadiationDoseIdentificationLabel + return None + + @RadiationDoseIdentificationLabel.setter + def RadiationDoseIdentificationLabel(self, value: Optional[str]): + if value is None: + if "RadiationDoseIdentificationLabel" in self._dataset: + del self._dataset.RadiationDoseIdentificationLabel + else: + self._dataset.RadiationDoseIdentificationLabel = value + + @property + def ReferenceDoseType(self) -> Optional[str]: + if "ReferenceDoseType" in self._dataset: + return self._dataset.ReferenceDoseType + return None + + @ReferenceDoseType.setter + def ReferenceDoseType(self, value: Optional[str]): + if value is None: + if "ReferenceDoseType" in self._dataset: + del self._dataset.ReferenceDoseType + else: + self._dataset.ReferenceDoseType = value + + @property + def ReferenceDosePointCoordinates(self) -> Optional[List[float]]: + if "ReferenceDosePointCoordinates" in self._dataset: + return self._dataset.ReferenceDosePointCoordinates + return None + + @ReferenceDosePointCoordinates.setter + def ReferenceDosePointCoordinates(self, value: Optional[List[float]]): + if value is None: + if "ReferenceDosePointCoordinates" in self._dataset: + del self._dataset.ReferenceDosePointCoordinates + else: + self._dataset.ReferenceDosePointCoordinates = value + + @property + def ConceptualVolumeSequence(self) -> Optional[List[ConceptualVolumeSequenceItem]]: + if "ConceptualVolumeSequence" in self._dataset: + if len(self._ConceptualVolumeSequence) == len(self._dataset.ConceptualVolumeSequence): + return self._ConceptualVolumeSequence + else: + return [ConceptualVolumeSequenceItem(x) for x in self._dataset.ConceptualVolumeSequence] + return None + + @ConceptualVolumeSequence.setter + def ConceptualVolumeSequence(self, value: Optional[List[ConceptualVolumeSequenceItem]]): + if value is None: + self._ConceptualVolumeSequence = [] + if "ConceptualVolumeSequence" in self._dataset: + del self._dataset.ConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, ConceptualVolumeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeSequence must be a list of ConceptualVolumeSequenceItem objects") + else: + self._ConceptualVolumeSequence = value + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.clear() + self._dataset.ConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolume(self, item: ConceptualVolumeSequenceItem): + if not isinstance(item, ConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSequenceItem") + self._ConceptualVolumeSequence.append(item) + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item_1.py b/tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item_1.py new file mode 100644 index 0000000..38b33b8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dose_identification_sequence_item_1.py @@ -0,0 +1,88 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .conceptual_volume_sequence_item import ConceptualVolumeSequenceItem + + +class RadiationDoseIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptualVolumeSequence: List[ConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiationDoseIdentificationIndex(self) -> Optional[int]: + if "RadiationDoseIdentificationIndex" in self._dataset: + return self._dataset.RadiationDoseIdentificationIndex + return None + + @RadiationDoseIdentificationIndex.setter + def RadiationDoseIdentificationIndex(self, value: Optional[int]): + if value is None: + if "RadiationDoseIdentificationIndex" in self._dataset: + del self._dataset.RadiationDoseIdentificationIndex + else: + self._dataset.RadiationDoseIdentificationIndex = value + + @property + def ReferencedRadiationDoseIdentificationIndex(self) -> Optional[int]: + if "ReferencedRadiationDoseIdentificationIndex" in self._dataset: + return self._dataset.ReferencedRadiationDoseIdentificationIndex + return None + + @ReferencedRadiationDoseIdentificationIndex.setter + def ReferencedRadiationDoseIdentificationIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationDoseIdentificationIndex" in self._dataset: + del self._dataset.ReferencedRadiationDoseIdentificationIndex + else: + self._dataset.ReferencedRadiationDoseIdentificationIndex = value + + @property + def RadiationDoseIdentificationLabel(self) -> Optional[str]: + if "RadiationDoseIdentificationLabel" in self._dataset: + return self._dataset.RadiationDoseIdentificationLabel + return None + + @RadiationDoseIdentificationLabel.setter + def RadiationDoseIdentificationLabel(self, value: Optional[str]): + if value is None: + if "RadiationDoseIdentificationLabel" in self._dataset: + del self._dataset.RadiationDoseIdentificationLabel + else: + self._dataset.RadiationDoseIdentificationLabel = value + + @property + def ConceptualVolumeSequence(self) -> Optional[List[ConceptualVolumeSequenceItem]]: + if "ConceptualVolumeSequence" in self._dataset: + if len(self._ConceptualVolumeSequence) == len(self._dataset.ConceptualVolumeSequence): + return self._ConceptualVolumeSequence + else: + return [ConceptualVolumeSequenceItem(x) for x in self._dataset.ConceptualVolumeSequence] + return None + + @ConceptualVolumeSequence.setter + def ConceptualVolumeSequence(self, value: Optional[List[ConceptualVolumeSequenceItem]]): + if value is None: + self._ConceptualVolumeSequence = [] + if "ConceptualVolumeSequence" in self._dataset: + del self._dataset.ConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, ConceptualVolumeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeSequence must be a list of ConceptualVolumeSequenceItem objects") + else: + self._ConceptualVolumeSequence = value + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.clear() + self._dataset.ConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolume(self, item: ConceptualVolumeSequenceItem): + if not isinstance(item, ConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSequenceItem") + self._ConceptualVolumeSequence.append(item) + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiation_dose_sequence_item.py b/tdwii_plus_examples/domain_model/radiation_dose_sequence_item.py new file mode 100644 index 0000000..ed38056 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dose_sequence_item.py @@ -0,0 +1,133 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .expected_in_vivo_measurement_values_sequence_item import ( + ExpectedInVivoMeasurementValuesSequenceItem, +) +from .radiation_dose_values_parameters_sequence_item import ( + RadiationDoseValuesParametersSequenceItem, +) +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem + + +class RadiationDoseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadiationDoseValuesParametersSequence: List[RadiationDoseValuesParametersSequenceItem] = [] + self._ExpectedInVivoMeasurementValuesSequence: List[ExpectedInVivoMeasurementValuesSequenceItem] = [] + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiationDoseValuesParametersSequence(self) -> Optional[List[RadiationDoseValuesParametersSequenceItem]]: + if "RadiationDoseValuesParametersSequence" in self._dataset: + if len(self._RadiationDoseValuesParametersSequence) == len(self._dataset.RadiationDoseValuesParametersSequence): + return self._RadiationDoseValuesParametersSequence + else: + return [ + RadiationDoseValuesParametersSequenceItem(x) for x in self._dataset.RadiationDoseValuesParametersSequence + ] + return None + + @RadiationDoseValuesParametersSequence.setter + def RadiationDoseValuesParametersSequence(self, value: Optional[List[RadiationDoseValuesParametersSequenceItem]]): + if value is None: + self._RadiationDoseValuesParametersSequence = [] + if "RadiationDoseValuesParametersSequence" in self._dataset: + del self._dataset.RadiationDoseValuesParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDoseValuesParametersSequenceItem) for item in value + ): + raise ValueError( + "RadiationDoseValuesParametersSequence must be a list of RadiationDoseValuesParametersSequenceItem objects" + ) + else: + self._RadiationDoseValuesParametersSequence = value + if "RadiationDoseValuesParametersSequence" not in self._dataset: + self._dataset.RadiationDoseValuesParametersSequence = pydicom.Sequence() + self._dataset.RadiationDoseValuesParametersSequence.clear() + self._dataset.RadiationDoseValuesParametersSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDoseValuesParameters(self, item: RadiationDoseValuesParametersSequenceItem): + if not isinstance(item, RadiationDoseValuesParametersSequenceItem): + raise ValueError("Item must be an instance of RadiationDoseValuesParametersSequenceItem") + self._RadiationDoseValuesParametersSequence.append(item) + if "RadiationDoseValuesParametersSequence" not in self._dataset: + self._dataset.RadiationDoseValuesParametersSequence = pydicom.Sequence() + self._dataset.RadiationDoseValuesParametersSequence.append(item.to_dataset()) + + @property + def ExpectedInVivoMeasurementValuesSequence(self) -> Optional[List[ExpectedInVivoMeasurementValuesSequenceItem]]: + if "ExpectedInVivoMeasurementValuesSequence" in self._dataset: + if len(self._ExpectedInVivoMeasurementValuesSequence) == len( + self._dataset.ExpectedInVivoMeasurementValuesSequence + ): + return self._ExpectedInVivoMeasurementValuesSequence + else: + return [ + ExpectedInVivoMeasurementValuesSequenceItem(x) + for x in self._dataset.ExpectedInVivoMeasurementValuesSequence + ] + return None + + @ExpectedInVivoMeasurementValuesSequence.setter + def ExpectedInVivoMeasurementValuesSequence(self, value: Optional[List[ExpectedInVivoMeasurementValuesSequenceItem]]): + if value is None: + self._ExpectedInVivoMeasurementValuesSequence = [] + if "ExpectedInVivoMeasurementValuesSequence" in self._dataset: + del self._dataset.ExpectedInVivoMeasurementValuesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ExpectedInVivoMeasurementValuesSequenceItem) for item in value + ): + raise ValueError( + "ExpectedInVivoMeasurementValuesSequence must be a list of ExpectedInVivoMeasurementValuesSequenceItem objects" + ) + else: + self._ExpectedInVivoMeasurementValuesSequence = value + if "ExpectedInVivoMeasurementValuesSequence" not in self._dataset: + self._dataset.ExpectedInVivoMeasurementValuesSequence = pydicom.Sequence() + self._dataset.ExpectedInVivoMeasurementValuesSequence.clear() + self._dataset.ExpectedInVivoMeasurementValuesSequence.extend([item.to_dataset() for item in value]) + + def add_ExpectedInVivoMeasurementValues(self, item: ExpectedInVivoMeasurementValuesSequenceItem): + if not isinstance(item, ExpectedInVivoMeasurementValuesSequenceItem): + raise ValueError("Item must be an instance of ExpectedInVivoMeasurementValuesSequenceItem") + self._ExpectedInVivoMeasurementValuesSequence.append(item) + if "ExpectedInVivoMeasurementValuesSequence" not in self._dataset: + self._dataset.ExpectedInVivoMeasurementValuesSequence = pydicom.Sequence() + self._dataset.ExpectedInVivoMeasurementValuesSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiation_dose_sequence_item_1.py b/tdwii_plus_examples/domain_model/radiation_dose_sequence_item_1.py new file mode 100644 index 0000000..f1101ce --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dose_sequence_item_1.py @@ -0,0 +1,136 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .measured_meterset_to_dose_mapping_sequence_item import ( + MeasuredMetersetToDoseMappingSequenceItem, +) +from .radiation_dose_values_parameters_sequence_item import ( + RadiationDoseValuesParametersSequenceItem, +) +from .referenced_rt_radiation_record_sequence_item import ( + ReferencedRTRadiationRecordSequenceItem, +) + + +class RadiationDoseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadiationDoseValuesParametersSequence: List[RadiationDoseValuesParametersSequenceItem] = [] + self._ReferencedRTRadiationRecordSequence: List[ReferencedRTRadiationRecordSequenceItem] = [] + self._MeasuredMetersetToDoseMappingSequence: List[MeasuredMetersetToDoseMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiationDoseValuesParametersSequence(self) -> Optional[List[RadiationDoseValuesParametersSequenceItem]]: + if "RadiationDoseValuesParametersSequence" in self._dataset: + if len(self._RadiationDoseValuesParametersSequence) == len(self._dataset.RadiationDoseValuesParametersSequence): + return self._RadiationDoseValuesParametersSequence + else: + return [ + RadiationDoseValuesParametersSequenceItem(x) for x in self._dataset.RadiationDoseValuesParametersSequence + ] + return None + + @RadiationDoseValuesParametersSequence.setter + def RadiationDoseValuesParametersSequence(self, value: Optional[List[RadiationDoseValuesParametersSequenceItem]]): + if value is None: + self._RadiationDoseValuesParametersSequence = [] + if "RadiationDoseValuesParametersSequence" in self._dataset: + del self._dataset.RadiationDoseValuesParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDoseValuesParametersSequenceItem) for item in value + ): + raise ValueError( + "RadiationDoseValuesParametersSequence must be a list of RadiationDoseValuesParametersSequenceItem objects" + ) + else: + self._RadiationDoseValuesParametersSequence = value + if "RadiationDoseValuesParametersSequence" not in self._dataset: + self._dataset.RadiationDoseValuesParametersSequence = pydicom.Sequence() + self._dataset.RadiationDoseValuesParametersSequence.clear() + self._dataset.RadiationDoseValuesParametersSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDoseValuesParameters(self, item: RadiationDoseValuesParametersSequenceItem): + if not isinstance(item, RadiationDoseValuesParametersSequenceItem): + raise ValueError("Item must be an instance of RadiationDoseValuesParametersSequenceItem") + self._RadiationDoseValuesParametersSequence.append(item) + if "RadiationDoseValuesParametersSequence" not in self._dataset: + self._dataset.RadiationDoseValuesParametersSequence = pydicom.Sequence() + self._dataset.RadiationDoseValuesParametersSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationRecordSequence(self) -> Optional[List[ReferencedRTRadiationRecordSequenceItem]]: + if "ReferencedRTRadiationRecordSequence" in self._dataset: + if len(self._ReferencedRTRadiationRecordSequence) == len(self._dataset.ReferencedRTRadiationRecordSequence): + return self._ReferencedRTRadiationRecordSequence + else: + return [ReferencedRTRadiationRecordSequenceItem(x) for x in self._dataset.ReferencedRTRadiationRecordSequence] + return None + + @ReferencedRTRadiationRecordSequence.setter + def ReferencedRTRadiationRecordSequence(self, value: Optional[List[ReferencedRTRadiationRecordSequenceItem]]): + if value is None: + self._ReferencedRTRadiationRecordSequence = [] + if "ReferencedRTRadiationRecordSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationRecordSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRTRadiationRecordSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRTRadiationRecordSequence must be a list of ReferencedRTRadiationRecordSequenceItem objects" + ) + else: + self._ReferencedRTRadiationRecordSequence = value + if "ReferencedRTRadiationRecordSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationRecordSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationRecordSequence.clear() + self._dataset.ReferencedRTRadiationRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationRecord(self, item: ReferencedRTRadiationRecordSequenceItem): + if not isinstance(item, ReferencedRTRadiationRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationRecordSequenceItem") + self._ReferencedRTRadiationRecordSequence.append(item) + if "ReferencedRTRadiationRecordSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationRecordSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationRecordSequence.append(item.to_dataset()) + + @property + def MeasuredMetersetToDoseMappingSequence(self) -> Optional[List[MeasuredMetersetToDoseMappingSequenceItem]]: + if "MeasuredMetersetToDoseMappingSequence" in self._dataset: + if len(self._MeasuredMetersetToDoseMappingSequence) == len(self._dataset.MeasuredMetersetToDoseMappingSequence): + return self._MeasuredMetersetToDoseMappingSequence + else: + return [ + MeasuredMetersetToDoseMappingSequenceItem(x) for x in self._dataset.MeasuredMetersetToDoseMappingSequence + ] + return None + + @MeasuredMetersetToDoseMappingSequence.setter + def MeasuredMetersetToDoseMappingSequence(self, value: Optional[List[MeasuredMetersetToDoseMappingSequenceItem]]): + if value is None: + self._MeasuredMetersetToDoseMappingSequence = [] + if "MeasuredMetersetToDoseMappingSequence" in self._dataset: + del self._dataset.MeasuredMetersetToDoseMappingSequence + elif not isinstance(value, list) or not all( + isinstance(item, MeasuredMetersetToDoseMappingSequenceItem) for item in value + ): + raise ValueError( + "MeasuredMetersetToDoseMappingSequence must be a list of MeasuredMetersetToDoseMappingSequenceItem objects" + ) + else: + self._MeasuredMetersetToDoseMappingSequence = value + if "MeasuredMetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MeasuredMetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MeasuredMetersetToDoseMappingSequence.clear() + self._dataset.MeasuredMetersetToDoseMappingSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredMetersetToDoseMapping(self, item: MeasuredMetersetToDoseMappingSequenceItem): + if not isinstance(item, MeasuredMetersetToDoseMappingSequenceItem): + raise ValueError("Item must be an instance of MeasuredMetersetToDoseMappingSequenceItem") + self._MeasuredMetersetToDoseMappingSequence.append(item) + if "MeasuredMetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MeasuredMetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MeasuredMetersetToDoseMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item.py b/tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item.py new file mode 100644 index 0000000..8e61000 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .dose_values_sequence_item import DoseValuesSequenceItem + + +class RadiationDoseValuesParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DoseValuesSequence: List[DoseValuesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRadiationDoseIdentificationIndex(self) -> Optional[int]: + if "ReferencedRadiationDoseIdentificationIndex" in self._dataset: + return self._dataset.ReferencedRadiationDoseIdentificationIndex + return None + + @ReferencedRadiationDoseIdentificationIndex.setter + def ReferencedRadiationDoseIdentificationIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationDoseIdentificationIndex" in self._dataset: + del self._dataset.ReferencedRadiationDoseIdentificationIndex + else: + self._dataset.ReferencedRadiationDoseIdentificationIndex = value + + @property + def PrimaryDoseValueIndicator(self) -> Optional[str]: + if "PrimaryDoseValueIndicator" in self._dataset: + return self._dataset.PrimaryDoseValueIndicator + return None + + @PrimaryDoseValueIndicator.setter + def PrimaryDoseValueIndicator(self, value: Optional[str]): + if value is None: + if "PrimaryDoseValueIndicator" in self._dataset: + del self._dataset.PrimaryDoseValueIndicator + else: + self._dataset.PrimaryDoseValueIndicator = value + + @property + def DoseValuesSequence(self) -> Optional[List[DoseValuesSequenceItem]]: + if "DoseValuesSequence" in self._dataset: + if len(self._DoseValuesSequence) == len(self._dataset.DoseValuesSequence): + return self._DoseValuesSequence + else: + return [DoseValuesSequenceItem(x) for x in self._dataset.DoseValuesSequence] + return None + + @DoseValuesSequence.setter + def DoseValuesSequence(self, value: Optional[List[DoseValuesSequenceItem]]): + if value is None: + self._DoseValuesSequence = [] + if "DoseValuesSequence" in self._dataset: + del self._dataset.DoseValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, DoseValuesSequenceItem) for item in value): + raise ValueError("DoseValuesSequence must be a list of DoseValuesSequenceItem objects") + else: + self._DoseValuesSequence = value + if "DoseValuesSequence" not in self._dataset: + self._dataset.DoseValuesSequence = pydicom.Sequence() + self._dataset.DoseValuesSequence.clear() + self._dataset.DoseValuesSequence.extend([item.to_dataset() for item in value]) + + def add_DoseValues(self, item: DoseValuesSequenceItem): + if not isinstance(item, DoseValuesSequenceItem): + raise ValueError("Item must be an instance of DoseValuesSequenceItem") + self._DoseValuesSequence.append(item) + if "DoseValuesSequence" not in self._dataset: + self._dataset.DoseValuesSequence = pydicom.Sequence() + self._dataset.DoseValuesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item_1.py b/tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item_1.py new file mode 100644 index 0000000..32584f8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dose_values_parameters_sequence_item_1.py @@ -0,0 +1,124 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .meterset_to_dose_mapping_sequence_item import MetersetToDoseMappingSequenceItem + + +class RadiationDoseValuesParametersSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MetersetToDoseMappingSequence: List[MetersetToDoseMappingSequenceItem] = [] + self._EffectiveDoseCalculationMethodCategoryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRadiationDoseIdentificationIndex(self) -> Optional[int]: + if "ReferencedRadiationDoseIdentificationIndex" in self._dataset: + return self._dataset.ReferencedRadiationDoseIdentificationIndex + return None + + @ReferencedRadiationDoseIdentificationIndex.setter + def ReferencedRadiationDoseIdentificationIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationDoseIdentificationIndex" in self._dataset: + del self._dataset.ReferencedRadiationDoseIdentificationIndex + else: + self._dataset.ReferencedRadiationDoseIdentificationIndex = value + + @property + def MetersetToDoseMappingSequence(self) -> Optional[List[MetersetToDoseMappingSequenceItem]]: + if "MetersetToDoseMappingSequence" in self._dataset: + if len(self._MetersetToDoseMappingSequence) == len(self._dataset.MetersetToDoseMappingSequence): + return self._MetersetToDoseMappingSequence + else: + return [MetersetToDoseMappingSequenceItem(x) for x in self._dataset.MetersetToDoseMappingSequence] + return None + + @MetersetToDoseMappingSequence.setter + def MetersetToDoseMappingSequence(self, value: Optional[List[MetersetToDoseMappingSequenceItem]]): + if value is None: + self._MetersetToDoseMappingSequence = [] + if "MetersetToDoseMappingSequence" in self._dataset: + del self._dataset.MetersetToDoseMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, MetersetToDoseMappingSequenceItem) for item in value): + raise ValueError("MetersetToDoseMappingSequence must be a list of MetersetToDoseMappingSequenceItem objects") + else: + self._MetersetToDoseMappingSequence = value + if "MetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MetersetToDoseMappingSequence.clear() + self._dataset.MetersetToDoseMappingSequence.extend([item.to_dataset() for item in value]) + + def add_MetersetToDoseMapping(self, item: MetersetToDoseMappingSequenceItem): + if not isinstance(item, MetersetToDoseMappingSequenceItem): + raise ValueError("Item must be an instance of MetersetToDoseMappingSequenceItem") + self._MetersetToDoseMappingSequence.append(item) + if "MetersetToDoseMappingSequence" not in self._dataset: + self._dataset.MetersetToDoseMappingSequence = pydicom.Sequence() + self._dataset.MetersetToDoseMappingSequence.append(item.to_dataset()) + + @property + def RadiobiologicalDoseEffectFlag(self) -> Optional[str]: + if "RadiobiologicalDoseEffectFlag" in self._dataset: + return self._dataset.RadiobiologicalDoseEffectFlag + return None + + @RadiobiologicalDoseEffectFlag.setter + def RadiobiologicalDoseEffectFlag(self, value: Optional[str]): + if value is None: + if "RadiobiologicalDoseEffectFlag" in self._dataset: + del self._dataset.RadiobiologicalDoseEffectFlag + else: + self._dataset.RadiobiologicalDoseEffectFlag = value + + @property + def EffectiveDoseCalculationMethodCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EffectiveDoseCalculationMethodCategoryCodeSequence" in self._dataset: + if len(self._EffectiveDoseCalculationMethodCategoryCodeSequence) == len( + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence + ): + return self._EffectiveDoseCalculationMethodCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence] + return None + + @EffectiveDoseCalculationMethodCategoryCodeSequence.setter + def EffectiveDoseCalculationMethodCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EffectiveDoseCalculationMethodCategoryCodeSequence = [] + if "EffectiveDoseCalculationMethodCategoryCodeSequence" in self._dataset: + del self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EffectiveDoseCalculationMethodCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EffectiveDoseCalculationMethodCategoryCodeSequence = value + if "EffectiveDoseCalculationMethodCategoryCodeSequence" not in self._dataset: + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence = pydicom.Sequence() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.clear() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EffectiveDoseCalculationMethodCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EffectiveDoseCalculationMethodCategoryCodeSequence.append(item) + if "EffectiveDoseCalculationMethodCategoryCodeSequence" not in self._dataset: + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence = pydicom.Sequence() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.append(item.to_dataset()) + + @property + def EffectiveDoseCalculationMethodDescription(self) -> Optional[str]: + if "EffectiveDoseCalculationMethodDescription" in self._dataset: + return self._dataset.EffectiveDoseCalculationMethodDescription + return None + + @EffectiveDoseCalculationMethodDescription.setter + def EffectiveDoseCalculationMethodDescription(self, value: Optional[str]): + if value is None: + if "EffectiveDoseCalculationMethodDescription" in self._dataset: + del self._dataset.EffectiveDoseCalculationMethodDescription + else: + self._dataset.EffectiveDoseCalculationMethodDescription = value diff --git a/tdwii_plus_examples/domain_model/radiation_dosimeter_unit_sequence_item.py b/tdwii_plus_examples/domain_model/radiation_dosimeter_unit_sequence_item.py new file mode 100644 index 0000000..0095ba8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_dosimeter_unit_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class RadiationDosimeterUnitSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/radiation_generation_mode_sequence_item.py b/tdwii_plus_examples/domain_model/radiation_generation_mode_sequence_item.py new file mode 100644 index 0000000..5d24106 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiation_generation_mode_sequence_item.py @@ -0,0 +1,286 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .radiation_device_configuration_and_commissioning_key_sequence_item import ( + RadiationDeviceConfigurationAndCommissioningKeySequenceItem, +) + + +class RadiationGenerationModeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadiationDeviceConfigurationAndCommissioningKeySequence: List[ + RadiationDeviceConfigurationAndCommissioningKeySequenceItem + ] = [] + self._RadiationGenerationModeMachineCodeSequence: List[CodeSequenceItem] = [] + self._RadiationTypeCodeSequence: List[CodeSequenceItem] = [] + self._RadiationFluenceModifierCodeSequence: List[CodeSequenceItem] = [] + self._EnergyUnitCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiationGenerationModeIndex(self) -> Optional[int]: + if "RadiationGenerationModeIndex" in self._dataset: + return self._dataset.RadiationGenerationModeIndex + return None + + @RadiationGenerationModeIndex.setter + def RadiationGenerationModeIndex(self, value: Optional[int]): + if value is None: + if "RadiationGenerationModeIndex" in self._dataset: + del self._dataset.RadiationGenerationModeIndex + else: + self._dataset.RadiationGenerationModeIndex = value + + @property + def RadiationDeviceConfigurationAndCommissioningKeySequence( + self, + ) -> Optional[List[RadiationDeviceConfigurationAndCommissioningKeySequenceItem]]: + if "RadiationDeviceConfigurationAndCommissioningKeySequence" in self._dataset: + if len(self._RadiationDeviceConfigurationAndCommissioningKeySequence) == len( + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + ): + return self._RadiationDeviceConfigurationAndCommissioningKeySequence + else: + return [ + RadiationDeviceConfigurationAndCommissioningKeySequenceItem(x) + for x in self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + ] + return None + + @RadiationDeviceConfigurationAndCommissioningKeySequence.setter + def RadiationDeviceConfigurationAndCommissioningKeySequence( + self, value: Optional[List[RadiationDeviceConfigurationAndCommissioningKeySequenceItem]] + ): + if value is None: + self._RadiationDeviceConfigurationAndCommissioningKeySequence = [] + if "RadiationDeviceConfigurationAndCommissioningKeySequence" in self._dataset: + del self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDeviceConfigurationAndCommissioningKeySequenceItem) for item in value + ): + raise ValueError( + "RadiationDeviceConfigurationAndCommissioningKeySequence must be a list of" + " RadiationDeviceConfigurationAndCommissioningKeySequenceItem objects" + ) + else: + self._RadiationDeviceConfigurationAndCommissioningKeySequence = value + if "RadiationDeviceConfigurationAndCommissioningKeySequence" not in self._dataset: + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence = pydicom.Sequence() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.clear() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDeviceConfigurationAndCommissioningKey( + self, item: RadiationDeviceConfigurationAndCommissioningKeySequenceItem + ): + if not isinstance(item, RadiationDeviceConfigurationAndCommissioningKeySequenceItem): + raise ValueError("Item must be an instance of RadiationDeviceConfigurationAndCommissioningKeySequenceItem") + self._RadiationDeviceConfigurationAndCommissioningKeySequence.append(item) + if "RadiationDeviceConfigurationAndCommissioningKeySequence" not in self._dataset: + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence = pydicom.Sequence() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.append(item.to_dataset()) + + @property + def RadiationGenerationModeLabel(self) -> Optional[str]: + if "RadiationGenerationModeLabel" in self._dataset: + return self._dataset.RadiationGenerationModeLabel + return None + + @RadiationGenerationModeLabel.setter + def RadiationGenerationModeLabel(self, value: Optional[str]): + if value is None: + if "RadiationGenerationModeLabel" in self._dataset: + del self._dataset.RadiationGenerationModeLabel + else: + self._dataset.RadiationGenerationModeLabel = value + + @property + def RadiationGenerationModeDescription(self) -> Optional[str]: + if "RadiationGenerationModeDescription" in self._dataset: + return self._dataset.RadiationGenerationModeDescription + return None + + @RadiationGenerationModeDescription.setter + def RadiationGenerationModeDescription(self, value: Optional[str]): + if value is None: + if "RadiationGenerationModeDescription" in self._dataset: + del self._dataset.RadiationGenerationModeDescription + else: + self._dataset.RadiationGenerationModeDescription = value + + @property + def RadiationGenerationModeMachineCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadiationGenerationModeMachineCodeSequence" in self._dataset: + if len(self._RadiationGenerationModeMachineCodeSequence) == len( + self._dataset.RadiationGenerationModeMachineCodeSequence + ): + return self._RadiationGenerationModeMachineCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadiationGenerationModeMachineCodeSequence] + return None + + @RadiationGenerationModeMachineCodeSequence.setter + def RadiationGenerationModeMachineCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadiationGenerationModeMachineCodeSequence = [] + if "RadiationGenerationModeMachineCodeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeMachineCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeMachineCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadiationGenerationModeMachineCodeSequence = value + if "RadiationGenerationModeMachineCodeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeMachineCodeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeMachineCodeSequence.clear() + self._dataset.RadiationGenerationModeMachineCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationModeMachineCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadiationGenerationModeMachineCodeSequence.append(item) + if "RadiationGenerationModeMachineCodeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeMachineCodeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeMachineCodeSequence.append(item.to_dataset()) + + @property + def RadiationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadiationTypeCodeSequence" in self._dataset: + if len(self._RadiationTypeCodeSequence) == len(self._dataset.RadiationTypeCodeSequence): + return self._RadiationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadiationTypeCodeSequence] + return None + + @RadiationTypeCodeSequence.setter + def RadiationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadiationTypeCodeSequence = [] + if "RadiationTypeCodeSequence" in self._dataset: + del self._dataset.RadiationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadiationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadiationTypeCodeSequence = value + if "RadiationTypeCodeSequence" not in self._dataset: + self._dataset.RadiationTypeCodeSequence = pydicom.Sequence() + self._dataset.RadiationTypeCodeSequence.clear() + self._dataset.RadiationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadiationTypeCodeSequence.append(item) + if "RadiationTypeCodeSequence" not in self._dataset: + self._dataset.RadiationTypeCodeSequence = pydicom.Sequence() + self._dataset.RadiationTypeCodeSequence.append(item.to_dataset()) + + @property + def NominalEnergy(self) -> Optional[Decimal]: + if "NominalEnergy" in self._dataset: + return self._dataset.NominalEnergy + return None + + @NominalEnergy.setter + def NominalEnergy(self, value: Optional[Decimal]): + if value is None: + if "NominalEnergy" in self._dataset: + del self._dataset.NominalEnergy + else: + self._dataset.NominalEnergy = value + + @property + def MinimumNominalEnergy(self) -> Optional[Decimal]: + if "MinimumNominalEnergy" in self._dataset: + return self._dataset.MinimumNominalEnergy + return None + + @MinimumNominalEnergy.setter + def MinimumNominalEnergy(self, value: Optional[Decimal]): + if value is None: + if "MinimumNominalEnergy" in self._dataset: + del self._dataset.MinimumNominalEnergy + else: + self._dataset.MinimumNominalEnergy = value + + @property + def MaximumNominalEnergy(self) -> Optional[Decimal]: + if "MaximumNominalEnergy" in self._dataset: + return self._dataset.MaximumNominalEnergy + return None + + @MaximumNominalEnergy.setter + def MaximumNominalEnergy(self, value: Optional[Decimal]): + if value is None: + if "MaximumNominalEnergy" in self._dataset: + del self._dataset.MaximumNominalEnergy + else: + self._dataset.MaximumNominalEnergy = value + + @property + def RadiationFluenceModifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadiationFluenceModifierCodeSequence" in self._dataset: + if len(self._RadiationFluenceModifierCodeSequence) == len(self._dataset.RadiationFluenceModifierCodeSequence): + return self._RadiationFluenceModifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadiationFluenceModifierCodeSequence] + return None + + @RadiationFluenceModifierCodeSequence.setter + def RadiationFluenceModifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadiationFluenceModifierCodeSequence = [] + if "RadiationFluenceModifierCodeSequence" in self._dataset: + del self._dataset.RadiationFluenceModifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadiationFluenceModifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadiationFluenceModifierCodeSequence = value + if "RadiationFluenceModifierCodeSequence" not in self._dataset: + self._dataset.RadiationFluenceModifierCodeSequence = pydicom.Sequence() + self._dataset.RadiationFluenceModifierCodeSequence.clear() + self._dataset.RadiationFluenceModifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationFluenceModifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadiationFluenceModifierCodeSequence.append(item) + if "RadiationFluenceModifierCodeSequence" not in self._dataset: + self._dataset.RadiationFluenceModifierCodeSequence = pydicom.Sequence() + self._dataset.RadiationFluenceModifierCodeSequence.append(item.to_dataset()) + + @property + def EnergyUnitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EnergyUnitCodeSequence" in self._dataset: + if len(self._EnergyUnitCodeSequence) == len(self._dataset.EnergyUnitCodeSequence): + return self._EnergyUnitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EnergyUnitCodeSequence] + return None + + @EnergyUnitCodeSequence.setter + def EnergyUnitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EnergyUnitCodeSequence = [] + if "EnergyUnitCodeSequence" in self._dataset: + del self._dataset.EnergyUnitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EnergyUnitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EnergyUnitCodeSequence = value + if "EnergyUnitCodeSequence" not in self._dataset: + self._dataset.EnergyUnitCodeSequence = pydicom.Sequence() + self._dataset.EnergyUnitCodeSequence.clear() + self._dataset.EnergyUnitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyUnitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EnergyUnitCodeSequence.append(item) + if "EnergyUnitCodeSequence" not in self._dataset: + self._dataset.EnergyUnitCodeSequence = pydicom.Sequence() + self._dataset.EnergyUnitCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiobiological_dose_effect_sequence_item.py b/tdwii_plus_examples/domain_model/radiobiological_dose_effect_sequence_item.py new file mode 100644 index 0000000..e065859 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiobiological_dose_effect_sequence_item.py @@ -0,0 +1,76 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class RadiobiologicalDoseEffectSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EffectiveDoseCalculationMethodCategoryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiobiologicalDoseEffectFlag(self) -> Optional[str]: + if "RadiobiologicalDoseEffectFlag" in self._dataset: + return self._dataset.RadiobiologicalDoseEffectFlag + return None + + @RadiobiologicalDoseEffectFlag.setter + def RadiobiologicalDoseEffectFlag(self, value: Optional[str]): + if value is None: + if "RadiobiologicalDoseEffectFlag" in self._dataset: + del self._dataset.RadiobiologicalDoseEffectFlag + else: + self._dataset.RadiobiologicalDoseEffectFlag = value + + @property + def EffectiveDoseCalculationMethodCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EffectiveDoseCalculationMethodCategoryCodeSequence" in self._dataset: + if len(self._EffectiveDoseCalculationMethodCategoryCodeSequence) == len( + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence + ): + return self._EffectiveDoseCalculationMethodCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence] + return None + + @EffectiveDoseCalculationMethodCategoryCodeSequence.setter + def EffectiveDoseCalculationMethodCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EffectiveDoseCalculationMethodCategoryCodeSequence = [] + if "EffectiveDoseCalculationMethodCategoryCodeSequence" in self._dataset: + del self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EffectiveDoseCalculationMethodCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EffectiveDoseCalculationMethodCategoryCodeSequence = value + if "EffectiveDoseCalculationMethodCategoryCodeSequence" not in self._dataset: + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence = pydicom.Sequence() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.clear() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EffectiveDoseCalculationMethodCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EffectiveDoseCalculationMethodCategoryCodeSequence.append(item) + if "EffectiveDoseCalculationMethodCategoryCodeSequence" not in self._dataset: + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence = pydicom.Sequence() + self._dataset.EffectiveDoseCalculationMethodCategoryCodeSequence.append(item.to_dataset()) + + @property + def EffectiveDoseCalculationMethodDescription(self) -> Optional[str]: + if "EffectiveDoseCalculationMethodDescription" in self._dataset: + return self._dataset.EffectiveDoseCalculationMethodDescription + return None + + @EffectiveDoseCalculationMethodDescription.setter + def EffectiveDoseCalculationMethodDescription(self, value: Optional[str]): + if value is None: + if "EffectiveDoseCalculationMethodDescription" in self._dataset: + del self._dataset.EffectiveDoseCalculationMethodDescription + else: + self._dataset.EffectiveDoseCalculationMethodDescription = value diff --git a/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item.py b/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item.py new file mode 100644 index 0000000..6c88156 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item.py @@ -0,0 +1,281 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class RadiopharmaceuticalInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadionuclideCodeSequence: List[CodeSequenceItem] = [] + self._AdministrationRouteCodeSequence: List[CodeSequenceItem] = [] + self._RadiopharmaceuticalCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiopharmaceuticalAdministrationEventUID(self) -> Optional[str]: + if "RadiopharmaceuticalAdministrationEventUID" in self._dataset: + return self._dataset.RadiopharmaceuticalAdministrationEventUID + return None + + @RadiopharmaceuticalAdministrationEventUID.setter + def RadiopharmaceuticalAdministrationEventUID(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalAdministrationEventUID" in self._dataset: + del self._dataset.RadiopharmaceuticalAdministrationEventUID + else: + self._dataset.RadiopharmaceuticalAdministrationEventUID = value + + @property + def Radiopharmaceutical(self) -> Optional[str]: + if "Radiopharmaceutical" in self._dataset: + return self._dataset.Radiopharmaceutical + return None + + @Radiopharmaceutical.setter + def Radiopharmaceutical(self, value: Optional[str]): + if value is None: + if "Radiopharmaceutical" in self._dataset: + del self._dataset.Radiopharmaceutical + else: + self._dataset.Radiopharmaceutical = value + + @property + def RadiopharmaceuticalRoute(self) -> Optional[str]: + if "RadiopharmaceuticalRoute" in self._dataset: + return self._dataset.RadiopharmaceuticalRoute + return None + + @RadiopharmaceuticalRoute.setter + def RadiopharmaceuticalRoute(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalRoute" in self._dataset: + del self._dataset.RadiopharmaceuticalRoute + else: + self._dataset.RadiopharmaceuticalRoute = value + + @property + def RadiopharmaceuticalVolume(self) -> Optional[Decimal]: + if "RadiopharmaceuticalVolume" in self._dataset: + return self._dataset.RadiopharmaceuticalVolume + return None + + @RadiopharmaceuticalVolume.setter + def RadiopharmaceuticalVolume(self, value: Optional[Decimal]): + if value is None: + if "RadiopharmaceuticalVolume" in self._dataset: + del self._dataset.RadiopharmaceuticalVolume + else: + self._dataset.RadiopharmaceuticalVolume = value + + @property + def RadiopharmaceuticalStartTime(self) -> Optional[str]: + if "RadiopharmaceuticalStartTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStartTime + return None + + @RadiopharmaceuticalStartTime.setter + def RadiopharmaceuticalStartTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStartTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStartTime + else: + self._dataset.RadiopharmaceuticalStartTime = value + + @property + def RadiopharmaceuticalStopTime(self) -> Optional[str]: + if "RadiopharmaceuticalStopTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStopTime + return None + + @RadiopharmaceuticalStopTime.setter + def RadiopharmaceuticalStopTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStopTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStopTime + else: + self._dataset.RadiopharmaceuticalStopTime = value + + @property + def RadionuclideTotalDose(self) -> Optional[Decimal]: + if "RadionuclideTotalDose" in self._dataset: + return self._dataset.RadionuclideTotalDose + return None + + @RadionuclideTotalDose.setter + def RadionuclideTotalDose(self, value: Optional[Decimal]): + if value is None: + if "RadionuclideTotalDose" in self._dataset: + del self._dataset.RadionuclideTotalDose + else: + self._dataset.RadionuclideTotalDose = value + + @property + def RadionuclideHalfLife(self) -> Optional[Decimal]: + if "RadionuclideHalfLife" in self._dataset: + return self._dataset.RadionuclideHalfLife + return None + + @RadionuclideHalfLife.setter + def RadionuclideHalfLife(self, value: Optional[Decimal]): + if value is None: + if "RadionuclideHalfLife" in self._dataset: + del self._dataset.RadionuclideHalfLife + else: + self._dataset.RadionuclideHalfLife = value + + @property + def RadionuclidePositronFraction(self) -> Optional[Decimal]: + if "RadionuclidePositronFraction" in self._dataset: + return self._dataset.RadionuclidePositronFraction + return None + + @RadionuclidePositronFraction.setter + def RadionuclidePositronFraction(self, value: Optional[Decimal]): + if value is None: + if "RadionuclidePositronFraction" in self._dataset: + del self._dataset.RadionuclidePositronFraction + else: + self._dataset.RadionuclidePositronFraction = value + + @property + def RadiopharmaceuticalSpecificActivity(self) -> Optional[Decimal]: + if "RadiopharmaceuticalSpecificActivity" in self._dataset: + return self._dataset.RadiopharmaceuticalSpecificActivity + return None + + @RadiopharmaceuticalSpecificActivity.setter + def RadiopharmaceuticalSpecificActivity(self, value: Optional[Decimal]): + if value is None: + if "RadiopharmaceuticalSpecificActivity" in self._dataset: + del self._dataset.RadiopharmaceuticalSpecificActivity + else: + self._dataset.RadiopharmaceuticalSpecificActivity = value + + @property + def RadiopharmaceuticalStartDateTime(self) -> Optional[str]: + if "RadiopharmaceuticalStartDateTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStartDateTime + return None + + @RadiopharmaceuticalStartDateTime.setter + def RadiopharmaceuticalStartDateTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStartDateTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStartDateTime + else: + self._dataset.RadiopharmaceuticalStartDateTime = value + + @property + def RadiopharmaceuticalStopDateTime(self) -> Optional[str]: + if "RadiopharmaceuticalStopDateTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStopDateTime + return None + + @RadiopharmaceuticalStopDateTime.setter + def RadiopharmaceuticalStopDateTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStopDateTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStopDateTime + else: + self._dataset.RadiopharmaceuticalStopDateTime = value + + @property + def RadionuclideCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadionuclideCodeSequence" in self._dataset: + if len(self._RadionuclideCodeSequence) == len(self._dataset.RadionuclideCodeSequence): + return self._RadionuclideCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadionuclideCodeSequence] + return None + + @RadionuclideCodeSequence.setter + def RadionuclideCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadionuclideCodeSequence = [] + if "RadionuclideCodeSequence" in self._dataset: + del self._dataset.RadionuclideCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadionuclideCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadionuclideCodeSequence = value + if "RadionuclideCodeSequence" not in self._dataset: + self._dataset.RadionuclideCodeSequence = pydicom.Sequence() + self._dataset.RadionuclideCodeSequence.clear() + self._dataset.RadionuclideCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadionuclideCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadionuclideCodeSequence.append(item) + if "RadionuclideCodeSequence" not in self._dataset: + self._dataset.RadionuclideCodeSequence = pydicom.Sequence() + self._dataset.RadionuclideCodeSequence.append(item.to_dataset()) + + @property + def AdministrationRouteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdministrationRouteCodeSequence" in self._dataset: + if len(self._AdministrationRouteCodeSequence) == len(self._dataset.AdministrationRouteCodeSequence): + return self._AdministrationRouteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdministrationRouteCodeSequence] + return None + + @AdministrationRouteCodeSequence.setter + def AdministrationRouteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdministrationRouteCodeSequence = [] + if "AdministrationRouteCodeSequence" in self._dataset: + del self._dataset.AdministrationRouteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdministrationRouteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdministrationRouteCodeSequence = value + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.clear() + self._dataset.AdministrationRouteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdministrationRouteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdministrationRouteCodeSequence.append(item) + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadiopharmaceuticalCodeSequence" in self._dataset: + if len(self._RadiopharmaceuticalCodeSequence) == len(self._dataset.RadiopharmaceuticalCodeSequence): + return self._RadiopharmaceuticalCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadiopharmaceuticalCodeSequence] + return None + + @RadiopharmaceuticalCodeSequence.setter + def RadiopharmaceuticalCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadiopharmaceuticalCodeSequence = [] + if "RadiopharmaceuticalCodeSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadiopharmaceuticalCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadiopharmaceuticalCodeSequence = value + if "RadiopharmaceuticalCodeSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalCodeSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalCodeSequence.clear() + self._dataset.RadiopharmaceuticalCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadiopharmaceuticalCodeSequence.append(item) + if "RadiopharmaceuticalCodeSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalCodeSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_1.py b/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_1.py new file mode 100644 index 0000000..5494aaa --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_1.py @@ -0,0 +1,239 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class RadiopharmaceuticalInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadionuclideCodeSequence: List[CodeSequenceItem] = [] + self._AdministrationRouteCodeSequence: List[CodeSequenceItem] = [] + self._RadiopharmaceuticalCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiopharmaceuticalAdministrationEventUID(self) -> Optional[str]: + if "RadiopharmaceuticalAdministrationEventUID" in self._dataset: + return self._dataset.RadiopharmaceuticalAdministrationEventUID + return None + + @RadiopharmaceuticalAdministrationEventUID.setter + def RadiopharmaceuticalAdministrationEventUID(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalAdministrationEventUID" in self._dataset: + del self._dataset.RadiopharmaceuticalAdministrationEventUID + else: + self._dataset.RadiopharmaceuticalAdministrationEventUID = value + + @property + def RadiopharmaceuticalVolume(self) -> Optional[Decimal]: + if "RadiopharmaceuticalVolume" in self._dataset: + return self._dataset.RadiopharmaceuticalVolume + return None + + @RadiopharmaceuticalVolume.setter + def RadiopharmaceuticalVolume(self, value: Optional[Decimal]): + if value is None: + if "RadiopharmaceuticalVolume" in self._dataset: + del self._dataset.RadiopharmaceuticalVolume + else: + self._dataset.RadiopharmaceuticalVolume = value + + @property + def RadionuclideTotalDose(self) -> Optional[Decimal]: + if "RadionuclideTotalDose" in self._dataset: + return self._dataset.RadionuclideTotalDose + return None + + @RadionuclideTotalDose.setter + def RadionuclideTotalDose(self, value: Optional[Decimal]): + if value is None: + if "RadionuclideTotalDose" in self._dataset: + del self._dataset.RadionuclideTotalDose + else: + self._dataset.RadionuclideTotalDose = value + + @property + def RadionuclideHalfLife(self) -> Optional[Decimal]: + if "RadionuclideHalfLife" in self._dataset: + return self._dataset.RadionuclideHalfLife + return None + + @RadionuclideHalfLife.setter + def RadionuclideHalfLife(self, value: Optional[Decimal]): + if value is None: + if "RadionuclideHalfLife" in self._dataset: + del self._dataset.RadionuclideHalfLife + else: + self._dataset.RadionuclideHalfLife = value + + @property + def RadionuclidePositronFraction(self) -> Optional[Decimal]: + if "RadionuclidePositronFraction" in self._dataset: + return self._dataset.RadionuclidePositronFraction + return None + + @RadionuclidePositronFraction.setter + def RadionuclidePositronFraction(self, value: Optional[Decimal]): + if value is None: + if "RadionuclidePositronFraction" in self._dataset: + del self._dataset.RadionuclidePositronFraction + else: + self._dataset.RadionuclidePositronFraction = value + + @property + def RadiopharmaceuticalSpecificActivity(self) -> Optional[Decimal]: + if "RadiopharmaceuticalSpecificActivity" in self._dataset: + return self._dataset.RadiopharmaceuticalSpecificActivity + return None + + @RadiopharmaceuticalSpecificActivity.setter + def RadiopharmaceuticalSpecificActivity(self, value: Optional[Decimal]): + if value is None: + if "RadiopharmaceuticalSpecificActivity" in self._dataset: + del self._dataset.RadiopharmaceuticalSpecificActivity + else: + self._dataset.RadiopharmaceuticalSpecificActivity = value + + @property + def RadiopharmaceuticalStartDateTime(self) -> Optional[str]: + if "RadiopharmaceuticalStartDateTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStartDateTime + return None + + @RadiopharmaceuticalStartDateTime.setter + def RadiopharmaceuticalStartDateTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStartDateTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStartDateTime + else: + self._dataset.RadiopharmaceuticalStartDateTime = value + + @property + def RadiopharmaceuticalStopDateTime(self) -> Optional[str]: + if "RadiopharmaceuticalStopDateTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStopDateTime + return None + + @RadiopharmaceuticalStopDateTime.setter + def RadiopharmaceuticalStopDateTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStopDateTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStopDateTime + else: + self._dataset.RadiopharmaceuticalStopDateTime = value + + @property + def RadiopharmaceuticalAgentNumber(self) -> Optional[int]: + if "RadiopharmaceuticalAgentNumber" in self._dataset: + return self._dataset.RadiopharmaceuticalAgentNumber + return None + + @RadiopharmaceuticalAgentNumber.setter + def RadiopharmaceuticalAgentNumber(self, value: Optional[int]): + if value is None: + if "RadiopharmaceuticalAgentNumber" in self._dataset: + del self._dataset.RadiopharmaceuticalAgentNumber + else: + self._dataset.RadiopharmaceuticalAgentNumber = value + + @property + def RadionuclideCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadionuclideCodeSequence" in self._dataset: + if len(self._RadionuclideCodeSequence) == len(self._dataset.RadionuclideCodeSequence): + return self._RadionuclideCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadionuclideCodeSequence] + return None + + @RadionuclideCodeSequence.setter + def RadionuclideCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadionuclideCodeSequence = [] + if "RadionuclideCodeSequence" in self._dataset: + del self._dataset.RadionuclideCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadionuclideCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadionuclideCodeSequence = value + if "RadionuclideCodeSequence" not in self._dataset: + self._dataset.RadionuclideCodeSequence = pydicom.Sequence() + self._dataset.RadionuclideCodeSequence.clear() + self._dataset.RadionuclideCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadionuclideCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadionuclideCodeSequence.append(item) + if "RadionuclideCodeSequence" not in self._dataset: + self._dataset.RadionuclideCodeSequence = pydicom.Sequence() + self._dataset.RadionuclideCodeSequence.append(item.to_dataset()) + + @property + def AdministrationRouteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdministrationRouteCodeSequence" in self._dataset: + if len(self._AdministrationRouteCodeSequence) == len(self._dataset.AdministrationRouteCodeSequence): + return self._AdministrationRouteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdministrationRouteCodeSequence] + return None + + @AdministrationRouteCodeSequence.setter + def AdministrationRouteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdministrationRouteCodeSequence = [] + if "AdministrationRouteCodeSequence" in self._dataset: + del self._dataset.AdministrationRouteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdministrationRouteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdministrationRouteCodeSequence = value + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.clear() + self._dataset.AdministrationRouteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdministrationRouteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdministrationRouteCodeSequence.append(item) + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadiopharmaceuticalCodeSequence" in self._dataset: + if len(self._RadiopharmaceuticalCodeSequence) == len(self._dataset.RadiopharmaceuticalCodeSequence): + return self._RadiopharmaceuticalCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadiopharmaceuticalCodeSequence] + return None + + @RadiopharmaceuticalCodeSequence.setter + def RadiopharmaceuticalCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadiopharmaceuticalCodeSequence = [] + if "RadiopharmaceuticalCodeSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadiopharmaceuticalCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadiopharmaceuticalCodeSequence = value + if "RadiopharmaceuticalCodeSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalCodeSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalCodeSequence.clear() + self._dataset.RadiopharmaceuticalCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadiopharmaceuticalCodeSequence.append(item) + if "RadiopharmaceuticalCodeSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalCodeSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_2.py b/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_2.py new file mode 100644 index 0000000..958db06 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiopharmaceutical_information_sequence_item_2.py @@ -0,0 +1,245 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_data_sequence_item import CalibrationDataSequenceItem +from .code_sequence_item import CodeSequenceItem + + +class RadiopharmaceuticalInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadionuclideCodeSequence: List[CodeSequenceItem] = [] + self._AdministrationRouteCodeSequence: List[CodeSequenceItem] = [] + self._RadiopharmaceuticalCodeSequence: List[CodeSequenceItem] = [] + self._CalibrationDataSequence: List[CalibrationDataSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiopharmaceuticalAdministrationEventUID(self) -> Optional[str]: + if "RadiopharmaceuticalAdministrationEventUID" in self._dataset: + return self._dataset.RadiopharmaceuticalAdministrationEventUID + return None + + @RadiopharmaceuticalAdministrationEventUID.setter + def RadiopharmaceuticalAdministrationEventUID(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalAdministrationEventUID" in self._dataset: + del self._dataset.RadiopharmaceuticalAdministrationEventUID + else: + self._dataset.RadiopharmaceuticalAdministrationEventUID = value + + @property + def Radiopharmaceutical(self) -> Optional[str]: + if "Radiopharmaceutical" in self._dataset: + return self._dataset.Radiopharmaceutical + return None + + @Radiopharmaceutical.setter + def Radiopharmaceutical(self, value: Optional[str]): + if value is None: + if "Radiopharmaceutical" in self._dataset: + del self._dataset.Radiopharmaceutical + else: + self._dataset.Radiopharmaceutical = value + + @property + def RadiopharmaceuticalRoute(self) -> Optional[str]: + if "RadiopharmaceuticalRoute" in self._dataset: + return self._dataset.RadiopharmaceuticalRoute + return None + + @RadiopharmaceuticalRoute.setter + def RadiopharmaceuticalRoute(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalRoute" in self._dataset: + del self._dataset.RadiopharmaceuticalRoute + else: + self._dataset.RadiopharmaceuticalRoute = value + + @property + def RadiopharmaceuticalVolume(self) -> Optional[Decimal]: + if "RadiopharmaceuticalVolume" in self._dataset: + return self._dataset.RadiopharmaceuticalVolume + return None + + @RadiopharmaceuticalVolume.setter + def RadiopharmaceuticalVolume(self, value: Optional[Decimal]): + if value is None: + if "RadiopharmaceuticalVolume" in self._dataset: + del self._dataset.RadiopharmaceuticalVolume + else: + self._dataset.RadiopharmaceuticalVolume = value + + @property + def RadiopharmaceuticalStartTime(self) -> Optional[str]: + if "RadiopharmaceuticalStartTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStartTime + return None + + @RadiopharmaceuticalStartTime.setter + def RadiopharmaceuticalStartTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStartTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStartTime + else: + self._dataset.RadiopharmaceuticalStartTime = value + + @property + def RadiopharmaceuticalStopTime(self) -> Optional[str]: + if "RadiopharmaceuticalStopTime" in self._dataset: + return self._dataset.RadiopharmaceuticalStopTime + return None + + @RadiopharmaceuticalStopTime.setter + def RadiopharmaceuticalStopTime(self, value: Optional[str]): + if value is None: + if "RadiopharmaceuticalStopTime" in self._dataset: + del self._dataset.RadiopharmaceuticalStopTime + else: + self._dataset.RadiopharmaceuticalStopTime = value + + @property + def RadionuclideTotalDose(self) -> Optional[Decimal]: + if "RadionuclideTotalDose" in self._dataset: + return self._dataset.RadionuclideTotalDose + return None + + @RadionuclideTotalDose.setter + def RadionuclideTotalDose(self, value: Optional[Decimal]): + if value is None: + if "RadionuclideTotalDose" in self._dataset: + del self._dataset.RadionuclideTotalDose + else: + self._dataset.RadionuclideTotalDose = value + + @property + def RadionuclideCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadionuclideCodeSequence" in self._dataset: + if len(self._RadionuclideCodeSequence) == len(self._dataset.RadionuclideCodeSequence): + return self._RadionuclideCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadionuclideCodeSequence] + return None + + @RadionuclideCodeSequence.setter + def RadionuclideCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadionuclideCodeSequence = [] + if "RadionuclideCodeSequence" in self._dataset: + del self._dataset.RadionuclideCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadionuclideCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadionuclideCodeSequence = value + if "RadionuclideCodeSequence" not in self._dataset: + self._dataset.RadionuclideCodeSequence = pydicom.Sequence() + self._dataset.RadionuclideCodeSequence.clear() + self._dataset.RadionuclideCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadionuclideCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadionuclideCodeSequence.append(item) + if "RadionuclideCodeSequence" not in self._dataset: + self._dataset.RadionuclideCodeSequence = pydicom.Sequence() + self._dataset.RadionuclideCodeSequence.append(item.to_dataset()) + + @property + def AdministrationRouteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdministrationRouteCodeSequence" in self._dataset: + if len(self._AdministrationRouteCodeSequence) == len(self._dataset.AdministrationRouteCodeSequence): + return self._AdministrationRouteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdministrationRouteCodeSequence] + return None + + @AdministrationRouteCodeSequence.setter + def AdministrationRouteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdministrationRouteCodeSequence = [] + if "AdministrationRouteCodeSequence" in self._dataset: + del self._dataset.AdministrationRouteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdministrationRouteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdministrationRouteCodeSequence = value + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.clear() + self._dataset.AdministrationRouteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdministrationRouteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdministrationRouteCodeSequence.append(item) + if "AdministrationRouteCodeSequence" not in self._dataset: + self._dataset.AdministrationRouteCodeSequence = pydicom.Sequence() + self._dataset.AdministrationRouteCodeSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RadiopharmaceuticalCodeSequence" in self._dataset: + if len(self._RadiopharmaceuticalCodeSequence) == len(self._dataset.RadiopharmaceuticalCodeSequence): + return self._RadiopharmaceuticalCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RadiopharmaceuticalCodeSequence] + return None + + @RadiopharmaceuticalCodeSequence.setter + def RadiopharmaceuticalCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RadiopharmaceuticalCodeSequence = [] + if "RadiopharmaceuticalCodeSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RadiopharmaceuticalCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RadiopharmaceuticalCodeSequence = value + if "RadiopharmaceuticalCodeSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalCodeSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalCodeSequence.clear() + self._dataset.RadiopharmaceuticalCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RadiopharmaceuticalCodeSequence.append(item) + if "RadiopharmaceuticalCodeSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalCodeSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalCodeSequence.append(item.to_dataset()) + + @property + def CalibrationDataSequence(self) -> Optional[List[CalibrationDataSequenceItem]]: + if "CalibrationDataSequence" in self._dataset: + if len(self._CalibrationDataSequence) == len(self._dataset.CalibrationDataSequence): + return self._CalibrationDataSequence + else: + return [CalibrationDataSequenceItem(x) for x in self._dataset.CalibrationDataSequence] + return None + + @CalibrationDataSequence.setter + def CalibrationDataSequence(self, value: Optional[List[CalibrationDataSequenceItem]]): + if value is None: + self._CalibrationDataSequence = [] + if "CalibrationDataSequence" in self._dataset: + del self._dataset.CalibrationDataSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationDataSequenceItem) for item in value): + raise ValueError("CalibrationDataSequence must be a list of CalibrationDataSequenceItem objects") + else: + self._CalibrationDataSequence = value + if "CalibrationDataSequence" not in self._dataset: + self._dataset.CalibrationDataSequence = pydicom.Sequence() + self._dataset.CalibrationDataSequence.clear() + self._dataset.CalibrationDataSequence.extend([item.to_dataset() for item in value]) + + def add_CalibrationData(self, item: CalibrationDataSequenceItem): + if not isinstance(item, CalibrationDataSequenceItem): + raise ValueError("Item must be an instance of CalibrationDataSequenceItem") + self._CalibrationDataSequence.append(item) + if "CalibrationDataSequence" not in self._dataset: + self._dataset.CalibrationDataSequence = pydicom.Sequence() + self._dataset.CalibrationDataSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/radiopharmaceutical_radiation_dose_sr.py b/tdwii_plus_examples/domain_model/radiopharmaceutical_radiation_dose_sr.py new file mode 100644 index 0000000..fb1fe29 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiopharmaceutical_radiation_dose_sr.py @@ -0,0 +1,4673 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class RadiopharmaceuticalRadiationDoseSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/radiopharmaceutical_usage_sequence_item.py b/tdwii_plus_examples/domain_model/radiopharmaceutical_usage_sequence_item.py new file mode 100644 index 0000000..388ca52 --- /dev/null +++ b/tdwii_plus_examples/domain_model/radiopharmaceutical_usage_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RadiopharmaceuticalUsageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiopharmaceuticalAgentNumber(self) -> Optional[int]: + if "RadiopharmaceuticalAgentNumber" in self._dataset: + return self._dataset.RadiopharmaceuticalAgentNumber + return None + + @RadiopharmaceuticalAgentNumber.setter + def RadiopharmaceuticalAgentNumber(self, value: Optional[int]): + if value is None: + if "RadiopharmaceuticalAgentNumber" in self._dataset: + del self._dataset.RadiopharmaceuticalAgentNumber + else: + self._dataset.RadiopharmaceuticalAgentNumber = value diff --git a/tdwii_plus_examples/domain_model/range_modulator_sequence_item.py b/tdwii_plus_examples/domain_model/range_modulator_sequence_item.py new file mode 100644 index 0000000..72a0c2c --- /dev/null +++ b/tdwii_plus_examples/domain_model/range_modulator_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RangeModulatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def RangeModulatorNumber(self) -> Optional[int]: + if "RangeModulatorNumber" in self._dataset: + return self._dataset.RangeModulatorNumber + return None + + @RangeModulatorNumber.setter + def RangeModulatorNumber(self, value: Optional[int]): + if value is None: + if "RangeModulatorNumber" in self._dataset: + del self._dataset.RangeModulatorNumber + else: + self._dataset.RangeModulatorNumber = value + + @property + def RangeModulatorID(self) -> Optional[str]: + if "RangeModulatorID" in self._dataset: + return self._dataset.RangeModulatorID + return None + + @RangeModulatorID.setter + def RangeModulatorID(self, value: Optional[str]): + if value is None: + if "RangeModulatorID" in self._dataset: + del self._dataset.RangeModulatorID + else: + self._dataset.RangeModulatorID = value + + @property + def RangeModulatorType(self) -> Optional[str]: + if "RangeModulatorType" in self._dataset: + return self._dataset.RangeModulatorType + return None + + @RangeModulatorType.setter + def RangeModulatorType(self, value: Optional[str]): + if value is None: + if "RangeModulatorType" in self._dataset: + del self._dataset.RangeModulatorType + else: + self._dataset.RangeModulatorType = value + + @property + def RangeModulatorDescription(self) -> Optional[str]: + if "RangeModulatorDescription" in self._dataset: + return self._dataset.RangeModulatorDescription + return None + + @RangeModulatorDescription.setter + def RangeModulatorDescription(self, value: Optional[str]): + if value is None: + if "RangeModulatorDescription" in self._dataset: + del self._dataset.RangeModulatorDescription + else: + self._dataset.RangeModulatorDescription = value + + @property + def BeamCurrentModulationID(self) -> Optional[str]: + if "BeamCurrentModulationID" in self._dataset: + return self._dataset.BeamCurrentModulationID + return None + + @BeamCurrentModulationID.setter + def BeamCurrentModulationID(self, value: Optional[str]): + if value is None: + if "BeamCurrentModulationID" in self._dataset: + del self._dataset.BeamCurrentModulationID + else: + self._dataset.BeamCurrentModulationID = value diff --git a/tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item.py b/tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item.py new file mode 100644 index 0000000..c6c642a --- /dev/null +++ b/tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RangeModulatorSettingsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RangeModulatorGatingStartValue(self) -> Optional[float]: + if "RangeModulatorGatingStartValue" in self._dataset: + return self._dataset.RangeModulatorGatingStartValue + return None + + @RangeModulatorGatingStartValue.setter + def RangeModulatorGatingStartValue(self, value: Optional[float]): + if value is None: + if "RangeModulatorGatingStartValue" in self._dataset: + del self._dataset.RangeModulatorGatingStartValue + else: + self._dataset.RangeModulatorGatingStartValue = value + + @property + def RangeModulatorGatingStopValue(self) -> Optional[float]: + if "RangeModulatorGatingStopValue" in self._dataset: + return self._dataset.RangeModulatorGatingStopValue + return None + + @RangeModulatorGatingStopValue.setter + def RangeModulatorGatingStopValue(self, value: Optional[float]): + if value is None: + if "RangeModulatorGatingStopValue" in self._dataset: + del self._dataset.RangeModulatorGatingStopValue + else: + self._dataset.RangeModulatorGatingStopValue = value + + @property + def RangeModulatorGatingStartWaterEquivalentThickness(self) -> Optional[float]: + if "RangeModulatorGatingStartWaterEquivalentThickness" in self._dataset: + return self._dataset.RangeModulatorGatingStartWaterEquivalentThickness + return None + + @RangeModulatorGatingStartWaterEquivalentThickness.setter + def RangeModulatorGatingStartWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "RangeModulatorGatingStartWaterEquivalentThickness" in self._dataset: + del self._dataset.RangeModulatorGatingStartWaterEquivalentThickness + else: + self._dataset.RangeModulatorGatingStartWaterEquivalentThickness = value + + @property + def RangeModulatorGatingStopWaterEquivalentThickness(self) -> Optional[float]: + if "RangeModulatorGatingStopWaterEquivalentThickness" in self._dataset: + return self._dataset.RangeModulatorGatingStopWaterEquivalentThickness + return None + + @RangeModulatorGatingStopWaterEquivalentThickness.setter + def RangeModulatorGatingStopWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "RangeModulatorGatingStopWaterEquivalentThickness" in self._dataset: + del self._dataset.RangeModulatorGatingStopWaterEquivalentThickness + else: + self._dataset.RangeModulatorGatingStopWaterEquivalentThickness = value + + @property + def IsocenterToRangeModulatorDistance(self) -> Optional[float]: + if "IsocenterToRangeModulatorDistance" in self._dataset: + return self._dataset.IsocenterToRangeModulatorDistance + return None + + @IsocenterToRangeModulatorDistance.setter + def IsocenterToRangeModulatorDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToRangeModulatorDistance" in self._dataset: + del self._dataset.IsocenterToRangeModulatorDistance + else: + self._dataset.IsocenterToRangeModulatorDistance = value + + @property + def ReferencedRangeModulatorNumber(self) -> Optional[int]: + if "ReferencedRangeModulatorNumber" in self._dataset: + return self._dataset.ReferencedRangeModulatorNumber + return None + + @ReferencedRangeModulatorNumber.setter + def ReferencedRangeModulatorNumber(self, value: Optional[int]): + if value is None: + if "ReferencedRangeModulatorNumber" in self._dataset: + del self._dataset.ReferencedRangeModulatorNumber + else: + self._dataset.ReferencedRangeModulatorNumber = value diff --git a/tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item_1.py b/tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item_1.py new file mode 100644 index 0000000..3fcd7dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/range_modulator_settings_sequence_item_1.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RangeModulatorSettingsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RangeModulatorGatingStartValue(self) -> Optional[float]: + if "RangeModulatorGatingStartValue" in self._dataset: + return self._dataset.RangeModulatorGatingStartValue + return None + + @RangeModulatorGatingStartValue.setter + def RangeModulatorGatingStartValue(self, value: Optional[float]): + if value is None: + if "RangeModulatorGatingStartValue" in self._dataset: + del self._dataset.RangeModulatorGatingStartValue + else: + self._dataset.RangeModulatorGatingStartValue = value + + @property + def RangeModulatorGatingStopValue(self) -> Optional[float]: + if "RangeModulatorGatingStopValue" in self._dataset: + return self._dataset.RangeModulatorGatingStopValue + return None + + @RangeModulatorGatingStopValue.setter + def RangeModulatorGatingStopValue(self, value: Optional[float]): + if value is None: + if "RangeModulatorGatingStopValue" in self._dataset: + del self._dataset.RangeModulatorGatingStopValue + else: + self._dataset.RangeModulatorGatingStopValue = value + + @property + def ReferencedRangeModulatorNumber(self) -> Optional[int]: + if "ReferencedRangeModulatorNumber" in self._dataset: + return self._dataset.ReferencedRangeModulatorNumber + return None + + @ReferencedRangeModulatorNumber.setter + def ReferencedRangeModulatorNumber(self, value: Optional[int]): + if value is None: + if "ReferencedRangeModulatorNumber" in self._dataset: + del self._dataset.ReferencedRangeModulatorNumber + else: + self._dataset.ReferencedRangeModulatorNumber = value diff --git a/tdwii_plus_examples/domain_model/range_shifter_sequence_item.py b/tdwii_plus_examples/domain_model/range_shifter_sequence_item.py new file mode 100644 index 0000000..89029bd --- /dev/null +++ b/tdwii_plus_examples/domain_model/range_shifter_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RangeShifterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def RangeShifterNumber(self) -> Optional[int]: + if "RangeShifterNumber" in self._dataset: + return self._dataset.RangeShifterNumber + return None + + @RangeShifterNumber.setter + def RangeShifterNumber(self, value: Optional[int]): + if value is None: + if "RangeShifterNumber" in self._dataset: + del self._dataset.RangeShifterNumber + else: + self._dataset.RangeShifterNumber = value + + @property + def RangeShifterID(self) -> Optional[str]: + if "RangeShifterID" in self._dataset: + return self._dataset.RangeShifterID + return None + + @RangeShifterID.setter + def RangeShifterID(self, value: Optional[str]): + if value is None: + if "RangeShifterID" in self._dataset: + del self._dataset.RangeShifterID + else: + self._dataset.RangeShifterID = value + + @property + def RangeShifterType(self) -> Optional[str]: + if "RangeShifterType" in self._dataset: + return self._dataset.RangeShifterType + return None + + @RangeShifterType.setter + def RangeShifterType(self, value: Optional[str]): + if value is None: + if "RangeShifterType" in self._dataset: + del self._dataset.RangeShifterType + else: + self._dataset.RangeShifterType = value + + @property + def RangeShifterDescription(self) -> Optional[str]: + if "RangeShifterDescription" in self._dataset: + return self._dataset.RangeShifterDescription + return None + + @RangeShifterDescription.setter + def RangeShifterDescription(self, value: Optional[str]): + if value is None: + if "RangeShifterDescription" in self._dataset: + del self._dataset.RangeShifterDescription + else: + self._dataset.RangeShifterDescription = value diff --git a/tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item.py b/tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item.py new file mode 100644 index 0000000..abb7863 --- /dev/null +++ b/tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RangeShifterSettingsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RangeShifterSetting(self) -> Optional[str]: + if "RangeShifterSetting" in self._dataset: + return self._dataset.RangeShifterSetting + return None + + @RangeShifterSetting.setter + def RangeShifterSetting(self, value: Optional[str]): + if value is None: + if "RangeShifterSetting" in self._dataset: + del self._dataset.RangeShifterSetting + else: + self._dataset.RangeShifterSetting = value + + @property + def IsocenterToRangeShifterDistance(self) -> Optional[float]: + if "IsocenterToRangeShifterDistance" in self._dataset: + return self._dataset.IsocenterToRangeShifterDistance + return None + + @IsocenterToRangeShifterDistance.setter + def IsocenterToRangeShifterDistance(self, value: Optional[float]): + if value is None: + if "IsocenterToRangeShifterDistance" in self._dataset: + del self._dataset.IsocenterToRangeShifterDistance + else: + self._dataset.IsocenterToRangeShifterDistance = value + + @property + def RangeShifterWaterEquivalentThickness(self) -> Optional[float]: + if "RangeShifterWaterEquivalentThickness" in self._dataset: + return self._dataset.RangeShifterWaterEquivalentThickness + return None + + @RangeShifterWaterEquivalentThickness.setter + def RangeShifterWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "RangeShifterWaterEquivalentThickness" in self._dataset: + del self._dataset.RangeShifterWaterEquivalentThickness + else: + self._dataset.RangeShifterWaterEquivalentThickness = value + + @property + def ReferencedRangeShifterNumber(self) -> Optional[int]: + if "ReferencedRangeShifterNumber" in self._dataset: + return self._dataset.ReferencedRangeShifterNumber + return None + + @ReferencedRangeShifterNumber.setter + def ReferencedRangeShifterNumber(self, value: Optional[int]): + if value is None: + if "ReferencedRangeShifterNumber" in self._dataset: + del self._dataset.ReferencedRangeShifterNumber + else: + self._dataset.ReferencedRangeShifterNumber = value diff --git a/tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item_1.py b/tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item_1.py new file mode 100644 index 0000000..e3802b5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/range_shifter_settings_sequence_item_1.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RangeShifterSettingsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RangeShifterSetting(self) -> Optional[str]: + if "RangeShifterSetting" in self._dataset: + return self._dataset.RangeShifterSetting + return None + + @RangeShifterSetting.setter + def RangeShifterSetting(self, value: Optional[str]): + if value is None: + if "RangeShifterSetting" in self._dataset: + del self._dataset.RangeShifterSetting + else: + self._dataset.RangeShifterSetting = value + + @property + def ReferencedRangeShifterNumber(self) -> Optional[int]: + if "ReferencedRangeShifterNumber" in self._dataset: + return self._dataset.ReferencedRangeShifterNumber + return None + + @ReferencedRangeShifterNumber.setter + def ReferencedRangeShifterNumber(self, value: Optional[int]): + if value is None: + if "ReferencedRangeShifterNumber" in self._dataset: + del self._dataset.ReferencedRangeShifterNumber + else: + self._dataset.ReferencedRangeShifterNumber = value diff --git a/tdwii_plus_examples/domain_model/raw_data.py b/tdwii_plus_examples/domain_model/raw_data.py new file mode 100644 index 0000000..2b9ae2a --- /dev/null +++ b/tdwii_plus_examples/domain_model/raw_data.py @@ -0,0 +1,4458 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RawData: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def CreatorVersionUID(self) -> Optional[str]: + if "CreatorVersionUID" in self._dataset: + return self._dataset.CreatorVersionUID + return None + + @CreatorVersionUID.setter + def CreatorVersionUID(self, value: Optional[str]): + if value is None: + if "CreatorVersionUID" in self._dataset: + del self._dataset.CreatorVersionUID + else: + self._dataset.CreatorVersionUID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/real_time_audio_waveform.py b/tdwii_plus_examples/domain_model/real_time_audio_waveform.py new file mode 100644 index 0000000..66dc382 --- /dev/null +++ b/tdwii_plus_examples/domain_model/real_time_audio_waveform.py @@ -0,0 +1,4260 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_frame_functional_groups_sequence_item import ( + CurrentFrameFunctionalGroupsSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_time_bulk_data_flow_sequence_item import RealTimeBulkDataFlowSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RealTimeAudioWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._RealTimeBulkDataFlowSequence: List[RealTimeBulkDataFlowSequenceItem] = [] + self._CurrentFrameFunctionalGroupsSequence: List[CurrentFrameFunctionalGroupsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def RealTimeBulkDataFlowSequence(self) -> Optional[List[RealTimeBulkDataFlowSequenceItem]]: + if "RealTimeBulkDataFlowSequence" in self._dataset: + if len(self._RealTimeBulkDataFlowSequence) == len(self._dataset.RealTimeBulkDataFlowSequence): + return self._RealTimeBulkDataFlowSequence + else: + return [RealTimeBulkDataFlowSequenceItem(x) for x in self._dataset.RealTimeBulkDataFlowSequence] + return None + + @RealTimeBulkDataFlowSequence.setter + def RealTimeBulkDataFlowSequence(self, value: Optional[List[RealTimeBulkDataFlowSequenceItem]]): + if value is None: + self._RealTimeBulkDataFlowSequence = [] + if "RealTimeBulkDataFlowSequence" in self._dataset: + del self._dataset.RealTimeBulkDataFlowSequence + elif not isinstance(value, list) or not all(isinstance(item, RealTimeBulkDataFlowSequenceItem) for item in value): + raise ValueError("RealTimeBulkDataFlowSequence must be a list of RealTimeBulkDataFlowSequenceItem objects") + else: + self._RealTimeBulkDataFlowSequence = value + if "RealTimeBulkDataFlowSequence" not in self._dataset: + self._dataset.RealTimeBulkDataFlowSequence = pydicom.Sequence() + self._dataset.RealTimeBulkDataFlowSequence.clear() + self._dataset.RealTimeBulkDataFlowSequence.extend([item.to_dataset() for item in value]) + + def add_RealTimeBulkDataFlow(self, item: RealTimeBulkDataFlowSequenceItem): + if not isinstance(item, RealTimeBulkDataFlowSequenceItem): + raise ValueError("Item must be an instance of RealTimeBulkDataFlowSequenceItem") + self._RealTimeBulkDataFlowSequence.append(item) + if "RealTimeBulkDataFlowSequence" not in self._dataset: + self._dataset.RealTimeBulkDataFlowSequence = pydicom.Sequence() + self._dataset.RealTimeBulkDataFlowSequence.append(item.to_dataset()) + + @property + def CurrentFrameFunctionalGroupsSequence(self) -> Optional[List[CurrentFrameFunctionalGroupsSequenceItem]]: + if "CurrentFrameFunctionalGroupsSequence" in self._dataset: + if len(self._CurrentFrameFunctionalGroupsSequence) == len(self._dataset.CurrentFrameFunctionalGroupsSequence): + return self._CurrentFrameFunctionalGroupsSequence + else: + return [ + CurrentFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.CurrentFrameFunctionalGroupsSequence + ] + return None + + @CurrentFrameFunctionalGroupsSequence.setter + def CurrentFrameFunctionalGroupsSequence(self, value: Optional[List[CurrentFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._CurrentFrameFunctionalGroupsSequence = [] + if "CurrentFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.CurrentFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentFrameFunctionalGroupsSequenceItem) for item in value + ): + raise ValueError( + "CurrentFrameFunctionalGroupsSequence must be a list of CurrentFrameFunctionalGroupsSequenceItem objects" + ) + else: + self._CurrentFrameFunctionalGroupsSequence = value + if "CurrentFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.CurrentFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.CurrentFrameFunctionalGroupsSequence.clear() + self._dataset.CurrentFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentFrameFunctionalGroups(self, item: CurrentFrameFunctionalGroupsSequenceItem): + if not isinstance(item, CurrentFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of CurrentFrameFunctionalGroupsSequenceItem") + self._CurrentFrameFunctionalGroupsSequence.append(item) + if "CurrentFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.CurrentFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.CurrentFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/real_time_bulk_data_flow_sequence_item.py b/tdwii_plus_examples/domain_model/real_time_bulk_data_flow_sequence_item.py new file mode 100644 index 0000000..82d03e9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/real_time_bulk_data_flow_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .flow_identifier_sequence_item import FlowIdentifierSequenceItem + + +class RealTimeBulkDataFlowSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._FlowIdentifierSequence: List[FlowIdentifierSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FlowIdentifierSequence(self) -> Optional[List[FlowIdentifierSequenceItem]]: + if "FlowIdentifierSequence" in self._dataset: + if len(self._FlowIdentifierSequence) == len(self._dataset.FlowIdentifierSequence): + return self._FlowIdentifierSequence + else: + return [FlowIdentifierSequenceItem(x) for x in self._dataset.FlowIdentifierSequence] + return None + + @FlowIdentifierSequence.setter + def FlowIdentifierSequence(self, value: Optional[List[FlowIdentifierSequenceItem]]): + if value is None: + self._FlowIdentifierSequence = [] + if "FlowIdentifierSequence" in self._dataset: + del self._dataset.FlowIdentifierSequence + elif not isinstance(value, list) or not all(isinstance(item, FlowIdentifierSequenceItem) for item in value): + raise ValueError("FlowIdentifierSequence must be a list of FlowIdentifierSequenceItem objects") + else: + self._FlowIdentifierSequence = value + if "FlowIdentifierSequence" not in self._dataset: + self._dataset.FlowIdentifierSequence = pydicom.Sequence() + self._dataset.FlowIdentifierSequence.clear() + self._dataset.FlowIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_FlowIdentifier(self, item: FlowIdentifierSequenceItem): + if not isinstance(item, FlowIdentifierSequenceItem): + raise ValueError("Item must be an instance of FlowIdentifierSequenceItem") + self._FlowIdentifierSequence.append(item) + if "FlowIdentifierSequence" not in self._dataset: + self._dataset.FlowIdentifierSequence = pydicom.Sequence() + self._dataset.FlowIdentifierSequence.append(item.to_dataset()) + + @property + def SourceIdentifier(self) -> Optional[bytes]: + if "SourceIdentifier" in self._dataset: + return self._dataset.SourceIdentifier + return None + + @SourceIdentifier.setter + def SourceIdentifier(self, value: Optional[bytes]): + if value is None: + if "SourceIdentifier" in self._dataset: + del self._dataset.SourceIdentifier + else: + self._dataset.SourceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/real_time_video_endoscopic_image.py b/tdwii_plus_examples/domain_model/real_time_video_endoscopic_image.py new file mode 100644 index 0000000..82caf11 --- /dev/null +++ b/tdwii_plus_examples/domain_model/real_time_video_endoscopic_image.py @@ -0,0 +1,5551 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_frame_functional_groups_sequence_item import ( + CurrentFrameFunctionalGroupsSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_time_bulk_data_flow_sequence_item import RealTimeBulkDataFlowSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RealTimeVideoEndoscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._CurrentFrameFunctionalGroupsSequence: List[CurrentFrameFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._RealTimeBulkDataFlowSequence: List[RealTimeBulkDataFlowSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def CurrentFrameFunctionalGroupsSequence(self) -> Optional[List[CurrentFrameFunctionalGroupsSequenceItem]]: + if "CurrentFrameFunctionalGroupsSequence" in self._dataset: + if len(self._CurrentFrameFunctionalGroupsSequence) == len(self._dataset.CurrentFrameFunctionalGroupsSequence): + return self._CurrentFrameFunctionalGroupsSequence + else: + return [ + CurrentFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.CurrentFrameFunctionalGroupsSequence + ] + return None + + @CurrentFrameFunctionalGroupsSequence.setter + def CurrentFrameFunctionalGroupsSequence(self, value: Optional[List[CurrentFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._CurrentFrameFunctionalGroupsSequence = [] + if "CurrentFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.CurrentFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentFrameFunctionalGroupsSequenceItem) for item in value + ): + raise ValueError( + "CurrentFrameFunctionalGroupsSequence must be a list of CurrentFrameFunctionalGroupsSequenceItem objects" + ) + else: + self._CurrentFrameFunctionalGroupsSequence = value + if "CurrentFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.CurrentFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.CurrentFrameFunctionalGroupsSequence.clear() + self._dataset.CurrentFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentFrameFunctionalGroups(self, item: CurrentFrameFunctionalGroupsSequenceItem): + if not isinstance(item, CurrentFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of CurrentFrameFunctionalGroupsSequenceItem") + self._CurrentFrameFunctionalGroupsSequence.append(item) + if "CurrentFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.CurrentFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.CurrentFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def RealTimeBulkDataFlowSequence(self) -> Optional[List[RealTimeBulkDataFlowSequenceItem]]: + if "RealTimeBulkDataFlowSequence" in self._dataset: + if len(self._RealTimeBulkDataFlowSequence) == len(self._dataset.RealTimeBulkDataFlowSequence): + return self._RealTimeBulkDataFlowSequence + else: + return [RealTimeBulkDataFlowSequenceItem(x) for x in self._dataset.RealTimeBulkDataFlowSequence] + return None + + @RealTimeBulkDataFlowSequence.setter + def RealTimeBulkDataFlowSequence(self, value: Optional[List[RealTimeBulkDataFlowSequenceItem]]): + if value is None: + self._RealTimeBulkDataFlowSequence = [] + if "RealTimeBulkDataFlowSequence" in self._dataset: + del self._dataset.RealTimeBulkDataFlowSequence + elif not isinstance(value, list) or not all(isinstance(item, RealTimeBulkDataFlowSequenceItem) for item in value): + raise ValueError("RealTimeBulkDataFlowSequence must be a list of RealTimeBulkDataFlowSequenceItem objects") + else: + self._RealTimeBulkDataFlowSequence = value + if "RealTimeBulkDataFlowSequence" not in self._dataset: + self._dataset.RealTimeBulkDataFlowSequence = pydicom.Sequence() + self._dataset.RealTimeBulkDataFlowSequence.clear() + self._dataset.RealTimeBulkDataFlowSequence.extend([item.to_dataset() for item in value]) + + def add_RealTimeBulkDataFlow(self, item: RealTimeBulkDataFlowSequenceItem): + if not isinstance(item, RealTimeBulkDataFlowSequenceItem): + raise ValueError("Item must be an instance of RealTimeBulkDataFlowSequenceItem") + self._RealTimeBulkDataFlowSequence.append(item) + if "RealTimeBulkDataFlowSequence" not in self._dataset: + self._dataset.RealTimeBulkDataFlowSequence = pydicom.Sequence() + self._dataset.RealTimeBulkDataFlowSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/real_time_video_photographic_image.py b/tdwii_plus_examples/domain_model/real_time_video_photographic_image.py new file mode 100644 index 0000000..f8b7e7b --- /dev/null +++ b/tdwii_plus_examples/domain_model/real_time_video_photographic_image.py @@ -0,0 +1,5551 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_frame_functional_groups_sequence_item import ( + CurrentFrameFunctionalGroupsSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_time_bulk_data_flow_sequence_item import RealTimeBulkDataFlowSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RealTimeVideoPhotographicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._CurrentFrameFunctionalGroupsSequence: List[CurrentFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._RealTimeBulkDataFlowSequence: List[RealTimeBulkDataFlowSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def CurrentFrameFunctionalGroupsSequence(self) -> Optional[List[CurrentFrameFunctionalGroupsSequenceItem]]: + if "CurrentFrameFunctionalGroupsSequence" in self._dataset: + if len(self._CurrentFrameFunctionalGroupsSequence) == len(self._dataset.CurrentFrameFunctionalGroupsSequence): + return self._CurrentFrameFunctionalGroupsSequence + else: + return [ + CurrentFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.CurrentFrameFunctionalGroupsSequence + ] + return None + + @CurrentFrameFunctionalGroupsSequence.setter + def CurrentFrameFunctionalGroupsSequence(self, value: Optional[List[CurrentFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._CurrentFrameFunctionalGroupsSequence = [] + if "CurrentFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.CurrentFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentFrameFunctionalGroupsSequenceItem) for item in value + ): + raise ValueError( + "CurrentFrameFunctionalGroupsSequence must be a list of CurrentFrameFunctionalGroupsSequenceItem objects" + ) + else: + self._CurrentFrameFunctionalGroupsSequence = value + if "CurrentFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.CurrentFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.CurrentFrameFunctionalGroupsSequence.clear() + self._dataset.CurrentFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentFrameFunctionalGroups(self, item: CurrentFrameFunctionalGroupsSequenceItem): + if not isinstance(item, CurrentFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of CurrentFrameFunctionalGroupsSequenceItem") + self._CurrentFrameFunctionalGroupsSequence.append(item) + if "CurrentFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.CurrentFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.CurrentFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def RealTimeBulkDataFlowSequence(self) -> Optional[List[RealTimeBulkDataFlowSequenceItem]]: + if "RealTimeBulkDataFlowSequence" in self._dataset: + if len(self._RealTimeBulkDataFlowSequence) == len(self._dataset.RealTimeBulkDataFlowSequence): + return self._RealTimeBulkDataFlowSequence + else: + return [RealTimeBulkDataFlowSequenceItem(x) for x in self._dataset.RealTimeBulkDataFlowSequence] + return None + + @RealTimeBulkDataFlowSequence.setter + def RealTimeBulkDataFlowSequence(self, value: Optional[List[RealTimeBulkDataFlowSequenceItem]]): + if value is None: + self._RealTimeBulkDataFlowSequence = [] + if "RealTimeBulkDataFlowSequence" in self._dataset: + del self._dataset.RealTimeBulkDataFlowSequence + elif not isinstance(value, list) or not all(isinstance(item, RealTimeBulkDataFlowSequenceItem) for item in value): + raise ValueError("RealTimeBulkDataFlowSequence must be a list of RealTimeBulkDataFlowSequenceItem objects") + else: + self._RealTimeBulkDataFlowSequence = value + if "RealTimeBulkDataFlowSequence" not in self._dataset: + self._dataset.RealTimeBulkDataFlowSequence = pydicom.Sequence() + self._dataset.RealTimeBulkDataFlowSequence.clear() + self._dataset.RealTimeBulkDataFlowSequence.extend([item.to_dataset() for item in value]) + + def add_RealTimeBulkDataFlow(self, item: RealTimeBulkDataFlowSequenceItem): + if not isinstance(item, RealTimeBulkDataFlowSequenceItem): + raise ValueError("Item must be an instance of RealTimeBulkDataFlowSequenceItem") + self._RealTimeBulkDataFlowSequence.append(item) + if "RealTimeBulkDataFlowSequence" not in self._dataset: + self._dataset.RealTimeBulkDataFlowSequence = pydicom.Sequence() + self._dataset.RealTimeBulkDataFlowSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/real_world_value_mapping.py b/tdwii_plus_examples/domain_model/real_world_value_mapping.py new file mode 100644 index 0000000..8438e27 --- /dev/null +++ b/tdwii_plus_examples/domain_model/real_world_value_mapping.py @@ -0,0 +1,4218 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_real_world_value_mapping_sequence_item import ( + ReferencedImageRealWorldValueMappingSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RealWorldValueMapping: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageRealWorldValueMappingSequence: List[ReferencedImageRealWorldValueMappingSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedImageRealWorldValueMappingSequence(self) -> Optional[List[ReferencedImageRealWorldValueMappingSequenceItem]]: + if "ReferencedImageRealWorldValueMappingSequence" in self._dataset: + if len(self._ReferencedImageRealWorldValueMappingSequence) == len( + self._dataset.ReferencedImageRealWorldValueMappingSequence + ): + return self._ReferencedImageRealWorldValueMappingSequence + else: + return [ + ReferencedImageRealWorldValueMappingSequenceItem(x) + for x in self._dataset.ReferencedImageRealWorldValueMappingSequence + ] + return None + + @ReferencedImageRealWorldValueMappingSequence.setter + def ReferencedImageRealWorldValueMappingSequence( + self, value: Optional[List[ReferencedImageRealWorldValueMappingSequenceItem]] + ): + if value is None: + self._ReferencedImageRealWorldValueMappingSequence = [] + if "ReferencedImageRealWorldValueMappingSequence" in self._dataset: + del self._dataset.ReferencedImageRealWorldValueMappingSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedImageRealWorldValueMappingSequenceItem) for item in value + ): + raise ValueError( + "ReferencedImageRealWorldValueMappingSequence must be a list of" + " ReferencedImageRealWorldValueMappingSequenceItem objects" + ) + else: + self._ReferencedImageRealWorldValueMappingSequence = value + if "ReferencedImageRealWorldValueMappingSequence" not in self._dataset: + self._dataset.ReferencedImageRealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.ReferencedImageRealWorldValueMappingSequence.clear() + self._dataset.ReferencedImageRealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageRealWorldValueMapping(self, item: ReferencedImageRealWorldValueMappingSequenceItem): + if not isinstance(item, ReferencedImageRealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageRealWorldValueMappingSequenceItem") + self._ReferencedImageRealWorldValueMappingSequence.append(item) + if "ReferencedImageRealWorldValueMappingSequence" not in self._dataset: + self._dataset.ReferencedImageRealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.ReferencedImageRealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/real_world_value_mapping_sequence_item.py b/tdwii_plus_examples/domain_model/real_world_value_mapping_sequence_item.py new file mode 100644 index 0000000..6ee61dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/real_world_value_mapping_sequence_item.py @@ -0,0 +1,206 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .quantity_definition_sequence_item import QuantityDefinitionSequenceItem + + +class RealWorldValueMappingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._QuantityDefinitionSequence: List[QuantityDefinitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LUTExplanation(self) -> Optional[str]: + if "LUTExplanation" in self._dataset: + return self._dataset.LUTExplanation + return None + + @LUTExplanation.setter + def LUTExplanation(self, value: Optional[str]): + if value is None: + if "LUTExplanation" in self._dataset: + del self._dataset.LUTExplanation + else: + self._dataset.LUTExplanation = value + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def LUTLabel(self) -> Optional[str]: + if "LUTLabel" in self._dataset: + return self._dataset.LUTLabel + return None + + @LUTLabel.setter + def LUTLabel(self, value: Optional[str]): + if value is None: + if "LUTLabel" in self._dataset: + del self._dataset.LUTLabel + else: + self._dataset.LUTLabel = value + + @property + def RealWorldValueLastValueMapped(self) -> Optional[int]: + if "RealWorldValueLastValueMapped" in self._dataset: + return self._dataset.RealWorldValueLastValueMapped + return None + + @RealWorldValueLastValueMapped.setter + def RealWorldValueLastValueMapped(self, value: Optional[int]): + if value is None: + if "RealWorldValueLastValueMapped" in self._dataset: + del self._dataset.RealWorldValueLastValueMapped + else: + self._dataset.RealWorldValueLastValueMapped = value + + @property + def RealWorldValueLUTData(self) -> Optional[List[float]]: + if "RealWorldValueLUTData" in self._dataset: + return self._dataset.RealWorldValueLUTData + return None + + @RealWorldValueLUTData.setter + def RealWorldValueLUTData(self, value: Optional[List[float]]): + if value is None: + if "RealWorldValueLUTData" in self._dataset: + del self._dataset.RealWorldValueLUTData + else: + self._dataset.RealWorldValueLUTData = value + + @property + def DoubleFloatRealWorldValueLastValueMapped(self) -> Optional[float]: + if "DoubleFloatRealWorldValueLastValueMapped" in self._dataset: + return self._dataset.DoubleFloatRealWorldValueLastValueMapped + return None + + @DoubleFloatRealWorldValueLastValueMapped.setter + def DoubleFloatRealWorldValueLastValueMapped(self, value: Optional[float]): + if value is None: + if "DoubleFloatRealWorldValueLastValueMapped" in self._dataset: + del self._dataset.DoubleFloatRealWorldValueLastValueMapped + else: + self._dataset.DoubleFloatRealWorldValueLastValueMapped = value + + @property + def DoubleFloatRealWorldValueFirstValueMapped(self) -> Optional[float]: + if "DoubleFloatRealWorldValueFirstValueMapped" in self._dataset: + return self._dataset.DoubleFloatRealWorldValueFirstValueMapped + return None + + @DoubleFloatRealWorldValueFirstValueMapped.setter + def DoubleFloatRealWorldValueFirstValueMapped(self, value: Optional[float]): + if value is None: + if "DoubleFloatRealWorldValueFirstValueMapped" in self._dataset: + del self._dataset.DoubleFloatRealWorldValueFirstValueMapped + else: + self._dataset.DoubleFloatRealWorldValueFirstValueMapped = value + + @property + def RealWorldValueFirstValueMapped(self) -> Optional[int]: + if "RealWorldValueFirstValueMapped" in self._dataset: + return self._dataset.RealWorldValueFirstValueMapped + return None + + @RealWorldValueFirstValueMapped.setter + def RealWorldValueFirstValueMapped(self, value: Optional[int]): + if value is None: + if "RealWorldValueFirstValueMapped" in self._dataset: + del self._dataset.RealWorldValueFirstValueMapped + else: + self._dataset.RealWorldValueFirstValueMapped = value + + @property + def QuantityDefinitionSequence(self) -> Optional[List[QuantityDefinitionSequenceItem]]: + if "QuantityDefinitionSequence" in self._dataset: + if len(self._QuantityDefinitionSequence) == len(self._dataset.QuantityDefinitionSequence): + return self._QuantityDefinitionSequence + else: + return [QuantityDefinitionSequenceItem(x) for x in self._dataset.QuantityDefinitionSequence] + return None + + @QuantityDefinitionSequence.setter + def QuantityDefinitionSequence(self, value: Optional[List[QuantityDefinitionSequenceItem]]): + if value is None: + self._QuantityDefinitionSequence = [] + if "QuantityDefinitionSequence" in self._dataset: + del self._dataset.QuantityDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, QuantityDefinitionSequenceItem) for item in value): + raise ValueError("QuantityDefinitionSequence must be a list of QuantityDefinitionSequenceItem objects") + else: + self._QuantityDefinitionSequence = value + if "QuantityDefinitionSequence" not in self._dataset: + self._dataset.QuantityDefinitionSequence = pydicom.Sequence() + self._dataset.QuantityDefinitionSequence.clear() + self._dataset.QuantityDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_QuantityDefinition(self, item: QuantityDefinitionSequenceItem): + if not isinstance(item, QuantityDefinitionSequenceItem): + raise ValueError("Item must be an instance of QuantityDefinitionSequenceItem") + self._QuantityDefinitionSequence.append(item) + if "QuantityDefinitionSequence" not in self._dataset: + self._dataset.QuantityDefinitionSequence = pydicom.Sequence() + self._dataset.QuantityDefinitionSequence.append(item.to_dataset()) + + @property + def RealWorldValueIntercept(self) -> Optional[float]: + if "RealWorldValueIntercept" in self._dataset: + return self._dataset.RealWorldValueIntercept + return None + + @RealWorldValueIntercept.setter + def RealWorldValueIntercept(self, value: Optional[float]): + if value is None: + if "RealWorldValueIntercept" in self._dataset: + del self._dataset.RealWorldValueIntercept + else: + self._dataset.RealWorldValueIntercept = value + + @property + def RealWorldValueSlope(self) -> Optional[float]: + if "RealWorldValueSlope" in self._dataset: + return self._dataset.RealWorldValueSlope + return None + + @RealWorldValueSlope.setter + def RealWorldValueSlope(self, value: Optional[float]): + if value is None: + if "RealWorldValueSlope" in self._dataset: + del self._dataset.RealWorldValueSlope + else: + self._dataset.RealWorldValueSlope = value diff --git a/tdwii_plus_examples/domain_model/recommended_default_value_sequence_item.py b/tdwii_plus_examples/domain_model/recommended_default_value_sequence_item.py new file mode 100644 index 0000000..fce610e --- /dev/null +++ b/tdwii_plus_examples/domain_model/recommended_default_value_sequence_item.py @@ -0,0 +1,488 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecommendedDefaultValueSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectorAEValue(self) -> Optional[List[str]]: + if "SelectorAEValue" in self._dataset: + return self._dataset.SelectorAEValue + return None + + @SelectorAEValue.setter + def SelectorAEValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorAEValue" in self._dataset: + del self._dataset.SelectorAEValue + else: + self._dataset.SelectorAEValue = value + + @property + def SelectorASValue(self) -> Optional[List[str]]: + if "SelectorASValue" in self._dataset: + return self._dataset.SelectorASValue + return None + + @SelectorASValue.setter + def SelectorASValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorASValue" in self._dataset: + del self._dataset.SelectorASValue + else: + self._dataset.SelectorASValue = value + + @property + def SelectorATValue(self) -> Optional[List[int]]: + if "SelectorATValue" in self._dataset: + return self._dataset.SelectorATValue + return None + + @SelectorATValue.setter + def SelectorATValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorATValue" in self._dataset: + del self._dataset.SelectorATValue + else: + self._dataset.SelectorATValue = value + + @property + def SelectorDAValue(self) -> Optional[List[str]]: + if "SelectorDAValue" in self._dataset: + return self._dataset.SelectorDAValue + return None + + @SelectorDAValue.setter + def SelectorDAValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDAValue" in self._dataset: + del self._dataset.SelectorDAValue + else: + self._dataset.SelectorDAValue = value + + @property + def SelectorCSValue(self) -> Optional[List[str]]: + if "SelectorCSValue" in self._dataset: + return self._dataset.SelectorCSValue + return None + + @SelectorCSValue.setter + def SelectorCSValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorCSValue" in self._dataset: + del self._dataset.SelectorCSValue + else: + self._dataset.SelectorCSValue = value + + @property + def SelectorDTValue(self) -> Optional[List[str]]: + if "SelectorDTValue" in self._dataset: + return self._dataset.SelectorDTValue + return None + + @SelectorDTValue.setter + def SelectorDTValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorDTValue" in self._dataset: + del self._dataset.SelectorDTValue + else: + self._dataset.SelectorDTValue = value + + @property + def SelectorISValue(self) -> Optional[List[int]]: + if "SelectorISValue" in self._dataset: + return self._dataset.SelectorISValue + return None + + @SelectorISValue.setter + def SelectorISValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorISValue" in self._dataset: + del self._dataset.SelectorISValue + else: + self._dataset.SelectorISValue = value + + @property + def SelectorOBValue(self) -> Optional[bytes]: + if "SelectorOBValue" in self._dataset: + return self._dataset.SelectorOBValue + return None + + @SelectorOBValue.setter + def SelectorOBValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOBValue" in self._dataset: + del self._dataset.SelectorOBValue + else: + self._dataset.SelectorOBValue = value + + @property + def SelectorLOValue(self) -> Optional[List[str]]: + if "SelectorLOValue" in self._dataset: + return self._dataset.SelectorLOValue + return None + + @SelectorLOValue.setter + def SelectorLOValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorLOValue" in self._dataset: + del self._dataset.SelectorLOValue + else: + self._dataset.SelectorLOValue = value + + @property + def SelectorOFValue(self) -> Optional[bytes]: + if "SelectorOFValue" in self._dataset: + return self._dataset.SelectorOFValue + return None + + @SelectorOFValue.setter + def SelectorOFValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOFValue" in self._dataset: + del self._dataset.SelectorOFValue + else: + self._dataset.SelectorOFValue = value + + @property + def SelectorLTValue(self) -> Optional[str]: + if "SelectorLTValue" in self._dataset: + return self._dataset.SelectorLTValue + return None + + @SelectorLTValue.setter + def SelectorLTValue(self, value: Optional[str]): + if value is None: + if "SelectorLTValue" in self._dataset: + del self._dataset.SelectorLTValue + else: + self._dataset.SelectorLTValue = value + + @property + def SelectorOWValue(self) -> Optional[bytes]: + if "SelectorOWValue" in self._dataset: + return self._dataset.SelectorOWValue + return None + + @SelectorOWValue.setter + def SelectorOWValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOWValue" in self._dataset: + del self._dataset.SelectorOWValue + else: + self._dataset.SelectorOWValue = value + + @property + def SelectorPNValue(self) -> Optional[List[str]]: + if "SelectorPNValue" in self._dataset: + return self._dataset.SelectorPNValue + return None + + @SelectorPNValue.setter + def SelectorPNValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorPNValue" in self._dataset: + del self._dataset.SelectorPNValue + else: + self._dataset.SelectorPNValue = value + + @property + def SelectorTMValue(self) -> Optional[List[str]]: + if "SelectorTMValue" in self._dataset: + return self._dataset.SelectorTMValue + return None + + @SelectorTMValue.setter + def SelectorTMValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorTMValue" in self._dataset: + del self._dataset.SelectorTMValue + else: + self._dataset.SelectorTMValue = value + + @property + def SelectorSHValue(self) -> Optional[List[str]]: + if "SelectorSHValue" in self._dataset: + return self._dataset.SelectorSHValue + return None + + @SelectorSHValue.setter + def SelectorSHValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorSHValue" in self._dataset: + del self._dataset.SelectorSHValue + else: + self._dataset.SelectorSHValue = value + + @property + def SelectorUNValue(self) -> Optional[bytes]: + if "SelectorUNValue" in self._dataset: + return self._dataset.SelectorUNValue + return None + + @SelectorUNValue.setter + def SelectorUNValue(self, value: Optional[bytes]): + if value is None: + if "SelectorUNValue" in self._dataset: + del self._dataset.SelectorUNValue + else: + self._dataset.SelectorUNValue = value + + @property + def SelectorSTValue(self) -> Optional[str]: + if "SelectorSTValue" in self._dataset: + return self._dataset.SelectorSTValue + return None + + @SelectorSTValue.setter + def SelectorSTValue(self, value: Optional[str]): + if value is None: + if "SelectorSTValue" in self._dataset: + del self._dataset.SelectorSTValue + else: + self._dataset.SelectorSTValue = value + + @property + def SelectorUCValue(self) -> Optional[List[str]]: + if "SelectorUCValue" in self._dataset: + return self._dataset.SelectorUCValue + return None + + @SelectorUCValue.setter + def SelectorUCValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUCValue" in self._dataset: + del self._dataset.SelectorUCValue + else: + self._dataset.SelectorUCValue = value + + @property + def SelectorUTValue(self) -> Optional[str]: + if "SelectorUTValue" in self._dataset: + return self._dataset.SelectorUTValue + return None + + @SelectorUTValue.setter + def SelectorUTValue(self, value: Optional[str]): + if value is None: + if "SelectorUTValue" in self._dataset: + del self._dataset.SelectorUTValue + else: + self._dataset.SelectorUTValue = value + + @property + def SelectorURValue(self) -> Optional[str]: + if "SelectorURValue" in self._dataset: + return self._dataset.SelectorURValue + return None + + @SelectorURValue.setter + def SelectorURValue(self, value: Optional[str]): + if value is None: + if "SelectorURValue" in self._dataset: + del self._dataset.SelectorURValue + else: + self._dataset.SelectorURValue = value + + @property + def SelectorDSValue(self) -> Optional[List[Decimal]]: + if "SelectorDSValue" in self._dataset: + return self._dataset.SelectorDSValue + return None + + @SelectorDSValue.setter + def SelectorDSValue(self, value: Optional[List[Decimal]]): + if value is None: + if "SelectorDSValue" in self._dataset: + del self._dataset.SelectorDSValue + else: + self._dataset.SelectorDSValue = value + + @property + def SelectorODValue(self) -> Optional[bytes]: + if "SelectorODValue" in self._dataset: + return self._dataset.SelectorODValue + return None + + @SelectorODValue.setter + def SelectorODValue(self, value: Optional[bytes]): + if value is None: + if "SelectorODValue" in self._dataset: + del self._dataset.SelectorODValue + else: + self._dataset.SelectorODValue = value + + @property + def SelectorFDValue(self) -> Optional[List[float]]: + if "SelectorFDValue" in self._dataset: + return self._dataset.SelectorFDValue + return None + + @SelectorFDValue.setter + def SelectorFDValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFDValue" in self._dataset: + del self._dataset.SelectorFDValue + else: + self._dataset.SelectorFDValue = value + + @property + def SelectorOLValue(self) -> Optional[bytes]: + if "SelectorOLValue" in self._dataset: + return self._dataset.SelectorOLValue + return None + + @SelectorOLValue.setter + def SelectorOLValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOLValue" in self._dataset: + del self._dataset.SelectorOLValue + else: + self._dataset.SelectorOLValue = value + + @property + def SelectorFLValue(self) -> Optional[List[float]]: + if "SelectorFLValue" in self._dataset: + return self._dataset.SelectorFLValue + return None + + @SelectorFLValue.setter + def SelectorFLValue(self, value: Optional[List[float]]): + if value is None: + if "SelectorFLValue" in self._dataset: + del self._dataset.SelectorFLValue + else: + self._dataset.SelectorFLValue = value + + @property + def SelectorULValue(self) -> Optional[List[int]]: + if "SelectorULValue" in self._dataset: + return self._dataset.SelectorULValue + return None + + @SelectorULValue.setter + def SelectorULValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorULValue" in self._dataset: + del self._dataset.SelectorULValue + else: + self._dataset.SelectorULValue = value + + @property + def SelectorUSValue(self) -> Optional[List[int]]: + if "SelectorUSValue" in self._dataset: + return self._dataset.SelectorUSValue + return None + + @SelectorUSValue.setter + def SelectorUSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUSValue" in self._dataset: + del self._dataset.SelectorUSValue + else: + self._dataset.SelectorUSValue = value + + @property + def SelectorSLValue(self) -> Optional[List[int]]: + if "SelectorSLValue" in self._dataset: + return self._dataset.SelectorSLValue + return None + + @SelectorSLValue.setter + def SelectorSLValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSLValue" in self._dataset: + del self._dataset.SelectorSLValue + else: + self._dataset.SelectorSLValue = value + + @property + def SelectorSSValue(self) -> Optional[List[int]]: + if "SelectorSSValue" in self._dataset: + return self._dataset.SelectorSSValue + return None + + @SelectorSSValue.setter + def SelectorSSValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSSValue" in self._dataset: + del self._dataset.SelectorSSValue + else: + self._dataset.SelectorSSValue = value + + @property + def SelectorUIValue(self) -> Optional[List[str]]: + if "SelectorUIValue" in self._dataset: + return self._dataset.SelectorUIValue + return None + + @SelectorUIValue.setter + def SelectorUIValue(self, value: Optional[List[str]]): + if value is None: + if "SelectorUIValue" in self._dataset: + del self._dataset.SelectorUIValue + else: + self._dataset.SelectorUIValue = value + + @property + def SelectorCodeSequenceValue(self) -> Optional[list]: + if "SelectorCodeSequenceValue" in self._dataset: + return self._dataset.SelectorCodeSequenceValue + return None + + @SelectorCodeSequenceValue.setter + def SelectorCodeSequenceValue(self, value: Optional[list]): + if value is None: + if "SelectorCodeSequenceValue" in self._dataset: + del self._dataset.SelectorCodeSequenceValue + else: + self._dataset.SelectorCodeSequenceValue = value + + @property + def SelectorOVValue(self) -> Optional[bytes]: + if "SelectorOVValue" in self._dataset: + return self._dataset.SelectorOVValue + return None + + @SelectorOVValue.setter + def SelectorOVValue(self, value: Optional[bytes]): + if value is None: + if "SelectorOVValue" in self._dataset: + del self._dataset.SelectorOVValue + else: + self._dataset.SelectorOVValue = value + + @property + def SelectorSVValue(self) -> Optional[List[int]]: + if "SelectorSVValue" in self._dataset: + return self._dataset.SelectorSVValue + return None + + @SelectorSVValue.setter + def SelectorSVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorSVValue" in self._dataset: + del self._dataset.SelectorSVValue + else: + self._dataset.SelectorSVValue = value + + @property + def SelectorUVValue(self) -> Optional[List[int]]: + if "SelectorUVValue" in self._dataset: + return self._dataset.SelectorUVValue + return None + + @SelectorUVValue.setter + def SelectorUVValue(self, value: Optional[List[int]]): + if value is None: + if "SelectorUVValue" in self._dataset: + del self._dataset.SelectorUVValue + else: + self._dataset.SelectorUVValue = value diff --git a/tdwii_plus_examples/domain_model/reconstruction_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/reconstruction_algorithm_sequence_item.py new file mode 100644 index 0000000..ce9ad39 --- /dev/null +++ b/tdwii_plus_examples/domain_model/reconstruction_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReconstructionAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/reconstruction_end_location_sequence_item.py b/tdwii_plus_examples/domain_model/reconstruction_end_location_sequence_item.py new file mode 100644 index 0000000..54fe4bf --- /dev/null +++ b/tdwii_plus_examples/domain_model/reconstruction_end_location_sequence_item.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReconstructionEndLocationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferenceBasisCodeSequence: List[CodeSequenceItem] = [] + self._ReferenceGeometryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferenceLocationLabel(self) -> Optional[str]: + if "ReferenceLocationLabel" in self._dataset: + return self._dataset.ReferenceLocationLabel + return None + + @ReferenceLocationLabel.setter + def ReferenceLocationLabel(self, value: Optional[str]): + if value is None: + if "ReferenceLocationLabel" in self._dataset: + del self._dataset.ReferenceLocationLabel + else: + self._dataset.ReferenceLocationLabel = value + + @property + def ReferenceLocationDescription(self) -> Optional[str]: + if "ReferenceLocationDescription" in self._dataset: + return self._dataset.ReferenceLocationDescription + return None + + @ReferenceLocationDescription.setter + def ReferenceLocationDescription(self, value: Optional[str]): + if value is None: + if "ReferenceLocationDescription" in self._dataset: + del self._dataset.ReferenceLocationDescription + else: + self._dataset.ReferenceLocationDescription = value + + @property + def ReferenceBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceBasisCodeSequence" in self._dataset: + if len(self._ReferenceBasisCodeSequence) == len(self._dataset.ReferenceBasisCodeSequence): + return self._ReferenceBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceBasisCodeSequence] + return None + + @ReferenceBasisCodeSequence.setter + def ReferenceBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceBasisCodeSequence = [] + if "ReferenceBasisCodeSequence" in self._dataset: + del self._dataset.ReferenceBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceBasisCodeSequence = value + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.clear() + self._dataset.ReferenceBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceBasisCodeSequence.append(item) + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.append(item.to_dataset()) + + @property + def ReferenceGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceGeometryCodeSequence" in self._dataset: + if len(self._ReferenceGeometryCodeSequence) == len(self._dataset.ReferenceGeometryCodeSequence): + return self._ReferenceGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceGeometryCodeSequence] + return None + + @ReferenceGeometryCodeSequence.setter + def ReferenceGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceGeometryCodeSequence = [] + if "ReferenceGeometryCodeSequence" in self._dataset: + del self._dataset.ReferenceGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceGeometryCodeSequence = value + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.clear() + self._dataset.ReferenceGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceGeometryCodeSequence.append(item) + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.append(item.to_dataset()) + + @property + def OffsetDistance(self) -> Optional[Decimal]: + if "OffsetDistance" in self._dataset: + return self._dataset.OffsetDistance + return None + + @OffsetDistance.setter + def OffsetDistance(self, value: Optional[Decimal]): + if value is None: + if "OffsetDistance" in self._dataset: + del self._dataset.OffsetDistance + else: + self._dataset.OffsetDistance = value + + @property + def OffsetDirection(self) -> Optional[str]: + if "OffsetDirection" in self._dataset: + return self._dataset.OffsetDirection + return None + + @OffsetDirection.setter + def OffsetDirection(self, value: Optional[str]): + if value is None: + if "OffsetDirection" in self._dataset: + del self._dataset.OffsetDirection + else: + self._dataset.OffsetDirection = value diff --git a/tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item.py b/tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item.py new file mode 100644 index 0000000..64816ac --- /dev/null +++ b/tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item.py @@ -0,0 +1,590 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .reconstruction_algorithm_sequence_item import ReconstructionAlgorithmSequenceItem +from .reconstruction_end_location_sequence_item import ( + ReconstructionEndLocationSequenceItem, +) +from .reconstruction_start_location_sequence_item import ( + ReconstructionStartLocationSequenceItem, +) +from .reconstruction_target_center_location_sequence_item import ( + ReconstructionTargetCenterLocationSequenceItem, +) + + +class ReconstructionProtocolElementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._RequestedSeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReconstructionStartLocationSequence: List[ReconstructionStartLocationSequenceItem] = [] + self._ReconstructionEndLocationSequence: List[ReconstructionEndLocationSequenceItem] = [] + self._ReconstructionAlgorithmSequence: List[ReconstructionAlgorithmSequenceItem] = [] + self._ReconstructionTargetCenterLocationSequence: List[ReconstructionTargetCenterLocationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ReconstructionDiameter(self) -> Optional[Decimal]: + if "ReconstructionDiameter" in self._dataset: + return self._dataset.ReconstructionDiameter + return None + + @ReconstructionDiameter.setter + def ReconstructionDiameter(self, value: Optional[Decimal]): + if value is None: + if "ReconstructionDiameter" in self._dataset: + del self._dataset.ReconstructionDiameter + else: + self._dataset.ReconstructionDiameter = value + + @property + def RequestedSeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + if len(self._RequestedSeriesDescriptionCodeSequence) == len(self._dataset.RequestedSeriesDescriptionCodeSequence): + return self._RequestedSeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestedSeriesDescriptionCodeSequence] + return None + + @RequestedSeriesDescriptionCodeSequence.setter + def RequestedSeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestedSeriesDescriptionCodeSequence = [] + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.RequestedSeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestedSeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestedSeriesDescriptionCodeSequence = value + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.clear() + self._dataset.RequestedSeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestedSeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestedSeriesDescriptionCodeSequence.append(item) + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ConvolutionKernelGroup(self) -> Optional[str]: + if "ConvolutionKernelGroup" in self._dataset: + return self._dataset.ConvolutionKernelGroup + return None + + @ConvolutionKernelGroup.setter + def ConvolutionKernelGroup(self, value: Optional[str]): + if value is None: + if "ConvolutionKernelGroup" in self._dataset: + del self._dataset.ConvolutionKernelGroup + else: + self._dataset.ConvolutionKernelGroup = value + + @property + def ReconstructionFieldOfView(self) -> Optional[List[float]]: + if "ReconstructionFieldOfView" in self._dataset: + return self._dataset.ReconstructionFieldOfView + return None + + @ReconstructionFieldOfView.setter + def ReconstructionFieldOfView(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionFieldOfView" in self._dataset: + del self._dataset.ReconstructionFieldOfView + else: + self._dataset.ReconstructionFieldOfView = value + + @property + def ReconstructionTargetCenterPatient(self) -> Optional[List[float]]: + if "ReconstructionTargetCenterPatient" in self._dataset: + return self._dataset.ReconstructionTargetCenterPatient + return None + + @ReconstructionTargetCenterPatient.setter + def ReconstructionTargetCenterPatient(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionTargetCenterPatient" in self._dataset: + del self._dataset.ReconstructionTargetCenterPatient + else: + self._dataset.ReconstructionTargetCenterPatient = value + + @property + def ReconstructionAngle(self) -> Optional[float]: + if "ReconstructionAngle" in self._dataset: + return self._dataset.ReconstructionAngle + return None + + @ReconstructionAngle.setter + def ReconstructionAngle(self, value: Optional[float]): + if value is None: + if "ReconstructionAngle" in self._dataset: + del self._dataset.ReconstructionAngle + else: + self._dataset.ReconstructionAngle = value + + @property + def ImageFilter(self) -> Optional[str]: + if "ImageFilter" in self._dataset: + return self._dataset.ImageFilter + return None + + @ImageFilter.setter + def ImageFilter(self, value: Optional[str]): + if value is None: + if "ImageFilter" in self._dataset: + del self._dataset.ImageFilter + else: + self._dataset.ImageFilter = value + + @property + def ReconstructionPixelSpacing(self) -> Optional[List[float]]: + if "ReconstructionPixelSpacing" in self._dataset: + return self._dataset.ReconstructionPixelSpacing + return None + + @ReconstructionPixelSpacing.setter + def ReconstructionPixelSpacing(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionPixelSpacing" in self._dataset: + del self._dataset.ReconstructionPixelSpacing + else: + self._dataset.ReconstructionPixelSpacing = value + + @property + def ProtocolElementNumber(self) -> Optional[int]: + if "ProtocolElementNumber" in self._dataset: + return self._dataset.ProtocolElementNumber + return None + + @ProtocolElementNumber.setter + def ProtocolElementNumber(self, value: Optional[int]): + if value is None: + if "ProtocolElementNumber" in self._dataset: + del self._dataset.ProtocolElementNumber + else: + self._dataset.ProtocolElementNumber = value + + @property + def ProtocolElementName(self) -> Optional[str]: + if "ProtocolElementName" in self._dataset: + return self._dataset.ProtocolElementName + return None + + @ProtocolElementName.setter + def ProtocolElementName(self, value: Optional[str]): + if value is None: + if "ProtocolElementName" in self._dataset: + del self._dataset.ProtocolElementName + else: + self._dataset.ProtocolElementName = value + + @property + def ProtocolElementCharacteristicsSummary(self) -> Optional[str]: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + return self._dataset.ProtocolElementCharacteristicsSummary + return None + + @ProtocolElementCharacteristicsSummary.setter + def ProtocolElementCharacteristicsSummary(self, value: Optional[str]): + if value is None: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + del self._dataset.ProtocolElementCharacteristicsSummary + else: + self._dataset.ProtocolElementCharacteristicsSummary = value + + @property + def ProtocolElementPurpose(self) -> Optional[str]: + if "ProtocolElementPurpose" in self._dataset: + return self._dataset.ProtocolElementPurpose + return None + + @ProtocolElementPurpose.setter + def ProtocolElementPurpose(self, value: Optional[str]): + if value is None: + if "ProtocolElementPurpose" in self._dataset: + del self._dataset.ProtocolElementPurpose + else: + self._dataset.ProtocolElementPurpose = value + + @property + def RequestedSeriesDescription(self) -> Optional[str]: + if "RequestedSeriesDescription" in self._dataset: + return self._dataset.RequestedSeriesDescription + return None + + @RequestedSeriesDescription.setter + def RequestedSeriesDescription(self, value: Optional[str]): + if value is None: + if "RequestedSeriesDescription" in self._dataset: + del self._dataset.RequestedSeriesDescription + else: + self._dataset.RequestedSeriesDescription = value + + @property + def SourceAcquisitionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + return self._dataset.SourceAcquisitionProtocolElementNumber + return None + + @SourceAcquisitionProtocolElementNumber.setter + def SourceAcquisitionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + del self._dataset.SourceAcquisitionProtocolElementNumber + else: + self._dataset.SourceAcquisitionProtocolElementNumber = value + + @property + def SourceAcquisitionBeamNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionBeamNumber" in self._dataset: + return self._dataset.SourceAcquisitionBeamNumber + return None + + @SourceAcquisitionBeamNumber.setter + def SourceAcquisitionBeamNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionBeamNumber" in self._dataset: + del self._dataset.SourceAcquisitionBeamNumber + else: + self._dataset.SourceAcquisitionBeamNumber = value + + @property + def ReconstructionStartLocationSequence(self) -> Optional[List[ReconstructionStartLocationSequenceItem]]: + if "ReconstructionStartLocationSequence" in self._dataset: + if len(self._ReconstructionStartLocationSequence) == len(self._dataset.ReconstructionStartLocationSequence): + return self._ReconstructionStartLocationSequence + else: + return [ReconstructionStartLocationSequenceItem(x) for x in self._dataset.ReconstructionStartLocationSequence] + return None + + @ReconstructionStartLocationSequence.setter + def ReconstructionStartLocationSequence(self, value: Optional[List[ReconstructionStartLocationSequenceItem]]): + if value is None: + self._ReconstructionStartLocationSequence = [] + if "ReconstructionStartLocationSequence" in self._dataset: + del self._dataset.ReconstructionStartLocationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReconstructionStartLocationSequenceItem) for item in value + ): + raise ValueError( + "ReconstructionStartLocationSequence must be a list of ReconstructionStartLocationSequenceItem objects" + ) + else: + self._ReconstructionStartLocationSequence = value + if "ReconstructionStartLocationSequence" not in self._dataset: + self._dataset.ReconstructionStartLocationSequence = pydicom.Sequence() + self._dataset.ReconstructionStartLocationSequence.clear() + self._dataset.ReconstructionStartLocationSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionStartLocation(self, item: ReconstructionStartLocationSequenceItem): + if not isinstance(item, ReconstructionStartLocationSequenceItem): + raise ValueError("Item must be an instance of ReconstructionStartLocationSequenceItem") + self._ReconstructionStartLocationSequence.append(item) + if "ReconstructionStartLocationSequence" not in self._dataset: + self._dataset.ReconstructionStartLocationSequence = pydicom.Sequence() + self._dataset.ReconstructionStartLocationSequence.append(item.to_dataset()) + + @property + def ReconstructionEndLocationSequence(self) -> Optional[List[ReconstructionEndLocationSequenceItem]]: + if "ReconstructionEndLocationSequence" in self._dataset: + if len(self._ReconstructionEndLocationSequence) == len(self._dataset.ReconstructionEndLocationSequence): + return self._ReconstructionEndLocationSequence + else: + return [ReconstructionEndLocationSequenceItem(x) for x in self._dataset.ReconstructionEndLocationSequence] + return None + + @ReconstructionEndLocationSequence.setter + def ReconstructionEndLocationSequence(self, value: Optional[List[ReconstructionEndLocationSequenceItem]]): + if value is None: + self._ReconstructionEndLocationSequence = [] + if "ReconstructionEndLocationSequence" in self._dataset: + del self._dataset.ReconstructionEndLocationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReconstructionEndLocationSequenceItem) for item in value): + raise ValueError( + "ReconstructionEndLocationSequence must be a list of ReconstructionEndLocationSequenceItem objects" + ) + else: + self._ReconstructionEndLocationSequence = value + if "ReconstructionEndLocationSequence" not in self._dataset: + self._dataset.ReconstructionEndLocationSequence = pydicom.Sequence() + self._dataset.ReconstructionEndLocationSequence.clear() + self._dataset.ReconstructionEndLocationSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionEndLocation(self, item: ReconstructionEndLocationSequenceItem): + if not isinstance(item, ReconstructionEndLocationSequenceItem): + raise ValueError("Item must be an instance of ReconstructionEndLocationSequenceItem") + self._ReconstructionEndLocationSequence.append(item) + if "ReconstructionEndLocationSequence" not in self._dataset: + self._dataset.ReconstructionEndLocationSequence = pydicom.Sequence() + self._dataset.ReconstructionEndLocationSequence.append(item.to_dataset()) + + @property + def ReconstructionAlgorithmSequence(self) -> Optional[List[ReconstructionAlgorithmSequenceItem]]: + if "ReconstructionAlgorithmSequence" in self._dataset: + if len(self._ReconstructionAlgorithmSequence) == len(self._dataset.ReconstructionAlgorithmSequence): + return self._ReconstructionAlgorithmSequence + else: + return [ReconstructionAlgorithmSequenceItem(x) for x in self._dataset.ReconstructionAlgorithmSequence] + return None + + @ReconstructionAlgorithmSequence.setter + def ReconstructionAlgorithmSequence(self, value: Optional[List[ReconstructionAlgorithmSequenceItem]]): + if value is None: + self._ReconstructionAlgorithmSequence = [] + if "ReconstructionAlgorithmSequence" in self._dataset: + del self._dataset.ReconstructionAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, ReconstructionAlgorithmSequenceItem) for item in value): + raise ValueError("ReconstructionAlgorithmSequence must be a list of ReconstructionAlgorithmSequenceItem objects") + else: + self._ReconstructionAlgorithmSequence = value + if "ReconstructionAlgorithmSequence" not in self._dataset: + self._dataset.ReconstructionAlgorithmSequence = pydicom.Sequence() + self._dataset.ReconstructionAlgorithmSequence.clear() + self._dataset.ReconstructionAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionAlgorithm(self, item: ReconstructionAlgorithmSequenceItem): + if not isinstance(item, ReconstructionAlgorithmSequenceItem): + raise ValueError("Item must be an instance of ReconstructionAlgorithmSequenceItem") + self._ReconstructionAlgorithmSequence.append(item) + if "ReconstructionAlgorithmSequence" not in self._dataset: + self._dataset.ReconstructionAlgorithmSequence = pydicom.Sequence() + self._dataset.ReconstructionAlgorithmSequence.append(item.to_dataset()) + + @property + def ReconstructionTargetCenterLocationSequence(self) -> Optional[List[ReconstructionTargetCenterLocationSequenceItem]]: + if "ReconstructionTargetCenterLocationSequence" in self._dataset: + if len(self._ReconstructionTargetCenterLocationSequence) == len( + self._dataset.ReconstructionTargetCenterLocationSequence + ): + return self._ReconstructionTargetCenterLocationSequence + else: + return [ + ReconstructionTargetCenterLocationSequenceItem(x) + for x in self._dataset.ReconstructionTargetCenterLocationSequence + ] + return None + + @ReconstructionTargetCenterLocationSequence.setter + def ReconstructionTargetCenterLocationSequence( + self, value: Optional[List[ReconstructionTargetCenterLocationSequenceItem]] + ): + if value is None: + self._ReconstructionTargetCenterLocationSequence = [] + if "ReconstructionTargetCenterLocationSequence" in self._dataset: + del self._dataset.ReconstructionTargetCenterLocationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReconstructionTargetCenterLocationSequenceItem) for item in value + ): + raise ValueError( + "ReconstructionTargetCenterLocationSequence must be a list of ReconstructionTargetCenterLocationSequenceItem" + " objects" + ) + else: + self._ReconstructionTargetCenterLocationSequence = value + if "ReconstructionTargetCenterLocationSequence" not in self._dataset: + self._dataset.ReconstructionTargetCenterLocationSequence = pydicom.Sequence() + self._dataset.ReconstructionTargetCenterLocationSequence.clear() + self._dataset.ReconstructionTargetCenterLocationSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionTargetCenterLocation(self, item: ReconstructionTargetCenterLocationSequenceItem): + if not isinstance(item, ReconstructionTargetCenterLocationSequenceItem): + raise ValueError("Item must be an instance of ReconstructionTargetCenterLocationSequenceItem") + self._ReconstructionTargetCenterLocationSequence.append(item) + if "ReconstructionTargetCenterLocationSequence" not in self._dataset: + self._dataset.ReconstructionTargetCenterLocationSequence = pydicom.Sequence() + self._dataset.ReconstructionTargetCenterLocationSequence.append(item.to_dataset()) + + @property + def ImageFilterDescription(self) -> Optional[str]: + if "ImageFilterDescription" in self._dataset: + return self._dataset.ImageFilterDescription + return None + + @ImageFilterDescription.setter + def ImageFilterDescription(self, value: Optional[str]): + if value is None: + if "ImageFilterDescription" in self._dataset: + del self._dataset.ImageFilterDescription + else: + self._dataset.ImageFilterDescription = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value diff --git a/tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item_1.py b/tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item_1.py new file mode 100644 index 0000000..5b69703 --- /dev/null +++ b/tdwii_plus_examples/domain_model/reconstruction_protocol_element_sequence_item_1.py @@ -0,0 +1,542 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .image_filter_details_sequence_item import ImageFilterDetailsSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) + + +class ReconstructionProtocolElementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._ImageFilterDetailsSequence: List[ImageFilterDetailsSequenceItem] = [] + self._RequestedSeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ReconstructionPipelineType(self) -> Optional[str]: + if "ReconstructionPipelineType" in self._dataset: + return self._dataset.ReconstructionPipelineType + return None + + @ReconstructionPipelineType.setter + def ReconstructionPipelineType(self, value: Optional[str]): + if value is None: + if "ReconstructionPipelineType" in self._dataset: + del self._dataset.ReconstructionPipelineType + else: + self._dataset.ReconstructionPipelineType = value + + @property + def ImageFilterDetailsSequence(self) -> Optional[List[ImageFilterDetailsSequenceItem]]: + if "ImageFilterDetailsSequence" in self._dataset: + if len(self._ImageFilterDetailsSequence) == len(self._dataset.ImageFilterDetailsSequence): + return self._ImageFilterDetailsSequence + else: + return [ImageFilterDetailsSequenceItem(x) for x in self._dataset.ImageFilterDetailsSequence] + return None + + @ImageFilterDetailsSequence.setter + def ImageFilterDetailsSequence(self, value: Optional[List[ImageFilterDetailsSequenceItem]]): + if value is None: + self._ImageFilterDetailsSequence = [] + if "ImageFilterDetailsSequence" in self._dataset: + del self._dataset.ImageFilterDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageFilterDetailsSequenceItem) for item in value): + raise ValueError("ImageFilterDetailsSequence must be a list of ImageFilterDetailsSequenceItem objects") + else: + self._ImageFilterDetailsSequence = value + if "ImageFilterDetailsSequence" not in self._dataset: + self._dataset.ImageFilterDetailsSequence = pydicom.Sequence() + self._dataset.ImageFilterDetailsSequence.clear() + self._dataset.ImageFilterDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_ImageFilterDetails(self, item: ImageFilterDetailsSequenceItem): + if not isinstance(item, ImageFilterDetailsSequenceItem): + raise ValueError("Item must be an instance of ImageFilterDetailsSequenceItem") + self._ImageFilterDetailsSequence.append(item) + if "ImageFilterDetailsSequence" not in self._dataset: + self._dataset.ImageFilterDetailsSequence = pydicom.Sequence() + self._dataset.ImageFilterDetailsSequence.append(item.to_dataset()) + + @property + def AppliedMaskSubtractionFlag(self) -> Optional[str]: + if "AppliedMaskSubtractionFlag" in self._dataset: + return self._dataset.AppliedMaskSubtractionFlag + return None + + @AppliedMaskSubtractionFlag.setter + def AppliedMaskSubtractionFlag(self, value: Optional[str]): + if value is None: + if "AppliedMaskSubtractionFlag" in self._dataset: + del self._dataset.AppliedMaskSubtractionFlag + else: + self._dataset.AppliedMaskSubtractionFlag = value + + @property + def RequestedSeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + if len(self._RequestedSeriesDescriptionCodeSequence) == len(self._dataset.RequestedSeriesDescriptionCodeSequence): + return self._RequestedSeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestedSeriesDescriptionCodeSequence] + return None + + @RequestedSeriesDescriptionCodeSequence.setter + def RequestedSeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestedSeriesDescriptionCodeSequence = [] + if "RequestedSeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.RequestedSeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestedSeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestedSeriesDescriptionCodeSequence = value + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.clear() + self._dataset.RequestedSeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestedSeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestedSeriesDescriptionCodeSequence.append(item) + if "RequestedSeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.RequestedSeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.RequestedSeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReconstructionFieldOfView(self) -> Optional[List[float]]: + if "ReconstructionFieldOfView" in self._dataset: + return self._dataset.ReconstructionFieldOfView + return None + + @ReconstructionFieldOfView.setter + def ReconstructionFieldOfView(self, value: Optional[List[float]]): + if value is None: + if "ReconstructionFieldOfView" in self._dataset: + del self._dataset.ReconstructionFieldOfView + else: + self._dataset.ReconstructionFieldOfView = value + + @property + def AlgorithmType(self) -> Optional[str]: + if "AlgorithmType" in self._dataset: + return self._dataset.AlgorithmType + return None + + @AlgorithmType.setter + def AlgorithmType(self, value: Optional[str]): + if value is None: + if "AlgorithmType" in self._dataset: + del self._dataset.AlgorithmType + else: + self._dataset.AlgorithmType = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ProtocolElementNumber(self) -> Optional[int]: + if "ProtocolElementNumber" in self._dataset: + return self._dataset.ProtocolElementNumber + return None + + @ProtocolElementNumber.setter + def ProtocolElementNumber(self, value: Optional[int]): + if value is None: + if "ProtocolElementNumber" in self._dataset: + del self._dataset.ProtocolElementNumber + else: + self._dataset.ProtocolElementNumber = value + + @property + def ProtocolElementName(self) -> Optional[str]: + if "ProtocolElementName" in self._dataset: + return self._dataset.ProtocolElementName + return None + + @ProtocolElementName.setter + def ProtocolElementName(self, value: Optional[str]): + if value is None: + if "ProtocolElementName" in self._dataset: + del self._dataset.ProtocolElementName + else: + self._dataset.ProtocolElementName = value + + @property + def ProtocolElementCharacteristicsSummary(self) -> Optional[str]: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + return self._dataset.ProtocolElementCharacteristicsSummary + return None + + @ProtocolElementCharacteristicsSummary.setter + def ProtocolElementCharacteristicsSummary(self, value: Optional[str]): + if value is None: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + del self._dataset.ProtocolElementCharacteristicsSummary + else: + self._dataset.ProtocolElementCharacteristicsSummary = value + + @property + def ProtocolElementPurpose(self) -> Optional[str]: + if "ProtocolElementPurpose" in self._dataset: + return self._dataset.ProtocolElementPurpose + return None + + @ProtocolElementPurpose.setter + def ProtocolElementPurpose(self, value: Optional[str]): + if value is None: + if "ProtocolElementPurpose" in self._dataset: + del self._dataset.ProtocolElementPurpose + else: + self._dataset.ProtocolElementPurpose = value + + @property + def RequestedSeriesDescription(self) -> Optional[str]: + if "RequestedSeriesDescription" in self._dataset: + return self._dataset.RequestedSeriesDescription + return None + + @RequestedSeriesDescription.setter + def RequestedSeriesDescription(self, value: Optional[str]): + if value is None: + if "RequestedSeriesDescription" in self._dataset: + del self._dataset.RequestedSeriesDescription + else: + self._dataset.RequestedSeriesDescription = value + + @property + def SourceAcquisitionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + return self._dataset.SourceAcquisitionProtocolElementNumber + return None + + @SourceAcquisitionProtocolElementNumber.setter + def SourceAcquisitionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + del self._dataset.SourceAcquisitionProtocolElementNumber + else: + self._dataset.SourceAcquisitionProtocolElementNumber = value + + @property + def SourceAcquisitionBeamNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionBeamNumber" in self._dataset: + return self._dataset.SourceAcquisitionBeamNumber + return None + + @SourceAcquisitionBeamNumber.setter + def SourceAcquisitionBeamNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionBeamNumber" in self._dataset: + del self._dataset.SourceAcquisitionBeamNumber + else: + self._dataset.SourceAcquisitionBeamNumber = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def MaskVisibilityPercentage(self) -> Optional[float]: + if "MaskVisibilityPercentage" in self._dataset: + return self._dataset.MaskVisibilityPercentage + return None + + @MaskVisibilityPercentage.setter + def MaskVisibilityPercentage(self, value: Optional[float]): + if value is None: + if "MaskVisibilityPercentage" in self._dataset: + del self._dataset.MaskVisibilityPercentage + else: + self._dataset.MaskVisibilityPercentage = value + + @property + def NumberOfSlices(self) -> Optional[int]: + if "NumberOfSlices" in self._dataset: + return self._dataset.NumberOfSlices + return None + + @NumberOfSlices.setter + def NumberOfSlices(self, value: Optional[int]): + if value is None: + if "NumberOfSlices" in self._dataset: + del self._dataset.NumberOfSlices + else: + self._dataset.NumberOfSlices = value + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value diff --git a/tdwii_plus_examples/domain_model/reconstruction_start_location_sequence_item.py b/tdwii_plus_examples/domain_model/reconstruction_start_location_sequence_item.py new file mode 100644 index 0000000..2d2b0ea --- /dev/null +++ b/tdwii_plus_examples/domain_model/reconstruction_start_location_sequence_item.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReconstructionStartLocationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferenceBasisCodeSequence: List[CodeSequenceItem] = [] + self._ReferenceGeometryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferenceLocationLabel(self) -> Optional[str]: + if "ReferenceLocationLabel" in self._dataset: + return self._dataset.ReferenceLocationLabel + return None + + @ReferenceLocationLabel.setter + def ReferenceLocationLabel(self, value: Optional[str]): + if value is None: + if "ReferenceLocationLabel" in self._dataset: + del self._dataset.ReferenceLocationLabel + else: + self._dataset.ReferenceLocationLabel = value + + @property + def ReferenceLocationDescription(self) -> Optional[str]: + if "ReferenceLocationDescription" in self._dataset: + return self._dataset.ReferenceLocationDescription + return None + + @ReferenceLocationDescription.setter + def ReferenceLocationDescription(self, value: Optional[str]): + if value is None: + if "ReferenceLocationDescription" in self._dataset: + del self._dataset.ReferenceLocationDescription + else: + self._dataset.ReferenceLocationDescription = value + + @property + def ReferenceBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceBasisCodeSequence" in self._dataset: + if len(self._ReferenceBasisCodeSequence) == len(self._dataset.ReferenceBasisCodeSequence): + return self._ReferenceBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceBasisCodeSequence] + return None + + @ReferenceBasisCodeSequence.setter + def ReferenceBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceBasisCodeSequence = [] + if "ReferenceBasisCodeSequence" in self._dataset: + del self._dataset.ReferenceBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceBasisCodeSequence = value + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.clear() + self._dataset.ReferenceBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceBasisCodeSequence.append(item) + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.append(item.to_dataset()) + + @property + def ReferenceGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceGeometryCodeSequence" in self._dataset: + if len(self._ReferenceGeometryCodeSequence) == len(self._dataset.ReferenceGeometryCodeSequence): + return self._ReferenceGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceGeometryCodeSequence] + return None + + @ReferenceGeometryCodeSequence.setter + def ReferenceGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceGeometryCodeSequence = [] + if "ReferenceGeometryCodeSequence" in self._dataset: + del self._dataset.ReferenceGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceGeometryCodeSequence = value + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.clear() + self._dataset.ReferenceGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceGeometryCodeSequence.append(item) + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.append(item.to_dataset()) + + @property + def OffsetDistance(self) -> Optional[Decimal]: + if "OffsetDistance" in self._dataset: + return self._dataset.OffsetDistance + return None + + @OffsetDistance.setter + def OffsetDistance(self, value: Optional[Decimal]): + if value is None: + if "OffsetDistance" in self._dataset: + del self._dataset.OffsetDistance + else: + self._dataset.OffsetDistance = value + + @property + def OffsetDirection(self) -> Optional[str]: + if "OffsetDirection" in self._dataset: + return self._dataset.OffsetDirection + return None + + @OffsetDirection.setter + def OffsetDirection(self, value: Optional[str]): + if value is None: + if "OffsetDirection" in self._dataset: + del self._dataset.OffsetDirection + else: + self._dataset.OffsetDirection = value diff --git a/tdwii_plus_examples/domain_model/reconstruction_target_center_location_sequence_item.py b/tdwii_plus_examples/domain_model/reconstruction_target_center_location_sequence_item.py new file mode 100644 index 0000000..adcc1d6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/reconstruction_target_center_location_sequence_item.py @@ -0,0 +1,136 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReconstructionTargetCenterLocationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferenceBasisCodeSequence: List[CodeSequenceItem] = [] + self._ReferenceGeometryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferenceLocationLabel(self) -> Optional[str]: + if "ReferenceLocationLabel" in self._dataset: + return self._dataset.ReferenceLocationLabel + return None + + @ReferenceLocationLabel.setter + def ReferenceLocationLabel(self, value: Optional[str]): + if value is None: + if "ReferenceLocationLabel" in self._dataset: + del self._dataset.ReferenceLocationLabel + else: + self._dataset.ReferenceLocationLabel = value + + @property + def ReferenceLocationDescription(self) -> Optional[str]: + if "ReferenceLocationDescription" in self._dataset: + return self._dataset.ReferenceLocationDescription + return None + + @ReferenceLocationDescription.setter + def ReferenceLocationDescription(self, value: Optional[str]): + if value is None: + if "ReferenceLocationDescription" in self._dataset: + del self._dataset.ReferenceLocationDescription + else: + self._dataset.ReferenceLocationDescription = value + + @property + def ReferenceBasisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceBasisCodeSequence" in self._dataset: + if len(self._ReferenceBasisCodeSequence) == len(self._dataset.ReferenceBasisCodeSequence): + return self._ReferenceBasisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceBasisCodeSequence] + return None + + @ReferenceBasisCodeSequence.setter + def ReferenceBasisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceBasisCodeSequence = [] + if "ReferenceBasisCodeSequence" in self._dataset: + del self._dataset.ReferenceBasisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceBasisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceBasisCodeSequence = value + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.clear() + self._dataset.ReferenceBasisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceBasisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceBasisCodeSequence.append(item) + if "ReferenceBasisCodeSequence" not in self._dataset: + self._dataset.ReferenceBasisCodeSequence = pydicom.Sequence() + self._dataset.ReferenceBasisCodeSequence.append(item.to_dataset()) + + @property + def ReferenceGeometryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReferenceGeometryCodeSequence" in self._dataset: + if len(self._ReferenceGeometryCodeSequence) == len(self._dataset.ReferenceGeometryCodeSequence): + return self._ReferenceGeometryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReferenceGeometryCodeSequence] + return None + + @ReferenceGeometryCodeSequence.setter + def ReferenceGeometryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReferenceGeometryCodeSequence = [] + if "ReferenceGeometryCodeSequence" in self._dataset: + del self._dataset.ReferenceGeometryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReferenceGeometryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReferenceGeometryCodeSequence = value + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.clear() + self._dataset.ReferenceGeometryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReferenceGeometryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReferenceGeometryCodeSequence.append(item) + if "ReferenceGeometryCodeSequence" not in self._dataset: + self._dataset.ReferenceGeometryCodeSequence = pydicom.Sequence() + self._dataset.ReferenceGeometryCodeSequence.append(item.to_dataset()) + + @property + def OffsetDistance(self) -> Optional[Decimal]: + if "OffsetDistance" in self._dataset: + return self._dataset.OffsetDistance + return None + + @OffsetDistance.setter + def OffsetDistance(self, value: Optional[Decimal]): + if value is None: + if "OffsetDistance" in self._dataset: + del self._dataset.OffsetDistance + else: + self._dataset.OffsetDistance = value + + @property + def OffsetDirection(self) -> Optional[str]: + if "OffsetDirection" in self._dataset: + return self._dataset.OffsetDirection + return None + + @OffsetDirection.setter + def OffsetDirection(self, value: Optional[str]): + if value is None: + if "OffsetDirection" in self._dataset: + del self._dataset.OffsetDirection + else: + self._dataset.OffsetDirection = value diff --git a/tdwii_plus_examples/domain_model/recorded_block_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_block_sequence_item.py new file mode 100644 index 0000000..81b0f01 --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_block_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedBlockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BlockTrayID(self) -> Optional[str]: + if "BlockTrayID" in self._dataset: + return self._dataset.BlockTrayID + return None + + @BlockTrayID.setter + def BlockTrayID(self, value: Optional[str]): + if value is None: + if "BlockTrayID" in self._dataset: + del self._dataset.BlockTrayID + else: + self._dataset.BlockTrayID = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockName(self) -> Optional[str]: + if "BlockName" in self._dataset: + return self._dataset.BlockName + return None + + @BlockName.setter + def BlockName(self, value: Optional[str]): + if value is None: + if "BlockName" in self._dataset: + del self._dataset.BlockName + else: + self._dataset.BlockName = value + + @property + def TrayAccessoryCode(self) -> Optional[str]: + if "TrayAccessoryCode" in self._dataset: + return self._dataset.TrayAccessoryCode + return None + + @TrayAccessoryCode.setter + def TrayAccessoryCode(self, value: Optional[str]): + if value is None: + if "TrayAccessoryCode" in self._dataset: + del self._dataset.TrayAccessoryCode + else: + self._dataset.TrayAccessoryCode = value + + @property + def ReferencedBlockNumber(self) -> Optional[int]: + if "ReferencedBlockNumber" in self._dataset: + return self._dataset.ReferencedBlockNumber + return None + + @ReferencedBlockNumber.setter + def ReferencedBlockNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBlockNumber" in self._dataset: + del self._dataset.ReferencedBlockNumber + else: + self._dataset.ReferencedBlockNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_block_sequence_item_1.py b/tdwii_plus_examples/domain_model/recorded_block_sequence_item_1.py new file mode 100644 index 0000000..b39c86d --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_block_sequence_item_1.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .recorded_block_slab_sequence_item import RecordedBlockSlabSequenceItem + + +class RecordedBlockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RecordedBlockSlabSequence: List[RecordedBlockSlabSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecordedBlockSlabSequence(self) -> Optional[List[RecordedBlockSlabSequenceItem]]: + if "RecordedBlockSlabSequence" in self._dataset: + if len(self._RecordedBlockSlabSequence) == len(self._dataset.RecordedBlockSlabSequence): + return self._RecordedBlockSlabSequence + else: + return [RecordedBlockSlabSequenceItem(x) for x in self._dataset.RecordedBlockSlabSequence] + return None + + @RecordedBlockSlabSequence.setter + def RecordedBlockSlabSequence(self, value: Optional[List[RecordedBlockSlabSequenceItem]]): + if value is None: + self._RecordedBlockSlabSequence = [] + if "RecordedBlockSlabSequence" in self._dataset: + del self._dataset.RecordedBlockSlabSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedBlockSlabSequenceItem) for item in value): + raise ValueError("RecordedBlockSlabSequence must be a list of RecordedBlockSlabSequenceItem objects") + else: + self._RecordedBlockSlabSequence = value + if "RecordedBlockSlabSequence" not in self._dataset: + self._dataset.RecordedBlockSlabSequence = pydicom.Sequence() + self._dataset.RecordedBlockSlabSequence.clear() + self._dataset.RecordedBlockSlabSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedBlockSlab(self, item: RecordedBlockSlabSequenceItem): + if not isinstance(item, RecordedBlockSlabSequenceItem): + raise ValueError("Item must be an instance of RecordedBlockSlabSequenceItem") + self._RecordedBlockSlabSequence.append(item) + if "RecordedBlockSlabSequence" not in self._dataset: + self._dataset.RecordedBlockSlabSequence = pydicom.Sequence() + self._dataset.RecordedBlockSlabSequence.append(item.to_dataset()) + + @property + def BlockTrayID(self) -> Optional[str]: + if "BlockTrayID" in self._dataset: + return self._dataset.BlockTrayID + return None + + @BlockTrayID.setter + def BlockTrayID(self, value: Optional[str]): + if value is None: + if "BlockTrayID" in self._dataset: + del self._dataset.BlockTrayID + else: + self._dataset.BlockTrayID = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockName(self) -> Optional[str]: + if "BlockName" in self._dataset: + return self._dataset.BlockName + return None + + @BlockName.setter + def BlockName(self, value: Optional[str]): + if value is None: + if "BlockName" in self._dataset: + del self._dataset.BlockName + else: + self._dataset.BlockName = value + + @property + def NumberOfBlockSlabItems(self) -> Optional[int]: + if "NumberOfBlockSlabItems" in self._dataset: + return self._dataset.NumberOfBlockSlabItems + return None + + @NumberOfBlockSlabItems.setter + def NumberOfBlockSlabItems(self, value: Optional[int]): + if value is None: + if "NumberOfBlockSlabItems" in self._dataset: + del self._dataset.NumberOfBlockSlabItems + else: + self._dataset.NumberOfBlockSlabItems = value + + @property + def ReferencedBlockNumber(self) -> Optional[int]: + if "ReferencedBlockNumber" in self._dataset: + return self._dataset.ReferencedBlockNumber + return None + + @ReferencedBlockNumber.setter + def ReferencedBlockNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBlockNumber" in self._dataset: + del self._dataset.ReferencedBlockNumber + else: + self._dataset.ReferencedBlockNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_block_slab_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_block_slab_sequence_item.py new file mode 100644 index 0000000..b37a02e --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_block_slab_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedBlockSlabSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def BlockSlabNumber(self) -> Optional[int]: + if "BlockSlabNumber" in self._dataset: + return self._dataset.BlockSlabNumber + return None + + @BlockSlabNumber.setter + def BlockSlabNumber(self, value: Optional[int]): + if value is None: + if "BlockSlabNumber" in self._dataset: + del self._dataset.BlockSlabNumber + else: + self._dataset.BlockSlabNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_brachy_accessory_device_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_brachy_accessory_device_sequence_item.py new file mode 100644 index 0000000..6ac7abe --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_brachy_accessory_device_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedBrachyAccessoryDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedBrachyAccessoryDeviceNumber(self) -> Optional[int]: + if "ReferencedBrachyAccessoryDeviceNumber" in self._dataset: + return self._dataset.ReferencedBrachyAccessoryDeviceNumber + return None + + @ReferencedBrachyAccessoryDeviceNumber.setter + def ReferencedBrachyAccessoryDeviceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBrachyAccessoryDeviceNumber" in self._dataset: + del self._dataset.ReferencedBrachyAccessoryDeviceNumber + else: + self._dataset.ReferencedBrachyAccessoryDeviceNumber = value + + @property + def BrachyAccessoryDeviceID(self) -> Optional[str]: + if "BrachyAccessoryDeviceID" in self._dataset: + return self._dataset.BrachyAccessoryDeviceID + return None + + @BrachyAccessoryDeviceID.setter + def BrachyAccessoryDeviceID(self, value: Optional[str]): + if value is None: + if "BrachyAccessoryDeviceID" in self._dataset: + del self._dataset.BrachyAccessoryDeviceID + else: + self._dataset.BrachyAccessoryDeviceID = value + + @property + def BrachyAccessoryDeviceType(self) -> Optional[str]: + if "BrachyAccessoryDeviceType" in self._dataset: + return self._dataset.BrachyAccessoryDeviceType + return None + + @BrachyAccessoryDeviceType.setter + def BrachyAccessoryDeviceType(self, value: Optional[str]): + if value is None: + if "BrachyAccessoryDeviceType" in self._dataset: + del self._dataset.BrachyAccessoryDeviceType + else: + self._dataset.BrachyAccessoryDeviceType = value + + @property + def BrachyAccessoryDeviceName(self) -> Optional[str]: + if "BrachyAccessoryDeviceName" in self._dataset: + return self._dataset.BrachyAccessoryDeviceName + return None + + @BrachyAccessoryDeviceName.setter + def BrachyAccessoryDeviceName(self, value: Optional[str]): + if value is None: + if "BrachyAccessoryDeviceName" in self._dataset: + del self._dataset.BrachyAccessoryDeviceName + else: + self._dataset.BrachyAccessoryDeviceName = value diff --git a/tdwii_plus_examples/domain_model/recorded_channel_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_channel_sequence_item.py new file mode 100644 index 0000000..f1ccf7d --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_channel_sequence_item.py @@ -0,0 +1,558 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .brachy_control_point_delivered_sequence_item import ( + BrachyControlPointDeliveredSequenceItem, +) +from .pulse_specific_brachy_control_point_delivered_sequence_item import ( + PulseSpecificBrachyControlPointDeliveredSequenceItem, +) +from .recorded_channel_shield_sequence_item import RecordedChannelShieldSequenceItem +from .recorded_source_applicator_sequence_item import ( + RecordedSourceApplicatorSequenceItem, +) +from .referenced_calculated_dose_reference_sequence_item import ( + ReferencedCalculatedDoseReferenceSequenceItem, +) +from .referenced_measured_dose_reference_sequence_item import ( + ReferencedMeasuredDoseReferenceSequenceItem, +) + + +class RecordedChannelSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedMeasuredDoseReferenceSequence: List[ReferencedMeasuredDoseReferenceSequenceItem] = [] + self._ReferencedCalculatedDoseReferenceSequence: List[ReferencedCalculatedDoseReferenceSequenceItem] = [] + self._RecordedSourceApplicatorSequence: List[RecordedSourceApplicatorSequenceItem] = [] + self._RecordedChannelShieldSequence: List[RecordedChannelShieldSequenceItem] = [] + self._BrachyControlPointDeliveredSequence: List[BrachyControlPointDeliveredSequenceItem] = [] + self._PulseSpecificBrachyControlPointDeliveredSequence: List[PulseSpecificBrachyControlPointDeliveredSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedChannelNumber(self) -> Optional[int]: + if "ReferencedChannelNumber" in self._dataset: + return self._dataset.ReferencedChannelNumber + return None + + @ReferencedChannelNumber.setter + def ReferencedChannelNumber(self, value: Optional[int]): + if value is None: + if "ReferencedChannelNumber" in self._dataset: + del self._dataset.ReferencedChannelNumber + else: + self._dataset.ReferencedChannelNumber = value + + @property + def ReferencedMeasuredDoseReferenceSequence(self) -> Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]: + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + if len(self._ReferencedMeasuredDoseReferenceSequence) == len( + self._dataset.ReferencedMeasuredDoseReferenceSequence + ): + return self._ReferencedMeasuredDoseReferenceSequence + else: + return [ + ReferencedMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedMeasuredDoseReferenceSequence + ] + return None + + @ReferencedMeasuredDoseReferenceSequence.setter + def ReferencedMeasuredDoseReferenceSequence(self, value: Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedMeasuredDoseReferenceSequence = [] + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedMeasuredDoseReferenceSequence must be a list of ReferencedMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._ReferencedMeasuredDoseReferenceSequence = value + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.clear() + self._dataset.ReferencedMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedMeasuredDoseReference(self, item: ReferencedMeasuredDoseReferenceSequenceItem): + if not isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedMeasuredDoseReferenceSequenceItem") + self._ReferencedMeasuredDoseReferenceSequence.append(item) + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedCalculatedDoseReferenceSequence(self) -> Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]: + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedCalculatedDoseReferenceSequence) == len( + self._dataset.ReferencedCalculatedDoseReferenceSequence + ): + return self._ReferencedCalculatedDoseReferenceSequence + else: + return [ + ReferencedCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedCalculatedDoseReferenceSequence + ] + return None + + @ReferencedCalculatedDoseReferenceSequence.setter + def ReferencedCalculatedDoseReferenceSequence(self, value: Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedCalculatedDoseReferenceSequence = [] + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedCalculatedDoseReferenceSequence must be a list of ReferencedCalculatedDoseReferenceSequenceItem" + " objects" + ) + else: + self._ReferencedCalculatedDoseReferenceSequence = value + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.clear() + self._dataset.ReferencedCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedCalculatedDoseReference(self, item: ReferencedCalculatedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedCalculatedDoseReferenceSequenceItem") + self._ReferencedCalculatedDoseReferenceSequence.append(item) + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def SpecifiedChannelTotalTime(self) -> Optional[Decimal]: + if "SpecifiedChannelTotalTime" in self._dataset: + return self._dataset.SpecifiedChannelTotalTime + return None + + @SpecifiedChannelTotalTime.setter + def SpecifiedChannelTotalTime(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedChannelTotalTime" in self._dataset: + del self._dataset.SpecifiedChannelTotalTime + else: + self._dataset.SpecifiedChannelTotalTime = value + + @property + def DeliveredChannelTotalTime(self) -> Optional[Decimal]: + if "DeliveredChannelTotalTime" in self._dataset: + return self._dataset.DeliveredChannelTotalTime + return None + + @DeliveredChannelTotalTime.setter + def DeliveredChannelTotalTime(self, value: Optional[Decimal]): + if value is None: + if "DeliveredChannelTotalTime" in self._dataset: + del self._dataset.DeliveredChannelTotalTime + else: + self._dataset.DeliveredChannelTotalTime = value + + @property + def SpecifiedNumberOfPulses(self) -> Optional[int]: + if "SpecifiedNumberOfPulses" in self._dataset: + return self._dataset.SpecifiedNumberOfPulses + return None + + @SpecifiedNumberOfPulses.setter + def SpecifiedNumberOfPulses(self, value: Optional[int]): + if value is None: + if "SpecifiedNumberOfPulses" in self._dataset: + del self._dataset.SpecifiedNumberOfPulses + else: + self._dataset.SpecifiedNumberOfPulses = value + + @property + def DeliveredNumberOfPulses(self) -> Optional[int]: + if "DeliveredNumberOfPulses" in self._dataset: + return self._dataset.DeliveredNumberOfPulses + return None + + @DeliveredNumberOfPulses.setter + def DeliveredNumberOfPulses(self, value: Optional[int]): + if value is None: + if "DeliveredNumberOfPulses" in self._dataset: + del self._dataset.DeliveredNumberOfPulses + else: + self._dataset.DeliveredNumberOfPulses = value + + @property + def SpecifiedPulseRepetitionInterval(self) -> Optional[Decimal]: + if "SpecifiedPulseRepetitionInterval" in self._dataset: + return self._dataset.SpecifiedPulseRepetitionInterval + return None + + @SpecifiedPulseRepetitionInterval.setter + def SpecifiedPulseRepetitionInterval(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedPulseRepetitionInterval" in self._dataset: + del self._dataset.SpecifiedPulseRepetitionInterval + else: + self._dataset.SpecifiedPulseRepetitionInterval = value + + @property + def DeliveredPulseRepetitionInterval(self) -> Optional[Decimal]: + if "DeliveredPulseRepetitionInterval" in self._dataset: + return self._dataset.DeliveredPulseRepetitionInterval + return None + + @DeliveredPulseRepetitionInterval.setter + def DeliveredPulseRepetitionInterval(self, value: Optional[Decimal]): + if value is None: + if "DeliveredPulseRepetitionInterval" in self._dataset: + del self._dataset.DeliveredPulseRepetitionInterval + else: + self._dataset.DeliveredPulseRepetitionInterval = value + + @property + def RecordedSourceApplicatorSequence(self) -> Optional[List[RecordedSourceApplicatorSequenceItem]]: + if "RecordedSourceApplicatorSequence" in self._dataset: + if len(self._RecordedSourceApplicatorSequence) == len(self._dataset.RecordedSourceApplicatorSequence): + return self._RecordedSourceApplicatorSequence + else: + return [RecordedSourceApplicatorSequenceItem(x) for x in self._dataset.RecordedSourceApplicatorSequence] + return None + + @RecordedSourceApplicatorSequence.setter + def RecordedSourceApplicatorSequence(self, value: Optional[List[RecordedSourceApplicatorSequenceItem]]): + if value is None: + self._RecordedSourceApplicatorSequence = [] + if "RecordedSourceApplicatorSequence" in self._dataset: + del self._dataset.RecordedSourceApplicatorSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedSourceApplicatorSequenceItem) for item in value): + raise ValueError("RecordedSourceApplicatorSequence must be a list of RecordedSourceApplicatorSequenceItem objects") + else: + self._RecordedSourceApplicatorSequence = value + if "RecordedSourceApplicatorSequence" not in self._dataset: + self._dataset.RecordedSourceApplicatorSequence = pydicom.Sequence() + self._dataset.RecordedSourceApplicatorSequence.clear() + self._dataset.RecordedSourceApplicatorSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedSourceApplicator(self, item: RecordedSourceApplicatorSequenceItem): + if not isinstance(item, RecordedSourceApplicatorSequenceItem): + raise ValueError("Item must be an instance of RecordedSourceApplicatorSequenceItem") + self._RecordedSourceApplicatorSequence.append(item) + if "RecordedSourceApplicatorSequence" not in self._dataset: + self._dataset.RecordedSourceApplicatorSequence = pydicom.Sequence() + self._dataset.RecordedSourceApplicatorSequence.append(item.to_dataset()) + + @property + def RecordedChannelShieldSequence(self) -> Optional[List[RecordedChannelShieldSequenceItem]]: + if "RecordedChannelShieldSequence" in self._dataset: + if len(self._RecordedChannelShieldSequence) == len(self._dataset.RecordedChannelShieldSequence): + return self._RecordedChannelShieldSequence + else: + return [RecordedChannelShieldSequenceItem(x) for x in self._dataset.RecordedChannelShieldSequence] + return None + + @RecordedChannelShieldSequence.setter + def RecordedChannelShieldSequence(self, value: Optional[List[RecordedChannelShieldSequenceItem]]): + if value is None: + self._RecordedChannelShieldSequence = [] + if "RecordedChannelShieldSequence" in self._dataset: + del self._dataset.RecordedChannelShieldSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedChannelShieldSequenceItem) for item in value): + raise ValueError("RecordedChannelShieldSequence must be a list of RecordedChannelShieldSequenceItem objects") + else: + self._RecordedChannelShieldSequence = value + if "RecordedChannelShieldSequence" not in self._dataset: + self._dataset.RecordedChannelShieldSequence = pydicom.Sequence() + self._dataset.RecordedChannelShieldSequence.clear() + self._dataset.RecordedChannelShieldSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedChannelShield(self, item: RecordedChannelShieldSequenceItem): + if not isinstance(item, RecordedChannelShieldSequenceItem): + raise ValueError("Item must be an instance of RecordedChannelShieldSequenceItem") + self._RecordedChannelShieldSequence.append(item) + if "RecordedChannelShieldSequence" not in self._dataset: + self._dataset.RecordedChannelShieldSequence = pydicom.Sequence() + self._dataset.RecordedChannelShieldSequence.append(item.to_dataset()) + + @property + def BrachyControlPointDeliveredSequence(self) -> Optional[List[BrachyControlPointDeliveredSequenceItem]]: + if "BrachyControlPointDeliveredSequence" in self._dataset: + if len(self._BrachyControlPointDeliveredSequence) == len(self._dataset.BrachyControlPointDeliveredSequence): + return self._BrachyControlPointDeliveredSequence + else: + return [BrachyControlPointDeliveredSequenceItem(x) for x in self._dataset.BrachyControlPointDeliveredSequence] + return None + + @BrachyControlPointDeliveredSequence.setter + def BrachyControlPointDeliveredSequence(self, value: Optional[List[BrachyControlPointDeliveredSequenceItem]]): + if value is None: + self._BrachyControlPointDeliveredSequence = [] + if "BrachyControlPointDeliveredSequence" in self._dataset: + del self._dataset.BrachyControlPointDeliveredSequence + elif not isinstance(value, list) or not all( + isinstance(item, BrachyControlPointDeliveredSequenceItem) for item in value + ): + raise ValueError( + "BrachyControlPointDeliveredSequence must be a list of BrachyControlPointDeliveredSequenceItem objects" + ) + else: + self._BrachyControlPointDeliveredSequence = value + if "BrachyControlPointDeliveredSequence" not in self._dataset: + self._dataset.BrachyControlPointDeliveredSequence = pydicom.Sequence() + self._dataset.BrachyControlPointDeliveredSequence.clear() + self._dataset.BrachyControlPointDeliveredSequence.extend([item.to_dataset() for item in value]) + + def add_BrachyControlPointDelivered(self, item: BrachyControlPointDeliveredSequenceItem): + if not isinstance(item, BrachyControlPointDeliveredSequenceItem): + raise ValueError("Item must be an instance of BrachyControlPointDeliveredSequenceItem") + self._BrachyControlPointDeliveredSequence.append(item) + if "BrachyControlPointDeliveredSequence" not in self._dataset: + self._dataset.BrachyControlPointDeliveredSequence = pydicom.Sequence() + self._dataset.BrachyControlPointDeliveredSequence.append(item.to_dataset()) + + @property + def SafePositionExitDate(self) -> Optional[str]: + if "SafePositionExitDate" in self._dataset: + return self._dataset.SafePositionExitDate + return None + + @SafePositionExitDate.setter + def SafePositionExitDate(self, value: Optional[str]): + if value is None: + if "SafePositionExitDate" in self._dataset: + del self._dataset.SafePositionExitDate + else: + self._dataset.SafePositionExitDate = value + + @property + def SafePositionExitTime(self) -> Optional[str]: + if "SafePositionExitTime" in self._dataset: + return self._dataset.SafePositionExitTime + return None + + @SafePositionExitTime.setter + def SafePositionExitTime(self, value: Optional[str]): + if value is None: + if "SafePositionExitTime" in self._dataset: + del self._dataset.SafePositionExitTime + else: + self._dataset.SafePositionExitTime = value + + @property + def SafePositionReturnDate(self) -> Optional[str]: + if "SafePositionReturnDate" in self._dataset: + return self._dataset.SafePositionReturnDate + return None + + @SafePositionReturnDate.setter + def SafePositionReturnDate(self, value: Optional[str]): + if value is None: + if "SafePositionReturnDate" in self._dataset: + del self._dataset.SafePositionReturnDate + else: + self._dataset.SafePositionReturnDate = value + + @property + def SafePositionReturnTime(self) -> Optional[str]: + if "SafePositionReturnTime" in self._dataset: + return self._dataset.SafePositionReturnTime + return None + + @SafePositionReturnTime.setter + def SafePositionReturnTime(self, value: Optional[str]): + if value is None: + if "SafePositionReturnTime" in self._dataset: + del self._dataset.SafePositionReturnTime + else: + self._dataset.SafePositionReturnTime = value + + @property + def PulseSpecificBrachyControlPointDeliveredSequence( + self, + ) -> Optional[List[PulseSpecificBrachyControlPointDeliveredSequenceItem]]: + if "PulseSpecificBrachyControlPointDeliveredSequence" in self._dataset: + if len(self._PulseSpecificBrachyControlPointDeliveredSequence) == len( + self._dataset.PulseSpecificBrachyControlPointDeliveredSequence + ): + return self._PulseSpecificBrachyControlPointDeliveredSequence + else: + return [ + PulseSpecificBrachyControlPointDeliveredSequenceItem(x) + for x in self._dataset.PulseSpecificBrachyControlPointDeliveredSequence + ] + return None + + @PulseSpecificBrachyControlPointDeliveredSequence.setter + def PulseSpecificBrachyControlPointDeliveredSequence( + self, value: Optional[List[PulseSpecificBrachyControlPointDeliveredSequenceItem]] + ): + if value is None: + self._PulseSpecificBrachyControlPointDeliveredSequence = [] + if "PulseSpecificBrachyControlPointDeliveredSequence" in self._dataset: + del self._dataset.PulseSpecificBrachyControlPointDeliveredSequence + elif not isinstance(value, list) or not all( + isinstance(item, PulseSpecificBrachyControlPointDeliveredSequenceItem) for item in value + ): + raise ValueError( + "PulseSpecificBrachyControlPointDeliveredSequence must be a list of" + " PulseSpecificBrachyControlPointDeliveredSequenceItem objects" + ) + else: + self._PulseSpecificBrachyControlPointDeliveredSequence = value + if "PulseSpecificBrachyControlPointDeliveredSequence" not in self._dataset: + self._dataset.PulseSpecificBrachyControlPointDeliveredSequence = pydicom.Sequence() + self._dataset.PulseSpecificBrachyControlPointDeliveredSequence.clear() + self._dataset.PulseSpecificBrachyControlPointDeliveredSequence.extend([item.to_dataset() for item in value]) + + def add_PulseSpecificBrachyControlPointDelivered(self, item: PulseSpecificBrachyControlPointDeliveredSequenceItem): + if not isinstance(item, PulseSpecificBrachyControlPointDeliveredSequenceItem): + raise ValueError("Item must be an instance of PulseSpecificBrachyControlPointDeliveredSequenceItem") + self._PulseSpecificBrachyControlPointDeliveredSequence.append(item) + if "PulseSpecificBrachyControlPointDeliveredSequence" not in self._dataset: + self._dataset.PulseSpecificBrachyControlPointDeliveredSequence = pydicom.Sequence() + self._dataset.PulseSpecificBrachyControlPointDeliveredSequence.append(item.to_dataset()) + + @property + def NumberOfControlPoints(self) -> Optional[int]: + if "NumberOfControlPoints" in self._dataset: + return self._dataset.NumberOfControlPoints + return None + + @NumberOfControlPoints.setter + def NumberOfControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfControlPoints" in self._dataset: + del self._dataset.NumberOfControlPoints + else: + self._dataset.NumberOfControlPoints = value + + @property + def ChannelEffectiveLength(self) -> Optional[Decimal]: + if "ChannelEffectiveLength" in self._dataset: + return self._dataset.ChannelEffectiveLength + return None + + @ChannelEffectiveLength.setter + def ChannelEffectiveLength(self, value: Optional[Decimal]): + if value is None: + if "ChannelEffectiveLength" in self._dataset: + del self._dataset.ChannelEffectiveLength + else: + self._dataset.ChannelEffectiveLength = value + + @property + def ChannelInnerLength(self) -> Optional[Decimal]: + if "ChannelInnerLength" in self._dataset: + return self._dataset.ChannelInnerLength + return None + + @ChannelInnerLength.setter + def ChannelInnerLength(self, value: Optional[Decimal]): + if value is None: + if "ChannelInnerLength" in self._dataset: + del self._dataset.ChannelInnerLength + else: + self._dataset.ChannelInnerLength = value + + @property + def AfterloaderChannelID(self) -> Optional[str]: + if "AfterloaderChannelID" in self._dataset: + return self._dataset.AfterloaderChannelID + return None + + @AfterloaderChannelID.setter + def AfterloaderChannelID(self, value: Optional[str]): + if value is None: + if "AfterloaderChannelID" in self._dataset: + del self._dataset.AfterloaderChannelID + else: + self._dataset.AfterloaderChannelID = value + + @property + def ChannelNumber(self) -> Optional[int]: + if "ChannelNumber" in self._dataset: + return self._dataset.ChannelNumber + return None + + @ChannelNumber.setter + def ChannelNumber(self, value: Optional[int]): + if value is None: + if "ChannelNumber" in self._dataset: + del self._dataset.ChannelNumber + else: + self._dataset.ChannelNumber = value + + @property + def ChannelLength(self) -> Optional[Decimal]: + if "ChannelLength" in self._dataset: + return self._dataset.ChannelLength + return None + + @ChannelLength.setter + def ChannelLength(self, value: Optional[Decimal]): + if value is None: + if "ChannelLength" in self._dataset: + del self._dataset.ChannelLength + else: + self._dataset.ChannelLength = value + + @property + def SourceMovementType(self) -> Optional[str]: + if "SourceMovementType" in self._dataset: + return self._dataset.SourceMovementType + return None + + @SourceMovementType.setter + def SourceMovementType(self, value: Optional[str]): + if value is None: + if "SourceMovementType" in self._dataset: + del self._dataset.SourceMovementType + else: + self._dataset.SourceMovementType = value + + @property + def TransferTubeNumber(self) -> Optional[int]: + if "TransferTubeNumber" in self._dataset: + return self._dataset.TransferTubeNumber + return None + + @TransferTubeNumber.setter + def TransferTubeNumber(self, value: Optional[int]): + if value is None: + if "TransferTubeNumber" in self._dataset: + del self._dataset.TransferTubeNumber + else: + self._dataset.TransferTubeNumber = value + + @property + def TransferTubeLength(self) -> Optional[Decimal]: + if "TransferTubeLength" in self._dataset: + return self._dataset.TransferTubeLength + return None + + @TransferTubeLength.setter + def TransferTubeLength(self, value: Optional[Decimal]): + if value is None: + if "TransferTubeLength" in self._dataset: + del self._dataset.TransferTubeLength + else: + self._dataset.TransferTubeLength = value + + @property + def ReferencedSourceNumber(self) -> Optional[int]: + if "ReferencedSourceNumber" in self._dataset: + return self._dataset.ReferencedSourceNumber + return None + + @ReferencedSourceNumber.setter + def ReferencedSourceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSourceNumber" in self._dataset: + del self._dataset.ReferencedSourceNumber + else: + self._dataset.ReferencedSourceNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_channel_shield_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_channel_shield_sequence_item.py new file mode 100644 index 0000000..ae0e111 --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_channel_shield_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedChannelShieldSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedChannelShieldNumber(self) -> Optional[int]: + if "ReferencedChannelShieldNumber" in self._dataset: + return self._dataset.ReferencedChannelShieldNumber + return None + + @ReferencedChannelShieldNumber.setter + def ReferencedChannelShieldNumber(self, value: Optional[int]): + if value is None: + if "ReferencedChannelShieldNumber" in self._dataset: + del self._dataset.ReferencedChannelShieldNumber + else: + self._dataset.ReferencedChannelShieldNumber = value + + @property + def ChannelShieldID(self) -> Optional[str]: + if "ChannelShieldID" in self._dataset: + return self._dataset.ChannelShieldID + return None + + @ChannelShieldID.setter + def ChannelShieldID(self, value: Optional[str]): + if value is None: + if "ChannelShieldID" in self._dataset: + del self._dataset.ChannelShieldID + else: + self._dataset.ChannelShieldID = value + + @property + def ChannelShieldName(self) -> Optional[str]: + if "ChannelShieldName" in self._dataset: + return self._dataset.ChannelShieldName + return None + + @ChannelShieldName.setter + def ChannelShieldName(self, value: Optional[str]): + if value is None: + if "ChannelShieldName" in self._dataset: + del self._dataset.ChannelShieldName + else: + self._dataset.ChannelShieldName = value diff --git a/tdwii_plus_examples/domain_model/recorded_compensator_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_compensator_sequence_item.py new file mode 100644 index 0000000..827e9b4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_compensator_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedCompensatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CompensatorID(self) -> Optional[str]: + if "CompensatorID" in self._dataset: + return self._dataset.CompensatorID + return None + + @CompensatorID.setter + def CompensatorID(self, value: Optional[str]): + if value is None: + if "CompensatorID" in self._dataset: + del self._dataset.CompensatorID + else: + self._dataset.CompensatorID = value + + @property + def CompensatorType(self) -> Optional[str]: + if "CompensatorType" in self._dataset: + return self._dataset.CompensatorType + return None + + @CompensatorType.setter + def CompensatorType(self, value: Optional[str]): + if value is None: + if "CompensatorType" in self._dataset: + del self._dataset.CompensatorType + else: + self._dataset.CompensatorType = value + + @property + def CompensatorTrayID(self) -> Optional[str]: + if "CompensatorTrayID" in self._dataset: + return self._dataset.CompensatorTrayID + return None + + @CompensatorTrayID.setter + def CompensatorTrayID(self, value: Optional[str]): + if value is None: + if "CompensatorTrayID" in self._dataset: + del self._dataset.CompensatorTrayID + else: + self._dataset.CompensatorTrayID = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def TrayAccessoryCode(self) -> Optional[str]: + if "TrayAccessoryCode" in self._dataset: + return self._dataset.TrayAccessoryCode + return None + + @TrayAccessoryCode.setter + def TrayAccessoryCode(self, value: Optional[str]): + if value is None: + if "TrayAccessoryCode" in self._dataset: + del self._dataset.TrayAccessoryCode + else: + self._dataset.TrayAccessoryCode = value + + @property + def ReferencedCompensatorNumber(self) -> Optional[int]: + if "ReferencedCompensatorNumber" in self._dataset: + return self._dataset.ReferencedCompensatorNumber + return None + + @ReferencedCompensatorNumber.setter + def ReferencedCompensatorNumber(self, value: Optional[int]): + if value is None: + if "ReferencedCompensatorNumber" in self._dataset: + del self._dataset.ReferencedCompensatorNumber + else: + self._dataset.ReferencedCompensatorNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_compensator_sequence_item_1.py b/tdwii_plus_examples/domain_model/recorded_compensator_sequence_item_1.py new file mode 100644 index 0000000..c0d9fee --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_compensator_sequence_item_1.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedCompensatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CompensatorID(self) -> Optional[str]: + if "CompensatorID" in self._dataset: + return self._dataset.CompensatorID + return None + + @CompensatorID.setter + def CompensatorID(self, value: Optional[str]): + if value is None: + if "CompensatorID" in self._dataset: + del self._dataset.CompensatorID + else: + self._dataset.CompensatorID = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def ReferencedCompensatorNumber(self) -> Optional[int]: + if "ReferencedCompensatorNumber" in self._dataset: + return self._dataset.ReferencedCompensatorNumber + return None + + @ReferencedCompensatorNumber.setter + def ReferencedCompensatorNumber(self, value: Optional[int]): + if value is None: + if "ReferencedCompensatorNumber" in self._dataset: + del self._dataset.ReferencedCompensatorNumber + else: + self._dataset.ReferencedCompensatorNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_lateral_spreading_device_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_lateral_spreading_device_sequence_item.py new file mode 100644 index 0000000..f714e8d --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_lateral_spreading_device_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedLateralSpreadingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def LateralSpreadingDeviceID(self) -> Optional[str]: + if "LateralSpreadingDeviceID" in self._dataset: + return self._dataset.LateralSpreadingDeviceID + return None + + @LateralSpreadingDeviceID.setter + def LateralSpreadingDeviceID(self, value: Optional[str]): + if value is None: + if "LateralSpreadingDeviceID" in self._dataset: + del self._dataset.LateralSpreadingDeviceID + else: + self._dataset.LateralSpreadingDeviceID = value + + @property + def ReferencedLateralSpreadingDeviceNumber(self) -> Optional[int]: + if "ReferencedLateralSpreadingDeviceNumber" in self._dataset: + return self._dataset.ReferencedLateralSpreadingDeviceNumber + return None + + @ReferencedLateralSpreadingDeviceNumber.setter + def ReferencedLateralSpreadingDeviceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedLateralSpreadingDeviceNumber" in self._dataset: + del self._dataset.ReferencedLateralSpreadingDeviceNumber + else: + self._dataset.ReferencedLateralSpreadingDeviceNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_range_modulator_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_range_modulator_sequence_item.py new file mode 100644 index 0000000..83088be --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_range_modulator_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedRangeModulatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def RangeModulatorID(self) -> Optional[str]: + if "RangeModulatorID" in self._dataset: + return self._dataset.RangeModulatorID + return None + + @RangeModulatorID.setter + def RangeModulatorID(self, value: Optional[str]): + if value is None: + if "RangeModulatorID" in self._dataset: + del self._dataset.RangeModulatorID + else: + self._dataset.RangeModulatorID = value + + @property + def RangeModulatorType(self) -> Optional[str]: + if "RangeModulatorType" in self._dataset: + return self._dataset.RangeModulatorType + return None + + @RangeModulatorType.setter + def RangeModulatorType(self, value: Optional[str]): + if value is None: + if "RangeModulatorType" in self._dataset: + del self._dataset.RangeModulatorType + else: + self._dataset.RangeModulatorType = value + + @property + def BeamCurrentModulationID(self) -> Optional[str]: + if "BeamCurrentModulationID" in self._dataset: + return self._dataset.BeamCurrentModulationID + return None + + @BeamCurrentModulationID.setter + def BeamCurrentModulationID(self, value: Optional[str]): + if value is None: + if "BeamCurrentModulationID" in self._dataset: + del self._dataset.BeamCurrentModulationID + else: + self._dataset.BeamCurrentModulationID = value + + @property + def ReferencedRangeModulatorNumber(self) -> Optional[int]: + if "ReferencedRangeModulatorNumber" in self._dataset: + return self._dataset.ReferencedRangeModulatorNumber + return None + + @ReferencedRangeModulatorNumber.setter + def ReferencedRangeModulatorNumber(self, value: Optional[int]): + if value is None: + if "ReferencedRangeModulatorNumber" in self._dataset: + del self._dataset.ReferencedRangeModulatorNumber + else: + self._dataset.ReferencedRangeModulatorNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_range_shifter_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_range_shifter_sequence_item.py new file mode 100644 index 0000000..66f6c3e --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_range_shifter_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedRangeShifterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def RangeShifterID(self) -> Optional[str]: + if "RangeShifterID" in self._dataset: + return self._dataset.RangeShifterID + return None + + @RangeShifterID.setter + def RangeShifterID(self, value: Optional[str]): + if value is None: + if "RangeShifterID" in self._dataset: + del self._dataset.RangeShifterID + else: + self._dataset.RangeShifterID = value + + @property + def ReferencedRangeShifterNumber(self) -> Optional[int]: + if "ReferencedRangeShifterNumber" in self._dataset: + return self._dataset.ReferencedRangeShifterNumber + return None + + @ReferencedRangeShifterNumber.setter + def ReferencedRangeShifterNumber(self, value: Optional[int]): + if value is None: + if "ReferencedRangeShifterNumber" in self._dataset: + del self._dataset.ReferencedRangeShifterNumber + else: + self._dataset.ReferencedRangeShifterNumber = value diff --git a/tdwii_plus_examples/domain_model/recorded_snout_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_snout_sequence_item.py new file mode 100644 index 0000000..d3254ed --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_snout_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedSnoutSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def SnoutID(self) -> Optional[str]: + if "SnoutID" in self._dataset: + return self._dataset.SnoutID + return None + + @SnoutID.setter + def SnoutID(self, value: Optional[str]): + if value is None: + if "SnoutID" in self._dataset: + del self._dataset.SnoutID + else: + self._dataset.SnoutID = value diff --git a/tdwii_plus_examples/domain_model/recorded_source_applicator_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_source_applicator_sequence_item.py new file mode 100644 index 0000000..56c6d34 --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_source_applicator_sequence_item.py @@ -0,0 +1,124 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedSourceApplicatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSourceApplicatorNumber(self) -> Optional[int]: + if "ReferencedSourceApplicatorNumber" in self._dataset: + return self._dataset.ReferencedSourceApplicatorNumber + return None + + @ReferencedSourceApplicatorNumber.setter + def ReferencedSourceApplicatorNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSourceApplicatorNumber" in self._dataset: + del self._dataset.ReferencedSourceApplicatorNumber + else: + self._dataset.ReferencedSourceApplicatorNumber = value + + @property + def SourceApplicatorTipLength(self) -> Optional[Decimal]: + if "SourceApplicatorTipLength" in self._dataset: + return self._dataset.SourceApplicatorTipLength + return None + + @SourceApplicatorTipLength.setter + def SourceApplicatorTipLength(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorTipLength" in self._dataset: + del self._dataset.SourceApplicatorTipLength + else: + self._dataset.SourceApplicatorTipLength = value + + @property + def SourceApplicatorID(self) -> Optional[str]: + if "SourceApplicatorID" in self._dataset: + return self._dataset.SourceApplicatorID + return None + + @SourceApplicatorID.setter + def SourceApplicatorID(self, value: Optional[str]): + if value is None: + if "SourceApplicatorID" in self._dataset: + del self._dataset.SourceApplicatorID + else: + self._dataset.SourceApplicatorID = value + + @property + def SourceApplicatorType(self) -> Optional[str]: + if "SourceApplicatorType" in self._dataset: + return self._dataset.SourceApplicatorType + return None + + @SourceApplicatorType.setter + def SourceApplicatorType(self, value: Optional[str]): + if value is None: + if "SourceApplicatorType" in self._dataset: + del self._dataset.SourceApplicatorType + else: + self._dataset.SourceApplicatorType = value + + @property + def SourceApplicatorName(self) -> Optional[str]: + if "SourceApplicatorName" in self._dataset: + return self._dataset.SourceApplicatorName + return None + + @SourceApplicatorName.setter + def SourceApplicatorName(self, value: Optional[str]): + if value is None: + if "SourceApplicatorName" in self._dataset: + del self._dataset.SourceApplicatorName + else: + self._dataset.SourceApplicatorName = value + + @property + def SourceApplicatorLength(self) -> Optional[Decimal]: + if "SourceApplicatorLength" in self._dataset: + return self._dataset.SourceApplicatorLength + return None + + @SourceApplicatorLength.setter + def SourceApplicatorLength(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorLength" in self._dataset: + del self._dataset.SourceApplicatorLength + else: + self._dataset.SourceApplicatorLength = value + + @property + def SourceApplicatorManufacturer(self) -> Optional[str]: + if "SourceApplicatorManufacturer" in self._dataset: + return self._dataset.SourceApplicatorManufacturer + return None + + @SourceApplicatorManufacturer.setter + def SourceApplicatorManufacturer(self, value: Optional[str]): + if value is None: + if "SourceApplicatorManufacturer" in self._dataset: + del self._dataset.SourceApplicatorManufacturer + else: + self._dataset.SourceApplicatorManufacturer = value + + @property + def SourceApplicatorStepSize(self) -> Optional[Decimal]: + if "SourceApplicatorStepSize" in self._dataset: + return self._dataset.SourceApplicatorStepSize + return None + + @SourceApplicatorStepSize.setter + def SourceApplicatorStepSize(self, value: Optional[Decimal]): + if value is None: + if "SourceApplicatorStepSize" in self._dataset: + del self._dataset.SourceApplicatorStepSize + else: + self._dataset.SourceApplicatorStepSize = value diff --git a/tdwii_plus_examples/domain_model/recorded_source_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_source_sequence_item.py new file mode 100644 index 0000000..280f521 --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_source_sequence_item.py @@ -0,0 +1,180 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedSourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SourceSerialNumber(self) -> Optional[str]: + if "SourceSerialNumber" in self._dataset: + return self._dataset.SourceSerialNumber + return None + + @SourceSerialNumber.setter + def SourceSerialNumber(self, value: Optional[str]): + if value is None: + if "SourceSerialNumber" in self._dataset: + del self._dataset.SourceSerialNumber + else: + self._dataset.SourceSerialNumber = value + + @property + def SourceNumber(self) -> Optional[int]: + if "SourceNumber" in self._dataset: + return self._dataset.SourceNumber + return None + + @SourceNumber.setter + def SourceNumber(self, value: Optional[int]): + if value is None: + if "SourceNumber" in self._dataset: + del self._dataset.SourceNumber + else: + self._dataset.SourceNumber = value + + @property + def SourceType(self) -> Optional[str]: + if "SourceType" in self._dataset: + return self._dataset.SourceType + return None + + @SourceType.setter + def SourceType(self, value: Optional[str]): + if value is None: + if "SourceType" in self._dataset: + del self._dataset.SourceType + else: + self._dataset.SourceType = value + + @property + def SourceManufacturer(self) -> Optional[str]: + if "SourceManufacturer" in self._dataset: + return self._dataset.SourceManufacturer + return None + + @SourceManufacturer.setter + def SourceManufacturer(self, value: Optional[str]): + if value is None: + if "SourceManufacturer" in self._dataset: + del self._dataset.SourceManufacturer + else: + self._dataset.SourceManufacturer = value + + @property + def SourceModelID(self) -> Optional[str]: + if "SourceModelID" in self._dataset: + return self._dataset.SourceModelID + return None + + @SourceModelID.setter + def SourceModelID(self, value: Optional[str]): + if value is None: + if "SourceModelID" in self._dataset: + del self._dataset.SourceModelID + else: + self._dataset.SourceModelID = value + + @property + def SourceIsotopeName(self) -> Optional[str]: + if "SourceIsotopeName" in self._dataset: + return self._dataset.SourceIsotopeName + return None + + @SourceIsotopeName.setter + def SourceIsotopeName(self, value: Optional[str]): + if value is None: + if "SourceIsotopeName" in self._dataset: + del self._dataset.SourceIsotopeName + else: + self._dataset.SourceIsotopeName = value + + @property + def SourceIsotopeHalfLife(self) -> Optional[Decimal]: + if "SourceIsotopeHalfLife" in self._dataset: + return self._dataset.SourceIsotopeHalfLife + return None + + @SourceIsotopeHalfLife.setter + def SourceIsotopeHalfLife(self, value: Optional[Decimal]): + if value is None: + if "SourceIsotopeHalfLife" in self._dataset: + del self._dataset.SourceIsotopeHalfLife + else: + self._dataset.SourceIsotopeHalfLife = value + + @property + def SourceStrengthUnits(self) -> Optional[str]: + if "SourceStrengthUnits" in self._dataset: + return self._dataset.SourceStrengthUnits + return None + + @SourceStrengthUnits.setter + def SourceStrengthUnits(self, value: Optional[str]): + if value is None: + if "SourceStrengthUnits" in self._dataset: + del self._dataset.SourceStrengthUnits + else: + self._dataset.SourceStrengthUnits = value + + @property + def ReferenceAirKermaRate(self) -> Optional[Decimal]: + if "ReferenceAirKermaRate" in self._dataset: + return self._dataset.ReferenceAirKermaRate + return None + + @ReferenceAirKermaRate.setter + def ReferenceAirKermaRate(self, value: Optional[Decimal]): + if value is None: + if "ReferenceAirKermaRate" in self._dataset: + del self._dataset.ReferenceAirKermaRate + else: + self._dataset.ReferenceAirKermaRate = value + + @property + def SourceStrength(self) -> Optional[Decimal]: + if "SourceStrength" in self._dataset: + return self._dataset.SourceStrength + return None + + @SourceStrength.setter + def SourceStrength(self, value: Optional[Decimal]): + if value is None: + if "SourceStrength" in self._dataset: + del self._dataset.SourceStrength + else: + self._dataset.SourceStrength = value + + @property + def SourceStrengthReferenceDate(self) -> Optional[str]: + if "SourceStrengthReferenceDate" in self._dataset: + return self._dataset.SourceStrengthReferenceDate + return None + + @SourceStrengthReferenceDate.setter + def SourceStrengthReferenceDate(self, value: Optional[str]): + if value is None: + if "SourceStrengthReferenceDate" in self._dataset: + del self._dataset.SourceStrengthReferenceDate + else: + self._dataset.SourceStrengthReferenceDate = value + + @property + def SourceStrengthReferenceTime(self) -> Optional[str]: + if "SourceStrengthReferenceTime" in self._dataset: + return self._dataset.SourceStrengthReferenceTime + return None + + @SourceStrengthReferenceTime.setter + def SourceStrengthReferenceTime(self, value: Optional[str]): + if value is None: + if "SourceStrengthReferenceTime" in self._dataset: + del self._dataset.SourceStrengthReferenceTime + else: + self._dataset.SourceStrengthReferenceTime = value diff --git a/tdwii_plus_examples/domain_model/recorded_wedge_sequence_item.py b/tdwii_plus_examples/domain_model/recorded_wedge_sequence_item.py new file mode 100644 index 0000000..4221d08 --- /dev/null +++ b/tdwii_plus_examples/domain_model/recorded_wedge_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class RecordedWedgeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WedgeNumber(self) -> Optional[int]: + if "WedgeNumber" in self._dataset: + return self._dataset.WedgeNumber + return None + + @WedgeNumber.setter + def WedgeNumber(self, value: Optional[int]): + if value is None: + if "WedgeNumber" in self._dataset: + del self._dataset.WedgeNumber + else: + self._dataset.WedgeNumber = value + + @property + def WedgeType(self) -> Optional[str]: + if "WedgeType" in self._dataset: + return self._dataset.WedgeType + return None + + @WedgeType.setter + def WedgeType(self, value: Optional[str]): + if value is None: + if "WedgeType" in self._dataset: + del self._dataset.WedgeType + else: + self._dataset.WedgeType = value + + @property + def WedgeID(self) -> Optional[str]: + if "WedgeID" in self._dataset: + return self._dataset.WedgeID + return None + + @WedgeID.setter + def WedgeID(self, value: Optional[str]): + if value is None: + if "WedgeID" in self._dataset: + del self._dataset.WedgeID + else: + self._dataset.WedgeID = value + + @property + def WedgeAngle(self) -> Optional[int]: + if "WedgeAngle" in self._dataset: + return self._dataset.WedgeAngle + return None + + @WedgeAngle.setter + def WedgeAngle(self, value: Optional[int]): + if value is None: + if "WedgeAngle" in self._dataset: + del self._dataset.WedgeAngle + else: + self._dataset.WedgeAngle = value + + @property + def WedgeOrientation(self) -> Optional[Decimal]: + if "WedgeOrientation" in self._dataset: + return self._dataset.WedgeOrientation + return None + + @WedgeOrientation.setter + def WedgeOrientation(self, value: Optional[Decimal]): + if value is None: + if "WedgeOrientation" in self._dataset: + del self._dataset.WedgeOrientation + else: + self._dataset.WedgeOrientation = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/referenced_baseline_parameters_rt_radiation_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_baseline_parameters_rt_radiation_instance_sequence_item.py new file mode 100644 index 0000000..ab89738 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_baseline_parameters_rt_radiation_instance_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedBaselineParametersRTRadiationInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_beam_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_beam_sequence_item.py new file mode 100644 index 0000000..a44c34d --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_beam_sequence_item.py @@ -0,0 +1,231 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .dose_calibration_conditions_sequence_item import ( + DoseCalibrationConditionsSequenceItem, +) +from .radiation_device_configuration_and_commissioning_key_sequence_item import ( + RadiationDeviceConfigurationAndCommissioningKeySequenceItem, +) + + +class ReferencedBeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadiationDeviceConfigurationAndCommissioningKeySequence: List[ + RadiationDeviceConfigurationAndCommissioningKeySequenceItem + ] = [] + self._DoseCalibrationConditionsSequence: List[DoseCalibrationConditionsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDoseReferenceUID(self) -> Optional[str]: + if "ReferencedDoseReferenceUID" in self._dataset: + return self._dataset.ReferencedDoseReferenceUID + return None + + @ReferencedDoseReferenceUID.setter + def ReferencedDoseReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedDoseReferenceUID" in self._dataset: + del self._dataset.ReferencedDoseReferenceUID + else: + self._dataset.ReferencedDoseReferenceUID = value + + @property + def BeamDose(self) -> Optional[Decimal]: + if "BeamDose" in self._dataset: + return self._dataset.BeamDose + return None + + @BeamDose.setter + def BeamDose(self, value: Optional[Decimal]): + if value is None: + if "BeamDose" in self._dataset: + del self._dataset.BeamDose + else: + self._dataset.BeamDose = value + + @property + def BeamMeterset(self) -> Optional[Decimal]: + if "BeamMeterset" in self._dataset: + return self._dataset.BeamMeterset + return None + + @BeamMeterset.setter + def BeamMeterset(self, value: Optional[Decimal]): + if value is None: + if "BeamMeterset" in self._dataset: + del self._dataset.BeamMeterset + else: + self._dataset.BeamMeterset = value + + @property + def BeamDoseType(self) -> Optional[str]: + if "BeamDoseType" in self._dataset: + return self._dataset.BeamDoseType + return None + + @BeamDoseType.setter + def BeamDoseType(self, value: Optional[str]): + if value is None: + if "BeamDoseType" in self._dataset: + del self._dataset.BeamDoseType + else: + self._dataset.BeamDoseType = value + + @property + def AlternateBeamDose(self) -> Optional[Decimal]: + if "AlternateBeamDose" in self._dataset: + return self._dataset.AlternateBeamDose + return None + + @AlternateBeamDose.setter + def AlternateBeamDose(self, value: Optional[Decimal]): + if value is None: + if "AlternateBeamDose" in self._dataset: + del self._dataset.AlternateBeamDose + else: + self._dataset.AlternateBeamDose = value + + @property + def AlternateBeamDoseType(self) -> Optional[str]: + if "AlternateBeamDoseType" in self._dataset: + return self._dataset.AlternateBeamDoseType + return None + + @AlternateBeamDoseType.setter + def AlternateBeamDoseType(self, value: Optional[str]): + if value is None: + if "AlternateBeamDoseType" in self._dataset: + del self._dataset.AlternateBeamDoseType + else: + self._dataset.AlternateBeamDoseType = value + + @property + def BeamDeliveryDurationLimit(self) -> Optional[float]: + if "BeamDeliveryDurationLimit" in self._dataset: + return self._dataset.BeamDeliveryDurationLimit + return None + + @BeamDeliveryDurationLimit.setter + def BeamDeliveryDurationLimit(self, value: Optional[float]): + if value is None: + if "BeamDeliveryDurationLimit" in self._dataset: + del self._dataset.BeamDeliveryDurationLimit + else: + self._dataset.BeamDeliveryDurationLimit = value + + @property + def RadiationDeviceConfigurationAndCommissioningKeySequence( + self, + ) -> Optional[List[RadiationDeviceConfigurationAndCommissioningKeySequenceItem]]: + if "RadiationDeviceConfigurationAndCommissioningKeySequence" in self._dataset: + if len(self._RadiationDeviceConfigurationAndCommissioningKeySequence) == len( + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + ): + return self._RadiationDeviceConfigurationAndCommissioningKeySequence + else: + return [ + RadiationDeviceConfigurationAndCommissioningKeySequenceItem(x) + for x in self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + ] + return None + + @RadiationDeviceConfigurationAndCommissioningKeySequence.setter + def RadiationDeviceConfigurationAndCommissioningKeySequence( + self, value: Optional[List[RadiationDeviceConfigurationAndCommissioningKeySequenceItem]] + ): + if value is None: + self._RadiationDeviceConfigurationAndCommissioningKeySequence = [] + if "RadiationDeviceConfigurationAndCommissioningKeySequence" in self._dataset: + del self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDeviceConfigurationAndCommissioningKeySequenceItem) for item in value + ): + raise ValueError( + "RadiationDeviceConfigurationAndCommissioningKeySequence must be a list of" + " RadiationDeviceConfigurationAndCommissioningKeySequenceItem objects" + ) + else: + self._RadiationDeviceConfigurationAndCommissioningKeySequence = value + if "RadiationDeviceConfigurationAndCommissioningKeySequence" not in self._dataset: + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence = pydicom.Sequence() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.clear() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDeviceConfigurationAndCommissioningKey( + self, item: RadiationDeviceConfigurationAndCommissioningKeySequenceItem + ): + if not isinstance(item, RadiationDeviceConfigurationAndCommissioningKeySequenceItem): + raise ValueError("Item must be an instance of RadiationDeviceConfigurationAndCommissioningKeySequenceItem") + self._RadiationDeviceConfigurationAndCommissioningKeySequence.append(item) + if "RadiationDeviceConfigurationAndCommissioningKeySequence" not in self._dataset: + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence = pydicom.Sequence() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.append(item.to_dataset()) + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def DoseCalibrationConditionsSequence(self) -> Optional[List[DoseCalibrationConditionsSequenceItem]]: + if "DoseCalibrationConditionsSequence" in self._dataset: + if len(self._DoseCalibrationConditionsSequence) == len(self._dataset.DoseCalibrationConditionsSequence): + return self._DoseCalibrationConditionsSequence + else: + return [DoseCalibrationConditionsSequenceItem(x) for x in self._dataset.DoseCalibrationConditionsSequence] + return None + + @DoseCalibrationConditionsSequence.setter + def DoseCalibrationConditionsSequence(self, value: Optional[List[DoseCalibrationConditionsSequenceItem]]): + if value is None: + self._DoseCalibrationConditionsSequence = [] + if "DoseCalibrationConditionsSequence" in self._dataset: + del self._dataset.DoseCalibrationConditionsSequence + elif not isinstance(value, list) or not all(isinstance(item, DoseCalibrationConditionsSequenceItem) for item in value): + raise ValueError( + "DoseCalibrationConditionsSequence must be a list of DoseCalibrationConditionsSequenceItem objects" + ) + else: + self._DoseCalibrationConditionsSequence = value + if "DoseCalibrationConditionsSequence" not in self._dataset: + self._dataset.DoseCalibrationConditionsSequence = pydicom.Sequence() + self._dataset.DoseCalibrationConditionsSequence.clear() + self._dataset.DoseCalibrationConditionsSequence.extend([item.to_dataset() for item in value]) + + def add_DoseCalibrationConditions(self, item: DoseCalibrationConditionsSequenceItem): + if not isinstance(item, DoseCalibrationConditionsSequenceItem): + raise ValueError("Item must be an instance of DoseCalibrationConditionsSequenceItem") + self._DoseCalibrationConditionsSequence.append(item) + if "DoseCalibrationConditionsSequence" not in self._dataset: + self._dataset.DoseCalibrationConditionsSequence = pydicom.Sequence() + self._dataset.DoseCalibrationConditionsSequence.append(item.to_dataset()) + + @property + def DoseCalibrationConditionsVerifiedFlag(self) -> Optional[str]: + if "DoseCalibrationConditionsVerifiedFlag" in self._dataset: + return self._dataset.DoseCalibrationConditionsVerifiedFlag + return None + + @DoseCalibrationConditionsVerifiedFlag.setter + def DoseCalibrationConditionsVerifiedFlag(self, value: Optional[str]): + if value is None: + if "DoseCalibrationConditionsVerifiedFlag" in self._dataset: + del self._dataset.DoseCalibrationConditionsVerifiedFlag + else: + self._dataset.DoseCalibrationConditionsVerifiedFlag = value diff --git a/tdwii_plus_examples/domain_model/referenced_beam_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_beam_sequence_item_1.py new file mode 100644 index 0000000..5f952c1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_beam_sequence_item_1.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedBeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_beam_sequence_item_2.py b/tdwii_plus_examples/domain_model/referenced_beam_sequence_item_2.py new file mode 100644 index 0000000..e558d35 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_beam_sequence_item_2.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_control_point_sequence_item import ReferencedControlPointSequenceItem + + +class ReferencedBeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedControlPointSequence: List[ReferencedControlPointSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def ReferencedControlPointSequence(self) -> Optional[List[ReferencedControlPointSequenceItem]]: + if "ReferencedControlPointSequence" in self._dataset: + if len(self._ReferencedControlPointSequence) == len(self._dataset.ReferencedControlPointSequence): + return self._ReferencedControlPointSequence + else: + return [ReferencedControlPointSequenceItem(x) for x in self._dataset.ReferencedControlPointSequence] + return None + + @ReferencedControlPointSequence.setter + def ReferencedControlPointSequence(self, value: Optional[List[ReferencedControlPointSequenceItem]]): + if value is None: + self._ReferencedControlPointSequence = [] + if "ReferencedControlPointSequence" in self._dataset: + del self._dataset.ReferencedControlPointSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedControlPointSequenceItem) for item in value): + raise ValueError("ReferencedControlPointSequence must be a list of ReferencedControlPointSequenceItem objects") + else: + self._ReferencedControlPointSequence = value + if "ReferencedControlPointSequence" not in self._dataset: + self._dataset.ReferencedControlPointSequence = pydicom.Sequence() + self._dataset.ReferencedControlPointSequence.clear() + self._dataset.ReferencedControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedControlPoint(self, item: ReferencedControlPointSequenceItem): + if not isinstance(item, ReferencedControlPointSequenceItem): + raise ValueError("Item must be an instance of ReferencedControlPointSequenceItem") + self._ReferencedControlPointSequence.append(item) + if "ReferencedControlPointSequence" not in self._dataset: + self._dataset.ReferencedControlPointSequence = pydicom.Sequence() + self._dataset.ReferencedControlPointSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_bolus_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_bolus_sequence_item.py new file mode 100644 index 0000000..74c1e53 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_bolus_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedBolusSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def BolusID(self) -> Optional[str]: + if "BolusID" in self._dataset: + return self._dataset.BolusID + return None + + @BolusID.setter + def BolusID(self, value: Optional[str]): + if value is None: + if "BolusID" in self._dataset: + del self._dataset.BolusID + else: + self._dataset.BolusID = value + + @property + def BolusDescription(self) -> Optional[str]: + if "BolusDescription" in self._dataset: + return self._dataset.BolusDescription + return None + + @BolusDescription.setter + def BolusDescription(self, value: Optional[str]): + if value is None: + if "BolusDescription" in self._dataset: + del self._dataset.BolusDescription + else: + self._dataset.BolusDescription = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/referenced_bolus_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_bolus_sequence_item_1.py new file mode 100644 index 0000000..5244f78 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_bolus_sequence_item_1.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedBolusSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def BolusID(self) -> Optional[str]: + if "BolusID" in self._dataset: + return self._dataset.BolusID + return None + + @BolusID.setter + def BolusID(self, value: Optional[str]): + if value is None: + if "BolusID" in self._dataset: + del self._dataset.BolusID + else: + self._dataset.BolusID = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item.py new file mode 100644 index 0000000..81ff522 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedBrachyApplicationSetupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDoseReferenceUID(self) -> Optional[str]: + if "ReferencedDoseReferenceUID" in self._dataset: + return self._dataset.ReferencedDoseReferenceUID + return None + + @ReferencedDoseReferenceUID.setter + def ReferencedDoseReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedDoseReferenceUID" in self._dataset: + del self._dataset.ReferencedDoseReferenceUID + else: + self._dataset.ReferencedDoseReferenceUID = value + + @property + def BrachyApplicationSetupDoseSpecificationPoint(self) -> Optional[List[Decimal]]: + if "BrachyApplicationSetupDoseSpecificationPoint" in self._dataset: + return self._dataset.BrachyApplicationSetupDoseSpecificationPoint + return None + + @BrachyApplicationSetupDoseSpecificationPoint.setter + def BrachyApplicationSetupDoseSpecificationPoint(self, value: Optional[List[Decimal]]): + if value is None: + if "BrachyApplicationSetupDoseSpecificationPoint" in self._dataset: + del self._dataset.BrachyApplicationSetupDoseSpecificationPoint + else: + self._dataset.BrachyApplicationSetupDoseSpecificationPoint = value + + @property + def BrachyApplicationSetupDose(self) -> Optional[Decimal]: + if "BrachyApplicationSetupDose" in self._dataset: + return self._dataset.BrachyApplicationSetupDose + return None + + @BrachyApplicationSetupDose.setter + def BrachyApplicationSetupDose(self, value: Optional[Decimal]): + if value is None: + if "BrachyApplicationSetupDose" in self._dataset: + del self._dataset.BrachyApplicationSetupDose + else: + self._dataset.BrachyApplicationSetupDose = value + + @property + def ReferencedBrachyApplicationSetupNumber(self) -> Optional[int]: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + return self._dataset.ReferencedBrachyApplicationSetupNumber + return None + + @ReferencedBrachyApplicationSetupNumber.setter + def ReferencedBrachyApplicationSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupNumber + else: + self._dataset.ReferencedBrachyApplicationSetupNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item_1.py new file mode 100644 index 0000000..5d36bb1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_brachy_application_setup_sequence_item_1.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedBrachyApplicationSetupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedBrachyApplicationSetupNumber(self) -> Optional[int]: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + return self._dataset.ReferencedBrachyApplicationSetupNumber + return None + + @ReferencedBrachyApplicationSetupNumber.setter + def ReferencedBrachyApplicationSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupNumber + else: + self._dataset.ReferencedBrachyApplicationSetupNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_calculated_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_calculated_dose_reference_sequence_item.py new file mode 100644 index 0000000..5f0f5e1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_calculated_dose_reference_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedCalculatedDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CalculatedDoseReferenceDoseValue(self) -> Optional[Decimal]: + if "CalculatedDoseReferenceDoseValue" in self._dataset: + return self._dataset.CalculatedDoseReferenceDoseValue + return None + + @CalculatedDoseReferenceDoseValue.setter + def CalculatedDoseReferenceDoseValue(self, value: Optional[Decimal]): + if value is None: + if "CalculatedDoseReferenceDoseValue" in self._dataset: + del self._dataset.CalculatedDoseReferenceDoseValue + else: + self._dataset.CalculatedDoseReferenceDoseValue = value + + @property + def ReferencedCalculatedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedCalculatedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedCalculatedDoseReferenceNumber + return None + + @ReferencedCalculatedDoseReferenceNumber.setter + def ReferencedCalculatedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedCalculatedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedCalculatedDoseReferenceNumber + else: + self._dataset.ReferencedCalculatedDoseReferenceNumber = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_comparison_sop_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_comparison_sop_instance_sequence_item.py new file mode 100644 index 0000000..8433dde --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_comparison_sop_instance_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedComparisonSOPInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_control_point_sequence_item.py new file mode 100644 index 0000000..5b02362 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_control_point_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedStartControlPointIndex(self) -> Optional[int]: + if "ReferencedStartControlPointIndex" in self._dataset: + return self._dataset.ReferencedStartControlPointIndex + return None + + @ReferencedStartControlPointIndex.setter + def ReferencedStartControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedStartControlPointIndex" in self._dataset: + del self._dataset.ReferencedStartControlPointIndex + else: + self._dataset.ReferencedStartControlPointIndex = value + + @property + def ReferencedStopControlPointIndex(self) -> Optional[int]: + if "ReferencedStopControlPointIndex" in self._dataset: + return self._dataset.ReferencedStopControlPointIndex + return None + + @ReferencedStopControlPointIndex.setter + def ReferencedStopControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedStopControlPointIndex" in self._dataset: + del self._dataset.ReferencedStopControlPointIndex + else: + self._dataset.ReferencedStopControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/referenced_defined_protocol_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_defined_protocol_sequence_item.py new file mode 100644 index 0000000..2529114 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_defined_protocol_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedDefinedProtocolSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def SourceAcquisitionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + return self._dataset.SourceAcquisitionProtocolElementNumber + return None + + @SourceAcquisitionProtocolElementNumber.setter + def SourceAcquisitionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + del self._dataset.SourceAcquisitionProtocolElementNumber + else: + self._dataset.SourceAcquisitionProtocolElementNumber = value + + @property + def SourceReconstructionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceReconstructionProtocolElementNumber" in self._dataset: + return self._dataset.SourceReconstructionProtocolElementNumber + return None + + @SourceReconstructionProtocolElementNumber.setter + def SourceReconstructionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceReconstructionProtocolElementNumber" in self._dataset: + del self._dataset.SourceReconstructionProtocolElementNumber + else: + self._dataset.SourceReconstructionProtocolElementNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_digital_signature_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_digital_signature_sequence_item.py new file mode 100644 index 0000000..7b61b4a --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_digital_signature_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedDigitalSignatureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DigitalSignatureUID(self) -> Optional[str]: + if "DigitalSignatureUID" in self._dataset: + return self._dataset.DigitalSignatureUID + return None + + @DigitalSignatureUID.setter + def DigitalSignatureUID(self, value: Optional[str]): + if value is None: + if "DigitalSignatureUID" in self._dataset: + del self._dataset.DigitalSignatureUID + else: + self._dataset.DigitalSignatureUID = value + + @property + def Signature(self) -> Optional[bytes]: + if "Signature" in self._dataset: + return self._dataset.Signature + return None + + @Signature.setter + def Signature(self, value: Optional[bytes]): + if value is None: + if "Signature" in self._dataset: + del self._dataset.Signature + else: + self._dataset.Signature = value diff --git a/tdwii_plus_examples/domain_model/referenced_direct_segment_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_direct_segment_instance_sequence_item.py new file mode 100644 index 0000000..4b4edc9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_direct_segment_instance_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedDirectSegmentInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item.py new file mode 100644 index 0000000..9a34b2d --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CumulativeDoseReferenceCoefficient(self) -> Optional[Decimal]: + if "CumulativeDoseReferenceCoefficient" in self._dataset: + return self._dataset.CumulativeDoseReferenceCoefficient + return None + + @CumulativeDoseReferenceCoefficient.setter + def CumulativeDoseReferenceCoefficient(self, value: Optional[Decimal]): + if value is None: + if "CumulativeDoseReferenceCoefficient" in self._dataset: + del self._dataset.CumulativeDoseReferenceCoefficient + else: + self._dataset.CumulativeDoseReferenceCoefficient = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item_1.py new file mode 100644 index 0000000..56a371d --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_dose_reference_sequence_item_1.py @@ -0,0 +1,86 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_dose_verification_control_point_sequence_item import ( + BeamDoseVerificationControlPointSequenceItem, +) + + +class ReferencedDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BeamDoseVerificationControlPointSequence: List[BeamDoseVerificationControlPointSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BeamDoseVerificationControlPointSequence(self) -> Optional[List[BeamDoseVerificationControlPointSequenceItem]]: + if "BeamDoseVerificationControlPointSequence" in self._dataset: + if len(self._BeamDoseVerificationControlPointSequence) == len( + self._dataset.BeamDoseVerificationControlPointSequence + ): + return self._BeamDoseVerificationControlPointSequence + else: + return [ + BeamDoseVerificationControlPointSequenceItem(x) + for x in self._dataset.BeamDoseVerificationControlPointSequence + ] + return None + + @BeamDoseVerificationControlPointSequence.setter + def BeamDoseVerificationControlPointSequence(self, value: Optional[List[BeamDoseVerificationControlPointSequenceItem]]): + if value is None: + self._BeamDoseVerificationControlPointSequence = [] + if "BeamDoseVerificationControlPointSequence" in self._dataset: + del self._dataset.BeamDoseVerificationControlPointSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamDoseVerificationControlPointSequenceItem) for item in value + ): + raise ValueError( + "BeamDoseVerificationControlPointSequence must be a list of BeamDoseVerificationControlPointSequenceItem" + " objects" + ) + else: + self._BeamDoseVerificationControlPointSequence = value + if "BeamDoseVerificationControlPointSequence" not in self._dataset: + self._dataset.BeamDoseVerificationControlPointSequence = pydicom.Sequence() + self._dataset.BeamDoseVerificationControlPointSequence.clear() + self._dataset.BeamDoseVerificationControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_BeamDoseVerificationControlPoint(self, item: BeamDoseVerificationControlPointSequenceItem): + if not isinstance(item, BeamDoseVerificationControlPointSequenceItem): + raise ValueError("Item must be an instance of BeamDoseVerificationControlPointSequenceItem") + self._BeamDoseVerificationControlPointSequence.append(item) + if "BeamDoseVerificationControlPointSequence" not in self._dataset: + self._dataset.BeamDoseVerificationControlPointSequence = pydicom.Sequence() + self._dataset.BeamDoseVerificationControlPointSequence.append(item.to_dataset()) + + @property + def DepthValueAveragingFlag(self) -> Optional[str]: + if "DepthValueAveragingFlag" in self._dataset: + return self._dataset.DepthValueAveragingFlag + return None + + @DepthValueAveragingFlag.setter + def DepthValueAveragingFlag(self, value: Optional[str]): + if value is None: + if "DepthValueAveragingFlag" in self._dataset: + del self._dataset.DepthValueAveragingFlag + else: + self._dataset.DepthValueAveragingFlag = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_dose_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_dose_sequence_item.py new file mode 100644 index 0000000..b20cb9b --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_dose_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedDoseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_dosimetric_objectives_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_dosimetric_objectives_sequence_item.py new file mode 100644 index 0000000..3dfeb06 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_dosimetric_objectives_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedDosimetricObjectivesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDosimetricObjectiveUID(self) -> Optional[str]: + if "ReferencedDosimetricObjectiveUID" in self._dataset: + return self._dataset.ReferencedDosimetricObjectiveUID + return None + + @ReferencedDosimetricObjectiveUID.setter + def ReferencedDosimetricObjectiveUID(self, value: Optional[str]): + if value is None: + if "ReferencedDosimetricObjectiveUID" in self._dataset: + del self._dataset.ReferencedDosimetricObjectiveUID + else: + self._dataset.ReferencedDosimetricObjectiveUID = value + + @property + def DosimetricObjectiveWeight(self) -> Optional[float]: + if "DosimetricObjectiveWeight" in self._dataset: + return self._dataset.DosimetricObjectiveWeight + return None + + @DosimetricObjectiveWeight.setter + def DosimetricObjectiveWeight(self, value: Optional[float]): + if value is None: + if "DosimetricObjectiveWeight" in self._dataset: + del self._dataset.DosimetricObjectiveWeight + else: + self._dataset.DosimetricObjectiveWeight = value diff --git a/tdwii_plus_examples/domain_model/referenced_first_frame_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_first_frame_sequence_item.py new file mode 100644 index 0000000..fc46e19 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_first_frame_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedFirstFrameSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_fraction_group_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_fraction_group_sequence_item.py new file mode 100644 index 0000000..8da3aa4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_fraction_group_sequence_item.py @@ -0,0 +1,106 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_beam_sequence_item import ReferencedBeamSequenceItem +from .referenced_brachy_application_setup_sequence_item import ( + ReferencedBrachyApplicationSetupSequenceItem, +) + + +class ReferencedFractionGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedBeamSequence: List[ReferencedBeamSequenceItem] = [] + self._ReferencedBrachyApplicationSetupSequence: List[ReferencedBrachyApplicationSetupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedBeamSequence(self) -> Optional[List[ReferencedBeamSequenceItem]]: + if "ReferencedBeamSequence" in self._dataset: + if len(self._ReferencedBeamSequence) == len(self._dataset.ReferencedBeamSequence): + return self._ReferencedBeamSequence + else: + return [ReferencedBeamSequenceItem(x) for x in self._dataset.ReferencedBeamSequence] + return None + + @ReferencedBeamSequence.setter + def ReferencedBeamSequence(self, value: Optional[List[ReferencedBeamSequenceItem]]): + if value is None: + self._ReferencedBeamSequence = [] + if "ReferencedBeamSequence" in self._dataset: + del self._dataset.ReferencedBeamSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBeamSequenceItem) for item in value): + raise ValueError("ReferencedBeamSequence must be a list of ReferencedBeamSequenceItem objects") + else: + self._ReferencedBeamSequence = value + if "ReferencedBeamSequence" not in self._dataset: + self._dataset.ReferencedBeamSequence = pydicom.Sequence() + self._dataset.ReferencedBeamSequence.clear() + self._dataset.ReferencedBeamSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBeam(self, item: ReferencedBeamSequenceItem): + if not isinstance(item, ReferencedBeamSequenceItem): + raise ValueError("Item must be an instance of ReferencedBeamSequenceItem") + self._ReferencedBeamSequence.append(item) + if "ReferencedBeamSequence" not in self._dataset: + self._dataset.ReferencedBeamSequence = pydicom.Sequence() + self._dataset.ReferencedBeamSequence.append(item.to_dataset()) + + @property + def ReferencedBrachyApplicationSetupSequence(self) -> Optional[List[ReferencedBrachyApplicationSetupSequenceItem]]: + if "ReferencedBrachyApplicationSetupSequence" in self._dataset: + if len(self._ReferencedBrachyApplicationSetupSequence) == len( + self._dataset.ReferencedBrachyApplicationSetupSequence + ): + return self._ReferencedBrachyApplicationSetupSequence + else: + return [ + ReferencedBrachyApplicationSetupSequenceItem(x) + for x in self._dataset.ReferencedBrachyApplicationSetupSequence + ] + return None + + @ReferencedBrachyApplicationSetupSequence.setter + def ReferencedBrachyApplicationSetupSequence(self, value: Optional[List[ReferencedBrachyApplicationSetupSequenceItem]]): + if value is None: + self._ReferencedBrachyApplicationSetupSequence = [] + if "ReferencedBrachyApplicationSetupSequence" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedBrachyApplicationSetupSequenceItem) for item in value + ): + raise ValueError( + "ReferencedBrachyApplicationSetupSequence must be a list of ReferencedBrachyApplicationSetupSequenceItem" + " objects" + ) + else: + self._ReferencedBrachyApplicationSetupSequence = value + if "ReferencedBrachyApplicationSetupSequence" not in self._dataset: + self._dataset.ReferencedBrachyApplicationSetupSequence = pydicom.Sequence() + self._dataset.ReferencedBrachyApplicationSetupSequence.clear() + self._dataset.ReferencedBrachyApplicationSetupSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBrachyApplicationSetup(self, item: ReferencedBrachyApplicationSetupSequenceItem): + if not isinstance(item, ReferencedBrachyApplicationSetupSequenceItem): + raise ValueError("Item must be an instance of ReferencedBrachyApplicationSetupSequenceItem") + self._ReferencedBrachyApplicationSetupSequence.append(item) + if "ReferencedBrachyApplicationSetupSequence" not in self._dataset: + self._dataset.ReferencedBrachyApplicationSetupSequence = pydicom.Sequence() + self._dataset.ReferencedBrachyApplicationSetupSequence.append(item.to_dataset()) + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_frame_of_reference_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_frame_of_reference_sequence_item.py new file mode 100644 index 0000000..94025df --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_frame_of_reference_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_referenced_study_sequence_item import RTReferencedStudySequenceItem + + +class ReferencedFrameOfReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTReferencedStudySequence: List[RTReferencedStudySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def RTReferencedStudySequence(self) -> Optional[List[RTReferencedStudySequenceItem]]: + if "RTReferencedStudySequence" in self._dataset: + if len(self._RTReferencedStudySequence) == len(self._dataset.RTReferencedStudySequence): + return self._RTReferencedStudySequence + else: + return [RTReferencedStudySequenceItem(x) for x in self._dataset.RTReferencedStudySequence] + return None + + @RTReferencedStudySequence.setter + def RTReferencedStudySequence(self, value: Optional[List[RTReferencedStudySequenceItem]]): + if value is None: + self._RTReferencedStudySequence = [] + if "RTReferencedStudySequence" in self._dataset: + del self._dataset.RTReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, RTReferencedStudySequenceItem) for item in value): + raise ValueError("RTReferencedStudySequence must be a list of RTReferencedStudySequenceItem objects") + else: + self._RTReferencedStudySequence = value + if "RTReferencedStudySequence" not in self._dataset: + self._dataset.RTReferencedStudySequence = pydicom.Sequence() + self._dataset.RTReferencedStudySequence.clear() + self._dataset.RTReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_RTReferencedStudy(self, item: RTReferencedStudySequenceItem): + if not isinstance(item, RTReferencedStudySequenceItem): + raise ValueError("Item must be an instance of RTReferencedStudySequenceItem") + self._RTReferencedStudySequence.append(item) + if "RTReferencedStudySequence" not in self._dataset: + self._dataset.RTReferencedStudySequence = pydicom.Sequence() + self._dataset.RTReferencedStudySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_image_evidence_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_image_evidence_sequence_item.py new file mode 100644 index 0000000..5d67150 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_image_evidence_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class ReferencedImageEvidenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_image_real_world_value_mapping_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_image_real_world_value_mapping_sequence_item.py new file mode 100644 index 0000000..f7fdcba --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_image_real_world_value_mapping_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class ReferencedImageRealWorldValueMappingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_image_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_image_sequence_item.py new file mode 100644 index 0000000..3d2d988 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_image_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReferencedImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_image_sequence_item_182.py b/tdwii_plus_examples/domain_model/referenced_image_sequence_item_182.py new file mode 100644 index 0000000..0134f94 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_image_sequence_item_182.py @@ -0,0 +1,108 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) + + +class ReferencedImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_instance_sequence_item.py new file mode 100644 index 0000000..7b5d5e2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_instance_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReferencedInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_instance_sequence_item_236.py b/tdwii_plus_examples/domain_model/referenced_instance_sequence_item_236.py new file mode 100644 index 0000000..c38da07 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_instance_sequence_item_236.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_measured_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_measured_dose_reference_sequence_item.py new file mode 100644 index 0000000..e327416 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_measured_dose_reference_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedMeasuredDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasuredDoseValue(self) -> Optional[Decimal]: + if "MeasuredDoseValue" in self._dataset: + return self._dataset.MeasuredDoseValue + return None + + @MeasuredDoseValue.setter + def MeasuredDoseValue(self, value: Optional[Decimal]): + if value is None: + if "MeasuredDoseValue" in self._dataset: + del self._dataset.MeasuredDoseValue + else: + self._dataset.MeasuredDoseValue = value + + @property + def ReferencedMeasuredDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedMeasuredDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedMeasuredDoseReferenceNumber + return None + + @ReferencedMeasuredDoseReferenceNumber.setter + def ReferencedMeasuredDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedMeasuredDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedMeasuredDoseReferenceNumber + else: + self._dataset.ReferencedMeasuredDoseReferenceNumber = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item.py new file mode 100644 index 0000000..19dcf26 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_other_plane_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_other_plane_sequence_item.py new file mode 100644 index 0000000..d77b6ac --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_other_plane_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedOtherPlaneSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_patient_photo_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_patient_photo_sequence_item.py new file mode 100644 index 0000000..69d3025 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_patient_photo_sequence_item.py @@ -0,0 +1,258 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .dicom_media_retrieval_sequence_item import DICOMMediaRetrievalSequenceItem +from .dicom_retrieval_sequence_item import DICOMRetrievalSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .wado_retrieval_sequence_item import WADORetrievalSequenceItem +from .wadors_retrieval_sequence_item import WADORSRetrievalSequenceItem +from .xds_retrieval_sequence_item import XDSRetrievalSequenceItem + + +class ReferencedPatientPhotoSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._DICOMRetrievalSequence: List[DICOMRetrievalSequenceItem] = [] + self._DICOMMediaRetrievalSequence: List[DICOMMediaRetrievalSequenceItem] = [] + self._WADORetrievalSequence: List[WADORetrievalSequenceItem] = [] + self._XDSRetrievalSequence: List[XDSRetrievalSequenceItem] = [] + self._WADORSRetrievalSequence: List[WADORSRetrievalSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def TypeOfInstances(self) -> Optional[str]: + if "TypeOfInstances" in self._dataset: + return self._dataset.TypeOfInstances + return None + + @TypeOfInstances.setter + def TypeOfInstances(self, value: Optional[str]): + if value is None: + if "TypeOfInstances" in self._dataset: + del self._dataset.TypeOfInstances + else: + self._dataset.TypeOfInstances = value + + @property + def DICOMRetrievalSequence(self) -> Optional[List[DICOMRetrievalSequenceItem]]: + if "DICOMRetrievalSequence" in self._dataset: + if len(self._DICOMRetrievalSequence) == len(self._dataset.DICOMRetrievalSequence): + return self._DICOMRetrievalSequence + else: + return [DICOMRetrievalSequenceItem(x) for x in self._dataset.DICOMRetrievalSequence] + return None + + @DICOMRetrievalSequence.setter + def DICOMRetrievalSequence(self, value: Optional[List[DICOMRetrievalSequenceItem]]): + if value is None: + self._DICOMRetrievalSequence = [] + if "DICOMRetrievalSequence" in self._dataset: + del self._dataset.DICOMRetrievalSequence + elif not isinstance(value, list) or not all(isinstance(item, DICOMRetrievalSequenceItem) for item in value): + raise ValueError("DICOMRetrievalSequence must be a list of DICOMRetrievalSequenceItem objects") + else: + self._DICOMRetrievalSequence = value + if "DICOMRetrievalSequence" not in self._dataset: + self._dataset.DICOMRetrievalSequence = pydicom.Sequence() + self._dataset.DICOMRetrievalSequence.clear() + self._dataset.DICOMRetrievalSequence.extend([item.to_dataset() for item in value]) + + def add_DICOMRetrieval(self, item: DICOMRetrievalSequenceItem): + if not isinstance(item, DICOMRetrievalSequenceItem): + raise ValueError("Item must be an instance of DICOMRetrievalSequenceItem") + self._DICOMRetrievalSequence.append(item) + if "DICOMRetrievalSequence" not in self._dataset: + self._dataset.DICOMRetrievalSequence = pydicom.Sequence() + self._dataset.DICOMRetrievalSequence.append(item.to_dataset()) + + @property + def DICOMMediaRetrievalSequence(self) -> Optional[List[DICOMMediaRetrievalSequenceItem]]: + if "DICOMMediaRetrievalSequence" in self._dataset: + if len(self._DICOMMediaRetrievalSequence) == len(self._dataset.DICOMMediaRetrievalSequence): + return self._DICOMMediaRetrievalSequence + else: + return [DICOMMediaRetrievalSequenceItem(x) for x in self._dataset.DICOMMediaRetrievalSequence] + return None + + @DICOMMediaRetrievalSequence.setter + def DICOMMediaRetrievalSequence(self, value: Optional[List[DICOMMediaRetrievalSequenceItem]]): + if value is None: + self._DICOMMediaRetrievalSequence = [] + if "DICOMMediaRetrievalSequence" in self._dataset: + del self._dataset.DICOMMediaRetrievalSequence + elif not isinstance(value, list) or not all(isinstance(item, DICOMMediaRetrievalSequenceItem) for item in value): + raise ValueError("DICOMMediaRetrievalSequence must be a list of DICOMMediaRetrievalSequenceItem objects") + else: + self._DICOMMediaRetrievalSequence = value + if "DICOMMediaRetrievalSequence" not in self._dataset: + self._dataset.DICOMMediaRetrievalSequence = pydicom.Sequence() + self._dataset.DICOMMediaRetrievalSequence.clear() + self._dataset.DICOMMediaRetrievalSequence.extend([item.to_dataset() for item in value]) + + def add_DICOMMediaRetrieval(self, item: DICOMMediaRetrievalSequenceItem): + if not isinstance(item, DICOMMediaRetrievalSequenceItem): + raise ValueError("Item must be an instance of DICOMMediaRetrievalSequenceItem") + self._DICOMMediaRetrievalSequence.append(item) + if "DICOMMediaRetrievalSequence" not in self._dataset: + self._dataset.DICOMMediaRetrievalSequence = pydicom.Sequence() + self._dataset.DICOMMediaRetrievalSequence.append(item.to_dataset()) + + @property + def WADORetrievalSequence(self) -> Optional[List[WADORetrievalSequenceItem]]: + if "WADORetrievalSequence" in self._dataset: + if len(self._WADORetrievalSequence) == len(self._dataset.WADORetrievalSequence): + return self._WADORetrievalSequence + else: + return [WADORetrievalSequenceItem(x) for x in self._dataset.WADORetrievalSequence] + return None + + @WADORetrievalSequence.setter + def WADORetrievalSequence(self, value: Optional[List[WADORetrievalSequenceItem]]): + if value is None: + self._WADORetrievalSequence = [] + if "WADORetrievalSequence" in self._dataset: + del self._dataset.WADORetrievalSequence + elif not isinstance(value, list) or not all(isinstance(item, WADORetrievalSequenceItem) for item in value): + raise ValueError("WADORetrievalSequence must be a list of WADORetrievalSequenceItem objects") + else: + self._WADORetrievalSequence = value + if "WADORetrievalSequence" not in self._dataset: + self._dataset.WADORetrievalSequence = pydicom.Sequence() + self._dataset.WADORetrievalSequence.clear() + self._dataset.WADORetrievalSequence.extend([item.to_dataset() for item in value]) + + def add_WADORetrieval(self, item: WADORetrievalSequenceItem): + if not isinstance(item, WADORetrievalSequenceItem): + raise ValueError("Item must be an instance of WADORetrievalSequenceItem") + self._WADORetrievalSequence.append(item) + if "WADORetrievalSequence" not in self._dataset: + self._dataset.WADORetrievalSequence = pydicom.Sequence() + self._dataset.WADORetrievalSequence.append(item.to_dataset()) + + @property + def XDSRetrievalSequence(self) -> Optional[List[XDSRetrievalSequenceItem]]: + if "XDSRetrievalSequence" in self._dataset: + if len(self._XDSRetrievalSequence) == len(self._dataset.XDSRetrievalSequence): + return self._XDSRetrievalSequence + else: + return [XDSRetrievalSequenceItem(x) for x in self._dataset.XDSRetrievalSequence] + return None + + @XDSRetrievalSequence.setter + def XDSRetrievalSequence(self, value: Optional[List[XDSRetrievalSequenceItem]]): + if value is None: + self._XDSRetrievalSequence = [] + if "XDSRetrievalSequence" in self._dataset: + del self._dataset.XDSRetrievalSequence + elif not isinstance(value, list) or not all(isinstance(item, XDSRetrievalSequenceItem) for item in value): + raise ValueError("XDSRetrievalSequence must be a list of XDSRetrievalSequenceItem objects") + else: + self._XDSRetrievalSequence = value + if "XDSRetrievalSequence" not in self._dataset: + self._dataset.XDSRetrievalSequence = pydicom.Sequence() + self._dataset.XDSRetrievalSequence.clear() + self._dataset.XDSRetrievalSequence.extend([item.to_dataset() for item in value]) + + def add_XDSRetrieval(self, item: XDSRetrievalSequenceItem): + if not isinstance(item, XDSRetrievalSequenceItem): + raise ValueError("Item must be an instance of XDSRetrievalSequenceItem") + self._XDSRetrievalSequence.append(item) + if "XDSRetrievalSequence" not in self._dataset: + self._dataset.XDSRetrievalSequence = pydicom.Sequence() + self._dataset.XDSRetrievalSequence.append(item.to_dataset()) + + @property + def WADORSRetrievalSequence(self) -> Optional[List[WADORSRetrievalSequenceItem]]: + if "WADORSRetrievalSequence" in self._dataset: + if len(self._WADORSRetrievalSequence) == len(self._dataset.WADORSRetrievalSequence): + return self._WADORSRetrievalSequence + else: + return [WADORSRetrievalSequenceItem(x) for x in self._dataset.WADORSRetrievalSequence] + return None + + @WADORSRetrievalSequence.setter + def WADORSRetrievalSequence(self, value: Optional[List[WADORSRetrievalSequenceItem]]): + if value is None: + self._WADORSRetrievalSequence = [] + if "WADORSRetrievalSequence" in self._dataset: + del self._dataset.WADORSRetrievalSequence + elif not isinstance(value, list) or not all(isinstance(item, WADORSRetrievalSequenceItem) for item in value): + raise ValueError("WADORSRetrievalSequence must be a list of WADORSRetrievalSequenceItem objects") + else: + self._WADORSRetrievalSequence = value + if "WADORSRetrievalSequence" not in self._dataset: + self._dataset.WADORSRetrievalSequence = pydicom.Sequence() + self._dataset.WADORSRetrievalSequence.clear() + self._dataset.WADORSRetrievalSequence.extend([item.to_dataset() for item in value]) + + def add_WADORSRetrieval(self, item: WADORSRetrievalSequenceItem): + if not isinstance(item, WADORSRetrievalSequenceItem): + raise ValueError("Item must be an instance of WADORSRetrievalSequenceItem") + self._WADORSRetrievalSequence.append(item) + if "WADORSRetrievalSequence" not in self._dataset: + self._dataset.WADORSRetrievalSequence = pydicom.Sequence() + self._dataset.WADORSRetrievalSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_patient_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_patient_sequence_item.py new file mode 100644 index 0000000..1c7e037 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_patient_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedPatientSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_patient_setup_photo_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_patient_setup_photo_sequence_item.py new file mode 100644 index 0000000..7443781 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_patient_setup_photo_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedPatientSetupPhotoSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def PatientSetupPhotoDescription(self) -> Optional[str]: + if "PatientSetupPhotoDescription" in self._dataset: + return self._dataset.PatientSetupPhotoDescription + return None + + @PatientSetupPhotoDescription.setter + def PatientSetupPhotoDescription(self, value: Optional[str]): + if value is None: + if "PatientSetupPhotoDescription" in self._dataset: + del self._dataset.PatientSetupPhotoDescription + else: + self._dataset.PatientSetupPhotoDescription = value + + @property + def ReferencedPatientSetupProcedureIndex(self) -> Optional[int]: + if "ReferencedPatientSetupProcedureIndex" in self._dataset: + return self._dataset.ReferencedPatientSetupProcedureIndex + return None + + @ReferencedPatientSetupProcedureIndex.setter + def ReferencedPatientSetupProcedureIndex(self, value: Optional[int]): + if value is None: + if "ReferencedPatientSetupProcedureIndex" in self._dataset: + del self._dataset.ReferencedPatientSetupProcedureIndex + else: + self._dataset.ReferencedPatientSetupProcedureIndex = value diff --git a/tdwii_plus_examples/domain_model/referenced_performed_procedure_step_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_performed_procedure_step_sequence_item.py new file mode 100644 index 0000000..1e09af8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_performed_procedure_step_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedPerformedProcedureStepSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_performed_protocol_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_performed_protocol_sequence_item.py new file mode 100644 index 0000000..75d1503 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_performed_protocol_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedPerformedProtocolSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def SourceAcquisitionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + return self._dataset.SourceAcquisitionProtocolElementNumber + return None + + @SourceAcquisitionProtocolElementNumber.setter + def SourceAcquisitionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + del self._dataset.SourceAcquisitionProtocolElementNumber + else: + self._dataset.SourceAcquisitionProtocolElementNumber = value + + @property + def SourceReconstructionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceReconstructionProtocolElementNumber" in self._dataset: + return self._dataset.SourceReconstructionProtocolElementNumber + return None + + @SourceReconstructionProtocolElementNumber.setter + def SourceReconstructionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceReconstructionProtocolElementNumber" in self._dataset: + del self._dataset.SourceReconstructionProtocolElementNumber + else: + self._dataset.SourceReconstructionProtocolElementNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_position_reference_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_position_reference_instance_sequence_item.py new file mode 100644 index 0000000..e2d8da2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_position_reference_instance_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem + + +class ReferencedPositionReferenceInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_presentation_state_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_presentation_state_sequence_item.py new file mode 100644 index 0000000..9acd77c --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_presentation_state_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class ReferencedPresentationStateSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_raw_data_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_raw_data_sequence_item.py new file mode 100644 index 0000000..053e682 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_raw_data_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class ReferencedRawDataSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_real_world_value_mapping_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_real_world_value_mapping_instance_sequence_item.py new file mode 100644 index 0000000..18fccca --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_real_world_value_mapping_instance_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRealWorldValueMappingInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item.py new file mode 100644 index 0000000..f4ae8cb --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedReferenceImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_1.py new file mode 100644 index 0000000..038ff02 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_1.py @@ -0,0 +1,82 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedReferenceImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferenceImageNumber(self) -> Optional[int]: + if "ReferenceImageNumber" in self._dataset: + return self._dataset.ReferenceImageNumber + return None + + @ReferenceImageNumber.setter + def ReferenceImageNumber(self, value: Optional[int]): + if value is None: + if "ReferenceImageNumber" in self._dataset: + del self._dataset.ReferenceImageNumber + else: + self._dataset.ReferenceImageNumber = value + + @property + def StartCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "StartCumulativeMetersetWeight" in self._dataset: + return self._dataset.StartCumulativeMetersetWeight + return None + + @StartCumulativeMetersetWeight.setter + def StartCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "StartCumulativeMetersetWeight" in self._dataset: + del self._dataset.StartCumulativeMetersetWeight + else: + self._dataset.StartCumulativeMetersetWeight = value + + @property + def EndCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "EndCumulativeMetersetWeight" in self._dataset: + return self._dataset.EndCumulativeMetersetWeight + return None + + @EndCumulativeMetersetWeight.setter + def EndCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "EndCumulativeMetersetWeight" in self._dataset: + del self._dataset.EndCumulativeMetersetWeight + else: + self._dataset.EndCumulativeMetersetWeight = value diff --git a/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_2.py b/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_2.py new file mode 100644 index 0000000..be65fb9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_reference_image_sequence_item_2.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedReferenceImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferenceImageNumber(self) -> Optional[int]: + if "ReferenceImageNumber" in self._dataset: + return self._dataset.ReferenceImageNumber + return None + + @ReferenceImageNumber.setter + def ReferenceImageNumber(self, value: Optional[int]): + if value is None: + if "ReferenceImageNumber" in self._dataset: + del self._dataset.ReferenceImageNumber + else: + self._dataset.ReferenceImageNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_refractive_measurements_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_refractive_measurements_sequence_item.py new file mode 100644 index 0000000..3bc9a9f --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_refractive_measurements_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRefractiveMeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_request_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_request_sequence_item.py new file mode 100644 index 0000000..61e0ae6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_request_sequence_item.py @@ -0,0 +1,317 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .order_filler_identifier_sequence_item import OrderFillerIdentifierSequenceItem +from .order_placer_identifier_sequence_item import OrderPlacerIdentifierSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem + + +class ReferencedRequestSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OrderPlacerIdentifierSequence: List[OrderPlacerIdentifierSequenceItem] = [] + self._OrderFillerIdentifierSequence: List[OrderFillerIdentifierSequenceItem] = [] + self._ReasonForRequestedProcedureCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def RequestedProcedureDescription(self) -> Optional[str]: + if "RequestedProcedureDescription" in self._dataset: + return self._dataset.RequestedProcedureDescription + return None + + @RequestedProcedureDescription.setter + def RequestedProcedureDescription(self, value: Optional[str]): + if value is None: + if "RequestedProcedureDescription" in self._dataset: + del self._dataset.RequestedProcedureDescription + else: + self._dataset.RequestedProcedureDescription = value + + @property + def RequestedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestedProcedureCodeSequence" in self._dataset: + if len(self._RequestedProcedureCodeSequence) == len(self._dataset.RequestedProcedureCodeSequence): + return self._RequestedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestedProcedureCodeSequence] + return None + + @RequestedProcedureCodeSequence.setter + def RequestedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestedProcedureCodeSequence = [] + if "RequestedProcedureCodeSequence" in self._dataset: + del self._dataset.RequestedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestedProcedureCodeSequence = value + if "RequestedProcedureCodeSequence" not in self._dataset: + self._dataset.RequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.RequestedProcedureCodeSequence.clear() + self._dataset.RequestedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestedProcedureCodeSequence.append(item) + if "RequestedProcedureCodeSequence" not in self._dataset: + self._dataset.RequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.RequestedProcedureCodeSequence.append(item.to_dataset()) + + @property + def OrderPlacerIdentifierSequence(self) -> Optional[List[OrderPlacerIdentifierSequenceItem]]: + if "OrderPlacerIdentifierSequence" in self._dataset: + if len(self._OrderPlacerIdentifierSequence) == len(self._dataset.OrderPlacerIdentifierSequence): + return self._OrderPlacerIdentifierSequence + else: + return [OrderPlacerIdentifierSequenceItem(x) for x in self._dataset.OrderPlacerIdentifierSequence] + return None + + @OrderPlacerIdentifierSequence.setter + def OrderPlacerIdentifierSequence(self, value: Optional[List[OrderPlacerIdentifierSequenceItem]]): + if value is None: + self._OrderPlacerIdentifierSequence = [] + if "OrderPlacerIdentifierSequence" in self._dataset: + del self._dataset.OrderPlacerIdentifierSequence + elif not isinstance(value, list) or not all(isinstance(item, OrderPlacerIdentifierSequenceItem) for item in value): + raise ValueError("OrderPlacerIdentifierSequence must be a list of OrderPlacerIdentifierSequenceItem objects") + else: + self._OrderPlacerIdentifierSequence = value + if "OrderPlacerIdentifierSequence" not in self._dataset: + self._dataset.OrderPlacerIdentifierSequence = pydicom.Sequence() + self._dataset.OrderPlacerIdentifierSequence.clear() + self._dataset.OrderPlacerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_OrderPlacerIdentifier(self, item: OrderPlacerIdentifierSequenceItem): + if not isinstance(item, OrderPlacerIdentifierSequenceItem): + raise ValueError("Item must be an instance of OrderPlacerIdentifierSequenceItem") + self._OrderPlacerIdentifierSequence.append(item) + if "OrderPlacerIdentifierSequence" not in self._dataset: + self._dataset.OrderPlacerIdentifierSequence = pydicom.Sequence() + self._dataset.OrderPlacerIdentifierSequence.append(item.to_dataset()) + + @property + def OrderFillerIdentifierSequence(self) -> Optional[List[OrderFillerIdentifierSequenceItem]]: + if "OrderFillerIdentifierSequence" in self._dataset: + if len(self._OrderFillerIdentifierSequence) == len(self._dataset.OrderFillerIdentifierSequence): + return self._OrderFillerIdentifierSequence + else: + return [OrderFillerIdentifierSequenceItem(x) for x in self._dataset.OrderFillerIdentifierSequence] + return None + + @OrderFillerIdentifierSequence.setter + def OrderFillerIdentifierSequence(self, value: Optional[List[OrderFillerIdentifierSequenceItem]]): + if value is None: + self._OrderFillerIdentifierSequence = [] + if "OrderFillerIdentifierSequence" in self._dataset: + del self._dataset.OrderFillerIdentifierSequence + elif not isinstance(value, list) or not all(isinstance(item, OrderFillerIdentifierSequenceItem) for item in value): + raise ValueError("OrderFillerIdentifierSequence must be a list of OrderFillerIdentifierSequenceItem objects") + else: + self._OrderFillerIdentifierSequence = value + if "OrderFillerIdentifierSequence" not in self._dataset: + self._dataset.OrderFillerIdentifierSequence = pydicom.Sequence() + self._dataset.OrderFillerIdentifierSequence.clear() + self._dataset.OrderFillerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_OrderFillerIdentifier(self, item: OrderFillerIdentifierSequenceItem): + if not isinstance(item, OrderFillerIdentifierSequenceItem): + raise ValueError("Item must be an instance of OrderFillerIdentifierSequenceItem") + self._OrderFillerIdentifierSequence.append(item) + if "OrderFillerIdentifierSequence" not in self._dataset: + self._dataset.OrderFillerIdentifierSequence = pydicom.Sequence() + self._dataset.OrderFillerIdentifierSequence.append(item.to_dataset()) + + @property + def RequestedProcedureID(self) -> Optional[str]: + if "RequestedProcedureID" in self._dataset: + return self._dataset.RequestedProcedureID + return None + + @RequestedProcedureID.setter + def RequestedProcedureID(self, value: Optional[str]): + if value is None: + if "RequestedProcedureID" in self._dataset: + del self._dataset.RequestedProcedureID + else: + self._dataset.RequestedProcedureID = value + + @property + def ReasonForTheRequestedProcedure(self) -> Optional[str]: + if "ReasonForTheRequestedProcedure" in self._dataset: + return self._dataset.ReasonForTheRequestedProcedure + return None + + @ReasonForTheRequestedProcedure.setter + def ReasonForTheRequestedProcedure(self, value: Optional[str]): + if value is None: + if "ReasonForTheRequestedProcedure" in self._dataset: + del self._dataset.ReasonForTheRequestedProcedure + else: + self._dataset.ReasonForTheRequestedProcedure = value + + @property + def ReasonForRequestedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForRequestedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForRequestedProcedureCodeSequence) == len( + self._dataset.ReasonForRequestedProcedureCodeSequence + ): + return self._ReasonForRequestedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForRequestedProcedureCodeSequence] + return None + + @ReasonForRequestedProcedureCodeSequence.setter + def ReasonForRequestedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForRequestedProcedureCodeSequence = [] + if "ReasonForRequestedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForRequestedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForRequestedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForRequestedProcedureCodeSequence = value + if "ReasonForRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForRequestedProcedureCodeSequence.clear() + self._dataset.ReasonForRequestedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForRequestedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForRequestedProcedureCodeSequence.append(item) + if "ReasonForRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForRequestedProcedureCodeSequence.append(item.to_dataset()) + + @property + def PlacerOrderNumberImagingServiceRequest(self) -> Optional[str]: + if "PlacerOrderNumberImagingServiceRequest" in self._dataset: + return self._dataset.PlacerOrderNumberImagingServiceRequest + return None + + @PlacerOrderNumberImagingServiceRequest.setter + def PlacerOrderNumberImagingServiceRequest(self, value: Optional[str]): + if value is None: + if "PlacerOrderNumberImagingServiceRequest" in self._dataset: + del self._dataset.PlacerOrderNumberImagingServiceRequest + else: + self._dataset.PlacerOrderNumberImagingServiceRequest = value + + @property + def FillerOrderNumberImagingServiceRequest(self) -> Optional[str]: + if "FillerOrderNumberImagingServiceRequest" in self._dataset: + return self._dataset.FillerOrderNumberImagingServiceRequest + return None + + @FillerOrderNumberImagingServiceRequest.setter + def FillerOrderNumberImagingServiceRequest(self, value: Optional[str]): + if value is None: + if "FillerOrderNumberImagingServiceRequest" in self._dataset: + del self._dataset.FillerOrderNumberImagingServiceRequest + else: + self._dataset.FillerOrderNumberImagingServiceRequest = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_instance_sequence_item.py new file mode 100644 index 0000000..d7cc732 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_instance_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_physician_intent_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_physician_intent_sequence_item.py new file mode 100644 index 0000000..2e251f4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_physician_intent_sequence_item.py @@ -0,0 +1,76 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_rt_prescription_sequence_item import ( + ReferencedRTPrescriptionSequenceItem, +) + + +class ReferencedRTPhysicianIntentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedRTPrescriptionSequence: List[ReferencedRTPrescriptionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedRTPrescriptionSequence(self) -> Optional[List[ReferencedRTPrescriptionSequenceItem]]: + if "ReferencedRTPrescriptionSequence" in self._dataset: + if len(self._ReferencedRTPrescriptionSequence) == len(self._dataset.ReferencedRTPrescriptionSequence): + return self._ReferencedRTPrescriptionSequence + else: + return [ReferencedRTPrescriptionSequenceItem(x) for x in self._dataset.ReferencedRTPrescriptionSequence] + return None + + @ReferencedRTPrescriptionSequence.setter + def ReferencedRTPrescriptionSequence(self, value: Optional[List[ReferencedRTPrescriptionSequenceItem]]): + if value is None: + self._ReferencedRTPrescriptionSequence = [] + if "ReferencedRTPrescriptionSequence" in self._dataset: + del self._dataset.ReferencedRTPrescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPrescriptionSequenceItem) for item in value): + raise ValueError("ReferencedRTPrescriptionSequence must be a list of ReferencedRTPrescriptionSequenceItem objects") + else: + self._ReferencedRTPrescriptionSequence = value + if "ReferencedRTPrescriptionSequence" not in self._dataset: + self._dataset.ReferencedRTPrescriptionSequence = pydicom.Sequence() + self._dataset.ReferencedRTPrescriptionSequence.clear() + self._dataset.ReferencedRTPrescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPrescription(self, item: ReferencedRTPrescriptionSequenceItem): + if not isinstance(item, ReferencedRTPrescriptionSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPrescriptionSequenceItem") + self._ReferencedRTPrescriptionSequence.append(item) + if "ReferencedRTPrescriptionSequence" not in self._dataset: + self._dataset.ReferencedRTPrescriptionSequence = pydicom.Sequence() + self._dataset.ReferencedRTPrescriptionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item.py new file mode 100644 index 0000000..877d551 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTPlanSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def RTPlanRelationship(self) -> Optional[str]: + if "RTPlanRelationship" in self._dataset: + return self._dataset.RTPlanRelationship + return None + + @RTPlanRelationship.setter + def RTPlanRelationship(self, value: Optional[str]): + if value is None: + if "RTPlanRelationship" in self._dataset: + del self._dataset.RTPlanRelationship + else: + self._dataset.RTPlanRelationship = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_4.py b/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_4.py new file mode 100644 index 0000000..22f54f9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_4.py @@ -0,0 +1,88 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_fraction_group_sequence_item import ReferencedFractionGroupSequenceItem + + +class ReferencedRTPlanSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedFractionGroupSequence: List[ReferencedFractionGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFractionGroupSequence(self) -> Optional[List[ReferencedFractionGroupSequenceItem]]: + if "ReferencedFractionGroupSequence" in self._dataset: + if len(self._ReferencedFractionGroupSequence) == len(self._dataset.ReferencedFractionGroupSequence): + return self._ReferencedFractionGroupSequence + else: + return [ReferencedFractionGroupSequenceItem(x) for x in self._dataset.ReferencedFractionGroupSequence] + return None + + @ReferencedFractionGroupSequence.setter + def ReferencedFractionGroupSequence(self, value: Optional[List[ReferencedFractionGroupSequenceItem]]): + if value is None: + self._ReferencedFractionGroupSequence = [] + if "ReferencedFractionGroupSequence" in self._dataset: + del self._dataset.ReferencedFractionGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedFractionGroupSequenceItem) for item in value): + raise ValueError("ReferencedFractionGroupSequence must be a list of ReferencedFractionGroupSequenceItem objects") + else: + self._ReferencedFractionGroupSequence = value + if "ReferencedFractionGroupSequence" not in self._dataset: + self._dataset.ReferencedFractionGroupSequence = pydicom.Sequence() + self._dataset.ReferencedFractionGroupSequence.clear() + self._dataset.ReferencedFractionGroupSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedFractionGroup(self, item: ReferencedFractionGroupSequenceItem): + if not isinstance(item, ReferencedFractionGroupSequenceItem): + raise ValueError("Item must be an instance of ReferencedFractionGroupSequenceItem") + self._ReferencedFractionGroupSequence.append(item) + if "ReferencedFractionGroupSequence" not in self._dataset: + self._dataset.ReferencedFractionGroupSequence = pydicom.Sequence() + self._dataset.ReferencedFractionGroupSequence.append(item.to_dataset()) + + @property + def ReferencedPlanOverviewIndex(self) -> Optional[int]: + if "ReferencedPlanOverviewIndex" in self._dataset: + return self._dataset.ReferencedPlanOverviewIndex + return None + + @ReferencedPlanOverviewIndex.setter + def ReferencedPlanOverviewIndex(self, value: Optional[int]): + if value is None: + if "ReferencedPlanOverviewIndex" in self._dataset: + del self._dataset.ReferencedPlanOverviewIndex + else: + self._dataset.ReferencedPlanOverviewIndex = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_5.py b/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_5.py new file mode 100644 index 0000000..e1d4b43 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_plan_sequence_item_5.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class ReferencedRTPlanSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_prescription_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_prescription_sequence_item.py new file mode 100644 index 0000000..cf52136 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_prescription_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTPrescriptionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRTPrescriptionIndex(self) -> Optional[int]: + if "ReferencedRTPrescriptionIndex" in self._dataset: + return self._dataset.ReferencedRTPrescriptionIndex + return None + + @ReferencedRTPrescriptionIndex.setter + def ReferencedRTPrescriptionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTPrescriptionIndex" in self._dataset: + del self._dataset.ReferencedRTPrescriptionIndex + else: + self._dataset.ReferencedRTPrescriptionIndex = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_radiation_record_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_radiation_record_sequence_item.py new file mode 100644 index 0000000..997a8af --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_radiation_record_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTRadiationRecordSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_radiation_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_radiation_sequence_item.py new file mode 100644 index 0000000..ebfb836 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_radiation_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTRadiationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_radiation_set_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_radiation_set_sequence_item.py new file mode 100644 index 0000000..7d7db4f --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_radiation_set_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTRadiationSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_treatment_phase_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_treatment_phase_sequence_item.py new file mode 100644 index 0000000..bee3718 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_treatment_phase_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTTreatmentPhaseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRTTreatmentPhaseIndex(self) -> Optional[int]: + if "ReferencedRTTreatmentPhaseIndex" in self._dataset: + return self._dataset.ReferencedRTTreatmentPhaseIndex + return None + + @ReferencedRTTreatmentPhaseIndex.setter + def ReferencedRTTreatmentPhaseIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTTreatmentPhaseIndex" in self._dataset: + del self._dataset.ReferencedRTTreatmentPhaseIndex + else: + self._dataset.ReferencedRTTreatmentPhaseIndex = value diff --git a/tdwii_plus_examples/domain_model/referenced_rt_treatment_preparation_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_rt_treatment_preparation_sequence_item.py new file mode 100644 index 0000000..26408de --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_rt_treatment_preparation_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedRTTreatmentPreparationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_series_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_series_sequence_item.py new file mode 100644 index 0000000..e6681f3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_series_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem + + +class ReferencedSeriesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_setup_image_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_setup_image_sequence_item.py new file mode 100644 index 0000000..dee5d20 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_setup_image_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedSetupImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value + + @property + def SetupImageComment(self) -> Optional[str]: + if "SetupImageComment" in self._dataset: + return self._dataset.SetupImageComment + return None + + @SetupImageComment.setter + def SetupImageComment(self, value: Optional[str]): + if value is None: + if "SetupImageComment" in self._dataset: + del self._dataset.SetupImageComment + else: + self._dataset.SetupImageComment = value diff --git a/tdwii_plus_examples/domain_model/referenced_sop_instance_mac_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_sop_instance_mac_sequence_item.py new file mode 100644 index 0000000..43a1903 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_sop_instance_mac_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedSOPInstanceMACSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MACCalculationTransferSyntaxUID(self) -> Optional[str]: + if "MACCalculationTransferSyntaxUID" in self._dataset: + return self._dataset.MACCalculationTransferSyntaxUID + return None + + @MACCalculationTransferSyntaxUID.setter + def MACCalculationTransferSyntaxUID(self, value: Optional[str]): + if value is None: + if "MACCalculationTransferSyntaxUID" in self._dataset: + del self._dataset.MACCalculationTransferSyntaxUID + else: + self._dataset.MACCalculationTransferSyntaxUID = value + + @property + def MACAlgorithm(self) -> Optional[str]: + if "MACAlgorithm" in self._dataset: + return self._dataset.MACAlgorithm + return None + + @MACAlgorithm.setter + def MACAlgorithm(self, value: Optional[str]): + if value is None: + if "MACAlgorithm" in self._dataset: + del self._dataset.MACAlgorithm + else: + self._dataset.MACAlgorithm = value + + @property + def DataElementsSigned(self) -> Optional[List[int]]: + if "DataElementsSigned" in self._dataset: + return self._dataset.DataElementsSigned + return None + + @DataElementsSigned.setter + def DataElementsSigned(self, value: Optional[List[int]]): + if value is None: + if "DataElementsSigned" in self._dataset: + del self._dataset.DataElementsSigned + else: + self._dataset.DataElementsSigned = value + + @property + def MAC(self) -> Optional[bytes]: + if "MAC" in self._dataset: + return self._dataset.MAC + return None + + @MAC.setter + def MAC(self, value: Optional[bytes]): + if value is None: + if "MAC" in self._dataset: + del self._dataset.MAC + else: + self._dataset.MAC = value diff --git a/tdwii_plus_examples/domain_model/referenced_sop_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_sop_sequence_item.py new file mode 100644 index 0000000..163effc --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_sop_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedSOPSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedWaveformChannels(self) -> Optional[List[int]]: + if "ReferencedWaveformChannels" in self._dataset: + return self._dataset.ReferencedWaveformChannels + return None + + @ReferencedWaveformChannels.setter + def ReferencedWaveformChannels(self, value: Optional[List[int]]): + if value is None: + if "ReferencedWaveformChannels" in self._dataset: + del self._dataset.ReferencedWaveformChannels + else: + self._dataset.ReferencedWaveformChannels = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_spatial_registration_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_spatial_registration_sequence_item.py new file mode 100644 index 0000000..23c3471 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_spatial_registration_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedSpatialRegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_stereometric_instance_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_stereometric_instance_sequence_item.py new file mode 100644 index 0000000..7cce1f5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_stereometric_instance_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedStereometricInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_structure_set_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_structure_set_sequence_item.py new file mode 100644 index 0000000..a427741 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_structure_set_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedStructureSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_structured_context_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_structured_context_sequence_item.py new file mode 100644 index 0000000..be9357a --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_structured_context_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedStructuredContextSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedContentItem(self) -> Optional[str]: + if "ReferencedContentItem" in self._dataset: + return self._dataset.ReferencedContentItem + return None + + @ReferencedContentItem.setter + def ReferencedContentItem(self, value: Optional[str]): + if value is None: + if "ReferencedContentItem" in self._dataset: + del self._dataset.ReferencedContentItem + else: + self._dataset.ReferencedContentItem = value diff --git a/tdwii_plus_examples/domain_model/referenced_study_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_study_sequence_item.py new file mode 100644 index 0000000..654534e --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_study_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedStudySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_surface_data_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_surface_data_sequence_item.py new file mode 100644 index 0000000..bab018f --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_surface_data_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedSurfaceDataSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_surface_mesh_identification_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_surface_mesh_identification_sequence_item.py new file mode 100644 index 0000000..524b18a --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_surface_mesh_identification_sequence_item.py @@ -0,0 +1,88 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReferencedSurfaceMeshIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SegmentedPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def SurfaceMeshZPixelOffset(self) -> Optional[int]: + if "SurfaceMeshZPixelOffset" in self._dataset: + return self._dataset.SurfaceMeshZPixelOffset + return None + + @SurfaceMeshZPixelOffset.setter + def SurfaceMeshZPixelOffset(self, value: Optional[int]): + if value is None: + if "SurfaceMeshZPixelOffset" in self._dataset: + del self._dataset.SurfaceMeshZPixelOffset + else: + self._dataset.SurfaceMeshZPixelOffset = value + + @property + def SegmentedPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + if len(self._SegmentedPropertyTypeCodeSequence) == len(self._dataset.SegmentedPropertyTypeCodeSequence): + return self._SegmentedPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyTypeCodeSequence] + return None + + @SegmentedPropertyTypeCodeSequence.setter + def SegmentedPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyTypeCodeSequence = [] + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyTypeCodeSequence = value + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.clear() + self._dataset.SegmentedPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyTypeCodeSequence.append(item) + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSurfaceNumber(self) -> Optional[int]: + if "ReferencedSurfaceNumber" in self._dataset: + return self._dataset.ReferencedSurfaceNumber + return None + + @ReferencedSurfaceNumber.setter + def ReferencedSurfaceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSurfaceNumber" in self._dataset: + del self._dataset.ReferencedSurfaceNumber + else: + self._dataset.ReferencedSurfaceNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_surface_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_surface_sequence_item.py new file mode 100644 index 0000000..b1c3364 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_surface_sequence_item.py @@ -0,0 +1,122 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .segment_surface_generation_algorithm_identification_sequence_item import ( + SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem, +) +from .segment_surface_source_instance_sequence_item import ( + SegmentSurfaceSourceInstanceSequenceItem, +) + + +class ReferencedSurfaceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SegmentSurfaceGenerationAlgorithmIdentificationSequence: List[ + SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem + ] = [] + self._SegmentSurfaceSourceInstanceSequence: List[SegmentSurfaceSourceInstanceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSurfaceNumber(self) -> Optional[int]: + if "ReferencedSurfaceNumber" in self._dataset: + return self._dataset.ReferencedSurfaceNumber + return None + + @ReferencedSurfaceNumber.setter + def ReferencedSurfaceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSurfaceNumber" in self._dataset: + del self._dataset.ReferencedSurfaceNumber + else: + self._dataset.ReferencedSurfaceNumber = value + + @property + def SegmentSurfaceGenerationAlgorithmIdentificationSequence( + self, + ) -> Optional[List[SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem]]: + if "SegmentSurfaceGenerationAlgorithmIdentificationSequence" in self._dataset: + if len(self._SegmentSurfaceGenerationAlgorithmIdentificationSequence) == len( + self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence + ): + return self._SegmentSurfaceGenerationAlgorithmIdentificationSequence + else: + return [ + SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence + ] + return None + + @SegmentSurfaceGenerationAlgorithmIdentificationSequence.setter + def SegmentSurfaceGenerationAlgorithmIdentificationSequence( + self, value: Optional[List[SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem]] + ): + if value is None: + self._SegmentSurfaceGenerationAlgorithmIdentificationSequence = [] + if "SegmentSurfaceGenerationAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SegmentSurfaceGenerationAlgorithmIdentificationSequence must be a list of" + " SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem objects" + ) + else: + self._SegmentSurfaceGenerationAlgorithmIdentificationSequence = value + if "SegmentSurfaceGenerationAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence.clear() + self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentSurfaceGenerationAlgorithmIdentification( + self, item: SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem + ): + if not isinstance(item, SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem") + self._SegmentSurfaceGenerationAlgorithmIdentificationSequence.append(item) + if "SegmentSurfaceGenerationAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentSurfaceGenerationAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def SegmentSurfaceSourceInstanceSequence(self) -> Optional[List[SegmentSurfaceSourceInstanceSequenceItem]]: + if "SegmentSurfaceSourceInstanceSequence" in self._dataset: + if len(self._SegmentSurfaceSourceInstanceSequence) == len(self._dataset.SegmentSurfaceSourceInstanceSequence): + return self._SegmentSurfaceSourceInstanceSequence + else: + return [ + SegmentSurfaceSourceInstanceSequenceItem(x) for x in self._dataset.SegmentSurfaceSourceInstanceSequence + ] + return None + + @SegmentSurfaceSourceInstanceSequence.setter + def SegmentSurfaceSourceInstanceSequence(self, value: Optional[List[SegmentSurfaceSourceInstanceSequenceItem]]): + if value is None: + self._SegmentSurfaceSourceInstanceSequence = [] + if "SegmentSurfaceSourceInstanceSequence" in self._dataset: + del self._dataset.SegmentSurfaceSourceInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, SegmentSurfaceSourceInstanceSequenceItem) for item in value + ): + raise ValueError( + "SegmentSurfaceSourceInstanceSequence must be a list of SegmentSurfaceSourceInstanceSequenceItem objects" + ) + else: + self._SegmentSurfaceSourceInstanceSequence = value + if "SegmentSurfaceSourceInstanceSequence" not in self._dataset: + self._dataset.SegmentSurfaceSourceInstanceSequence = pydicom.Sequence() + self._dataset.SegmentSurfaceSourceInstanceSequence.clear() + self._dataset.SegmentSurfaceSourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentSurfaceSourceInstance(self, item: SegmentSurfaceSourceInstanceSequenceItem): + if not isinstance(item, SegmentSurfaceSourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SegmentSurfaceSourceInstanceSequenceItem") + self._SegmentSurfaceSourceInstanceSequence.append(item) + if "SegmentSurfaceSourceInstanceSequence" not in self._dataset: + self._dataset.SegmentSurfaceSourceInstanceSequence = pydicom.Sequence() + self._dataset.SegmentSurfaceSourceInstanceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_texture_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_texture_sequence_item.py new file mode 100644 index 0000000..eb4e8b0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_texture_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedTextureSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item.py new file mode 100644 index 0000000..4542449 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedTreatmentRecordSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item_1.py new file mode 100644 index 0000000..cffadc4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_treatment_record_sequence_item_1.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_beam_sequence_item import ReferencedBeamSequenceItem + + +class ReferencedTreatmentRecordSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedBeamSequence: List[ReferencedBeamSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedBeamSequence(self) -> Optional[List[ReferencedBeamSequenceItem]]: + if "ReferencedBeamSequence" in self._dataset: + if len(self._ReferencedBeamSequence) == len(self._dataset.ReferencedBeamSequence): + return self._ReferencedBeamSequence + else: + return [ReferencedBeamSequenceItem(x) for x in self._dataset.ReferencedBeamSequence] + return None + + @ReferencedBeamSequence.setter + def ReferencedBeamSequence(self, value: Optional[List[ReferencedBeamSequenceItem]]): + if value is None: + self._ReferencedBeamSequence = [] + if "ReferencedBeamSequence" in self._dataset: + del self._dataset.ReferencedBeamSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBeamSequenceItem) for item in value): + raise ValueError("ReferencedBeamSequence must be a list of ReferencedBeamSequenceItem objects") + else: + self._ReferencedBeamSequence = value + if "ReferencedBeamSequence" not in self._dataset: + self._dataset.ReferencedBeamSequence = pydicom.Sequence() + self._dataset.ReferencedBeamSequence.clear() + self._dataset.ReferencedBeamSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBeam(self, item: ReferencedBeamSequenceItem): + if not isinstance(item, ReferencedBeamSequenceItem): + raise ValueError("Item must be an instance of ReferencedBeamSequenceItem") + self._ReferencedBeamSequence.append(item) + if "ReferencedBeamSequence" not in self._dataset: + self._dataset.ReferencedBeamSequence = pydicom.Sequence() + self._dataset.ReferencedBeamSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item.py new file mode 100644 index 0000000..cb60edb --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedVerificationImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item_1.py b/tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item_1.py new file mode 100644 index 0000000..b9f3431 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_verification_image_sequence_item_1.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class ReferencedVerificationImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def StartMeterset(self) -> Optional[Decimal]: + if "StartMeterset" in self._dataset: + return self._dataset.StartMeterset + return None + + @StartMeterset.setter + def StartMeterset(self, value: Optional[Decimal]): + if value is None: + if "StartMeterset" in self._dataset: + del self._dataset.StartMeterset + else: + self._dataset.StartMeterset = value + + @property + def EndMeterset(self) -> Optional[Decimal]: + if "EndMeterset" in self._dataset: + return self._dataset.EndMeterset + return None + + @EndMeterset.setter + def EndMeterset(self, value: Optional[Decimal]): + if value is None: + if "EndMeterset" in self._dataset: + del self._dataset.EndMeterset + else: + self._dataset.EndMeterset = value diff --git a/tdwii_plus_examples/domain_model/referenced_waveform_sequence_item.py b/tdwii_plus_examples/domain_model/referenced_waveform_sequence_item.py new file mode 100644 index 0000000..c789906 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referenced_waveform_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class ReferencedWaveformSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/referring_physician_identification_sequence_item.py b/tdwii_plus_examples/domain_model/referring_physician_identification_sequence_item.py new file mode 100644 index 0000000..53e39e3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/referring_physician_identification_sequence_item.py @@ -0,0 +1,198 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ReferringPhysicianIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def PersonAddress(self) -> Optional[str]: + if "PersonAddress" in self._dataset: + return self._dataset.PersonAddress + return None + + @PersonAddress.setter + def PersonAddress(self, value: Optional[str]): + if value is None: + if "PersonAddress" in self._dataset: + del self._dataset.PersonAddress + else: + self._dataset.PersonAddress = value + + @property + def PersonTelephoneNumbers(self) -> Optional[List[str]]: + if "PersonTelephoneNumbers" in self._dataset: + return self._dataset.PersonTelephoneNumbers + return None + + @PersonTelephoneNumbers.setter + def PersonTelephoneNumbers(self, value: Optional[List[str]]): + if value is None: + if "PersonTelephoneNumbers" in self._dataset: + del self._dataset.PersonTelephoneNumbers + else: + self._dataset.PersonTelephoneNumbers = value + + @property + def PersonTelecomInformation(self) -> Optional[str]: + if "PersonTelecomInformation" in self._dataset: + return self._dataset.PersonTelecomInformation + return None + + @PersonTelecomInformation.setter + def PersonTelecomInformation(self, value: Optional[str]): + if value is None: + if "PersonTelecomInformation" in self._dataset: + del self._dataset.PersonTelecomInformation + else: + self._dataset.PersonTelecomInformation = value diff --git a/tdwii_plus_examples/domain_model/refractive_parameters_used_on_patient_sequence_item.py b/tdwii_plus_examples/domain_model/refractive_parameters_used_on_patient_sequence_item.py new file mode 100644 index 0000000..6854b81 --- /dev/null +++ b/tdwii_plus_examples/domain_model/refractive_parameters_used_on_patient_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RefractiveParametersUsedOnPatientSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SphericalLensPower(self) -> Optional[float]: + if "SphericalLensPower" in self._dataset: + return self._dataset.SphericalLensPower + return None + + @SphericalLensPower.setter + def SphericalLensPower(self, value: Optional[float]): + if value is None: + if "SphericalLensPower" in self._dataset: + del self._dataset.SphericalLensPower + else: + self._dataset.SphericalLensPower = value + + @property + def CylinderLensPower(self) -> Optional[float]: + if "CylinderLensPower" in self._dataset: + return self._dataset.CylinderLensPower + return None + + @CylinderLensPower.setter + def CylinderLensPower(self, value: Optional[float]): + if value is None: + if "CylinderLensPower" in self._dataset: + del self._dataset.CylinderLensPower + else: + self._dataset.CylinderLensPower = value + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def VertexDistance(self) -> Optional[float]: + if "VertexDistance" in self._dataset: + return self._dataset.VertexDistance + return None + + @VertexDistance.setter + def VertexDistance(self, value: Optional[float]): + if value is None: + if "VertexDistance" in self._dataset: + del self._dataset.VertexDistance + else: + self._dataset.VertexDistance = value diff --git a/tdwii_plus_examples/domain_model/refractive_state_sequence_item.py b/tdwii_plus_examples/domain_model/refractive_state_sequence_item.py new file mode 100644 index 0000000..956f677 --- /dev/null +++ b/tdwii_plus_examples/domain_model/refractive_state_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RefractiveStateSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SphericalLensPower(self) -> Optional[float]: + if "SphericalLensPower" in self._dataset: + return self._dataset.SphericalLensPower + return None + + @SphericalLensPower.setter + def SphericalLensPower(self, value: Optional[float]): + if value is None: + if "SphericalLensPower" in self._dataset: + del self._dataset.SphericalLensPower + else: + self._dataset.SphericalLensPower = value + + @property + def CylinderLensPower(self) -> Optional[float]: + if "CylinderLensPower" in self._dataset: + return self._dataset.CylinderLensPower + return None + + @CylinderLensPower.setter + def CylinderLensPower(self, value: Optional[float]): + if value is None: + if "CylinderLensPower" in self._dataset: + del self._dataset.CylinderLensPower + else: + self._dataset.CylinderLensPower = value + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def VertexDistance(self) -> Optional[float]: + if "VertexDistance" in self._dataset: + return self._dataset.VertexDistance + return None + + @VertexDistance.setter + def VertexDistance(self, value: Optional[float]): + if value is None: + if "VertexDistance" in self._dataset: + del self._dataset.VertexDistance + else: + self._dataset.VertexDistance = value diff --git a/tdwii_plus_examples/domain_model/region_pixel_shift_sequence_item.py b/tdwii_plus_examples/domain_model/region_pixel_shift_sequence_item.py new file mode 100644 index 0000000..76e25dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/region_pixel_shift_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RegionPixelShiftSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MaskSubPixelShift(self) -> Optional[List[float]]: + if "MaskSubPixelShift" in self._dataset: + return self._dataset.MaskSubPixelShift + return None + + @MaskSubPixelShift.setter + def MaskSubPixelShift(self, value: Optional[List[float]]): + if value is None: + if "MaskSubPixelShift" in self._dataset: + del self._dataset.MaskSubPixelShift + else: + self._dataset.MaskSubPixelShift = value + + @property + def VerticesOfTheRegion(self) -> Optional[List[int]]: + if "VerticesOfTheRegion" in self._dataset: + return self._dataset.VerticesOfTheRegion + return None + + @VerticesOfTheRegion.setter + def VerticesOfTheRegion(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfTheRegion" in self._dataset: + del self._dataset.VerticesOfTheRegion + else: + self._dataset.VerticesOfTheRegion = value diff --git a/tdwii_plus_examples/domain_model/registration_sequence_item.py b/tdwii_plus_examples/domain_model/registration_sequence_item.py new file mode 100644 index 0000000..5a580d0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/registration_sequence_item.py @@ -0,0 +1,196 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .matrix_registration_sequence_item import MatrixRegistrationSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .used_fiducials_sequence_item import UsedFiducialsSequenceItem +from .used_rt_structure_set_roi_sequence_item import UsedRTStructureSetROISequenceItem +from .used_segments_sequence_item import UsedSegmentsSequenceItem + + +class RegistrationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._UsedSegmentsSequence: List[UsedSegmentsSequenceItem] = [] + self._MatrixRegistrationSequence: List[MatrixRegistrationSequenceItem] = [] + self._UsedFiducialsSequence: List[UsedFiducialsSequenceItem] = [] + self._UsedRTStructureSetROISequence: List[UsedRTStructureSetROISequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def UsedSegmentsSequence(self) -> Optional[List[UsedSegmentsSequenceItem]]: + if "UsedSegmentsSequence" in self._dataset: + if len(self._UsedSegmentsSequence) == len(self._dataset.UsedSegmentsSequence): + return self._UsedSegmentsSequence + else: + return [UsedSegmentsSequenceItem(x) for x in self._dataset.UsedSegmentsSequence] + return None + + @UsedSegmentsSequence.setter + def UsedSegmentsSequence(self, value: Optional[List[UsedSegmentsSequenceItem]]): + if value is None: + self._UsedSegmentsSequence = [] + if "UsedSegmentsSequence" in self._dataset: + del self._dataset.UsedSegmentsSequence + elif not isinstance(value, list) or not all(isinstance(item, UsedSegmentsSequenceItem) for item in value): + raise ValueError("UsedSegmentsSequence must be a list of UsedSegmentsSequenceItem objects") + else: + self._UsedSegmentsSequence = value + if "UsedSegmentsSequence" not in self._dataset: + self._dataset.UsedSegmentsSequence = pydicom.Sequence() + self._dataset.UsedSegmentsSequence.clear() + self._dataset.UsedSegmentsSequence.extend([item.to_dataset() for item in value]) + + def add_UsedSegments(self, item: UsedSegmentsSequenceItem): + if not isinstance(item, UsedSegmentsSequenceItem): + raise ValueError("Item must be an instance of UsedSegmentsSequenceItem") + self._UsedSegmentsSequence.append(item) + if "UsedSegmentsSequence" not in self._dataset: + self._dataset.UsedSegmentsSequence = pydicom.Sequence() + self._dataset.UsedSegmentsSequence.append(item.to_dataset()) + + @property + def MatrixRegistrationSequence(self) -> Optional[List[MatrixRegistrationSequenceItem]]: + if "MatrixRegistrationSequence" in self._dataset: + if len(self._MatrixRegistrationSequence) == len(self._dataset.MatrixRegistrationSequence): + return self._MatrixRegistrationSequence + else: + return [MatrixRegistrationSequenceItem(x) for x in self._dataset.MatrixRegistrationSequence] + return None + + @MatrixRegistrationSequence.setter + def MatrixRegistrationSequence(self, value: Optional[List[MatrixRegistrationSequenceItem]]): + if value is None: + self._MatrixRegistrationSequence = [] + if "MatrixRegistrationSequence" in self._dataset: + del self._dataset.MatrixRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, MatrixRegistrationSequenceItem) for item in value): + raise ValueError("MatrixRegistrationSequence must be a list of MatrixRegistrationSequenceItem objects") + else: + self._MatrixRegistrationSequence = value + if "MatrixRegistrationSequence" not in self._dataset: + self._dataset.MatrixRegistrationSequence = pydicom.Sequence() + self._dataset.MatrixRegistrationSequence.clear() + self._dataset.MatrixRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_MatrixRegistration(self, item: MatrixRegistrationSequenceItem): + if not isinstance(item, MatrixRegistrationSequenceItem): + raise ValueError("Item must be an instance of MatrixRegistrationSequenceItem") + self._MatrixRegistrationSequence.append(item) + if "MatrixRegistrationSequence" not in self._dataset: + self._dataset.MatrixRegistrationSequence = pydicom.Sequence() + self._dataset.MatrixRegistrationSequence.append(item.to_dataset()) + + @property + def UsedFiducialsSequence(self) -> Optional[List[UsedFiducialsSequenceItem]]: + if "UsedFiducialsSequence" in self._dataset: + if len(self._UsedFiducialsSequence) == len(self._dataset.UsedFiducialsSequence): + return self._UsedFiducialsSequence + else: + return [UsedFiducialsSequenceItem(x) for x in self._dataset.UsedFiducialsSequence] + return None + + @UsedFiducialsSequence.setter + def UsedFiducialsSequence(self, value: Optional[List[UsedFiducialsSequenceItem]]): + if value is None: + self._UsedFiducialsSequence = [] + if "UsedFiducialsSequence" in self._dataset: + del self._dataset.UsedFiducialsSequence + elif not isinstance(value, list) or not all(isinstance(item, UsedFiducialsSequenceItem) for item in value): + raise ValueError("UsedFiducialsSequence must be a list of UsedFiducialsSequenceItem objects") + else: + self._UsedFiducialsSequence = value + if "UsedFiducialsSequence" not in self._dataset: + self._dataset.UsedFiducialsSequence = pydicom.Sequence() + self._dataset.UsedFiducialsSequence.clear() + self._dataset.UsedFiducialsSequence.extend([item.to_dataset() for item in value]) + + def add_UsedFiducials(self, item: UsedFiducialsSequenceItem): + if not isinstance(item, UsedFiducialsSequenceItem): + raise ValueError("Item must be an instance of UsedFiducialsSequenceItem") + self._UsedFiducialsSequence.append(item) + if "UsedFiducialsSequence" not in self._dataset: + self._dataset.UsedFiducialsSequence = pydicom.Sequence() + self._dataset.UsedFiducialsSequence.append(item.to_dataset()) + + @property + def UsedRTStructureSetROISequence(self) -> Optional[List[UsedRTStructureSetROISequenceItem]]: + if "UsedRTStructureSetROISequence" in self._dataset: + if len(self._UsedRTStructureSetROISequence) == len(self._dataset.UsedRTStructureSetROISequence): + return self._UsedRTStructureSetROISequence + else: + return [UsedRTStructureSetROISequenceItem(x) for x in self._dataset.UsedRTStructureSetROISequence] + return None + + @UsedRTStructureSetROISequence.setter + def UsedRTStructureSetROISequence(self, value: Optional[List[UsedRTStructureSetROISequenceItem]]): + if value is None: + self._UsedRTStructureSetROISequence = [] + if "UsedRTStructureSetROISequence" in self._dataset: + del self._dataset.UsedRTStructureSetROISequence + elif not isinstance(value, list) or not all(isinstance(item, UsedRTStructureSetROISequenceItem) for item in value): + raise ValueError("UsedRTStructureSetROISequence must be a list of UsedRTStructureSetROISequenceItem objects") + else: + self._UsedRTStructureSetROISequence = value + if "UsedRTStructureSetROISequence" not in self._dataset: + self._dataset.UsedRTStructureSetROISequence = pydicom.Sequence() + self._dataset.UsedRTStructureSetROISequence.clear() + self._dataset.UsedRTStructureSetROISequence.extend([item.to_dataset() for item in value]) + + def add_UsedRTStructureSetROI(self, item: UsedRTStructureSetROISequenceItem): + if not isinstance(item, UsedRTStructureSetROISequenceItem): + raise ValueError("Item must be an instance of UsedRTStructureSetROISequenceItem") + self._UsedRTStructureSetROISequence.append(item) + if "UsedRTStructureSetROISequence" not in self._dataset: + self._dataset.UsedRTStructureSetROISequence = pydicom.Sequence() + self._dataset.UsedRTStructureSetROISequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/registration_to_localizer_sequence_item.py b/tdwii_plus_examples/domain_model/registration_to_localizer_sequence_item.py new file mode 100644 index 0000000..1fa6a08 --- /dev/null +++ b/tdwii_plus_examples/domain_model/registration_to_localizer_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RegistrationToLocalizerSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RegisteredLocalizerUnits(self) -> Optional[str]: + if "RegisteredLocalizerUnits" in self._dataset: + return self._dataset.RegisteredLocalizerUnits + return None + + @RegisteredLocalizerUnits.setter + def RegisteredLocalizerUnits(self, value: Optional[str]): + if value is None: + if "RegisteredLocalizerUnits" in self._dataset: + del self._dataset.RegisteredLocalizerUnits + else: + self._dataset.RegisteredLocalizerUnits = value + + @property + def RegisteredLocalizerTopLeftHandCorner(self) -> Optional[List[float]]: + if "RegisteredLocalizerTopLeftHandCorner" in self._dataset: + return self._dataset.RegisteredLocalizerTopLeftHandCorner + return None + + @RegisteredLocalizerTopLeftHandCorner.setter + def RegisteredLocalizerTopLeftHandCorner(self, value: Optional[List[float]]): + if value is None: + if "RegisteredLocalizerTopLeftHandCorner" in self._dataset: + del self._dataset.RegisteredLocalizerTopLeftHandCorner + else: + self._dataset.RegisteredLocalizerTopLeftHandCorner = value + + @property + def RegisteredLocalizerBottomRightHandCorner(self) -> Optional[List[float]]: + if "RegisteredLocalizerBottomRightHandCorner" in self._dataset: + return self._dataset.RegisteredLocalizerBottomRightHandCorner + return None + + @RegisteredLocalizerBottomRightHandCorner.setter + def RegisteredLocalizerBottomRightHandCorner(self, value: Optional[List[float]]): + if value is None: + if "RegisteredLocalizerBottomRightHandCorner" in self._dataset: + del self._dataset.RegisteredLocalizerBottomRightHandCorner + else: + self._dataset.RegisteredLocalizerBottomRightHandCorner = value diff --git a/tdwii_plus_examples/domain_model/related_assertion_sequence_item.py b/tdwii_plus_examples/domain_model/related_assertion_sequence_item.py new file mode 100644 index 0000000..1c2bb58 --- /dev/null +++ b/tdwii_plus_examples/domain_model/related_assertion_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RelatedAssertionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedAssertionUID(self) -> Optional[str]: + if "ReferencedAssertionUID" in self._dataset: + return self._dataset.ReferencedAssertionUID + return None + + @ReferencedAssertionUID.setter + def ReferencedAssertionUID(self, value: Optional[str]): + if value is None: + if "ReferencedAssertionUID" in self._dataset: + del self._dataset.ReferencedAssertionUID + else: + self._dataset.ReferencedAssertionUID = value diff --git a/tdwii_plus_examples/domain_model/related_reference_rt_image_sequence_item.py b/tdwii_plus_examples/domain_model/related_reference_rt_image_sequence_item.py new file mode 100644 index 0000000..20e8887 --- /dev/null +++ b/tdwii_plus_examples/domain_model/related_reference_rt_image_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RelatedReferenceRTImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/related_rtroi_observations_sequence_item.py b/tdwii_plus_examples/domain_model/related_rtroi_observations_sequence_item.py new file mode 100644 index 0000000..1be90e0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/related_rtroi_observations_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RelatedRTROIObservationsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ObservationNumber(self) -> Optional[int]: + if "ObservationNumber" in self._dataset: + return self._dataset.ObservationNumber + return None + + @ObservationNumber.setter + def ObservationNumber(self, value: Optional[int]): + if value is None: + if "ObservationNumber" in self._dataset: + del self._dataset.ObservationNumber + else: + self._dataset.ObservationNumber = value diff --git a/tdwii_plus_examples/domain_model/related_series_sequence_item.py b/tdwii_plus_examples/domain_model/related_series_sequence_item.py new file mode 100644 index 0000000..b97d4df --- /dev/null +++ b/tdwii_plus_examples/domain_model/related_series_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class RelatedSeriesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/relevant_opt_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/relevant_opt_attributes_sequence_item.py new file mode 100644 index 0000000..349ab46 --- /dev/null +++ b/tdwii_plus_examples/domain_model/relevant_opt_attributes_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RelevantOPTAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DepthSpatialResolution(self) -> Optional[float]: + if "DepthSpatialResolution" in self._dataset: + return self._dataset.DepthSpatialResolution + return None + + @DepthSpatialResolution.setter + def DepthSpatialResolution(self, value: Optional[float]): + if value is None: + if "DepthSpatialResolution" in self._dataset: + del self._dataset.DepthSpatialResolution + else: + self._dataset.DepthSpatialResolution = value + + @property + def MaximumDepthDistortion(self) -> Optional[float]: + if "MaximumDepthDistortion" in self._dataset: + return self._dataset.MaximumDepthDistortion + return None + + @MaximumDepthDistortion.setter + def MaximumDepthDistortion(self, value: Optional[float]): + if value is None: + if "MaximumDepthDistortion" in self._dataset: + del self._dataset.MaximumDepthDistortion + else: + self._dataset.MaximumDepthDistortion = value diff --git a/tdwii_plus_examples/domain_model/rendered_image_reference_sequence_item.py b/tdwii_plus_examples/domain_model/rendered_image_reference_sequence_item.py new file mode 100644 index 0000000..d98b86e --- /dev/null +++ b/tdwii_plus_examples/domain_model/rendered_image_reference_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RenderedImageReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/rendition_selection_document.py b/tdwii_plus_examples/domain_model/rendition_selection_document.py new file mode 100644 index 0000000..8d45d83 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rendition_selection_document.py @@ -0,0 +1,4346 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RenditionSelectionDocument: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/request_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/request_attributes_sequence_item.py new file mode 100644 index 0000000..fb1fad3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/request_attributes_sequence_item.py @@ -0,0 +1,282 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem + + +class RequestAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ScheduledProtocolCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForRequestedProcedureCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def RequestedProcedureDescription(self) -> Optional[str]: + if "RequestedProcedureDescription" in self._dataset: + return self._dataset.RequestedProcedureDescription + return None + + @RequestedProcedureDescription.setter + def RequestedProcedureDescription(self, value: Optional[str]): + if value is None: + if "RequestedProcedureDescription" in self._dataset: + del self._dataset.RequestedProcedureDescription + else: + self._dataset.RequestedProcedureDescription = value + + @property + def RequestedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestedProcedureCodeSequence" in self._dataset: + if len(self._RequestedProcedureCodeSequence) == len(self._dataset.RequestedProcedureCodeSequence): + return self._RequestedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestedProcedureCodeSequence] + return None + + @RequestedProcedureCodeSequence.setter + def RequestedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestedProcedureCodeSequence = [] + if "RequestedProcedureCodeSequence" in self._dataset: + del self._dataset.RequestedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestedProcedureCodeSequence = value + if "RequestedProcedureCodeSequence" not in self._dataset: + self._dataset.RequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.RequestedProcedureCodeSequence.clear() + self._dataset.RequestedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestedProcedureCodeSequence.append(item) + if "RequestedProcedureCodeSequence" not in self._dataset: + self._dataset.RequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.RequestedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ScheduledProcedureStepDescription(self) -> Optional[str]: + if "ScheduledProcedureStepDescription" in self._dataset: + return self._dataset.ScheduledProcedureStepDescription + return None + + @ScheduledProcedureStepDescription.setter + def ScheduledProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "ScheduledProcedureStepDescription" in self._dataset: + del self._dataset.ScheduledProcedureStepDescription + else: + self._dataset.ScheduledProcedureStepDescription = value + + @property + def ScheduledProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ScheduledProtocolCodeSequence" in self._dataset: + if len(self._ScheduledProtocolCodeSequence) == len(self._dataset.ScheduledProtocolCodeSequence): + return self._ScheduledProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ScheduledProtocolCodeSequence] + return None + + @ScheduledProtocolCodeSequence.setter + def ScheduledProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ScheduledProtocolCodeSequence = [] + if "ScheduledProtocolCodeSequence" in self._dataset: + del self._dataset.ScheduledProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ScheduledProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ScheduledProtocolCodeSequence = value + if "ScheduledProtocolCodeSequence" not in self._dataset: + self._dataset.ScheduledProtocolCodeSequence = pydicom.Sequence() + self._dataset.ScheduledProtocolCodeSequence.clear() + self._dataset.ScheduledProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ScheduledProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ScheduledProtocolCodeSequence.append(item) + if "ScheduledProtocolCodeSequence" not in self._dataset: + self._dataset.ScheduledProtocolCodeSequence = pydicom.Sequence() + self._dataset.ScheduledProtocolCodeSequence.append(item.to_dataset()) + + @property + def ScheduledProcedureStepID(self) -> Optional[str]: + if "ScheduledProcedureStepID" in self._dataset: + return self._dataset.ScheduledProcedureStepID + return None + + @ScheduledProcedureStepID.setter + def ScheduledProcedureStepID(self, value: Optional[str]): + if value is None: + if "ScheduledProcedureStepID" in self._dataset: + del self._dataset.ScheduledProcedureStepID + else: + self._dataset.ScheduledProcedureStepID = value + + @property + def RequestedProcedureID(self) -> Optional[str]: + if "RequestedProcedureID" in self._dataset: + return self._dataset.RequestedProcedureID + return None + + @RequestedProcedureID.setter + def RequestedProcedureID(self, value: Optional[str]): + if value is None: + if "RequestedProcedureID" in self._dataset: + del self._dataset.RequestedProcedureID + else: + self._dataset.RequestedProcedureID = value + + @property + def ReasonForTheRequestedProcedure(self) -> Optional[str]: + if "ReasonForTheRequestedProcedure" in self._dataset: + return self._dataset.ReasonForTheRequestedProcedure + return None + + @ReasonForTheRequestedProcedure.setter + def ReasonForTheRequestedProcedure(self, value: Optional[str]): + if value is None: + if "ReasonForTheRequestedProcedure" in self._dataset: + del self._dataset.ReasonForTheRequestedProcedure + else: + self._dataset.ReasonForTheRequestedProcedure = value + + @property + def ReasonForRequestedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForRequestedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForRequestedProcedureCodeSequence) == len( + self._dataset.ReasonForRequestedProcedureCodeSequence + ): + return self._ReasonForRequestedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForRequestedProcedureCodeSequence] + return None + + @ReasonForRequestedProcedureCodeSequence.setter + def ReasonForRequestedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForRequestedProcedureCodeSequence = [] + if "ReasonForRequestedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForRequestedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForRequestedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForRequestedProcedureCodeSequence = value + if "ReasonForRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForRequestedProcedureCodeSequence.clear() + self._dataset.ReasonForRequestedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForRequestedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForRequestedProcedureCodeSequence.append(item) + if "ReasonForRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForRequestedProcedureCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/respiratory_synchronization_sequence_item.py b/tdwii_plus_examples/domain_model/respiratory_synchronization_sequence_item.py new file mode 100644 index 0000000..66732a2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/respiratory_synchronization_sequence_item.py @@ -0,0 +1,123 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RespiratorySynchronizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NominalPercentageOfRespiratoryPhase(self) -> Optional[float]: + if "NominalPercentageOfRespiratoryPhase" in self._dataset: + return self._dataset.NominalPercentageOfRespiratoryPhase + return None + + @NominalPercentageOfRespiratoryPhase.setter + def NominalPercentageOfRespiratoryPhase(self, value: Optional[float]): + if value is None: + if "NominalPercentageOfRespiratoryPhase" in self._dataset: + del self._dataset.NominalPercentageOfRespiratoryPhase + else: + self._dataset.NominalPercentageOfRespiratoryPhase = value + + @property + def StartingRespiratoryAmplitude(self) -> Optional[float]: + if "StartingRespiratoryAmplitude" in self._dataset: + return self._dataset.StartingRespiratoryAmplitude + return None + + @StartingRespiratoryAmplitude.setter + def StartingRespiratoryAmplitude(self, value: Optional[float]): + if value is None: + if "StartingRespiratoryAmplitude" in self._dataset: + del self._dataset.StartingRespiratoryAmplitude + else: + self._dataset.StartingRespiratoryAmplitude = value + + @property + def StartingRespiratoryPhase(self) -> Optional[str]: + if "StartingRespiratoryPhase" in self._dataset: + return self._dataset.StartingRespiratoryPhase + return None + + @StartingRespiratoryPhase.setter + def StartingRespiratoryPhase(self, value: Optional[str]): + if value is None: + if "StartingRespiratoryPhase" in self._dataset: + del self._dataset.StartingRespiratoryPhase + else: + self._dataset.StartingRespiratoryPhase = value + + @property + def EndingRespiratoryAmplitude(self) -> Optional[float]: + if "EndingRespiratoryAmplitude" in self._dataset: + return self._dataset.EndingRespiratoryAmplitude + return None + + @EndingRespiratoryAmplitude.setter + def EndingRespiratoryAmplitude(self, value: Optional[float]): + if value is None: + if "EndingRespiratoryAmplitude" in self._dataset: + del self._dataset.EndingRespiratoryAmplitude + else: + self._dataset.EndingRespiratoryAmplitude = value + + @property + def EndingRespiratoryPhase(self) -> Optional[str]: + if "EndingRespiratoryPhase" in self._dataset: + return self._dataset.EndingRespiratoryPhase + return None + + @EndingRespiratoryPhase.setter + def EndingRespiratoryPhase(self, value: Optional[str]): + if value is None: + if "EndingRespiratoryPhase" in self._dataset: + del self._dataset.EndingRespiratoryPhase + else: + self._dataset.EndingRespiratoryPhase = value + + @property + def RespiratoryIntervalTime(self) -> Optional[float]: + if "RespiratoryIntervalTime" in self._dataset: + return self._dataset.RespiratoryIntervalTime + return None + + @RespiratoryIntervalTime.setter + def RespiratoryIntervalTime(self, value: Optional[float]): + if value is None: + if "RespiratoryIntervalTime" in self._dataset: + del self._dataset.RespiratoryIntervalTime + else: + self._dataset.RespiratoryIntervalTime = value + + @property + def NominalRespiratoryTriggerDelayTime(self) -> Optional[float]: + if "NominalRespiratoryTriggerDelayTime" in self._dataset: + return self._dataset.NominalRespiratoryTriggerDelayTime + return None + + @NominalRespiratoryTriggerDelayTime.setter + def NominalRespiratoryTriggerDelayTime(self, value: Optional[float]): + if value is None: + if "NominalRespiratoryTriggerDelayTime" in self._dataset: + del self._dataset.NominalRespiratoryTriggerDelayTime + else: + self._dataset.NominalRespiratoryTriggerDelayTime = value + + @property + def ActualRespiratoryTriggerDelayTime(self) -> Optional[float]: + if "ActualRespiratoryTriggerDelayTime" in self._dataset: + return self._dataset.ActualRespiratoryTriggerDelayTime + return None + + @ActualRespiratoryTriggerDelayTime.setter + def ActualRespiratoryTriggerDelayTime(self, value: Optional[float]): + if value is None: + if "ActualRespiratoryTriggerDelayTime" in self._dataset: + del self._dataset.ActualRespiratoryTriggerDelayTime + else: + self._dataset.ActualRespiratoryTriggerDelayTime = value diff --git a/tdwii_plus_examples/domain_model/respiratory_waveform.py b/tdwii_plus_examples/domain_model/respiratory_waveform.py new file mode 100644 index 0000000..bf82d5f --- /dev/null +++ b/tdwii_plus_examples/domain_model/respiratory_waveform.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class RespiratoryWaveform: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/results_normals_sequence_item.py b/tdwii_plus_examples/domain_model/results_normals_sequence_item.py new file mode 100644 index 0000000..95be8f5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/results_normals_sequence_item.py @@ -0,0 +1,206 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .global_deviation_probability_sequence_item import ( + GlobalDeviationProbabilitySequenceItem, +) +from .localized_deviation_probability_sequence_item import ( + LocalizedDeviationProbabilitySequenceItem, +) + + +class ResultsNormalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._GlobalDeviationProbabilitySequence: List[GlobalDeviationProbabilitySequenceItem] = [] + self._LocalizedDeviationProbabilitySequence: List[LocalizedDeviationProbabilitySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GlobalDeviationProbabilityNormalsFlag(self) -> Optional[str]: + if "GlobalDeviationProbabilityNormalsFlag" in self._dataset: + return self._dataset.GlobalDeviationProbabilityNormalsFlag + return None + + @GlobalDeviationProbabilityNormalsFlag.setter + def GlobalDeviationProbabilityNormalsFlag(self, value: Optional[str]): + if value is None: + if "GlobalDeviationProbabilityNormalsFlag" in self._dataset: + del self._dataset.GlobalDeviationProbabilityNormalsFlag + else: + self._dataset.GlobalDeviationProbabilityNormalsFlag = value + + @property + def GlobalDeviationFromNormal(self) -> Optional[float]: + if "GlobalDeviationFromNormal" in self._dataset: + return self._dataset.GlobalDeviationFromNormal + return None + + @GlobalDeviationFromNormal.setter + def GlobalDeviationFromNormal(self, value: Optional[float]): + if value is None: + if "GlobalDeviationFromNormal" in self._dataset: + del self._dataset.GlobalDeviationFromNormal + else: + self._dataset.GlobalDeviationFromNormal = value + + @property + def LocalizedDeviationFromNormal(self) -> Optional[float]: + if "LocalizedDeviationFromNormal" in self._dataset: + return self._dataset.LocalizedDeviationFromNormal + return None + + @LocalizedDeviationFromNormal.setter + def LocalizedDeviationFromNormal(self, value: Optional[float]): + if value is None: + if "LocalizedDeviationFromNormal" in self._dataset: + del self._dataset.LocalizedDeviationFromNormal + else: + self._dataset.LocalizedDeviationFromNormal = value + + @property + def LocalDeviationProbabilityNormalsFlag(self) -> Optional[str]: + if "LocalDeviationProbabilityNormalsFlag" in self._dataset: + return self._dataset.LocalDeviationProbabilityNormalsFlag + return None + + @LocalDeviationProbabilityNormalsFlag.setter + def LocalDeviationProbabilityNormalsFlag(self, value: Optional[str]): + if value is None: + if "LocalDeviationProbabilityNormalsFlag" in self._dataset: + del self._dataset.LocalDeviationProbabilityNormalsFlag + else: + self._dataset.LocalDeviationProbabilityNormalsFlag = value + + @property + def GlobalDeviationProbabilitySequence(self) -> Optional[List[GlobalDeviationProbabilitySequenceItem]]: + if "GlobalDeviationProbabilitySequence" in self._dataset: + if len(self._GlobalDeviationProbabilitySequence) == len(self._dataset.GlobalDeviationProbabilitySequence): + return self._GlobalDeviationProbabilitySequence + else: + return [GlobalDeviationProbabilitySequenceItem(x) for x in self._dataset.GlobalDeviationProbabilitySequence] + return None + + @GlobalDeviationProbabilitySequence.setter + def GlobalDeviationProbabilitySequence(self, value: Optional[List[GlobalDeviationProbabilitySequenceItem]]): + if value is None: + self._GlobalDeviationProbabilitySequence = [] + if "GlobalDeviationProbabilitySequence" in self._dataset: + del self._dataset.GlobalDeviationProbabilitySequence + elif not isinstance(value, list) or not all( + isinstance(item, GlobalDeviationProbabilitySequenceItem) for item in value + ): + raise ValueError( + "GlobalDeviationProbabilitySequence must be a list of GlobalDeviationProbabilitySequenceItem objects" + ) + else: + self._GlobalDeviationProbabilitySequence = value + if "GlobalDeviationProbabilitySequence" not in self._dataset: + self._dataset.GlobalDeviationProbabilitySequence = pydicom.Sequence() + self._dataset.GlobalDeviationProbabilitySequence.clear() + self._dataset.GlobalDeviationProbabilitySequence.extend([item.to_dataset() for item in value]) + + def add_GlobalDeviationProbability(self, item: GlobalDeviationProbabilitySequenceItem): + if not isinstance(item, GlobalDeviationProbabilitySequenceItem): + raise ValueError("Item must be an instance of GlobalDeviationProbabilitySequenceItem") + self._GlobalDeviationProbabilitySequence.append(item) + if "GlobalDeviationProbabilitySequence" not in self._dataset: + self._dataset.GlobalDeviationProbabilitySequence = pydicom.Sequence() + self._dataset.GlobalDeviationProbabilitySequence.append(item.to_dataset()) + + @property + def LocalizedDeviationProbabilitySequence(self) -> Optional[List[LocalizedDeviationProbabilitySequenceItem]]: + if "LocalizedDeviationProbabilitySequence" in self._dataset: + if len(self._LocalizedDeviationProbabilitySequence) == len(self._dataset.LocalizedDeviationProbabilitySequence): + return self._LocalizedDeviationProbabilitySequence + else: + return [ + LocalizedDeviationProbabilitySequenceItem(x) for x in self._dataset.LocalizedDeviationProbabilitySequence + ] + return None + + @LocalizedDeviationProbabilitySequence.setter + def LocalizedDeviationProbabilitySequence(self, value: Optional[List[LocalizedDeviationProbabilitySequenceItem]]): + if value is None: + self._LocalizedDeviationProbabilitySequence = [] + if "LocalizedDeviationProbabilitySequence" in self._dataset: + del self._dataset.LocalizedDeviationProbabilitySequence + elif not isinstance(value, list) or not all( + isinstance(item, LocalizedDeviationProbabilitySequenceItem) for item in value + ): + raise ValueError( + "LocalizedDeviationProbabilitySequence must be a list of LocalizedDeviationProbabilitySequenceItem objects" + ) + else: + self._LocalizedDeviationProbabilitySequence = value + if "LocalizedDeviationProbabilitySequence" not in self._dataset: + self._dataset.LocalizedDeviationProbabilitySequence = pydicom.Sequence() + self._dataset.LocalizedDeviationProbabilitySequence.clear() + self._dataset.LocalizedDeviationProbabilitySequence.extend([item.to_dataset() for item in value]) + + def add_LocalizedDeviationProbability(self, item: LocalizedDeviationProbabilitySequenceItem): + if not isinstance(item, LocalizedDeviationProbabilitySequenceItem): + raise ValueError("Item must be an instance of LocalizedDeviationProbabilitySequenceItem") + self._LocalizedDeviationProbabilitySequence.append(item) + if "LocalizedDeviationProbabilitySequence" not in self._dataset: + self._dataset.LocalizedDeviationProbabilitySequence = pydicom.Sequence() + self._dataset.LocalizedDeviationProbabilitySequence.append(item.to_dataset()) + + @property + def DataSetName(self) -> Optional[str]: + if "DataSetName" in self._dataset: + return self._dataset.DataSetName + return None + + @DataSetName.setter + def DataSetName(self, value: Optional[str]): + if value is None: + if "DataSetName" in self._dataset: + del self._dataset.DataSetName + else: + self._dataset.DataSetName = value + + @property + def DataSetVersion(self) -> Optional[str]: + if "DataSetVersion" in self._dataset: + return self._dataset.DataSetVersion + return None + + @DataSetVersion.setter + def DataSetVersion(self, value: Optional[str]): + if value is None: + if "DataSetVersion" in self._dataset: + del self._dataset.DataSetVersion + else: + self._dataset.DataSetVersion = value + + @property + def DataSetSource(self) -> Optional[str]: + if "DataSetSource" in self._dataset: + return self._dataset.DataSetSource + return None + + @DataSetSource.setter + def DataSetSource(self, value: Optional[str]): + if value is None: + if "DataSetSource" in self._dataset: + del self._dataset.DataSetSource + else: + self._dataset.DataSetSource = value + + @property + def DataSetDescription(self) -> Optional[str]: + if "DataSetDescription" in self._dataset: + return self._dataset.DataSetDescription + return None + + @DataSetDescription.setter + def DataSetDescription(self, value: Optional[str]): + if value is None: + if "DataSetDescription" in self._dataset: + del self._dataset.DataSetDescription + else: + self._dataset.DataSetDescription = value diff --git a/tdwii_plus_examples/domain_model/right_image_sequence_item.py b/tdwii_plus_examples/domain_model/right_image_sequence_item.py new file mode 100644 index 0000000..c4e8c00 --- /dev/null +++ b/tdwii_plus_examples/domain_model/right_image_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RightImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/right_lens_sequence_item.py b/tdwii_plus_examples/domain_model/right_lens_sequence_item.py new file mode 100644 index 0000000..9422dc4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/right_lens_sequence_item.py @@ -0,0 +1,204 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .add_intermediate_sequence_item import AddIntermediateSequenceItem +from .add_near_sequence_item import AddNearSequenceItem +from .cylinder_sequence_item import CylinderSequenceItem +from .prism_sequence_item import PrismSequenceItem + + +class RightLensSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + self._PrismSequence: List[PrismSequenceItem] = [] + self._AddNearSequence: List[AddNearSequenceItem] = [] + self._AddIntermediateSequence: List[AddIntermediateSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PrismSequence(self) -> Optional[List[PrismSequenceItem]]: + if "PrismSequence" in self._dataset: + if len(self._PrismSequence) == len(self._dataset.PrismSequence): + return self._PrismSequence + else: + return [PrismSequenceItem(x) for x in self._dataset.PrismSequence] + return None + + @PrismSequence.setter + def PrismSequence(self, value: Optional[List[PrismSequenceItem]]): + if value is None: + self._PrismSequence = [] + if "PrismSequence" in self._dataset: + del self._dataset.PrismSequence + elif not isinstance(value, list) or not all(isinstance(item, PrismSequenceItem) for item in value): + raise ValueError("PrismSequence must be a list of PrismSequenceItem objects") + else: + self._PrismSequence = value + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.clear() + self._dataset.PrismSequence.extend([item.to_dataset() for item in value]) + + def add_Prism(self, item: PrismSequenceItem): + if not isinstance(item, PrismSequenceItem): + raise ValueError("Item must be an instance of PrismSequenceItem") + self._PrismSequence.append(item) + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.append(item.to_dataset()) + + @property + def LensSegmentType(self) -> Optional[str]: + if "LensSegmentType" in self._dataset: + return self._dataset.LensSegmentType + return None + + @LensSegmentType.setter + def LensSegmentType(self, value: Optional[str]): + if value is None: + if "LensSegmentType" in self._dataset: + del self._dataset.LensSegmentType + else: + self._dataset.LensSegmentType = value + + @property + def OpticalTransmittance(self) -> Optional[float]: + if "OpticalTransmittance" in self._dataset: + return self._dataset.OpticalTransmittance + return None + + @OpticalTransmittance.setter + def OpticalTransmittance(self, value: Optional[float]): + if value is None: + if "OpticalTransmittance" in self._dataset: + del self._dataset.OpticalTransmittance + else: + self._dataset.OpticalTransmittance = value + + @property + def ChannelWidth(self) -> Optional[float]: + if "ChannelWidth" in self._dataset: + return self._dataset.ChannelWidth + return None + + @ChannelWidth.setter + def ChannelWidth(self, value: Optional[float]): + if value is None: + if "ChannelWidth" in self._dataset: + del self._dataset.ChannelWidth + else: + self._dataset.ChannelWidth = value + + @property + def AddNearSequence(self) -> Optional[List[AddNearSequenceItem]]: + if "AddNearSequence" in self._dataset: + if len(self._AddNearSequence) == len(self._dataset.AddNearSequence): + return self._AddNearSequence + else: + return [AddNearSequenceItem(x) for x in self._dataset.AddNearSequence] + return None + + @AddNearSequence.setter + def AddNearSequence(self, value: Optional[List[AddNearSequenceItem]]): + if value is None: + self._AddNearSequence = [] + if "AddNearSequence" in self._dataset: + del self._dataset.AddNearSequence + elif not isinstance(value, list) or not all(isinstance(item, AddNearSequenceItem) for item in value): + raise ValueError("AddNearSequence must be a list of AddNearSequenceItem objects") + else: + self._AddNearSequence = value + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.clear() + self._dataset.AddNearSequence.extend([item.to_dataset() for item in value]) + + def add_AddNear(self, item: AddNearSequenceItem): + if not isinstance(item, AddNearSequenceItem): + raise ValueError("Item must be an instance of AddNearSequenceItem") + self._AddNearSequence.append(item) + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.append(item.to_dataset()) + + @property + def AddIntermediateSequence(self) -> Optional[List[AddIntermediateSequenceItem]]: + if "AddIntermediateSequence" in self._dataset: + if len(self._AddIntermediateSequence) == len(self._dataset.AddIntermediateSequence): + return self._AddIntermediateSequence + else: + return [AddIntermediateSequenceItem(x) for x in self._dataset.AddIntermediateSequence] + return None + + @AddIntermediateSequence.setter + def AddIntermediateSequence(self, value: Optional[List[AddIntermediateSequenceItem]]): + if value is None: + self._AddIntermediateSequence = [] + if "AddIntermediateSequence" in self._dataset: + del self._dataset.AddIntermediateSequence + elif not isinstance(value, list) or not all(isinstance(item, AddIntermediateSequenceItem) for item in value): + raise ValueError("AddIntermediateSequence must be a list of AddIntermediateSequenceItem objects") + else: + self._AddIntermediateSequence = value + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.clear() + self._dataset.AddIntermediateSequence.extend([item.to_dataset() for item in value]) + + def add_AddIntermediate(self, item: AddIntermediateSequenceItem): + if not isinstance(item, AddIntermediateSequenceItem): + raise ValueError("Item must be an instance of AddIntermediateSequenceItem") + self._AddIntermediateSequence.append(item) + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.append(item.to_dataset()) + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/robotic_arm_radiation.py b/tdwii_plus_examples/domain_model/robotic_arm_radiation.py new file mode 100644 index 0000000..13579ec --- /dev/null +++ b/tdwii_plus_examples/domain_model/robotic_arm_radiation.py @@ -0,0 +1,5326 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .robotic_path_control_point_sequence_item import ( + RoboticPathControlPointSequenceItem, +) +from .rt_accessory_holder_definition_sequence_item import ( + RTAccessoryHolderDefinitionSequenceItem, +) +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RoboticArmRadiation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._RTAccessoryHolderDefinitionSequence: List[RTAccessoryHolderDefinitionSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._RoboticPathNodeSetCodeSequence: List[CodeSequenceItem] = [] + self._RoboticPathControlPointSequence: List[RoboticPathControlPointSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def RTAccessoryHolderDefinitionSequence(self) -> Optional[List[RTAccessoryHolderDefinitionSequenceItem]]: + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + if len(self._RTAccessoryHolderDefinitionSequence) == len(self._dataset.RTAccessoryHolderDefinitionSequence): + return self._RTAccessoryHolderDefinitionSequence + else: + return [RTAccessoryHolderDefinitionSequenceItem(x) for x in self._dataset.RTAccessoryHolderDefinitionSequence] + return None + + @RTAccessoryHolderDefinitionSequence.setter + def RTAccessoryHolderDefinitionSequence(self, value: Optional[List[RTAccessoryHolderDefinitionSequenceItem]]): + if value is None: + self._RTAccessoryHolderDefinitionSequence = [] + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + del self._dataset.RTAccessoryHolderDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTAccessoryHolderDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTAccessoryHolderDefinitionSequence must be a list of RTAccessoryHolderDefinitionSequenceItem objects" + ) + else: + self._RTAccessoryHolderDefinitionSequence = value + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.clear() + self._dataset.RTAccessoryHolderDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAccessoryHolderDefinition(self, item: RTAccessoryHolderDefinitionSequenceItem): + if not isinstance(item, RTAccessoryHolderDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTAccessoryHolderDefinitionSequenceItem") + self._RTAccessoryHolderDefinitionSequence.append(item) + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTAccessoryHolders(self) -> Optional[int]: + if "NumberOfRTAccessoryHolders" in self._dataset: + return self._dataset.NumberOfRTAccessoryHolders + return None + + @NumberOfRTAccessoryHolders.setter + def NumberOfRTAccessoryHolders(self, value: Optional[int]): + if value is None: + if "NumberOfRTAccessoryHolders" in self._dataset: + del self._dataset.NumberOfRTAccessoryHolders + else: + self._dataset.NumberOfRTAccessoryHolders = value + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def TreatmentTimeLimit(self) -> Optional[float]: + if "TreatmentTimeLimit" in self._dataset: + return self._dataset.TreatmentTimeLimit + return None + + @TreatmentTimeLimit.setter + def TreatmentTimeLimit(self, value: Optional[float]): + if value is None: + if "TreatmentTimeLimit" in self._dataset: + del self._dataset.TreatmentTimeLimit + else: + self._dataset.TreatmentTimeLimit = value + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLabel(self) -> Optional[str]: + if "UserContentLabel" in self._dataset: + return self._dataset.UserContentLabel + return None + + @UserContentLabel.setter + def UserContentLabel(self, value: Optional[str]): + if value is None: + if "UserContentLabel" in self._dataset: + del self._dataset.UserContentLabel + else: + self._dataset.UserContentLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def RoboticPathNodeSetCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RoboticPathNodeSetCodeSequence" in self._dataset: + if len(self._RoboticPathNodeSetCodeSequence) == len(self._dataset.RoboticPathNodeSetCodeSequence): + return self._RoboticPathNodeSetCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RoboticPathNodeSetCodeSequence] + return None + + @RoboticPathNodeSetCodeSequence.setter + def RoboticPathNodeSetCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RoboticPathNodeSetCodeSequence = [] + if "RoboticPathNodeSetCodeSequence" in self._dataset: + del self._dataset.RoboticPathNodeSetCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RoboticPathNodeSetCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RoboticPathNodeSetCodeSequence = value + if "RoboticPathNodeSetCodeSequence" not in self._dataset: + self._dataset.RoboticPathNodeSetCodeSequence = pydicom.Sequence() + self._dataset.RoboticPathNodeSetCodeSequence.clear() + self._dataset.RoboticPathNodeSetCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RoboticPathNodeSetCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RoboticPathNodeSetCodeSequence.append(item) + if "RoboticPathNodeSetCodeSequence" not in self._dataset: + self._dataset.RoboticPathNodeSetCodeSequence = pydicom.Sequence() + self._dataset.RoboticPathNodeSetCodeSequence.append(item.to_dataset()) + + @property + def RoboticPathControlPointSequence(self) -> Optional[List[RoboticPathControlPointSequenceItem]]: + if "RoboticPathControlPointSequence" in self._dataset: + if len(self._RoboticPathControlPointSequence) == len(self._dataset.RoboticPathControlPointSequence): + return self._RoboticPathControlPointSequence + else: + return [RoboticPathControlPointSequenceItem(x) for x in self._dataset.RoboticPathControlPointSequence] + return None + + @RoboticPathControlPointSequence.setter + def RoboticPathControlPointSequence(self, value: Optional[List[RoboticPathControlPointSequenceItem]]): + if value is None: + self._RoboticPathControlPointSequence = [] + if "RoboticPathControlPointSequence" in self._dataset: + del self._dataset.RoboticPathControlPointSequence + elif not isinstance(value, list) or not all(isinstance(item, RoboticPathControlPointSequenceItem) for item in value): + raise ValueError("RoboticPathControlPointSequence must be a list of RoboticPathControlPointSequenceItem objects") + else: + self._RoboticPathControlPointSequence = value + if "RoboticPathControlPointSequence" not in self._dataset: + self._dataset.RoboticPathControlPointSequence = pydicom.Sequence() + self._dataset.RoboticPathControlPointSequence.clear() + self._dataset.RoboticPathControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_RoboticPathControlPoint(self, item: RoboticPathControlPointSequenceItem): + if not isinstance(item, RoboticPathControlPointSequenceItem): + raise ValueError("Item must be an instance of RoboticPathControlPointSequenceItem") + self._RoboticPathControlPointSequence.append(item) + if "RoboticPathControlPointSequence" not in self._dataset: + self._dataset.RoboticPathControlPointSequence = pydicom.Sequence() + self._dataset.RoboticPathControlPointSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/robotic_arm_radiation_record.py b/tdwii_plus_examples/domain_model/robotic_arm_radiation_record.py new file mode 100644 index 0000000..6d480dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/robotic_arm_radiation_record.py @@ -0,0 +1,5768 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .additional_parameter_recording_instance_sequence_item import ( + AdditionalParameterRecordingInstanceSequenceItem, +) +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .confirmation_sequence_item import ConfirmationSequenceItem +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .interlock_sequence_item import InterlockSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_instance_sequence_item import ReferencedRTInstanceSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .robotic_path_control_point_sequence_item import ( + RoboticPathControlPointSequenceItem, +) +from .rt_accessory_holder_definition_sequence_item import ( + RTAccessoryHolderDefinitionSequenceItem, +) +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .treatment_tolerance_violation_sequence_item import ( + TreatmentToleranceViolationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RoboticArmRadiationRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._RTAccessoryHolderDefinitionSequence: List[RTAccessoryHolderDefinitionSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._RoboticPathNodeSetCodeSequence: List[CodeSequenceItem] = [] + self._RoboticPathControlPointSequence: List[RoboticPathControlPointSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._ReferencedRTInstanceSequence: List[ReferencedRTInstanceSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentToleranceViolationSequence: List[TreatmentToleranceViolationSequenceItem] = [] + self._ConfirmationSequence: List[ConfirmationSequenceItem] = [] + self._InterlockSequence: List[InterlockSequenceItem] = [] + self._AdditionalParameterRecordingInstanceSequence: List[AdditionalParameterRecordingInstanceSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def RTAccessoryHolderDefinitionSequence(self) -> Optional[List[RTAccessoryHolderDefinitionSequenceItem]]: + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + if len(self._RTAccessoryHolderDefinitionSequence) == len(self._dataset.RTAccessoryHolderDefinitionSequence): + return self._RTAccessoryHolderDefinitionSequence + else: + return [RTAccessoryHolderDefinitionSequenceItem(x) for x in self._dataset.RTAccessoryHolderDefinitionSequence] + return None + + @RTAccessoryHolderDefinitionSequence.setter + def RTAccessoryHolderDefinitionSequence(self, value: Optional[List[RTAccessoryHolderDefinitionSequenceItem]]): + if value is None: + self._RTAccessoryHolderDefinitionSequence = [] + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + del self._dataset.RTAccessoryHolderDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTAccessoryHolderDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTAccessoryHolderDefinitionSequence must be a list of RTAccessoryHolderDefinitionSequenceItem objects" + ) + else: + self._RTAccessoryHolderDefinitionSequence = value + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.clear() + self._dataset.RTAccessoryHolderDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAccessoryHolderDefinition(self, item: RTAccessoryHolderDefinitionSequenceItem): + if not isinstance(item, RTAccessoryHolderDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTAccessoryHolderDefinitionSequenceItem") + self._RTAccessoryHolderDefinitionSequence.append(item) + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTAccessoryHolders(self) -> Optional[int]: + if "NumberOfRTAccessoryHolders" in self._dataset: + return self._dataset.NumberOfRTAccessoryHolders + return None + + @NumberOfRTAccessoryHolders.setter + def NumberOfRTAccessoryHolders(self, value: Optional[int]): + if value is None: + if "NumberOfRTAccessoryHolders" in self._dataset: + del self._dataset.NumberOfRTAccessoryHolders + else: + self._dataset.NumberOfRTAccessoryHolders = value + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def RoboticPathNodeSetCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RoboticPathNodeSetCodeSequence" in self._dataset: + if len(self._RoboticPathNodeSetCodeSequence) == len(self._dataset.RoboticPathNodeSetCodeSequence): + return self._RoboticPathNodeSetCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RoboticPathNodeSetCodeSequence] + return None + + @RoboticPathNodeSetCodeSequence.setter + def RoboticPathNodeSetCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RoboticPathNodeSetCodeSequence = [] + if "RoboticPathNodeSetCodeSequence" in self._dataset: + del self._dataset.RoboticPathNodeSetCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RoboticPathNodeSetCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RoboticPathNodeSetCodeSequence = value + if "RoboticPathNodeSetCodeSequence" not in self._dataset: + self._dataset.RoboticPathNodeSetCodeSequence = pydicom.Sequence() + self._dataset.RoboticPathNodeSetCodeSequence.clear() + self._dataset.RoboticPathNodeSetCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RoboticPathNodeSetCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RoboticPathNodeSetCodeSequence.append(item) + if "RoboticPathNodeSetCodeSequence" not in self._dataset: + self._dataset.RoboticPathNodeSetCodeSequence = pydicom.Sequence() + self._dataset.RoboticPathNodeSetCodeSequence.append(item.to_dataset()) + + @property + def RoboticPathControlPointSequence(self) -> Optional[List[RoboticPathControlPointSequenceItem]]: + if "RoboticPathControlPointSequence" in self._dataset: + if len(self._RoboticPathControlPointSequence) == len(self._dataset.RoboticPathControlPointSequence): + return self._RoboticPathControlPointSequence + else: + return [RoboticPathControlPointSequenceItem(x) for x in self._dataset.RoboticPathControlPointSequence] + return None + + @RoboticPathControlPointSequence.setter + def RoboticPathControlPointSequence(self, value: Optional[List[RoboticPathControlPointSequenceItem]]): + if value is None: + self._RoboticPathControlPointSequence = [] + if "RoboticPathControlPointSequence" in self._dataset: + del self._dataset.RoboticPathControlPointSequence + elif not isinstance(value, list) or not all(isinstance(item, RoboticPathControlPointSequenceItem) for item in value): + raise ValueError("RoboticPathControlPointSequence must be a list of RoboticPathControlPointSequenceItem objects") + else: + self._RoboticPathControlPointSequence = value + if "RoboticPathControlPointSequence" not in self._dataset: + self._dataset.RoboticPathControlPointSequence = pydicom.Sequence() + self._dataset.RoboticPathControlPointSequence.clear() + self._dataset.RoboticPathControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_RoboticPathControlPoint(self, item: RoboticPathControlPointSequenceItem): + if not isinstance(item, RoboticPathControlPointSequenceItem): + raise ValueError("Item must be an instance of RoboticPathControlPointSequenceItem") + self._RoboticPathControlPointSequence.append(item) + if "RoboticPathControlPointSequence" not in self._dataset: + self._dataset.RoboticPathControlPointSequence = pydicom.Sequence() + self._dataset.RoboticPathControlPointSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTInstanceSequence(self) -> Optional[List[ReferencedRTInstanceSequenceItem]]: + if "ReferencedRTInstanceSequence" in self._dataset: + if len(self._ReferencedRTInstanceSequence) == len(self._dataset.ReferencedRTInstanceSequence): + return self._ReferencedRTInstanceSequence + else: + return [ReferencedRTInstanceSequenceItem(x) for x in self._dataset.ReferencedRTInstanceSequence] + return None + + @ReferencedRTInstanceSequence.setter + def ReferencedRTInstanceSequence(self, value: Optional[List[ReferencedRTInstanceSequenceItem]]): + if value is None: + self._ReferencedRTInstanceSequence = [] + if "ReferencedRTInstanceSequence" in self._dataset: + del self._dataset.ReferencedRTInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTInstanceSequenceItem) for item in value): + raise ValueError("ReferencedRTInstanceSequence must be a list of ReferencedRTInstanceSequenceItem objects") + else: + self._ReferencedRTInstanceSequence = value + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.clear() + self._dataset.ReferencedRTInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTInstance(self, item: ReferencedRTInstanceSequenceItem): + if not isinstance(item, ReferencedRTInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTInstanceSequenceItem") + self._ReferencedRTInstanceSequence.append(item) + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RTRadiationUsage(self) -> Optional[str]: + if "RTRadiationUsage" in self._dataset: + return self._dataset.RTRadiationUsage + return None + + @RTRadiationUsage.setter + def RTRadiationUsage(self, value: Optional[str]): + if value is None: + if "RTRadiationUsage" in self._dataset: + del self._dataset.RTRadiationUsage + else: + self._dataset.RTRadiationUsage = value + + @property + def TreatmentDeliveryContinuationFlag(self) -> Optional[str]: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + return self._dataset.TreatmentDeliveryContinuationFlag + return None + + @TreatmentDeliveryContinuationFlag.setter + def TreatmentDeliveryContinuationFlag(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + del self._dataset.TreatmentDeliveryContinuationFlag + else: + self._dataset.TreatmentDeliveryContinuationFlag = value + + @property + def TreatmentRecordContentOrigin(self) -> Optional[str]: + if "TreatmentRecordContentOrigin" in self._dataset: + return self._dataset.TreatmentRecordContentOrigin + return None + + @TreatmentRecordContentOrigin.setter + def TreatmentRecordContentOrigin(self, value: Optional[str]): + if value is None: + if "TreatmentRecordContentOrigin" in self._dataset: + del self._dataset.TreatmentRecordContentOrigin + else: + self._dataset.TreatmentRecordContentOrigin = value + + @property + def RTTreatmentTerminationStatus(self) -> Optional[str]: + if "RTTreatmentTerminationStatus" in self._dataset: + return self._dataset.RTTreatmentTerminationStatus + return None + + @RTTreatmentTerminationStatus.setter + def RTTreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "RTTreatmentTerminationStatus" in self._dataset: + del self._dataset.RTTreatmentTerminationStatus + else: + self._dataset.RTTreatmentTerminationStatus = value + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def TreatmentToleranceViolationSequence(self) -> Optional[List[TreatmentToleranceViolationSequenceItem]]: + if "TreatmentToleranceViolationSequence" in self._dataset: + if len(self._TreatmentToleranceViolationSequence) == len(self._dataset.TreatmentToleranceViolationSequence): + return self._TreatmentToleranceViolationSequence + else: + return [TreatmentToleranceViolationSequenceItem(x) for x in self._dataset.TreatmentToleranceViolationSequence] + return None + + @TreatmentToleranceViolationSequence.setter + def TreatmentToleranceViolationSequence(self, value: Optional[List[TreatmentToleranceViolationSequenceItem]]): + if value is None: + self._TreatmentToleranceViolationSequence = [] + if "TreatmentToleranceViolationSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentToleranceViolationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentToleranceViolationSequence must be a list of TreatmentToleranceViolationSequenceItem objects" + ) + else: + self._TreatmentToleranceViolationSequence = value + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.clear() + self._dataset.TreatmentToleranceViolationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolation(self, item: TreatmentToleranceViolationSequenceItem): + if not isinstance(item, TreatmentToleranceViolationSequenceItem): + raise ValueError("Item must be an instance of TreatmentToleranceViolationSequenceItem") + self._TreatmentToleranceViolationSequence.append(item) + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.append(item.to_dataset()) + + @property + def ConfirmationSequence(self) -> Optional[List[ConfirmationSequenceItem]]: + if "ConfirmationSequence" in self._dataset: + if len(self._ConfirmationSequence) == len(self._dataset.ConfirmationSequence): + return self._ConfirmationSequence + else: + return [ConfirmationSequenceItem(x) for x in self._dataset.ConfirmationSequence] + return None + + @ConfirmationSequence.setter + def ConfirmationSequence(self, value: Optional[List[ConfirmationSequenceItem]]): + if value is None: + self._ConfirmationSequence = [] + if "ConfirmationSequence" in self._dataset: + del self._dataset.ConfirmationSequence + elif not isinstance(value, list) or not all(isinstance(item, ConfirmationSequenceItem) for item in value): + raise ValueError("ConfirmationSequence must be a list of ConfirmationSequenceItem objects") + else: + self._ConfirmationSequence = value + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.clear() + self._dataset.ConfirmationSequence.extend([item.to_dataset() for item in value]) + + def add_Confirmation(self, item: ConfirmationSequenceItem): + if not isinstance(item, ConfirmationSequenceItem): + raise ValueError("Item must be an instance of ConfirmationSequenceItem") + self._ConfirmationSequence.append(item) + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.append(item.to_dataset()) + + @property + def InterlockSequence(self) -> Optional[List[InterlockSequenceItem]]: + if "InterlockSequence" in self._dataset: + if len(self._InterlockSequence) == len(self._dataset.InterlockSequence): + return self._InterlockSequence + else: + return [InterlockSequenceItem(x) for x in self._dataset.InterlockSequence] + return None + + @InterlockSequence.setter + def InterlockSequence(self, value: Optional[List[InterlockSequenceItem]]): + if value is None: + self._InterlockSequence = [] + if "InterlockSequence" in self._dataset: + del self._dataset.InterlockSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockSequenceItem) for item in value): + raise ValueError("InterlockSequence must be a list of InterlockSequenceItem objects") + else: + self._InterlockSequence = value + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.clear() + self._dataset.InterlockSequence.extend([item.to_dataset() for item in value]) + + def add_Interlock(self, item: InterlockSequenceItem): + if not isinstance(item, InterlockSequenceItem): + raise ValueError("Item must be an instance of InterlockSequenceItem") + self._InterlockSequence.append(item) + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.append(item.to_dataset()) + + @property + def AdditionalParameterRecordingInstanceSequence(self) -> Optional[List[AdditionalParameterRecordingInstanceSequenceItem]]: + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + if len(self._AdditionalParameterRecordingInstanceSequence) == len( + self._dataset.AdditionalParameterRecordingInstanceSequence + ): + return self._AdditionalParameterRecordingInstanceSequence + else: + return [ + AdditionalParameterRecordingInstanceSequenceItem(x) + for x in self._dataset.AdditionalParameterRecordingInstanceSequence + ] + return None + + @AdditionalParameterRecordingInstanceSequence.setter + def AdditionalParameterRecordingInstanceSequence( + self, value: Optional[List[AdditionalParameterRecordingInstanceSequenceItem]] + ): + if value is None: + self._AdditionalParameterRecordingInstanceSequence = [] + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + del self._dataset.AdditionalParameterRecordingInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, AdditionalParameterRecordingInstanceSequenceItem) for item in value + ): + raise ValueError( + "AdditionalParameterRecordingInstanceSequence must be a list of" + " AdditionalParameterRecordingInstanceSequenceItem objects" + ) + else: + self._AdditionalParameterRecordingInstanceSequence = value + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.clear() + self._dataset.AdditionalParameterRecordingInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_AdditionalParameterRecordingInstance(self, item: AdditionalParameterRecordingInstanceSequenceItem): + if not isinstance(item, AdditionalParameterRecordingInstanceSequenceItem): + raise ValueError("Item must be an instance of AdditionalParameterRecordingInstanceSequenceItem") + self._AdditionalParameterRecordingInstanceSequence.append(item) + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/robotic_path_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/robotic_path_control_point_sequence_item.py new file mode 100644 index 0000000..7ba275d --- /dev/null +++ b/tdwii_plus_examples/domain_model/robotic_path_control_point_sequence_item.py @@ -0,0 +1,302 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_area_limit_sequence_item import BeamAreaLimitSequenceItem +from .delivery_rate_unit_sequence_item import DeliveryRateUnitSequenceItem +from .rt_beam_limiting_device_opening_sequence_item import ( + RTBeamLimitingDeviceOpeningSequenceItem, +) + + +class RoboticPathControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeliveryRateUnitSequence: List[DeliveryRateUnitSequenceItem] = [] + self._RTBeamLimitingDeviceOpeningSequence: List[RTBeamLimitingDeviceOpeningSequenceItem] = [] + self._BeamAreaLimitSequence: List[BeamAreaLimitSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTControlPointIndex(self) -> Optional[int]: + if "RTControlPointIndex" in self._dataset: + return self._dataset.RTControlPointIndex + return None + + @RTControlPointIndex.setter + def RTControlPointIndex(self, value: Optional[int]): + if value is None: + if "RTControlPointIndex" in self._dataset: + del self._dataset.RTControlPointIndex + else: + self._dataset.RTControlPointIndex = value + + @property + def ReferencedRadiationGenerationModeIndex(self) -> Optional[int]: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + return self._dataset.ReferencedRadiationGenerationModeIndex + return None + + @ReferencedRadiationGenerationModeIndex.setter + def ReferencedRadiationGenerationModeIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + del self._dataset.ReferencedRadiationGenerationModeIndex + else: + self._dataset.ReferencedRadiationGenerationModeIndex = value + + @property + def ReferencedTreatmentPositionIndex(self) -> Optional[int]: + if "ReferencedTreatmentPositionIndex" in self._dataset: + return self._dataset.ReferencedTreatmentPositionIndex + return None + + @ReferencedTreatmentPositionIndex.setter + def ReferencedTreatmentPositionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedTreatmentPositionIndex" in self._dataset: + del self._dataset.ReferencedTreatmentPositionIndex + else: + self._dataset.ReferencedTreatmentPositionIndex = value + + @property + def CumulativeMeterset(self) -> Optional[float]: + if "CumulativeMeterset" in self._dataset: + return self._dataset.CumulativeMeterset + return None + + @CumulativeMeterset.setter + def CumulativeMeterset(self, value: Optional[float]): + if value is None: + if "CumulativeMeterset" in self._dataset: + del self._dataset.CumulativeMeterset + else: + self._dataset.CumulativeMeterset = value + + @property + def DeliveryRate(self) -> Optional[float]: + if "DeliveryRate" in self._dataset: + return self._dataset.DeliveryRate + return None + + @DeliveryRate.setter + def DeliveryRate(self, value: Optional[float]): + if value is None: + if "DeliveryRate" in self._dataset: + del self._dataset.DeliveryRate + else: + self._dataset.DeliveryRate = value + + @property + def DeliveryRateUnitSequence(self) -> Optional[List[DeliveryRateUnitSequenceItem]]: + if "DeliveryRateUnitSequence" in self._dataset: + if len(self._DeliveryRateUnitSequence) == len(self._dataset.DeliveryRateUnitSequence): + return self._DeliveryRateUnitSequence + else: + return [DeliveryRateUnitSequenceItem(x) for x in self._dataset.DeliveryRateUnitSequence] + return None + + @DeliveryRateUnitSequence.setter + def DeliveryRateUnitSequence(self, value: Optional[List[DeliveryRateUnitSequenceItem]]): + if value is None: + self._DeliveryRateUnitSequence = [] + if "DeliveryRateUnitSequence" in self._dataset: + del self._dataset.DeliveryRateUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, DeliveryRateUnitSequenceItem) for item in value): + raise ValueError("DeliveryRateUnitSequence must be a list of DeliveryRateUnitSequenceItem objects") + else: + self._DeliveryRateUnitSequence = value + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.clear() + self._dataset.DeliveryRateUnitSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryRateUnit(self, item: DeliveryRateUnitSequenceItem): + if not isinstance(item, DeliveryRateUnitSequenceItem): + raise ValueError("Item must be an instance of DeliveryRateUnitSequenceItem") + self._DeliveryRateUnitSequence.append(item) + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.append(item.to_dataset()) + + @property + def RTBeamLimitingDeviceOpeningSequence(self) -> Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]: + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceOpeningSequence) == len(self._dataset.RTBeamLimitingDeviceOpeningSequence): + return self._RTBeamLimitingDeviceOpeningSequence + else: + return [RTBeamLimitingDeviceOpeningSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceOpeningSequence] + return None + + @RTBeamLimitingDeviceOpeningSequence.setter + def RTBeamLimitingDeviceOpeningSequence(self, value: Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceOpeningSequence = [] + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceOpeningSequence must be a list of RTBeamLimitingDeviceOpeningSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceOpeningSequence = value + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.clear() + self._dataset.RTBeamLimitingDeviceOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceOpening(self, item: RTBeamLimitingDeviceOpeningSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceOpeningSequenceItem") + self._RTBeamLimitingDeviceOpeningSequence.append(item) + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDeviceOpenings(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDeviceOpenings" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDeviceOpenings + return None + + @NumberOfRTBeamLimitingDeviceOpenings.setter + def NumberOfRTBeamLimitingDeviceOpenings(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDeviceOpenings" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDeviceOpenings + else: + self._dataset.NumberOfRTBeamLimitingDeviceOpenings = value + + @property + def BeamAreaLimitSequence(self) -> Optional[List[BeamAreaLimitSequenceItem]]: + if "BeamAreaLimitSequence" in self._dataset: + if len(self._BeamAreaLimitSequence) == len(self._dataset.BeamAreaLimitSequence): + return self._BeamAreaLimitSequence + else: + return [BeamAreaLimitSequenceItem(x) for x in self._dataset.BeamAreaLimitSequence] + return None + + @BeamAreaLimitSequence.setter + def BeamAreaLimitSequence(self, value: Optional[List[BeamAreaLimitSequenceItem]]): + if value is None: + self._BeamAreaLimitSequence = [] + if "BeamAreaLimitSequence" in self._dataset: + del self._dataset.BeamAreaLimitSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamAreaLimitSequenceItem) for item in value): + raise ValueError("BeamAreaLimitSequence must be a list of BeamAreaLimitSequenceItem objects") + else: + self._BeamAreaLimitSequence = value + if "BeamAreaLimitSequence" not in self._dataset: + self._dataset.BeamAreaLimitSequence = pydicom.Sequence() + self._dataset.BeamAreaLimitSequence.clear() + self._dataset.BeamAreaLimitSequence.extend([item.to_dataset() for item in value]) + + def add_BeamAreaLimit(self, item: BeamAreaLimitSequenceItem): + if not isinstance(item, BeamAreaLimitSequenceItem): + raise ValueError("Item must be an instance of BeamAreaLimitSequenceItem") + self._BeamAreaLimitSequence.append(item) + if "BeamAreaLimitSequence" not in self._dataset: + self._dataset.BeamAreaLimitSequence = pydicom.Sequence() + self._dataset.BeamAreaLimitSequence.append(item.to_dataset()) + + @property + def RecordedRTControlPointDateTime(self) -> Optional[str]: + if "RecordedRTControlPointDateTime" in self._dataset: + return self._dataset.RecordedRTControlPointDateTime + return None + + @RecordedRTControlPointDateTime.setter + def RecordedRTControlPointDateTime(self, value: Optional[str]): + if value is None: + if "RecordedRTControlPointDateTime" in self._dataset: + del self._dataset.RecordedRTControlPointDateTime + else: + self._dataset.RecordedRTControlPointDateTime = value + + @property + def ReferencedRadiationRTControlPointIndex(self) -> Optional[int]: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + return self._dataset.ReferencedRadiationRTControlPointIndex + return None + + @ReferencedRadiationRTControlPointIndex.setter + def ReferencedRadiationRTControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + del self._dataset.ReferencedRadiationRTControlPointIndex + else: + self._dataset.ReferencedRadiationRTControlPointIndex = value + + @property + def RoboticNodeIdentifier(self) -> Optional[int]: + if "RoboticNodeIdentifier" in self._dataset: + return self._dataset.RoboticNodeIdentifier + return None + + @RoboticNodeIdentifier.setter + def RoboticNodeIdentifier(self, value: Optional[int]): + if value is None: + if "RoboticNodeIdentifier" in self._dataset: + del self._dataset.RoboticNodeIdentifier + else: + self._dataset.RoboticNodeIdentifier = value + + @property + def RTTreatmentSourceCoordinates(self) -> Optional[List[float]]: + if "RTTreatmentSourceCoordinates" in self._dataset: + return self._dataset.RTTreatmentSourceCoordinates + return None + + @RTTreatmentSourceCoordinates.setter + def RTTreatmentSourceCoordinates(self, value: Optional[List[float]]): + if value is None: + if "RTTreatmentSourceCoordinates" in self._dataset: + del self._dataset.RTTreatmentSourceCoordinates + else: + self._dataset.RTTreatmentSourceCoordinates = value + + @property + def RadiationSourceCoordinateSystemYawAngle(self) -> Optional[float]: + if "RadiationSourceCoordinateSystemYawAngle" in self._dataset: + return self._dataset.RadiationSourceCoordinateSystemYawAngle + return None + + @RadiationSourceCoordinateSystemYawAngle.setter + def RadiationSourceCoordinateSystemYawAngle(self, value: Optional[float]): + if value is None: + if "RadiationSourceCoordinateSystemYawAngle" in self._dataset: + del self._dataset.RadiationSourceCoordinateSystemYawAngle + else: + self._dataset.RadiationSourceCoordinateSystemYawAngle = value + + @property + def RadiationSourceCoordinateSystemRollAngle(self) -> Optional[float]: + if "RadiationSourceCoordinateSystemRollAngle" in self._dataset: + return self._dataset.RadiationSourceCoordinateSystemRollAngle + return None + + @RadiationSourceCoordinateSystemRollAngle.setter + def RadiationSourceCoordinateSystemRollAngle(self, value: Optional[float]): + if value is None: + if "RadiationSourceCoordinateSystemRollAngle" in self._dataset: + del self._dataset.RadiationSourceCoordinateSystemRollAngle + else: + self._dataset.RadiationSourceCoordinateSystemRollAngle = value + + @property + def RadiationSourceCoordinateSystemPitchAngle(self) -> Optional[float]: + if "RadiationSourceCoordinateSystemPitchAngle" in self._dataset: + return self._dataset.RadiationSourceCoordinateSystemPitchAngle + return None + + @RadiationSourceCoordinateSystemPitchAngle.setter + def RadiationSourceCoordinateSystemPitchAngle(self, value: Optional[float]): + if value is None: + if "RadiationSourceCoordinateSystemPitchAngle" in self._dataset: + del self._dataset.RadiationSourceCoordinateSystemPitchAngle + else: + self._dataset.RadiationSourceCoordinateSystemPitchAngle = value diff --git a/tdwii_plus_examples/domain_model/roi_contour_sequence_item.py b/tdwii_plus_examples/domain_model/roi_contour_sequence_item.py new file mode 100644 index 0000000..a368a29 --- /dev/null +++ b/tdwii_plus_examples/domain_model/roi_contour_sequence_item.py @@ -0,0 +1,182 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .contour_sequence_item import ContourSequenceItem +from .source_pixel_planes_characteristics_sequence_item import ( + SourcePixelPlanesCharacteristicsSequenceItem, +) +from .source_series_sequence_item import SourceSeriesSequenceItem + + +class ROIContourSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ContourSequence: List[ContourSequenceItem] = [] + self._SourcePixelPlanesCharacteristicsSequence: List[SourcePixelPlanesCharacteristicsSequenceItem] = [] + self._SourceSeriesSequence: List[SourceSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecommendedDisplayGrayscaleValue(self) -> Optional[int]: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + return self._dataset.RecommendedDisplayGrayscaleValue + return None + + @RecommendedDisplayGrayscaleValue.setter + def RecommendedDisplayGrayscaleValue(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + del self._dataset.RecommendedDisplayGrayscaleValue + else: + self._dataset.RecommendedDisplayGrayscaleValue = value + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def ROIDisplayColor(self) -> Optional[List[int]]: + if "ROIDisplayColor" in self._dataset: + return self._dataset.ROIDisplayColor + return None + + @ROIDisplayColor.setter + def ROIDisplayColor(self, value: Optional[List[int]]): + if value is None: + if "ROIDisplayColor" in self._dataset: + del self._dataset.ROIDisplayColor + else: + self._dataset.ROIDisplayColor = value + + @property + def ContourSequence(self) -> Optional[List[ContourSequenceItem]]: + if "ContourSequence" in self._dataset: + if len(self._ContourSequence) == len(self._dataset.ContourSequence): + return self._ContourSequence + else: + return [ContourSequenceItem(x) for x in self._dataset.ContourSequence] + return None + + @ContourSequence.setter + def ContourSequence(self, value: Optional[List[ContourSequenceItem]]): + if value is None: + self._ContourSequence = [] + if "ContourSequence" in self._dataset: + del self._dataset.ContourSequence + elif not isinstance(value, list) or not all(isinstance(item, ContourSequenceItem) for item in value): + raise ValueError("ContourSequence must be a list of ContourSequenceItem objects") + else: + self._ContourSequence = value + if "ContourSequence" not in self._dataset: + self._dataset.ContourSequence = pydicom.Sequence() + self._dataset.ContourSequence.clear() + self._dataset.ContourSequence.extend([item.to_dataset() for item in value]) + + def add_Contour(self, item: ContourSequenceItem): + if not isinstance(item, ContourSequenceItem): + raise ValueError("Item must be an instance of ContourSequenceItem") + self._ContourSequence.append(item) + if "ContourSequence" not in self._dataset: + self._dataset.ContourSequence = pydicom.Sequence() + self._dataset.ContourSequence.append(item.to_dataset()) + + @property + def SourcePixelPlanesCharacteristicsSequence(self) -> Optional[List[SourcePixelPlanesCharacteristicsSequenceItem]]: + if "SourcePixelPlanesCharacteristicsSequence" in self._dataset: + if len(self._SourcePixelPlanesCharacteristicsSequence) == len( + self._dataset.SourcePixelPlanesCharacteristicsSequence + ): + return self._SourcePixelPlanesCharacteristicsSequence + else: + return [ + SourcePixelPlanesCharacteristicsSequenceItem(x) + for x in self._dataset.SourcePixelPlanesCharacteristicsSequence + ] + return None + + @SourcePixelPlanesCharacteristicsSequence.setter + def SourcePixelPlanesCharacteristicsSequence(self, value: Optional[List[SourcePixelPlanesCharacteristicsSequenceItem]]): + if value is None: + self._SourcePixelPlanesCharacteristicsSequence = [] + if "SourcePixelPlanesCharacteristicsSequence" in self._dataset: + del self._dataset.SourcePixelPlanesCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePixelPlanesCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "SourcePixelPlanesCharacteristicsSequence must be a list of SourcePixelPlanesCharacteristicsSequenceItem" + " objects" + ) + else: + self._SourcePixelPlanesCharacteristicsSequence = value + if "SourcePixelPlanesCharacteristicsSequence" not in self._dataset: + self._dataset.SourcePixelPlanesCharacteristicsSequence = pydicom.Sequence() + self._dataset.SourcePixelPlanesCharacteristicsSequence.clear() + self._dataset.SourcePixelPlanesCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePixelPlanesCharacteristics(self, item: SourcePixelPlanesCharacteristicsSequenceItem): + if not isinstance(item, SourcePixelPlanesCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of SourcePixelPlanesCharacteristicsSequenceItem") + self._SourcePixelPlanesCharacteristicsSequence.append(item) + if "SourcePixelPlanesCharacteristicsSequence" not in self._dataset: + self._dataset.SourcePixelPlanesCharacteristicsSequence = pydicom.Sequence() + self._dataset.SourcePixelPlanesCharacteristicsSequence.append(item.to_dataset()) + + @property + def SourceSeriesSequence(self) -> Optional[List[SourceSeriesSequenceItem]]: + if "SourceSeriesSequence" in self._dataset: + if len(self._SourceSeriesSequence) == len(self._dataset.SourceSeriesSequence): + return self._SourceSeriesSequence + else: + return [SourceSeriesSequenceItem(x) for x in self._dataset.SourceSeriesSequence] + return None + + @SourceSeriesSequence.setter + def SourceSeriesSequence(self, value: Optional[List[SourceSeriesSequenceItem]]): + if value is None: + self._SourceSeriesSequence = [] + if "SourceSeriesSequence" in self._dataset: + del self._dataset.SourceSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceSeriesSequenceItem) for item in value): + raise ValueError("SourceSeriesSequence must be a list of SourceSeriesSequenceItem objects") + else: + self._SourceSeriesSequence = value + if "SourceSeriesSequence" not in self._dataset: + self._dataset.SourceSeriesSequence = pydicom.Sequence() + self._dataset.SourceSeriesSequence.clear() + self._dataset.SourceSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_SourceSeries(self, item: SourceSeriesSequenceItem): + if not isinstance(item, SourceSeriesSequenceItem): + raise ValueError("Item must be an instance of SourceSeriesSequenceItem") + self._SourceSeriesSequence.append(item) + if "SourceSeriesSequence" not in self._dataset: + self._dataset.SourceSeriesSequence = pydicom.Sequence() + self._dataset.SourceSeriesSequence.append(item.to_dataset()) + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value diff --git a/tdwii_plus_examples/domain_model/roi_creator_sequence_item.py b/tdwii_plus_examples/domain_model/roi_creator_sequence_item.py new file mode 100644 index 0000000..dccf09d --- /dev/null +++ b/tdwii_plus_examples/domain_model/roi_creator_sequence_item.py @@ -0,0 +1,329 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ROICreatorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/roi_derivation_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/roi_derivation_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..1c82b5c --- /dev/null +++ b/tdwii_plus_examples/domain_model/roi_derivation_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ROIDerivationAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/roi_elemental_composition_sequence_item.py b/tdwii_plus_examples/domain_model/roi_elemental_composition_sequence_item.py new file mode 100644 index 0000000..7ead59b --- /dev/null +++ b/tdwii_plus_examples/domain_model/roi_elemental_composition_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ROIElementalCompositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ROIElementalCompositionAtomicNumber(self) -> Optional[int]: + if "ROIElementalCompositionAtomicNumber" in self._dataset: + return self._dataset.ROIElementalCompositionAtomicNumber + return None + + @ROIElementalCompositionAtomicNumber.setter + def ROIElementalCompositionAtomicNumber(self, value: Optional[int]): + if value is None: + if "ROIElementalCompositionAtomicNumber" in self._dataset: + del self._dataset.ROIElementalCompositionAtomicNumber + else: + self._dataset.ROIElementalCompositionAtomicNumber = value + + @property + def ROIElementalCompositionAtomicMassFraction(self) -> Optional[float]: + if "ROIElementalCompositionAtomicMassFraction" in self._dataset: + return self._dataset.ROIElementalCompositionAtomicMassFraction + return None + + @ROIElementalCompositionAtomicMassFraction.setter + def ROIElementalCompositionAtomicMassFraction(self, value: Optional[float]): + if value is None: + if "ROIElementalCompositionAtomicMassFraction" in self._dataset: + del self._dataset.ROIElementalCompositionAtomicMassFraction + else: + self._dataset.ROIElementalCompositionAtomicMassFraction = value diff --git a/tdwii_plus_examples/domain_model/roi_interpreter_sequence_item.py b/tdwii_plus_examples/domain_model/roi_interpreter_sequence_item.py new file mode 100644 index 0000000..b3f77d1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/roi_interpreter_sequence_item.py @@ -0,0 +1,329 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class ROIInterpreterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionCodeSequence: List[CodeSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._PersonIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._OrganizationalRoleCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StationAETitle(self) -> Optional[str]: + if "StationAETitle" in self._dataset: + return self._dataset.StationAETitle + return None + + @StationAETitle.setter + def StationAETitle(self, value: Optional[str]): + if value is None: + if "StationAETitle" in self._dataset: + del self._dataset.StationAETitle + else: + self._dataset.StationAETitle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionCodeSequence" in self._dataset: + if len(self._InstitutionCodeSequence) == len(self._dataset.InstitutionCodeSequence): + return self._InstitutionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionCodeSequence] + return None + + @InstitutionCodeSequence.setter + def InstitutionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionCodeSequence = [] + if "InstitutionCodeSequence" in self._dataset: + del self._dataset.InstitutionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionCodeSequence = value + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.clear() + self._dataset.InstitutionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionCodeSequence.append(item) + if "InstitutionCodeSequence" not in self._dataset: + self._dataset.InstitutionCodeSequence = pydicom.Sequence() + self._dataset.InstitutionCodeSequence.append(item.to_dataset()) + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PersonIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PersonIdentificationCodeSequence" in self._dataset: + if len(self._PersonIdentificationCodeSequence) == len(self._dataset.PersonIdentificationCodeSequence): + return self._PersonIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PersonIdentificationCodeSequence] + return None + + @PersonIdentificationCodeSequence.setter + def PersonIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PersonIdentificationCodeSequence = [] + if "PersonIdentificationCodeSequence" in self._dataset: + del self._dataset.PersonIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PersonIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PersonIdentificationCodeSequence = value + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.clear() + self._dataset.PersonIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PersonIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PersonIdentificationCodeSequence.append(item) + if "PersonIdentificationCodeSequence" not in self._dataset: + self._dataset.PersonIdentificationCodeSequence = pydicom.Sequence() + self._dataset.PersonIdentificationCodeSequence.append(item.to_dataset()) + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def OrganizationalRoleCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OrganizationalRoleCodeSequence" in self._dataset: + if len(self._OrganizationalRoleCodeSequence) == len(self._dataset.OrganizationalRoleCodeSequence): + return self._OrganizationalRoleCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OrganizationalRoleCodeSequence] + return None + + @OrganizationalRoleCodeSequence.setter + def OrganizationalRoleCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OrganizationalRoleCodeSequence = [] + if "OrganizationalRoleCodeSequence" in self._dataset: + del self._dataset.OrganizationalRoleCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OrganizationalRoleCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OrganizationalRoleCodeSequence = value + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.clear() + self._dataset.OrganizationalRoleCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OrganizationalRoleCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OrganizationalRoleCodeSequence.append(item) + if "OrganizationalRoleCodeSequence" not in self._dataset: + self._dataset.OrganizationalRoleCodeSequence = pydicom.Sequence() + self._dataset.OrganizationalRoleCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/roi_physical_properties_sequence_item.py b/tdwii_plus_examples/domain_model/roi_physical_properties_sequence_item.py new file mode 100644 index 0000000..56aa52a --- /dev/null +++ b/tdwii_plus_examples/domain_model/roi_physical_properties_sequence_item.py @@ -0,0 +1,75 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .roi_elemental_composition_sequence_item import ROIElementalCompositionSequenceItem + + +class ROIPhysicalPropertiesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ROIElementalCompositionSequence: List[ROIElementalCompositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ROIPhysicalProperty(self) -> Optional[str]: + if "ROIPhysicalProperty" in self._dataset: + return self._dataset.ROIPhysicalProperty + return None + + @ROIPhysicalProperty.setter + def ROIPhysicalProperty(self, value: Optional[str]): + if value is None: + if "ROIPhysicalProperty" in self._dataset: + del self._dataset.ROIPhysicalProperty + else: + self._dataset.ROIPhysicalProperty = value + + @property + def ROIPhysicalPropertyValue(self) -> Optional[Decimal]: + if "ROIPhysicalPropertyValue" in self._dataset: + return self._dataset.ROIPhysicalPropertyValue + return None + + @ROIPhysicalPropertyValue.setter + def ROIPhysicalPropertyValue(self, value: Optional[Decimal]): + if value is None: + if "ROIPhysicalPropertyValue" in self._dataset: + del self._dataset.ROIPhysicalPropertyValue + else: + self._dataset.ROIPhysicalPropertyValue = value + + @property + def ROIElementalCompositionSequence(self) -> Optional[List[ROIElementalCompositionSequenceItem]]: + if "ROIElementalCompositionSequence" in self._dataset: + if len(self._ROIElementalCompositionSequence) == len(self._dataset.ROIElementalCompositionSequence): + return self._ROIElementalCompositionSequence + else: + return [ROIElementalCompositionSequenceItem(x) for x in self._dataset.ROIElementalCompositionSequence] + return None + + @ROIElementalCompositionSequence.setter + def ROIElementalCompositionSequence(self, value: Optional[List[ROIElementalCompositionSequenceItem]]): + if value is None: + self._ROIElementalCompositionSequence = [] + if "ROIElementalCompositionSequence" in self._dataset: + del self._dataset.ROIElementalCompositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ROIElementalCompositionSequenceItem) for item in value): + raise ValueError("ROIElementalCompositionSequence must be a list of ROIElementalCompositionSequenceItem objects") + else: + self._ROIElementalCompositionSequence = value + if "ROIElementalCompositionSequence" not in self._dataset: + self._dataset.ROIElementalCompositionSequence = pydicom.Sequence() + self._dataset.ROIElementalCompositionSequence.clear() + self._dataset.ROIElementalCompositionSequence.extend([item.to_dataset() for item in value]) + + def add_ROIElementalComposition(self, item: ROIElementalCompositionSequenceItem): + if not isinstance(item, ROIElementalCompositionSequenceItem): + raise ValueError("Item must be an instance of ROIElementalCompositionSequenceItem") + self._ROIElementalCompositionSequence.append(item) + if "ROIElementalCompositionSequence" not in self._dataset: + self._dataset.ROIElementalCompositionSequence = pydicom.Sequence() + self._dataset.ROIElementalCompositionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rotation_information_sequence_item.py b/tdwii_plus_examples/domain_model/rotation_information_sequence_item.py new file mode 100644 index 0000000..25dc94c --- /dev/null +++ b/tdwii_plus_examples/domain_model/rotation_information_sequence_item.py @@ -0,0 +1,152 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class RotationInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def TableHeight(self) -> Optional[Decimal]: + if "TableHeight" in self._dataset: + return self._dataset.TableHeight + return None + + @TableHeight.setter + def TableHeight(self, value: Optional[Decimal]): + if value is None: + if "TableHeight" in self._dataset: + del self._dataset.TableHeight + else: + self._dataset.TableHeight = value + + @property + def TableTraverse(self) -> Optional[Decimal]: + if "TableTraverse" in self._dataset: + return self._dataset.TableTraverse + return None + + @TableTraverse.setter + def TableTraverse(self, value: Optional[Decimal]): + if value is None: + if "TableTraverse" in self._dataset: + del self._dataset.TableTraverse + else: + self._dataset.TableTraverse = value + + @property + def RotationDirection(self) -> Optional[str]: + if "RotationDirection" in self._dataset: + return self._dataset.RotationDirection + return None + + @RotationDirection.setter + def RotationDirection(self, value: Optional[str]): + if value is None: + if "RotationDirection" in self._dataset: + del self._dataset.RotationDirection + else: + self._dataset.RotationDirection = value + + @property + def RadialPosition(self) -> Optional[List[Decimal]]: + if "RadialPosition" in self._dataset: + return self._dataset.RadialPosition + return None + + @RadialPosition.setter + def RadialPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "RadialPosition" in self._dataset: + del self._dataset.RadialPosition + else: + self._dataset.RadialPosition = value + + @property + def ScanArc(self) -> Optional[Decimal]: + if "ScanArc" in self._dataset: + return self._dataset.ScanArc + return None + + @ScanArc.setter + def ScanArc(self, value: Optional[Decimal]): + if value is None: + if "ScanArc" in self._dataset: + del self._dataset.ScanArc + else: + self._dataset.ScanArc = value + + @property + def AngularStep(self) -> Optional[Decimal]: + if "AngularStep" in self._dataset: + return self._dataset.AngularStep + return None + + @AngularStep.setter + def AngularStep(self, value: Optional[Decimal]): + if value is None: + if "AngularStep" in self._dataset: + del self._dataset.AngularStep + else: + self._dataset.AngularStep = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def NumberOfFramesInRotation(self) -> Optional[int]: + if "NumberOfFramesInRotation" in self._dataset: + return self._dataset.NumberOfFramesInRotation + return None + + @NumberOfFramesInRotation.setter + def NumberOfFramesInRotation(self, value: Optional[int]): + if value is None: + if "NumberOfFramesInRotation" in self._dataset: + del self._dataset.NumberOfFramesInRotation + else: + self._dataset.NumberOfFramesInRotation = value + + @property + def StartAngle(self) -> Optional[Decimal]: + if "StartAngle" in self._dataset: + return self._dataset.StartAngle + return None + + @StartAngle.setter + def StartAngle(self, value: Optional[Decimal]): + if value is None: + if "StartAngle" in self._dataset: + del self._dataset.StartAngle + else: + self._dataset.StartAngle = value diff --git a/tdwii_plus_examples/domain_model/routine_scalp_electroencephalogram.py b/tdwii_plus_examples/domain_model/routine_scalp_electroencephalogram.py new file mode 100644 index 0000000..d36a617 --- /dev/null +++ b/tdwii_plus_examples/domain_model/routine_scalp_electroencephalogram.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class RoutineScalpElectroencephalogram: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_accessory_holder_definition_sequence_item.py b/tdwii_plus_examples/domain_model/rt_accessory_holder_definition_sequence_item.py new file mode 100644 index 0000000..7757c02 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_accessory_holder_definition_sequence_item.py @@ -0,0 +1,422 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .rt_accessory_holder_slot_sequence_item import RTAccessoryHolderSlotSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RTAccessoryHolderDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._RTAccessoryHolderSlotSequence: List[RTAccessoryHolderSlotSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def RTAccessoryHolderWaterEquivalentThickness(self) -> Optional[float]: + if "RTAccessoryHolderWaterEquivalentThickness" in self._dataset: + return self._dataset.RTAccessoryHolderWaterEquivalentThickness + return None + + @RTAccessoryHolderWaterEquivalentThickness.setter + def RTAccessoryHolderWaterEquivalentThickness(self, value: Optional[float]): + if value is None: + if "RTAccessoryHolderWaterEquivalentThickness" in self._dataset: + del self._dataset.RTAccessoryHolderWaterEquivalentThickness + else: + self._dataset.RTAccessoryHolderWaterEquivalentThickness = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotExistenceFlag(self) -> Optional[str]: + if "RTAccessoryHolderSlotExistenceFlag" in self._dataset: + return self._dataset.RTAccessoryHolderSlotExistenceFlag + return None + + @RTAccessoryHolderSlotExistenceFlag.setter + def RTAccessoryHolderSlotExistenceFlag(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotExistenceFlag" in self._dataset: + del self._dataset.RTAccessoryHolderSlotExistenceFlag + else: + self._dataset.RTAccessoryHolderSlotExistenceFlag = value + + @property + def RTAccessoryHolderSlotSequence(self) -> Optional[List[RTAccessoryHolderSlotSequenceItem]]: + if "RTAccessoryHolderSlotSequence" in self._dataset: + if len(self._RTAccessoryHolderSlotSequence) == len(self._dataset.RTAccessoryHolderSlotSequence): + return self._RTAccessoryHolderSlotSequence + else: + return [RTAccessoryHolderSlotSequenceItem(x) for x in self._dataset.RTAccessoryHolderSlotSequence] + return None + + @RTAccessoryHolderSlotSequence.setter + def RTAccessoryHolderSlotSequence(self, value: Optional[List[RTAccessoryHolderSlotSequenceItem]]): + if value is None: + self._RTAccessoryHolderSlotSequence = [] + if "RTAccessoryHolderSlotSequence" in self._dataset: + del self._dataset.RTAccessoryHolderSlotSequence + elif not isinstance(value, list) or not all(isinstance(item, RTAccessoryHolderSlotSequenceItem) for item in value): + raise ValueError("RTAccessoryHolderSlotSequence must be a list of RTAccessoryHolderSlotSequenceItem objects") + else: + self._RTAccessoryHolderSlotSequence = value + if "RTAccessoryHolderSlotSequence" not in self._dataset: + self._dataset.RTAccessoryHolderSlotSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderSlotSequence.clear() + self._dataset.RTAccessoryHolderSlotSequence.extend([item.to_dataset() for item in value]) + + def add_RTAccessoryHolderSlot(self, item: RTAccessoryHolderSlotSequenceItem): + if not isinstance(item, RTAccessoryHolderSlotSequenceItem): + raise ValueError("Item must be an instance of RTAccessoryHolderSlotSequenceItem") + self._RTAccessoryHolderSlotSequence.append(item) + if "RTAccessoryHolderSlotSequence" not in self._dataset: + self._dataset.RTAccessoryHolderSlotSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderSlotSequence.append(item.to_dataset()) + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/rt_accessory_holder_slot_sequence_item.py b/tdwii_plus_examples/domain_model/rt_accessory_holder_slot_sequence_item.py new file mode 100644 index 0000000..2d2aab7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_accessory_holder_slot_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTAccessoryHolderSlotSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessoryHolderSlotDistance(self) -> Optional[float]: + if "RTAccessoryHolderSlotDistance" in self._dataset: + return self._dataset.RTAccessoryHolderSlotDistance + return None + + @RTAccessoryHolderSlotDistance.setter + def RTAccessoryHolderSlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessoryHolderSlotDistance" in self._dataset: + del self._dataset.RTAccessoryHolderSlotDistance + else: + self._dataset.RTAccessoryHolderSlotDistance = value diff --git a/tdwii_plus_examples/domain_model/rt_acquisition_patient_position_sequence_item.py b/tdwii_plus_examples/domain_model/rt_acquisition_patient_position_sequence_item.py new file mode 100644 index 0000000..8b679f4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_acquisition_patient_position_sequence_item.py @@ -0,0 +1,157 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .rt_patient_position_displacement_sequence_item import ( + RTPatientPositionDisplacementSequenceItem, +) +from .rt_patient_position_sequence_item import RTPatientPositionSequenceItem + + +class RTAcquisitionPatientPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._RTPatientPositionDisplacementSequence: List[RTPatientPositionDisplacementSequenceItem] = [] + self._RTPatientPositionSequence: List[RTPatientPositionSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def RTPatientPositionDisplacementSequence(self) -> Optional[List[RTPatientPositionDisplacementSequenceItem]]: + if "RTPatientPositionDisplacementSequence" in self._dataset: + if len(self._RTPatientPositionDisplacementSequence) == len(self._dataset.RTPatientPositionDisplacementSequence): + return self._RTPatientPositionDisplacementSequence + else: + return [ + RTPatientPositionDisplacementSequenceItem(x) for x in self._dataset.RTPatientPositionDisplacementSequence + ] + return None + + @RTPatientPositionDisplacementSequence.setter + def RTPatientPositionDisplacementSequence(self, value: Optional[List[RTPatientPositionDisplacementSequenceItem]]): + if value is None: + self._RTPatientPositionDisplacementSequence = [] + if "RTPatientPositionDisplacementSequence" in self._dataset: + del self._dataset.RTPatientPositionDisplacementSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTPatientPositionDisplacementSequenceItem) for item in value + ): + raise ValueError( + "RTPatientPositionDisplacementSequence must be a list of RTPatientPositionDisplacementSequenceItem objects" + ) + else: + self._RTPatientPositionDisplacementSequence = value + if "RTPatientPositionDisplacementSequence" not in self._dataset: + self._dataset.RTPatientPositionDisplacementSequence = pydicom.Sequence() + self._dataset.RTPatientPositionDisplacementSequence.clear() + self._dataset.RTPatientPositionDisplacementSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPositionDisplacement(self, item: RTPatientPositionDisplacementSequenceItem): + if not isinstance(item, RTPatientPositionDisplacementSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionDisplacementSequenceItem") + self._RTPatientPositionDisplacementSequence.append(item) + if "RTPatientPositionDisplacementSequence" not in self._dataset: + self._dataset.RTPatientPositionDisplacementSequence = pydicom.Sequence() + self._dataset.RTPatientPositionDisplacementSequence.append(item.to_dataset()) + + @property + def RTPatientPositionSequence(self) -> Optional[List[RTPatientPositionSequenceItem]]: + if "RTPatientPositionSequence" in self._dataset: + if len(self._RTPatientPositionSequence) == len(self._dataset.RTPatientPositionSequence): + return self._RTPatientPositionSequence + else: + return [RTPatientPositionSequenceItem(x) for x in self._dataset.RTPatientPositionSequence] + return None + + @RTPatientPositionSequence.setter + def RTPatientPositionSequence(self, value: Optional[List[RTPatientPositionSequenceItem]]): + if value is None: + self._RTPatientPositionSequence = [] + if "RTPatientPositionSequence" in self._dataset: + del self._dataset.RTPatientPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, RTPatientPositionSequenceItem) for item in value): + raise ValueError("RTPatientPositionSequence must be a list of RTPatientPositionSequenceItem objects") + else: + self._RTPatientPositionSequence = value + if "RTPatientPositionSequence" not in self._dataset: + self._dataset.RTPatientPositionSequence = pydicom.Sequence() + self._dataset.RTPatientPositionSequence.clear() + self._dataset.RTPatientPositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPosition(self, item: RTPatientPositionSequenceItem): + if not isinstance(item, RTPatientPositionSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionSequenceItem") + self._RTPatientPositionSequence.append(item) + if "RTPatientPositionSequence" not in self._dataset: + self._dataset.RTPatientPositionSequence = pydicom.Sequence() + self._dataset.RTPatientPositionSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_anatomic_prescription_sequence_item.py b/tdwii_plus_examples/domain_model/rt_anatomic_prescription_sequence_item.py new file mode 100644 index 0000000..3ffd354 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_anatomic_prescription_sequence_item.py @@ -0,0 +1,312 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .conceptual_volume_sequence_item import ConceptualVolumeSequenceItem + + +class RTAnatomicPrescriptionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptualVolumeSequence: List[ConceptualVolumeSequenceItem] = [] + self._TherapeuticRoleCategoryCodeSequence: List[CodeSequenceItem] = [] + self._TherapeuticRoleTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConceptualVolumeCategoryCodeSequence: List[CodeSequenceItem] = [] + self._ConceptualVolumeTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConceptualVolumeTypeModifierCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def ConceptualVolumeDescription(self) -> Optional[str]: + if "ConceptualVolumeDescription" in self._dataset: + return self._dataset.ConceptualVolumeDescription + return None + + @ConceptualVolumeDescription.setter + def ConceptualVolumeDescription(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeDescription" in self._dataset: + del self._dataset.ConceptualVolumeDescription + else: + self._dataset.ConceptualVolumeDescription = value + + @property + def ConceptualVolumeSequence(self) -> Optional[List[ConceptualVolumeSequenceItem]]: + if "ConceptualVolumeSequence" in self._dataset: + if len(self._ConceptualVolumeSequence) == len(self._dataset.ConceptualVolumeSequence): + return self._ConceptualVolumeSequence + else: + return [ConceptualVolumeSequenceItem(x) for x in self._dataset.ConceptualVolumeSequence] + return None + + @ConceptualVolumeSequence.setter + def ConceptualVolumeSequence(self, value: Optional[List[ConceptualVolumeSequenceItem]]): + if value is None: + self._ConceptualVolumeSequence = [] + if "ConceptualVolumeSequence" in self._dataset: + del self._dataset.ConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, ConceptualVolumeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeSequence must be a list of ConceptualVolumeSequenceItem objects") + else: + self._ConceptualVolumeSequence = value + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.clear() + self._dataset.ConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolume(self, item: ConceptualVolumeSequenceItem): + if not isinstance(item, ConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSequenceItem") + self._ConceptualVolumeSequence.append(item) + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.append(item.to_dataset()) + + @property + def EntityLabel(self) -> Optional[str]: + if "EntityLabel" in self._dataset: + return self._dataset.EntityLabel + return None + + @EntityLabel.setter + def EntityLabel(self, value: Optional[str]): + if value is None: + if "EntityLabel" in self._dataset: + del self._dataset.EntityLabel + else: + self._dataset.EntityLabel = value + + @property + def EntityName(self) -> Optional[str]: + if "EntityName" in self._dataset: + return self._dataset.EntityName + return None + + @EntityName.setter + def EntityName(self, value: Optional[str]): + if value is None: + if "EntityName" in self._dataset: + del self._dataset.EntityName + else: + self._dataset.EntityName = value + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def TherapeuticRoleCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TherapeuticRoleCategoryCodeSequence" in self._dataset: + if len(self._TherapeuticRoleCategoryCodeSequence) == len(self._dataset.TherapeuticRoleCategoryCodeSequence): + return self._TherapeuticRoleCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TherapeuticRoleCategoryCodeSequence] + return None + + @TherapeuticRoleCategoryCodeSequence.setter + def TherapeuticRoleCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TherapeuticRoleCategoryCodeSequence = [] + if "TherapeuticRoleCategoryCodeSequence" in self._dataset: + del self._dataset.TherapeuticRoleCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TherapeuticRoleCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TherapeuticRoleCategoryCodeSequence = value + if "TherapeuticRoleCategoryCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleCategoryCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleCategoryCodeSequence.clear() + self._dataset.TherapeuticRoleCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TherapeuticRoleCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TherapeuticRoleCategoryCodeSequence.append(item) + if "TherapeuticRoleCategoryCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleCategoryCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleCategoryCodeSequence.append(item.to_dataset()) + + @property + def TherapeuticRoleTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TherapeuticRoleTypeCodeSequence" in self._dataset: + if len(self._TherapeuticRoleTypeCodeSequence) == len(self._dataset.TherapeuticRoleTypeCodeSequence): + return self._TherapeuticRoleTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TherapeuticRoleTypeCodeSequence] + return None + + @TherapeuticRoleTypeCodeSequence.setter + def TherapeuticRoleTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TherapeuticRoleTypeCodeSequence = [] + if "TherapeuticRoleTypeCodeSequence" in self._dataset: + del self._dataset.TherapeuticRoleTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TherapeuticRoleTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TherapeuticRoleTypeCodeSequence = value + if "TherapeuticRoleTypeCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleTypeCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleTypeCodeSequence.clear() + self._dataset.TherapeuticRoleTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TherapeuticRoleTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TherapeuticRoleTypeCodeSequence.append(item) + if "TherapeuticRoleTypeCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleTypeCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleTypeCodeSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeOptimizationPrecedence(self) -> Optional[int]: + if "ConceptualVolumeOptimizationPrecedence" in self._dataset: + return self._dataset.ConceptualVolumeOptimizationPrecedence + return None + + @ConceptualVolumeOptimizationPrecedence.setter + def ConceptualVolumeOptimizationPrecedence(self, value: Optional[int]): + if value is None: + if "ConceptualVolumeOptimizationPrecedence" in self._dataset: + del self._dataset.ConceptualVolumeOptimizationPrecedence + else: + self._dataset.ConceptualVolumeOptimizationPrecedence = value + + @property + def ConceptualVolumeCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptualVolumeCategoryCodeSequence" in self._dataset: + if len(self._ConceptualVolumeCategoryCodeSequence) == len(self._dataset.ConceptualVolumeCategoryCodeSequence): + return self._ConceptualVolumeCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptualVolumeCategoryCodeSequence] + return None + + @ConceptualVolumeCategoryCodeSequence.setter + def ConceptualVolumeCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptualVolumeCategoryCodeSequence = [] + if "ConceptualVolumeCategoryCodeSequence" in self._dataset: + del self._dataset.ConceptualVolumeCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptualVolumeCategoryCodeSequence = value + if "ConceptualVolumeCategoryCodeSequence" not in self._dataset: + self._dataset.ConceptualVolumeCategoryCodeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeCategoryCodeSequence.clear() + self._dataset.ConceptualVolumeCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptualVolumeCategoryCodeSequence.append(item) + if "ConceptualVolumeCategoryCodeSequence" not in self._dataset: + self._dataset.ConceptualVolumeCategoryCodeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeCategoryCodeSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeBlockingConstraint(self) -> Optional[str]: + if "ConceptualVolumeBlockingConstraint" in self._dataset: + return self._dataset.ConceptualVolumeBlockingConstraint + return None + + @ConceptualVolumeBlockingConstraint.setter + def ConceptualVolumeBlockingConstraint(self, value: Optional[str]): + if value is None: + if "ConceptualVolumeBlockingConstraint" in self._dataset: + del self._dataset.ConceptualVolumeBlockingConstraint + else: + self._dataset.ConceptualVolumeBlockingConstraint = value + + @property + def ConceptualVolumeTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptualVolumeTypeCodeSequence" in self._dataset: + if len(self._ConceptualVolumeTypeCodeSequence) == len(self._dataset.ConceptualVolumeTypeCodeSequence): + return self._ConceptualVolumeTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptualVolumeTypeCodeSequence] + return None + + @ConceptualVolumeTypeCodeSequence.setter + def ConceptualVolumeTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptualVolumeTypeCodeSequence = [] + if "ConceptualVolumeTypeCodeSequence" in self._dataset: + del self._dataset.ConceptualVolumeTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptualVolumeTypeCodeSequence = value + if "ConceptualVolumeTypeCodeSequence" not in self._dataset: + self._dataset.ConceptualVolumeTypeCodeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeTypeCodeSequence.clear() + self._dataset.ConceptualVolumeTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptualVolumeTypeCodeSequence.append(item) + if "ConceptualVolumeTypeCodeSequence" not in self._dataset: + self._dataset.ConceptualVolumeTypeCodeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeTypeCodeSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeTypeModifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptualVolumeTypeModifierCodeSequence" in self._dataset: + if len(self._ConceptualVolumeTypeModifierCodeSequence) == len( + self._dataset.ConceptualVolumeTypeModifierCodeSequence + ): + return self._ConceptualVolumeTypeModifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptualVolumeTypeModifierCodeSequence] + return None + + @ConceptualVolumeTypeModifierCodeSequence.setter + def ConceptualVolumeTypeModifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptualVolumeTypeModifierCodeSequence = [] + if "ConceptualVolumeTypeModifierCodeSequence" in self._dataset: + del self._dataset.ConceptualVolumeTypeModifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeTypeModifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptualVolumeTypeModifierCodeSequence = value + if "ConceptualVolumeTypeModifierCodeSequence" not in self._dataset: + self._dataset.ConceptualVolumeTypeModifierCodeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeTypeModifierCodeSequence.clear() + self._dataset.ConceptualVolumeTypeModifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeTypeModifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptualVolumeTypeModifierCodeSequence.append(item) + if "ConceptualVolumeTypeModifierCodeSequence" not in self._dataset: + self._dataset.ConceptualVolumeTypeModifierCodeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeTypeModifierCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_beam_delimiter_geometry_sequence_item.py b/tdwii_plus_examples/domain_model/rt_beam_delimiter_geometry_sequence_item.py new file mode 100644 index 0000000..0630a8f --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_beam_delimiter_geometry_sequence_item.py @@ -0,0 +1,137 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTBeamDelimiterGeometrySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OutlineShapeType(self) -> Optional[str]: + if "OutlineShapeType" in self._dataset: + return self._dataset.OutlineShapeType + return None + + @OutlineShapeType.setter + def OutlineShapeType(self, value: Optional[str]): + if value is None: + if "OutlineShapeType" in self._dataset: + del self._dataset.OutlineShapeType + else: + self._dataset.OutlineShapeType = value + + @property + def OutlineLeftVerticalEdge(self) -> Optional[float]: + if "OutlineLeftVerticalEdge" in self._dataset: + return self._dataset.OutlineLeftVerticalEdge + return None + + @OutlineLeftVerticalEdge.setter + def OutlineLeftVerticalEdge(self, value: Optional[float]): + if value is None: + if "OutlineLeftVerticalEdge" in self._dataset: + del self._dataset.OutlineLeftVerticalEdge + else: + self._dataset.OutlineLeftVerticalEdge = value + + @property + def OutlineRightVerticalEdge(self) -> Optional[float]: + if "OutlineRightVerticalEdge" in self._dataset: + return self._dataset.OutlineRightVerticalEdge + return None + + @OutlineRightVerticalEdge.setter + def OutlineRightVerticalEdge(self, value: Optional[float]): + if value is None: + if "OutlineRightVerticalEdge" in self._dataset: + del self._dataset.OutlineRightVerticalEdge + else: + self._dataset.OutlineRightVerticalEdge = value + + @property + def OutlineUpperHorizontalEdge(self) -> Optional[float]: + if "OutlineUpperHorizontalEdge" in self._dataset: + return self._dataset.OutlineUpperHorizontalEdge + return None + + @OutlineUpperHorizontalEdge.setter + def OutlineUpperHorizontalEdge(self, value: Optional[float]): + if value is None: + if "OutlineUpperHorizontalEdge" in self._dataset: + del self._dataset.OutlineUpperHorizontalEdge + else: + self._dataset.OutlineUpperHorizontalEdge = value + + @property + def OutlineLowerHorizontalEdge(self) -> Optional[float]: + if "OutlineLowerHorizontalEdge" in self._dataset: + return self._dataset.OutlineLowerHorizontalEdge + return None + + @OutlineLowerHorizontalEdge.setter + def OutlineLowerHorizontalEdge(self, value: Optional[float]): + if value is None: + if "OutlineLowerHorizontalEdge" in self._dataset: + del self._dataset.OutlineLowerHorizontalEdge + else: + self._dataset.OutlineLowerHorizontalEdge = value + + @property + def CenterOfCircularOutline(self) -> Optional[List[float]]: + if "CenterOfCircularOutline" in self._dataset: + return self._dataset.CenterOfCircularOutline + return None + + @CenterOfCircularOutline.setter + def CenterOfCircularOutline(self, value: Optional[List[float]]): + if value is None: + if "CenterOfCircularOutline" in self._dataset: + del self._dataset.CenterOfCircularOutline + else: + self._dataset.CenterOfCircularOutline = value + + @property + def DiameterOfCircularOutline(self) -> Optional[float]: + if "DiameterOfCircularOutline" in self._dataset: + return self._dataset.DiameterOfCircularOutline + return None + + @DiameterOfCircularOutline.setter + def DiameterOfCircularOutline(self, value: Optional[float]): + if value is None: + if "DiameterOfCircularOutline" in self._dataset: + del self._dataset.DiameterOfCircularOutline + else: + self._dataset.DiameterOfCircularOutline = value + + @property + def NumberOfPolygonalVertices(self) -> Optional[int]: + if "NumberOfPolygonalVertices" in self._dataset: + return self._dataset.NumberOfPolygonalVertices + return None + + @NumberOfPolygonalVertices.setter + def NumberOfPolygonalVertices(self, value: Optional[int]): + if value is None: + if "NumberOfPolygonalVertices" in self._dataset: + del self._dataset.NumberOfPolygonalVertices + else: + self._dataset.NumberOfPolygonalVertices = value + + @property + def VerticesOfThePolygonalOutline(self) -> Optional[bytes]: + if "VerticesOfThePolygonalOutline" in self._dataset: + return self._dataset.VerticesOfThePolygonalOutline + return None + + @VerticesOfThePolygonalOutline.setter + def VerticesOfThePolygonalOutline(self, value: Optional[bytes]): + if value is None: + if "VerticesOfThePolygonalOutline" in self._dataset: + del self._dataset.VerticesOfThePolygonalOutline + else: + self._dataset.VerticesOfThePolygonalOutline = value diff --git a/tdwii_plus_examples/domain_model/rt_beam_limiting_device_definition_sequence_item.py b/tdwii_plus_examples/domain_model/rt_beam_limiting_device_definition_sequence_item.py new file mode 100644 index 0000000..5de0234 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_beam_limiting_device_definition_sequence_item.py @@ -0,0 +1,470 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .fixed_rt_beam_delimiter_device_sequence_item import ( + FixedRTBeamDelimiterDeviceSequenceItem, +) +from .parallel_rt_beam_delimiter_device_sequence_item import ( + ParallelRTBeamDelimiterDeviceSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RTBeamLimitingDeviceDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._FixedRTBeamDelimiterDeviceSequence: List[FixedRTBeamDelimiterDeviceSequenceItem] = [] + self._ParallelRTBeamDelimiterDeviceSequence: List[ParallelRTBeamDelimiterDeviceSequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def RTBeamLimitingDeviceProximalDistance(self) -> Optional[float]: + if "RTBeamLimitingDeviceProximalDistance" in self._dataset: + return self._dataset.RTBeamLimitingDeviceProximalDistance + return None + + @RTBeamLimitingDeviceProximalDistance.setter + def RTBeamLimitingDeviceProximalDistance(self, value: Optional[float]): + if value is None: + if "RTBeamLimitingDeviceProximalDistance" in self._dataset: + del self._dataset.RTBeamLimitingDeviceProximalDistance + else: + self._dataset.RTBeamLimitingDeviceProximalDistance = value + + @property + def RTBeamLimitingDeviceDistalDistance(self) -> Optional[float]: + if "RTBeamLimitingDeviceDistalDistance" in self._dataset: + return self._dataset.RTBeamLimitingDeviceDistalDistance + return None + + @RTBeamLimitingDeviceDistalDistance.setter + def RTBeamLimitingDeviceDistalDistance(self, value: Optional[float]): + if value is None: + if "RTBeamLimitingDeviceDistalDistance" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDistalDistance + else: + self._dataset.RTBeamLimitingDeviceDistalDistance = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def FixedRTBeamDelimiterDeviceSequence(self) -> Optional[List[FixedRTBeamDelimiterDeviceSequenceItem]]: + if "FixedRTBeamDelimiterDeviceSequence" in self._dataset: + if len(self._FixedRTBeamDelimiterDeviceSequence) == len(self._dataset.FixedRTBeamDelimiterDeviceSequence): + return self._FixedRTBeamDelimiterDeviceSequence + else: + return [FixedRTBeamDelimiterDeviceSequenceItem(x) for x in self._dataset.FixedRTBeamDelimiterDeviceSequence] + return None + + @FixedRTBeamDelimiterDeviceSequence.setter + def FixedRTBeamDelimiterDeviceSequence(self, value: Optional[List[FixedRTBeamDelimiterDeviceSequenceItem]]): + if value is None: + self._FixedRTBeamDelimiterDeviceSequence = [] + if "FixedRTBeamDelimiterDeviceSequence" in self._dataset: + del self._dataset.FixedRTBeamDelimiterDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, FixedRTBeamDelimiterDeviceSequenceItem) for item in value + ): + raise ValueError( + "FixedRTBeamDelimiterDeviceSequence must be a list of FixedRTBeamDelimiterDeviceSequenceItem objects" + ) + else: + self._FixedRTBeamDelimiterDeviceSequence = value + if "FixedRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.FixedRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.FixedRTBeamDelimiterDeviceSequence.clear() + self._dataset.FixedRTBeamDelimiterDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_FixedRTBeamDelimiterDevice(self, item: FixedRTBeamDelimiterDeviceSequenceItem): + if not isinstance(item, FixedRTBeamDelimiterDeviceSequenceItem): + raise ValueError("Item must be an instance of FixedRTBeamDelimiterDeviceSequenceItem") + self._FixedRTBeamDelimiterDeviceSequence.append(item) + if "FixedRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.FixedRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.FixedRTBeamDelimiterDeviceSequence.append(item.to_dataset()) + + @property + def ParallelRTBeamDelimiterDeviceSequence(self) -> Optional[List[ParallelRTBeamDelimiterDeviceSequenceItem]]: + if "ParallelRTBeamDelimiterDeviceSequence" in self._dataset: + if len(self._ParallelRTBeamDelimiterDeviceSequence) == len(self._dataset.ParallelRTBeamDelimiterDeviceSequence): + return self._ParallelRTBeamDelimiterDeviceSequence + else: + return [ + ParallelRTBeamDelimiterDeviceSequenceItem(x) for x in self._dataset.ParallelRTBeamDelimiterDeviceSequence + ] + return None + + @ParallelRTBeamDelimiterDeviceSequence.setter + def ParallelRTBeamDelimiterDeviceSequence(self, value: Optional[List[ParallelRTBeamDelimiterDeviceSequenceItem]]): + if value is None: + self._ParallelRTBeamDelimiterDeviceSequence = [] + if "ParallelRTBeamDelimiterDeviceSequence" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ParallelRTBeamDelimiterDeviceSequenceItem) for item in value + ): + raise ValueError( + "ParallelRTBeamDelimiterDeviceSequence must be a list of ParallelRTBeamDelimiterDeviceSequenceItem objects" + ) + else: + self._ParallelRTBeamDelimiterDeviceSequence = value + if "ParallelRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.ParallelRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.ParallelRTBeamDelimiterDeviceSequence.clear() + self._dataset.ParallelRTBeamDelimiterDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_ParallelRTBeamDelimiterDevice(self, item: ParallelRTBeamDelimiterDeviceSequenceItem): + if not isinstance(item, ParallelRTBeamDelimiterDeviceSequenceItem): + raise ValueError("Item must be an instance of ParallelRTBeamDelimiterDeviceSequenceItem") + self._ParallelRTBeamDelimiterDeviceSequence.append(item) + if "ParallelRTBeamDelimiterDeviceSequence" not in self._dataset: + self._dataset.ParallelRTBeamDelimiterDeviceSequence = pydicom.Sequence() + self._dataset.ParallelRTBeamDelimiterDeviceSequence.append(item.to_dataset()) + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/rt_beam_limiting_device_opening_sequence_item.py b/tdwii_plus_examples/domain_model/rt_beam_limiting_device_opening_sequence_item.py new file mode 100644 index 0000000..9ee3ab0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_beam_limiting_device_opening_sequence_item.py @@ -0,0 +1,90 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_beam_delimiter_geometry_sequence_item import ( + RTBeamDelimiterGeometrySequenceItem, +) + + +class RTBeamLimitingDeviceOpeningSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTBeamDelimiterGeometrySequence: List[RTBeamDelimiterGeometrySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedDeviceIndex(self) -> Optional[int]: + if "ReferencedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDeviceIndex + return None + + @ReferencedDeviceIndex.setter + def ReferencedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDeviceIndex + else: + self._dataset.ReferencedDeviceIndex = value + + @property + def ParallelRTBeamDelimiterPositions(self) -> Optional[List[float]]: + if "ParallelRTBeamDelimiterPositions" in self._dataset: + return self._dataset.ParallelRTBeamDelimiterPositions + return None + + @ParallelRTBeamDelimiterPositions.setter + def ParallelRTBeamDelimiterPositions(self, value: Optional[List[float]]): + if value is None: + if "ParallelRTBeamDelimiterPositions" in self._dataset: + del self._dataset.ParallelRTBeamDelimiterPositions + else: + self._dataset.ParallelRTBeamDelimiterPositions = value + + @property + def RTBeamLimitingDeviceOffset(self) -> Optional[List[float]]: + if "RTBeamLimitingDeviceOffset" in self._dataset: + return self._dataset.RTBeamLimitingDeviceOffset + return None + + @RTBeamLimitingDeviceOffset.setter + def RTBeamLimitingDeviceOffset(self, value: Optional[List[float]]): + if value is None: + if "RTBeamLimitingDeviceOffset" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOffset + else: + self._dataset.RTBeamLimitingDeviceOffset = value + + @property + def RTBeamDelimiterGeometrySequence(self) -> Optional[List[RTBeamDelimiterGeometrySequenceItem]]: + if "RTBeamDelimiterGeometrySequence" in self._dataset: + if len(self._RTBeamDelimiterGeometrySequence) == len(self._dataset.RTBeamDelimiterGeometrySequence): + return self._RTBeamDelimiterGeometrySequence + else: + return [RTBeamDelimiterGeometrySequenceItem(x) for x in self._dataset.RTBeamDelimiterGeometrySequence] + return None + + @RTBeamDelimiterGeometrySequence.setter + def RTBeamDelimiterGeometrySequence(self, value: Optional[List[RTBeamDelimiterGeometrySequenceItem]]): + if value is None: + self._RTBeamDelimiterGeometrySequence = [] + if "RTBeamDelimiterGeometrySequence" in self._dataset: + del self._dataset.RTBeamDelimiterGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, RTBeamDelimiterGeometrySequenceItem) for item in value): + raise ValueError("RTBeamDelimiterGeometrySequence must be a list of RTBeamDelimiterGeometrySequenceItem objects") + else: + self._RTBeamDelimiterGeometrySequence = value + if "RTBeamDelimiterGeometrySequence" not in self._dataset: + self._dataset.RTBeamDelimiterGeometrySequence = pydicom.Sequence() + self._dataset.RTBeamDelimiterGeometrySequence.clear() + self._dataset.RTBeamDelimiterGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamDelimiterGeometry(self, item: RTBeamDelimiterGeometrySequenceItem): + if not isinstance(item, RTBeamDelimiterGeometrySequenceItem): + raise ValueError("Item must be an instance of RTBeamDelimiterGeometrySequenceItem") + self._RTBeamDelimiterGeometrySequence.append(item) + if "RTBeamDelimiterGeometrySequence" not in self._dataset: + self._dataset.RTBeamDelimiterGeometrySequence = pydicom.Sequence() + self._dataset.RTBeamDelimiterGeometrySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_beams_delivery_instruction.py b/tdwii_plus_examples/domain_model/rt_beams_delivery_instruction.py new file mode 100644 index 0000000..2cf34d8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_beams_delivery_instruction.py @@ -0,0 +1,4249 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_task_sequence_item import BeamTaskSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .omitted_beam_task_sequence_item import OmittedBeamTaskSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtBeamsDeliveryInstruction: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._BeamTaskSequence: List[BeamTaskSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._OmittedBeamTaskSequence: List[OmittedBeamTaskSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def BeamTaskSequence(self) -> Optional[List[BeamTaskSequenceItem]]: + if "BeamTaskSequence" in self._dataset: + if len(self._BeamTaskSequence) == len(self._dataset.BeamTaskSequence): + return self._BeamTaskSequence + else: + return [BeamTaskSequenceItem(x) for x in self._dataset.BeamTaskSequence] + return None + + @BeamTaskSequence.setter + def BeamTaskSequence(self, value: Optional[List[BeamTaskSequenceItem]]): + if value is None: + self._BeamTaskSequence = [] + if "BeamTaskSequence" in self._dataset: + del self._dataset.BeamTaskSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamTaskSequenceItem) for item in value): + raise ValueError("BeamTaskSequence must be a list of BeamTaskSequenceItem objects") + else: + self._BeamTaskSequence = value + if "BeamTaskSequence" not in self._dataset: + self._dataset.BeamTaskSequence = pydicom.Sequence() + self._dataset.BeamTaskSequence.clear() + self._dataset.BeamTaskSequence.extend([item.to_dataset() for item in value]) + + def add_BeamTask(self, item: BeamTaskSequenceItem): + if not isinstance(item, BeamTaskSequenceItem): + raise ValueError("Item must be an instance of BeamTaskSequenceItem") + self._BeamTaskSequence.append(item) + if "BeamTaskSequence" not in self._dataset: + self._dataset.BeamTaskSequence = pydicom.Sequence() + self._dataset.BeamTaskSequence.append(item.to_dataset()) + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def OmittedBeamTaskSequence(self) -> Optional[List[OmittedBeamTaskSequenceItem]]: + if "OmittedBeamTaskSequence" in self._dataset: + if len(self._OmittedBeamTaskSequence) == len(self._dataset.OmittedBeamTaskSequence): + return self._OmittedBeamTaskSequence + else: + return [OmittedBeamTaskSequenceItem(x) for x in self._dataset.OmittedBeamTaskSequence] + return None + + @OmittedBeamTaskSequence.setter + def OmittedBeamTaskSequence(self, value: Optional[List[OmittedBeamTaskSequenceItem]]): + if value is None: + self._OmittedBeamTaskSequence = [] + if "OmittedBeamTaskSequence" in self._dataset: + del self._dataset.OmittedBeamTaskSequence + elif not isinstance(value, list) or not all(isinstance(item, OmittedBeamTaskSequenceItem) for item in value): + raise ValueError("OmittedBeamTaskSequence must be a list of OmittedBeamTaskSequenceItem objects") + else: + self._OmittedBeamTaskSequence = value + if "OmittedBeamTaskSequence" not in self._dataset: + self._dataset.OmittedBeamTaskSequence = pydicom.Sequence() + self._dataset.OmittedBeamTaskSequence.clear() + self._dataset.OmittedBeamTaskSequence.extend([item.to_dataset() for item in value]) + + def add_OmittedBeamTask(self, item: OmittedBeamTaskSequenceItem): + if not isinstance(item, OmittedBeamTaskSequenceItem): + raise ValueError("Item must be an instance of OmittedBeamTaskSequenceItem") + self._OmittedBeamTaskSequence.append(item) + if "OmittedBeamTaskSequence" not in self._dataset: + self._dataset.OmittedBeamTaskSequence = pydicom.Sequence() + self._dataset.OmittedBeamTaskSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_beams_treatment_record.py b/tdwii_plus_examples/domain_model/rt_beams_treatment_record.py new file mode 100644 index 0000000..643bb14 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_beams_treatment_record.py @@ -0,0 +1,4471 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .calculated_dose_reference_sequence_item import CalculatedDoseReferenceSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_group_summary_sequence_item import FractionGroupSummarySequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_dose_reference_sequence_item import MeasuredDoseReferenceSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_setup_sequence_item import PatientSetupSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_treatment_record_sequence_item import ( + ReferencedTreatmentRecordSequenceItem, +) +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_machine_sequence_item import TreatmentMachineSequenceItem +from .treatment_session_beam_sequence_item import TreatmentSessionBeamSequenceItem +from .treatment_summary_calculated_dose_reference_sequence_item import ( + TreatmentSummaryCalculatedDoseReferenceSequenceItem, +) +from .treatment_summary_measured_dose_reference_sequence_item import ( + TreatmentSummaryMeasuredDoseReferenceSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtBeamsTreatmentRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientSetupSequence: List[PatientSetupSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedTreatmentRecordSequence: List[ReferencedTreatmentRecordSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._TreatmentMachineSequence: List[TreatmentMachineSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._MeasuredDoseReferenceSequence: List[MeasuredDoseReferenceSequenceItem] = [] + self._CalculatedDoseReferenceSequence: List[CalculatedDoseReferenceSequenceItem] = [] + self._TreatmentSessionBeamSequence: List[TreatmentSessionBeamSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentSummaryCalculatedDoseReferenceSequence: List[TreatmentSummaryCalculatedDoseReferenceSequenceItem] = [] + self._TreatmentSummaryMeasuredDoseReferenceSequence: List[TreatmentSummaryMeasuredDoseReferenceSequenceItem] = [] + self._FractionGroupSummarySequence: List[FractionGroupSummarySequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PatientSetupSequence(self) -> Optional[List[PatientSetupSequenceItem]]: + if "PatientSetupSequence" in self._dataset: + if len(self._PatientSetupSequence) == len(self._dataset.PatientSetupSequence): + return self._PatientSetupSequence + else: + return [PatientSetupSequenceItem(x) for x in self._dataset.PatientSetupSequence] + return None + + @PatientSetupSequence.setter + def PatientSetupSequence(self, value: Optional[List[PatientSetupSequenceItem]]): + if value is None: + self._PatientSetupSequence = [] + if "PatientSetupSequence" in self._dataset: + del self._dataset.PatientSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSetupSequenceItem) for item in value): + raise ValueError("PatientSetupSequence must be a list of PatientSetupSequenceItem objects") + else: + self._PatientSetupSequence = value + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.clear() + self._dataset.PatientSetupSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSetup(self, item: PatientSetupSequenceItem): + if not isinstance(item, PatientSetupSequenceItem): + raise ValueError("Item must be an instance of PatientSetupSequenceItem") + self._PatientSetupSequence.append(item) + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedTreatmentRecordSequence(self) -> Optional[List[ReferencedTreatmentRecordSequenceItem]]: + if "ReferencedTreatmentRecordSequence" in self._dataset: + if len(self._ReferencedTreatmentRecordSequence) == len(self._dataset.ReferencedTreatmentRecordSequence): + return self._ReferencedTreatmentRecordSequence + else: + return [ReferencedTreatmentRecordSequenceItem(x) for x in self._dataset.ReferencedTreatmentRecordSequence] + return None + + @ReferencedTreatmentRecordSequence.setter + def ReferencedTreatmentRecordSequence(self, value: Optional[List[ReferencedTreatmentRecordSequenceItem]]): + if value is None: + self._ReferencedTreatmentRecordSequence = [] + if "ReferencedTreatmentRecordSequence" in self._dataset: + del self._dataset.ReferencedTreatmentRecordSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedTreatmentRecordSequenceItem) for item in value): + raise ValueError( + "ReferencedTreatmentRecordSequence must be a list of ReferencedTreatmentRecordSequenceItem objects" + ) + else: + self._ReferencedTreatmentRecordSequence = value + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.clear() + self._dataset.ReferencedTreatmentRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedTreatmentRecord(self, item: ReferencedTreatmentRecordSequenceItem): + if not isinstance(item, ReferencedTreatmentRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedTreatmentRecordSequenceItem") + self._ReferencedTreatmentRecordSequence.append(item) + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.append(item.to_dataset()) + + @property + def TreatmentDate(self) -> Optional[str]: + if "TreatmentDate" in self._dataset: + return self._dataset.TreatmentDate + return None + + @TreatmentDate.setter + def TreatmentDate(self, value: Optional[str]): + if value is None: + if "TreatmentDate" in self._dataset: + del self._dataset.TreatmentDate + else: + self._dataset.TreatmentDate = value + + @property + def TreatmentTime(self) -> Optional[str]: + if "TreatmentTime" in self._dataset: + return self._dataset.TreatmentTime + return None + + @TreatmentTime.setter + def TreatmentTime(self, value: Optional[str]): + if value is None: + if "TreatmentTime" in self._dataset: + del self._dataset.TreatmentTime + else: + self._dataset.TreatmentTime = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSequence(self) -> Optional[List[TreatmentMachineSequenceItem]]: + if "TreatmentMachineSequence" in self._dataset: + if len(self._TreatmentMachineSequence) == len(self._dataset.TreatmentMachineSequence): + return self._TreatmentMachineSequence + else: + return [TreatmentMachineSequenceItem(x) for x in self._dataset.TreatmentMachineSequence] + return None + + @TreatmentMachineSequence.setter + def TreatmentMachineSequence(self, value: Optional[List[TreatmentMachineSequenceItem]]): + if value is None: + self._TreatmentMachineSequence = [] + if "TreatmentMachineSequence" in self._dataset: + del self._dataset.TreatmentMachineSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentMachineSequenceItem) for item in value): + raise ValueError("TreatmentMachineSequence must be a list of TreatmentMachineSequenceItem objects") + else: + self._TreatmentMachineSequence = value + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.clear() + self._dataset.TreatmentMachineSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachine(self, item: TreatmentMachineSequenceItem): + if not isinstance(item, TreatmentMachineSequenceItem): + raise ValueError("Item must be an instance of TreatmentMachineSequenceItem") + self._TreatmentMachineSequence.append(item) + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def MeasuredDoseReferenceSequence(self) -> Optional[List[MeasuredDoseReferenceSequenceItem]]: + if "MeasuredDoseReferenceSequence" in self._dataset: + if len(self._MeasuredDoseReferenceSequence) == len(self._dataset.MeasuredDoseReferenceSequence): + return self._MeasuredDoseReferenceSequence + else: + return [MeasuredDoseReferenceSequenceItem(x) for x in self._dataset.MeasuredDoseReferenceSequence] + return None + + @MeasuredDoseReferenceSequence.setter + def MeasuredDoseReferenceSequence(self, value: Optional[List[MeasuredDoseReferenceSequenceItem]]): + if value is None: + self._MeasuredDoseReferenceSequence = [] + if "MeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.MeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredDoseReferenceSequenceItem) for item in value): + raise ValueError("MeasuredDoseReferenceSequence must be a list of MeasuredDoseReferenceSequenceItem objects") + else: + self._MeasuredDoseReferenceSequence = value + if "MeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.MeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.MeasuredDoseReferenceSequence.clear() + self._dataset.MeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredDoseReference(self, item: MeasuredDoseReferenceSequenceItem): + if not isinstance(item, MeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of MeasuredDoseReferenceSequenceItem") + self._MeasuredDoseReferenceSequence.append(item) + if "MeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.MeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.MeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CalculatedDoseReferenceSequence(self) -> Optional[List[CalculatedDoseReferenceSequenceItem]]: + if "CalculatedDoseReferenceSequence" in self._dataset: + if len(self._CalculatedDoseReferenceSequence) == len(self._dataset.CalculatedDoseReferenceSequence): + return self._CalculatedDoseReferenceSequence + else: + return [CalculatedDoseReferenceSequenceItem(x) for x in self._dataset.CalculatedDoseReferenceSequence] + return None + + @CalculatedDoseReferenceSequence.setter + def CalculatedDoseReferenceSequence(self, value: Optional[List[CalculatedDoseReferenceSequenceItem]]): + if value is None: + self._CalculatedDoseReferenceSequence = [] + if "CalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.CalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, CalculatedDoseReferenceSequenceItem) for item in value): + raise ValueError("CalculatedDoseReferenceSequence must be a list of CalculatedDoseReferenceSequenceItem objects") + else: + self._CalculatedDoseReferenceSequence = value + if "CalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.CalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.CalculatedDoseReferenceSequence.clear() + self._dataset.CalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_CalculatedDoseReference(self, item: CalculatedDoseReferenceSequenceItem): + if not isinstance(item, CalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of CalculatedDoseReferenceSequenceItem") + self._CalculatedDoseReferenceSequence.append(item) + if "CalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.CalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.CalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def TreatmentSessionBeamSequence(self) -> Optional[List[TreatmentSessionBeamSequenceItem]]: + if "TreatmentSessionBeamSequence" in self._dataset: + if len(self._TreatmentSessionBeamSequence) == len(self._dataset.TreatmentSessionBeamSequence): + return self._TreatmentSessionBeamSequence + else: + return [TreatmentSessionBeamSequenceItem(x) for x in self._dataset.TreatmentSessionBeamSequence] + return None + + @TreatmentSessionBeamSequence.setter + def TreatmentSessionBeamSequence(self, value: Optional[List[TreatmentSessionBeamSequenceItem]]): + if value is None: + self._TreatmentSessionBeamSequence = [] + if "TreatmentSessionBeamSequence" in self._dataset: + del self._dataset.TreatmentSessionBeamSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentSessionBeamSequenceItem) for item in value): + raise ValueError("TreatmentSessionBeamSequence must be a list of TreatmentSessionBeamSequenceItem objects") + else: + self._TreatmentSessionBeamSequence = value + if "TreatmentSessionBeamSequence" not in self._dataset: + self._dataset.TreatmentSessionBeamSequence = pydicom.Sequence() + self._dataset.TreatmentSessionBeamSequence.clear() + self._dataset.TreatmentSessionBeamSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSessionBeam(self, item: TreatmentSessionBeamSequenceItem): + if not isinstance(item, TreatmentSessionBeamSequenceItem): + raise ValueError("Item must be an instance of TreatmentSessionBeamSequenceItem") + self._TreatmentSessionBeamSequence.append(item) + if "TreatmentSessionBeamSequence" not in self._dataset: + self._dataset.TreatmentSessionBeamSequence = pydicom.Sequence() + self._dataset.TreatmentSessionBeamSequence.append(item.to_dataset()) + + @property + def NumberOfFractionsPlanned(self) -> Optional[int]: + if "NumberOfFractionsPlanned" in self._dataset: + return self._dataset.NumberOfFractionsPlanned + return None + + @NumberOfFractionsPlanned.setter + def NumberOfFractionsPlanned(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsPlanned" in self._dataset: + del self._dataset.NumberOfFractionsPlanned + else: + self._dataset.NumberOfFractionsPlanned = value + + @property + def PrimaryDosimeterUnit(self) -> Optional[str]: + if "PrimaryDosimeterUnit" in self._dataset: + return self._dataset.PrimaryDosimeterUnit + return None + + @PrimaryDosimeterUnit.setter + def PrimaryDosimeterUnit(self, value: Optional[str]): + if value is None: + if "PrimaryDosimeterUnit" in self._dataset: + del self._dataset.PrimaryDosimeterUnit + else: + self._dataset.PrimaryDosimeterUnit = value + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]]: + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryCalculatedDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ): + return self._TreatmentSummaryCalculatedDoseReferenceSequence + else: + return [ + TreatmentSummaryCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ] + return None + + @TreatmentSummaryCalculatedDoseReferenceSequence.setter + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryCalculatedDoseReferenceSequence = [] + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryCalculatedDoseReferenceSequence must be a list of" + " TreatmentSummaryCalculatedDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryCalculatedDoseReferenceSequence = value + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryCalculatedDoseReference(self, item: TreatmentSummaryCalculatedDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryCalculatedDoseReferenceSequenceItem") + self._TreatmentSummaryCalculatedDoseReferenceSequence.append(item) + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def FirstTreatmentDate(self) -> Optional[str]: + if "FirstTreatmentDate" in self._dataset: + return self._dataset.FirstTreatmentDate + return None + + @FirstTreatmentDate.setter + def FirstTreatmentDate(self, value: Optional[str]): + if value is None: + if "FirstTreatmentDate" in self._dataset: + del self._dataset.FirstTreatmentDate + else: + self._dataset.FirstTreatmentDate = value + + @property + def MostRecentTreatmentDate(self) -> Optional[str]: + if "MostRecentTreatmentDate" in self._dataset: + return self._dataset.MostRecentTreatmentDate + return None + + @MostRecentTreatmentDate.setter + def MostRecentTreatmentDate(self, value: Optional[str]): + if value is None: + if "MostRecentTreatmentDate" in self._dataset: + del self._dataset.MostRecentTreatmentDate + else: + self._dataset.MostRecentTreatmentDate = value + + @property + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]]: + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryMeasuredDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ): + return self._TreatmentSummaryMeasuredDoseReferenceSequence + else: + return [ + TreatmentSummaryMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ] + return None + + @TreatmentSummaryMeasuredDoseReferenceSequence.setter + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryMeasuredDoseReferenceSequence = [] + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryMeasuredDoseReferenceSequence must be a list of" + " TreatmentSummaryMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryMeasuredDoseReferenceSequence = value + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryMeasuredDoseReference(self, item: TreatmentSummaryMeasuredDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryMeasuredDoseReferenceSequenceItem") + self._TreatmentSummaryMeasuredDoseReferenceSequence.append(item) + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CurrentTreatmentStatus(self) -> Optional[str]: + if "CurrentTreatmentStatus" in self._dataset: + return self._dataset.CurrentTreatmentStatus + return None + + @CurrentTreatmentStatus.setter + def CurrentTreatmentStatus(self, value: Optional[str]): + if value is None: + if "CurrentTreatmentStatus" in self._dataset: + del self._dataset.CurrentTreatmentStatus + else: + self._dataset.CurrentTreatmentStatus = value + + @property + def TreatmentStatusComment(self) -> Optional[str]: + if "TreatmentStatusComment" in self._dataset: + return self._dataset.TreatmentStatusComment + return None + + @TreatmentStatusComment.setter + def TreatmentStatusComment(self, value: Optional[str]): + if value is None: + if "TreatmentStatusComment" in self._dataset: + del self._dataset.TreatmentStatusComment + else: + self._dataset.TreatmentStatusComment = value + + @property + def FractionGroupSummarySequence(self) -> Optional[List[FractionGroupSummarySequenceItem]]: + if "FractionGroupSummarySequence" in self._dataset: + if len(self._FractionGroupSummarySequence) == len(self._dataset.FractionGroupSummarySequence): + return self._FractionGroupSummarySequence + else: + return [FractionGroupSummarySequenceItem(x) for x in self._dataset.FractionGroupSummarySequence] + return None + + @FractionGroupSummarySequence.setter + def FractionGroupSummarySequence(self, value: Optional[List[FractionGroupSummarySequenceItem]]): + if value is None: + self._FractionGroupSummarySequence = [] + if "FractionGroupSummarySequence" in self._dataset: + del self._dataset.FractionGroupSummarySequence + elif not isinstance(value, list) or not all(isinstance(item, FractionGroupSummarySequenceItem) for item in value): + raise ValueError("FractionGroupSummarySequence must be a list of FractionGroupSummarySequenceItem objects") + else: + self._FractionGroupSummarySequence = value + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.clear() + self._dataset.FractionGroupSummarySequence.extend([item.to_dataset() for item in value]) + + def add_FractionGroupSummary(self, item: FractionGroupSummarySequenceItem): + if not isinstance(item, FractionGroupSummarySequenceItem): + raise ValueError("Item must be an instance of FractionGroupSummarySequenceItem") + self._FractionGroupSummarySequence.append(item) + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_brachy_application_setup_delivery_instruction.py b/tdwii_plus_examples/domain_model/rt_brachy_application_setup_delivery_instruction.py new file mode 100644 index 0000000..0158629 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_brachy_application_setup_delivery_instruction.py @@ -0,0 +1,4347 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .brachy_task_sequence_item import BrachyTaskSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .omitted_application_setup_sequence_item import OmittedApplicationSetupSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtBrachyApplicationSetupDeliveryInstruction: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._BrachyTaskSequence: List[BrachyTaskSequenceItem] = [] + self._OmittedApplicationSetupSequence: List[OmittedApplicationSetupSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def BrachyTaskSequence(self) -> Optional[List[BrachyTaskSequenceItem]]: + if "BrachyTaskSequence" in self._dataset: + if len(self._BrachyTaskSequence) == len(self._dataset.BrachyTaskSequence): + return self._BrachyTaskSequence + else: + return [BrachyTaskSequenceItem(x) for x in self._dataset.BrachyTaskSequence] + return None + + @BrachyTaskSequence.setter + def BrachyTaskSequence(self, value: Optional[List[BrachyTaskSequenceItem]]): + if value is None: + self._BrachyTaskSequence = [] + if "BrachyTaskSequence" in self._dataset: + del self._dataset.BrachyTaskSequence + elif not isinstance(value, list) or not all(isinstance(item, BrachyTaskSequenceItem) for item in value): + raise ValueError("BrachyTaskSequence must be a list of BrachyTaskSequenceItem objects") + else: + self._BrachyTaskSequence = value + if "BrachyTaskSequence" not in self._dataset: + self._dataset.BrachyTaskSequence = pydicom.Sequence() + self._dataset.BrachyTaskSequence.clear() + self._dataset.BrachyTaskSequence.extend([item.to_dataset() for item in value]) + + def add_BrachyTask(self, item: BrachyTaskSequenceItem): + if not isinstance(item, BrachyTaskSequenceItem): + raise ValueError("Item must be an instance of BrachyTaskSequenceItem") + self._BrachyTaskSequence.append(item) + if "BrachyTaskSequence" not in self._dataset: + self._dataset.BrachyTaskSequence = pydicom.Sequence() + self._dataset.BrachyTaskSequence.append(item.to_dataset()) + + @property + def ContinuationPulseNumber(self) -> Optional[int]: + if "ContinuationPulseNumber" in self._dataset: + return self._dataset.ContinuationPulseNumber + return None + + @ContinuationPulseNumber.setter + def ContinuationPulseNumber(self, value: Optional[int]): + if value is None: + if "ContinuationPulseNumber" in self._dataset: + del self._dataset.ContinuationPulseNumber + else: + self._dataset.ContinuationPulseNumber = value + + @property + def OmittedApplicationSetupSequence(self) -> Optional[List[OmittedApplicationSetupSequenceItem]]: + if "OmittedApplicationSetupSequence" in self._dataset: + if len(self._OmittedApplicationSetupSequence) == len(self._dataset.OmittedApplicationSetupSequence): + return self._OmittedApplicationSetupSequence + else: + return [OmittedApplicationSetupSequenceItem(x) for x in self._dataset.OmittedApplicationSetupSequence] + return None + + @OmittedApplicationSetupSequence.setter + def OmittedApplicationSetupSequence(self, value: Optional[List[OmittedApplicationSetupSequenceItem]]): + if value is None: + self._OmittedApplicationSetupSequence = [] + if "OmittedApplicationSetupSequence" in self._dataset: + del self._dataset.OmittedApplicationSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, OmittedApplicationSetupSequenceItem) for item in value): + raise ValueError("OmittedApplicationSetupSequence must be a list of OmittedApplicationSetupSequenceItem objects") + else: + self._OmittedApplicationSetupSequence = value + if "OmittedApplicationSetupSequence" not in self._dataset: + self._dataset.OmittedApplicationSetupSequence = pydicom.Sequence() + self._dataset.OmittedApplicationSetupSequence.clear() + self._dataset.OmittedApplicationSetupSequence.extend([item.to_dataset() for item in value]) + + def add_OmittedApplicationSetup(self, item: OmittedApplicationSetupSequenceItem): + if not isinstance(item, OmittedApplicationSetupSequenceItem): + raise ValueError("Item must be an instance of OmittedApplicationSetupSequenceItem") + self._OmittedApplicationSetupSequence.append(item) + if "OmittedApplicationSetupSequence" not in self._dataset: + self._dataset.OmittedApplicationSetupSequence = pydicom.Sequence() + self._dataset.OmittedApplicationSetupSequence.append(item.to_dataset()) + + @property + def CurrentFractionNumber(self) -> Optional[int]: + if "CurrentFractionNumber" in self._dataset: + return self._dataset.CurrentFractionNumber + return None + + @CurrentFractionNumber.setter + def CurrentFractionNumber(self, value: Optional[int]): + if value is None: + if "CurrentFractionNumber" in self._dataset: + del self._dataset.CurrentFractionNumber + else: + self._dataset.CurrentFractionNumber = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_brachy_treatment_record.py b/tdwii_plus_examples/domain_model/rt_brachy_treatment_record.py new file mode 100644 index 0000000..b5512a9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_brachy_treatment_record.py @@ -0,0 +1,4531 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .calculated_dose_reference_sequence_item import CalculatedDoseReferenceSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_group_summary_sequence_item import FractionGroupSummarySequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_dose_reference_sequence_item import MeasuredDoseReferenceSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_setup_sequence_item import PatientSetupSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .recorded_source_sequence_item import RecordedSourceSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_treatment_record_sequence_item import ( + ReferencedTreatmentRecordSequenceItem, +) +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_machine_sequence_item import TreatmentMachineSequenceItem +from .treatment_session_application_setup_sequence_item import ( + TreatmentSessionApplicationSetupSequenceItem, +) +from .treatment_summary_calculated_dose_reference_sequence_item import ( + TreatmentSummaryCalculatedDoseReferenceSequenceItem, +) +from .treatment_summary_measured_dose_reference_sequence_item import ( + TreatmentSummaryMeasuredDoseReferenceSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtBrachyTreatmentRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RecordedSourceSequence: List[RecordedSourceSequenceItem] = [] + self._TreatmentSessionApplicationSetupSequence: List[TreatmentSessionApplicationSetupSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientSetupSequence: List[PatientSetupSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedTreatmentRecordSequence: List[ReferencedTreatmentRecordSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._TreatmentMachineSequence: List[TreatmentMachineSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._MeasuredDoseReferenceSequence: List[MeasuredDoseReferenceSequenceItem] = [] + self._CalculatedDoseReferenceSequence: List[CalculatedDoseReferenceSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentSummaryCalculatedDoseReferenceSequence: List[TreatmentSummaryCalculatedDoseReferenceSequenceItem] = [] + self._TreatmentSummaryMeasuredDoseReferenceSequence: List[TreatmentSummaryMeasuredDoseReferenceSequenceItem] = [] + self._FractionGroupSummarySequence: List[FractionGroupSummarySequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecordedSourceSequence(self) -> Optional[List[RecordedSourceSequenceItem]]: + if "RecordedSourceSequence" in self._dataset: + if len(self._RecordedSourceSequence) == len(self._dataset.RecordedSourceSequence): + return self._RecordedSourceSequence + else: + return [RecordedSourceSequenceItem(x) for x in self._dataset.RecordedSourceSequence] + return None + + @RecordedSourceSequence.setter + def RecordedSourceSequence(self, value: Optional[List[RecordedSourceSequenceItem]]): + if value is None: + self._RecordedSourceSequence = [] + if "RecordedSourceSequence" in self._dataset: + del self._dataset.RecordedSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedSourceSequenceItem) for item in value): + raise ValueError("RecordedSourceSequence must be a list of RecordedSourceSequenceItem objects") + else: + self._RecordedSourceSequence = value + if "RecordedSourceSequence" not in self._dataset: + self._dataset.RecordedSourceSequence = pydicom.Sequence() + self._dataset.RecordedSourceSequence.clear() + self._dataset.RecordedSourceSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedSource(self, item: RecordedSourceSequenceItem): + if not isinstance(item, RecordedSourceSequenceItem): + raise ValueError("Item must be an instance of RecordedSourceSequenceItem") + self._RecordedSourceSequence.append(item) + if "RecordedSourceSequence" not in self._dataset: + self._dataset.RecordedSourceSequence = pydicom.Sequence() + self._dataset.RecordedSourceSequence.append(item.to_dataset()) + + @property + def TreatmentSessionApplicationSetupSequence(self) -> Optional[List[TreatmentSessionApplicationSetupSequenceItem]]: + if "TreatmentSessionApplicationSetupSequence" in self._dataset: + if len(self._TreatmentSessionApplicationSetupSequence) == len( + self._dataset.TreatmentSessionApplicationSetupSequence + ): + return self._TreatmentSessionApplicationSetupSequence + else: + return [ + TreatmentSessionApplicationSetupSequenceItem(x) + for x in self._dataset.TreatmentSessionApplicationSetupSequence + ] + return None + + @TreatmentSessionApplicationSetupSequence.setter + def TreatmentSessionApplicationSetupSequence(self, value: Optional[List[TreatmentSessionApplicationSetupSequenceItem]]): + if value is None: + self._TreatmentSessionApplicationSetupSequence = [] + if "TreatmentSessionApplicationSetupSequence" in self._dataset: + del self._dataset.TreatmentSessionApplicationSetupSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSessionApplicationSetupSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSessionApplicationSetupSequence must be a list of TreatmentSessionApplicationSetupSequenceItem" + " objects" + ) + else: + self._TreatmentSessionApplicationSetupSequence = value + if "TreatmentSessionApplicationSetupSequence" not in self._dataset: + self._dataset.TreatmentSessionApplicationSetupSequence = pydicom.Sequence() + self._dataset.TreatmentSessionApplicationSetupSequence.clear() + self._dataset.TreatmentSessionApplicationSetupSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSessionApplicationSetup(self, item: TreatmentSessionApplicationSetupSequenceItem): + if not isinstance(item, TreatmentSessionApplicationSetupSequenceItem): + raise ValueError("Item must be an instance of TreatmentSessionApplicationSetupSequenceItem") + self._TreatmentSessionApplicationSetupSequence.append(item) + if "TreatmentSessionApplicationSetupSequence" not in self._dataset: + self._dataset.TreatmentSessionApplicationSetupSequence = pydicom.Sequence() + self._dataset.TreatmentSessionApplicationSetupSequence.append(item.to_dataset()) + + @property + def NumberOfFractionsPlanned(self) -> Optional[int]: + if "NumberOfFractionsPlanned" in self._dataset: + return self._dataset.NumberOfFractionsPlanned + return None + + @NumberOfFractionsPlanned.setter + def NumberOfFractionsPlanned(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsPlanned" in self._dataset: + del self._dataset.NumberOfFractionsPlanned + else: + self._dataset.NumberOfFractionsPlanned = value + + @property + def BrachyTreatmentTechnique(self) -> Optional[str]: + if "BrachyTreatmentTechnique" in self._dataset: + return self._dataset.BrachyTreatmentTechnique + return None + + @BrachyTreatmentTechnique.setter + def BrachyTreatmentTechnique(self, value: Optional[str]): + if value is None: + if "BrachyTreatmentTechnique" in self._dataset: + del self._dataset.BrachyTreatmentTechnique + else: + self._dataset.BrachyTreatmentTechnique = value + + @property + def BrachyTreatmentType(self) -> Optional[str]: + if "BrachyTreatmentType" in self._dataset: + return self._dataset.BrachyTreatmentType + return None + + @BrachyTreatmentType.setter + def BrachyTreatmentType(self, value: Optional[str]): + if value is None: + if "BrachyTreatmentType" in self._dataset: + del self._dataset.BrachyTreatmentType + else: + self._dataset.BrachyTreatmentType = value + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PatientSetupSequence(self) -> Optional[List[PatientSetupSequenceItem]]: + if "PatientSetupSequence" in self._dataset: + if len(self._PatientSetupSequence) == len(self._dataset.PatientSetupSequence): + return self._PatientSetupSequence + else: + return [PatientSetupSequenceItem(x) for x in self._dataset.PatientSetupSequence] + return None + + @PatientSetupSequence.setter + def PatientSetupSequence(self, value: Optional[List[PatientSetupSequenceItem]]): + if value is None: + self._PatientSetupSequence = [] + if "PatientSetupSequence" in self._dataset: + del self._dataset.PatientSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSetupSequenceItem) for item in value): + raise ValueError("PatientSetupSequence must be a list of PatientSetupSequenceItem objects") + else: + self._PatientSetupSequence = value + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.clear() + self._dataset.PatientSetupSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSetup(self, item: PatientSetupSequenceItem): + if not isinstance(item, PatientSetupSequenceItem): + raise ValueError("Item must be an instance of PatientSetupSequenceItem") + self._PatientSetupSequence.append(item) + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedTreatmentRecordSequence(self) -> Optional[List[ReferencedTreatmentRecordSequenceItem]]: + if "ReferencedTreatmentRecordSequence" in self._dataset: + if len(self._ReferencedTreatmentRecordSequence) == len(self._dataset.ReferencedTreatmentRecordSequence): + return self._ReferencedTreatmentRecordSequence + else: + return [ReferencedTreatmentRecordSequenceItem(x) for x in self._dataset.ReferencedTreatmentRecordSequence] + return None + + @ReferencedTreatmentRecordSequence.setter + def ReferencedTreatmentRecordSequence(self, value: Optional[List[ReferencedTreatmentRecordSequenceItem]]): + if value is None: + self._ReferencedTreatmentRecordSequence = [] + if "ReferencedTreatmentRecordSequence" in self._dataset: + del self._dataset.ReferencedTreatmentRecordSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedTreatmentRecordSequenceItem) for item in value): + raise ValueError( + "ReferencedTreatmentRecordSequence must be a list of ReferencedTreatmentRecordSequenceItem objects" + ) + else: + self._ReferencedTreatmentRecordSequence = value + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.clear() + self._dataset.ReferencedTreatmentRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedTreatmentRecord(self, item: ReferencedTreatmentRecordSequenceItem): + if not isinstance(item, ReferencedTreatmentRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedTreatmentRecordSequenceItem") + self._ReferencedTreatmentRecordSequence.append(item) + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.append(item.to_dataset()) + + @property + def TreatmentDate(self) -> Optional[str]: + if "TreatmentDate" in self._dataset: + return self._dataset.TreatmentDate + return None + + @TreatmentDate.setter + def TreatmentDate(self, value: Optional[str]): + if value is None: + if "TreatmentDate" in self._dataset: + del self._dataset.TreatmentDate + else: + self._dataset.TreatmentDate = value + + @property + def TreatmentTime(self) -> Optional[str]: + if "TreatmentTime" in self._dataset: + return self._dataset.TreatmentTime + return None + + @TreatmentTime.setter + def TreatmentTime(self, value: Optional[str]): + if value is None: + if "TreatmentTime" in self._dataset: + del self._dataset.TreatmentTime + else: + self._dataset.TreatmentTime = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSequence(self) -> Optional[List[TreatmentMachineSequenceItem]]: + if "TreatmentMachineSequence" in self._dataset: + if len(self._TreatmentMachineSequence) == len(self._dataset.TreatmentMachineSequence): + return self._TreatmentMachineSequence + else: + return [TreatmentMachineSequenceItem(x) for x in self._dataset.TreatmentMachineSequence] + return None + + @TreatmentMachineSequence.setter + def TreatmentMachineSequence(self, value: Optional[List[TreatmentMachineSequenceItem]]): + if value is None: + self._TreatmentMachineSequence = [] + if "TreatmentMachineSequence" in self._dataset: + del self._dataset.TreatmentMachineSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentMachineSequenceItem) for item in value): + raise ValueError("TreatmentMachineSequence must be a list of TreatmentMachineSequenceItem objects") + else: + self._TreatmentMachineSequence = value + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.clear() + self._dataset.TreatmentMachineSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachine(self, item: TreatmentMachineSequenceItem): + if not isinstance(item, TreatmentMachineSequenceItem): + raise ValueError("Item must be an instance of TreatmentMachineSequenceItem") + self._TreatmentMachineSequence.append(item) + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def MeasuredDoseReferenceSequence(self) -> Optional[List[MeasuredDoseReferenceSequenceItem]]: + if "MeasuredDoseReferenceSequence" in self._dataset: + if len(self._MeasuredDoseReferenceSequence) == len(self._dataset.MeasuredDoseReferenceSequence): + return self._MeasuredDoseReferenceSequence + else: + return [MeasuredDoseReferenceSequenceItem(x) for x in self._dataset.MeasuredDoseReferenceSequence] + return None + + @MeasuredDoseReferenceSequence.setter + def MeasuredDoseReferenceSequence(self, value: Optional[List[MeasuredDoseReferenceSequenceItem]]): + if value is None: + self._MeasuredDoseReferenceSequence = [] + if "MeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.MeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredDoseReferenceSequenceItem) for item in value): + raise ValueError("MeasuredDoseReferenceSequence must be a list of MeasuredDoseReferenceSequenceItem objects") + else: + self._MeasuredDoseReferenceSequence = value + if "MeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.MeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.MeasuredDoseReferenceSequence.clear() + self._dataset.MeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredDoseReference(self, item: MeasuredDoseReferenceSequenceItem): + if not isinstance(item, MeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of MeasuredDoseReferenceSequenceItem") + self._MeasuredDoseReferenceSequence.append(item) + if "MeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.MeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.MeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CalculatedDoseReferenceSequence(self) -> Optional[List[CalculatedDoseReferenceSequenceItem]]: + if "CalculatedDoseReferenceSequence" in self._dataset: + if len(self._CalculatedDoseReferenceSequence) == len(self._dataset.CalculatedDoseReferenceSequence): + return self._CalculatedDoseReferenceSequence + else: + return [CalculatedDoseReferenceSequenceItem(x) for x in self._dataset.CalculatedDoseReferenceSequence] + return None + + @CalculatedDoseReferenceSequence.setter + def CalculatedDoseReferenceSequence(self, value: Optional[List[CalculatedDoseReferenceSequenceItem]]): + if value is None: + self._CalculatedDoseReferenceSequence = [] + if "CalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.CalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, CalculatedDoseReferenceSequenceItem) for item in value): + raise ValueError("CalculatedDoseReferenceSequence must be a list of CalculatedDoseReferenceSequenceItem objects") + else: + self._CalculatedDoseReferenceSequence = value + if "CalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.CalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.CalculatedDoseReferenceSequence.clear() + self._dataset.CalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_CalculatedDoseReference(self, item: CalculatedDoseReferenceSequenceItem): + if not isinstance(item, CalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of CalculatedDoseReferenceSequenceItem") + self._CalculatedDoseReferenceSequence.append(item) + if "CalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.CalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.CalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]]: + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryCalculatedDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ): + return self._TreatmentSummaryCalculatedDoseReferenceSequence + else: + return [ + TreatmentSummaryCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ] + return None + + @TreatmentSummaryCalculatedDoseReferenceSequence.setter + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryCalculatedDoseReferenceSequence = [] + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryCalculatedDoseReferenceSequence must be a list of" + " TreatmentSummaryCalculatedDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryCalculatedDoseReferenceSequence = value + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryCalculatedDoseReference(self, item: TreatmentSummaryCalculatedDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryCalculatedDoseReferenceSequenceItem") + self._TreatmentSummaryCalculatedDoseReferenceSequence.append(item) + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def FirstTreatmentDate(self) -> Optional[str]: + if "FirstTreatmentDate" in self._dataset: + return self._dataset.FirstTreatmentDate + return None + + @FirstTreatmentDate.setter + def FirstTreatmentDate(self, value: Optional[str]): + if value is None: + if "FirstTreatmentDate" in self._dataset: + del self._dataset.FirstTreatmentDate + else: + self._dataset.FirstTreatmentDate = value + + @property + def MostRecentTreatmentDate(self) -> Optional[str]: + if "MostRecentTreatmentDate" in self._dataset: + return self._dataset.MostRecentTreatmentDate + return None + + @MostRecentTreatmentDate.setter + def MostRecentTreatmentDate(self, value: Optional[str]): + if value is None: + if "MostRecentTreatmentDate" in self._dataset: + del self._dataset.MostRecentTreatmentDate + else: + self._dataset.MostRecentTreatmentDate = value + + @property + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]]: + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryMeasuredDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ): + return self._TreatmentSummaryMeasuredDoseReferenceSequence + else: + return [ + TreatmentSummaryMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ] + return None + + @TreatmentSummaryMeasuredDoseReferenceSequence.setter + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryMeasuredDoseReferenceSequence = [] + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryMeasuredDoseReferenceSequence must be a list of" + " TreatmentSummaryMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryMeasuredDoseReferenceSequence = value + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryMeasuredDoseReference(self, item: TreatmentSummaryMeasuredDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryMeasuredDoseReferenceSequenceItem") + self._TreatmentSummaryMeasuredDoseReferenceSequence.append(item) + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CurrentTreatmentStatus(self) -> Optional[str]: + if "CurrentTreatmentStatus" in self._dataset: + return self._dataset.CurrentTreatmentStatus + return None + + @CurrentTreatmentStatus.setter + def CurrentTreatmentStatus(self, value: Optional[str]): + if value is None: + if "CurrentTreatmentStatus" in self._dataset: + del self._dataset.CurrentTreatmentStatus + else: + self._dataset.CurrentTreatmentStatus = value + + @property + def TreatmentStatusComment(self) -> Optional[str]: + if "TreatmentStatusComment" in self._dataset: + return self._dataset.TreatmentStatusComment + return None + + @TreatmentStatusComment.setter + def TreatmentStatusComment(self, value: Optional[str]): + if value is None: + if "TreatmentStatusComment" in self._dataset: + del self._dataset.TreatmentStatusComment + else: + self._dataset.TreatmentStatusComment = value + + @property + def FractionGroupSummarySequence(self) -> Optional[List[FractionGroupSummarySequenceItem]]: + if "FractionGroupSummarySequence" in self._dataset: + if len(self._FractionGroupSummarySequence) == len(self._dataset.FractionGroupSummarySequence): + return self._FractionGroupSummarySequence + else: + return [FractionGroupSummarySequenceItem(x) for x in self._dataset.FractionGroupSummarySequence] + return None + + @FractionGroupSummarySequence.setter + def FractionGroupSummarySequence(self, value: Optional[List[FractionGroupSummarySequenceItem]]): + if value is None: + self._FractionGroupSummarySequence = [] + if "FractionGroupSummarySequence" in self._dataset: + del self._dataset.FractionGroupSummarySequence + elif not isinstance(value, list) or not all(isinstance(item, FractionGroupSummarySequenceItem) for item in value): + raise ValueError("FractionGroupSummarySequence must be a list of FractionGroupSummarySequenceItem objects") + else: + self._FractionGroupSummarySequence = value + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.clear() + self._dataset.FractionGroupSummarySequence.extend([item.to_dataset() for item in value]) + + def add_FractionGroupSummary(self, item: FractionGroupSummarySequenceItem): + if not isinstance(item, FractionGroupSummarySequenceItem): + raise ValueError("Item must be an instance of FractionGroupSummarySequenceItem") + self._FractionGroupSummarySequence.append(item) + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_delivery_start_patient_position_sequence_item.py b/tdwii_plus_examples/domain_model/rt_delivery_start_patient_position_sequence_item.py new file mode 100644 index 0000000..964747a --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_delivery_start_patient_position_sequence_item.py @@ -0,0 +1,157 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .rt_patient_position_displacement_sequence_item import ( + RTPatientPositionDisplacementSequenceItem, +) +from .rt_patient_position_sequence_item import RTPatientPositionSequenceItem + + +class RTDeliveryStartPatientPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._RTPatientPositionDisplacementSequence: List[RTPatientPositionDisplacementSequenceItem] = [] + self._RTPatientPositionSequence: List[RTPatientPositionSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def RTPatientPositionDisplacementSequence(self) -> Optional[List[RTPatientPositionDisplacementSequenceItem]]: + if "RTPatientPositionDisplacementSequence" in self._dataset: + if len(self._RTPatientPositionDisplacementSequence) == len(self._dataset.RTPatientPositionDisplacementSequence): + return self._RTPatientPositionDisplacementSequence + else: + return [ + RTPatientPositionDisplacementSequenceItem(x) for x in self._dataset.RTPatientPositionDisplacementSequence + ] + return None + + @RTPatientPositionDisplacementSequence.setter + def RTPatientPositionDisplacementSequence(self, value: Optional[List[RTPatientPositionDisplacementSequenceItem]]): + if value is None: + self._RTPatientPositionDisplacementSequence = [] + if "RTPatientPositionDisplacementSequence" in self._dataset: + del self._dataset.RTPatientPositionDisplacementSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTPatientPositionDisplacementSequenceItem) for item in value + ): + raise ValueError( + "RTPatientPositionDisplacementSequence must be a list of RTPatientPositionDisplacementSequenceItem objects" + ) + else: + self._RTPatientPositionDisplacementSequence = value + if "RTPatientPositionDisplacementSequence" not in self._dataset: + self._dataset.RTPatientPositionDisplacementSequence = pydicom.Sequence() + self._dataset.RTPatientPositionDisplacementSequence.clear() + self._dataset.RTPatientPositionDisplacementSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPositionDisplacement(self, item: RTPatientPositionDisplacementSequenceItem): + if not isinstance(item, RTPatientPositionDisplacementSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionDisplacementSequenceItem") + self._RTPatientPositionDisplacementSequence.append(item) + if "RTPatientPositionDisplacementSequence" not in self._dataset: + self._dataset.RTPatientPositionDisplacementSequence = pydicom.Sequence() + self._dataset.RTPatientPositionDisplacementSequence.append(item.to_dataset()) + + @property + def RTPatientPositionSequence(self) -> Optional[List[RTPatientPositionSequenceItem]]: + if "RTPatientPositionSequence" in self._dataset: + if len(self._RTPatientPositionSequence) == len(self._dataset.RTPatientPositionSequence): + return self._RTPatientPositionSequence + else: + return [RTPatientPositionSequenceItem(x) for x in self._dataset.RTPatientPositionSequence] + return None + + @RTPatientPositionSequence.setter + def RTPatientPositionSequence(self, value: Optional[List[RTPatientPositionSequenceItem]]): + if value is None: + self._RTPatientPositionSequence = [] + if "RTPatientPositionSequence" in self._dataset: + del self._dataset.RTPatientPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, RTPatientPositionSequenceItem) for item in value): + raise ValueError("RTPatientPositionSequence must be a list of RTPatientPositionSequenceItem objects") + else: + self._RTPatientPositionSequence = value + if "RTPatientPositionSequence" not in self._dataset: + self._dataset.RTPatientPositionSequence = pydicom.Sequence() + self._dataset.RTPatientPositionSequence.clear() + self._dataset.RTPatientPositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPosition(self, item: RTPatientPositionSequenceItem): + if not isinstance(item, RTPatientPositionSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionSequenceItem") + self._RTPatientPositionSequence.append(item) + if "RTPatientPositionSequence" not in self._dataset: + self._dataset.RTPatientPositionSequence = pydicom.Sequence() + self._dataset.RTPatientPositionSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_dose.py b/tdwii_plus_examples/domain_model/rt_dose.py new file mode 100644 index 0000000..4f7a3b8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_dose.py @@ -0,0 +1,5235 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dvh_sequence_item import DVHSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .plan_overview_sequence_item import PlanOverviewSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_spatial_registration_sequence_item import ( + ReferencedSpatialRegistrationSequenceItem, +) +from .referenced_structure_set_sequence_item import ReferencedStructureSetSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_treatment_record_sequence_item import ( + ReferencedTreatmentRecordSequenceItem, +) +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtDose: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSpatialRegistrationSequence: List[ReferencedSpatialRegistrationSequenceItem] = [] + self._ReferencedTreatmentRecordSequence: List[ReferencedTreatmentRecordSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._PlanOverviewSequence: List[PlanOverviewSequenceItem] = [] + self._DVHSequence: List[DVHSequenceItem] = [] + self._ReferencedStructureSetSequence: List[ReferencedStructureSetSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def SliceLocation(self) -> Optional[Decimal]: + if "SliceLocation" in self._dataset: + return self._dataset.SliceLocation + return None + + @SliceLocation.setter + def SliceLocation(self, value: Optional[Decimal]): + if value is None: + if "SliceLocation" in self._dataset: + del self._dataset.SliceLocation + else: + self._dataset.SliceLocation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def ReferencedSpatialRegistrationSequence(self) -> Optional[List[ReferencedSpatialRegistrationSequenceItem]]: + if "ReferencedSpatialRegistrationSequence" in self._dataset: + if len(self._ReferencedSpatialRegistrationSequence) == len(self._dataset.ReferencedSpatialRegistrationSequence): + return self._ReferencedSpatialRegistrationSequence + else: + return [ + ReferencedSpatialRegistrationSequenceItem(x) for x in self._dataset.ReferencedSpatialRegistrationSequence + ] + return None + + @ReferencedSpatialRegistrationSequence.setter + def ReferencedSpatialRegistrationSequence(self, value: Optional[List[ReferencedSpatialRegistrationSequenceItem]]): + if value is None: + self._ReferencedSpatialRegistrationSequence = [] + if "ReferencedSpatialRegistrationSequence" in self._dataset: + del self._dataset.ReferencedSpatialRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedSpatialRegistrationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedSpatialRegistrationSequence must be a list of ReferencedSpatialRegistrationSequenceItem objects" + ) + else: + self._ReferencedSpatialRegistrationSequence = value + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.clear() + self._dataset.ReferencedSpatialRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSpatialRegistration(self, item: ReferencedSpatialRegistrationSequenceItem): + if not isinstance(item, ReferencedSpatialRegistrationSequenceItem): + raise ValueError("Item must be an instance of ReferencedSpatialRegistrationSequenceItem") + self._ReferencedSpatialRegistrationSequence.append(item) + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.append(item.to_dataset()) + + @property + def DoseUnits(self) -> Optional[str]: + if "DoseUnits" in self._dataset: + return self._dataset.DoseUnits + return None + + @DoseUnits.setter + def DoseUnits(self, value: Optional[str]): + if value is None: + if "DoseUnits" in self._dataset: + del self._dataset.DoseUnits + else: + self._dataset.DoseUnits = value + + @property + def DoseType(self) -> Optional[str]: + if "DoseType" in self._dataset: + return self._dataset.DoseType + return None + + @DoseType.setter + def DoseType(self, value: Optional[str]): + if value is None: + if "DoseType" in self._dataset: + del self._dataset.DoseType + else: + self._dataset.DoseType = value + + @property + def SpatialTransformOfDose(self) -> Optional[str]: + if "SpatialTransformOfDose" in self._dataset: + return self._dataset.SpatialTransformOfDose + return None + + @SpatialTransformOfDose.setter + def SpatialTransformOfDose(self, value: Optional[str]): + if value is None: + if "SpatialTransformOfDose" in self._dataset: + del self._dataset.SpatialTransformOfDose + else: + self._dataset.SpatialTransformOfDose = value + + @property + def DoseComment(self) -> Optional[str]: + if "DoseComment" in self._dataset: + return self._dataset.DoseComment + return None + + @DoseComment.setter + def DoseComment(self, value: Optional[str]): + if value is None: + if "DoseComment" in self._dataset: + del self._dataset.DoseComment + else: + self._dataset.DoseComment = value + + @property + def NormalizationPoint(self) -> Optional[List[Decimal]]: + if "NormalizationPoint" in self._dataset: + return self._dataset.NormalizationPoint + return None + + @NormalizationPoint.setter + def NormalizationPoint(self, value: Optional[List[Decimal]]): + if value is None: + if "NormalizationPoint" in self._dataset: + del self._dataset.NormalizationPoint + else: + self._dataset.NormalizationPoint = value + + @property + def DoseSummationType(self) -> Optional[str]: + if "DoseSummationType" in self._dataset: + return self._dataset.DoseSummationType + return None + + @DoseSummationType.setter + def DoseSummationType(self, value: Optional[str]): + if value is None: + if "DoseSummationType" in self._dataset: + del self._dataset.DoseSummationType + else: + self._dataset.DoseSummationType = value + + @property + def GridFrameOffsetVector(self) -> Optional[List[Decimal]]: + if "GridFrameOffsetVector" in self._dataset: + return self._dataset.GridFrameOffsetVector + return None + + @GridFrameOffsetVector.setter + def GridFrameOffsetVector(self, value: Optional[List[Decimal]]): + if value is None: + if "GridFrameOffsetVector" in self._dataset: + del self._dataset.GridFrameOffsetVector + else: + self._dataset.GridFrameOffsetVector = value + + @property + def DoseGridScaling(self) -> Optional[Decimal]: + if "DoseGridScaling" in self._dataset: + return self._dataset.DoseGridScaling + return None + + @DoseGridScaling.setter + def DoseGridScaling(self, value: Optional[Decimal]): + if value is None: + if "DoseGridScaling" in self._dataset: + del self._dataset.DoseGridScaling + else: + self._dataset.DoseGridScaling = value + + @property + def TissueHeterogeneityCorrection(self) -> Optional[List[str]]: + if "TissueHeterogeneityCorrection" in self._dataset: + return self._dataset.TissueHeterogeneityCorrection + return None + + @TissueHeterogeneityCorrection.setter + def TissueHeterogeneityCorrection(self, value: Optional[List[str]]): + if value is None: + if "TissueHeterogeneityCorrection" in self._dataset: + del self._dataset.TissueHeterogeneityCorrection + else: + self._dataset.TissueHeterogeneityCorrection = value + + @property + def ReferencedTreatmentRecordSequence(self) -> Optional[List[ReferencedTreatmentRecordSequenceItem]]: + if "ReferencedTreatmentRecordSequence" in self._dataset: + if len(self._ReferencedTreatmentRecordSequence) == len(self._dataset.ReferencedTreatmentRecordSequence): + return self._ReferencedTreatmentRecordSequence + else: + return [ReferencedTreatmentRecordSequenceItem(x) for x in self._dataset.ReferencedTreatmentRecordSequence] + return None + + @ReferencedTreatmentRecordSequence.setter + def ReferencedTreatmentRecordSequence(self, value: Optional[List[ReferencedTreatmentRecordSequenceItem]]): + if value is None: + self._ReferencedTreatmentRecordSequence = [] + if "ReferencedTreatmentRecordSequence" in self._dataset: + del self._dataset.ReferencedTreatmentRecordSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedTreatmentRecordSequenceItem) for item in value): + raise ValueError( + "ReferencedTreatmentRecordSequence must be a list of ReferencedTreatmentRecordSequenceItem objects" + ) + else: + self._ReferencedTreatmentRecordSequence = value + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.clear() + self._dataset.ReferencedTreatmentRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedTreatmentRecord(self, item: ReferencedTreatmentRecordSequenceItem): + if not isinstance(item, ReferencedTreatmentRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedTreatmentRecordSequenceItem") + self._ReferencedTreatmentRecordSequence.append(item) + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.append(item.to_dataset()) + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def PlanOverviewSequence(self) -> Optional[List[PlanOverviewSequenceItem]]: + if "PlanOverviewSequence" in self._dataset: + if len(self._PlanOverviewSequence) == len(self._dataset.PlanOverviewSequence): + return self._PlanOverviewSequence + else: + return [PlanOverviewSequenceItem(x) for x in self._dataset.PlanOverviewSequence] + return None + + @PlanOverviewSequence.setter + def PlanOverviewSequence(self, value: Optional[List[PlanOverviewSequenceItem]]): + if value is None: + self._PlanOverviewSequence = [] + if "PlanOverviewSequence" in self._dataset: + del self._dataset.PlanOverviewSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanOverviewSequenceItem) for item in value): + raise ValueError("PlanOverviewSequence must be a list of PlanOverviewSequenceItem objects") + else: + self._PlanOverviewSequence = value + if "PlanOverviewSequence" not in self._dataset: + self._dataset.PlanOverviewSequence = pydicom.Sequence() + self._dataset.PlanOverviewSequence.clear() + self._dataset.PlanOverviewSequence.extend([item.to_dataset() for item in value]) + + def add_PlanOverview(self, item: PlanOverviewSequenceItem): + if not isinstance(item, PlanOverviewSequenceItem): + raise ValueError("Item must be an instance of PlanOverviewSequenceItem") + self._PlanOverviewSequence.append(item) + if "PlanOverviewSequence" not in self._dataset: + self._dataset.PlanOverviewSequence = pydicom.Sequence() + self._dataset.PlanOverviewSequence.append(item.to_dataset()) + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value + + @property + def DVHNormalizationPoint(self) -> Optional[List[Decimal]]: + if "DVHNormalizationPoint" in self._dataset: + return self._dataset.DVHNormalizationPoint + return None + + @DVHNormalizationPoint.setter + def DVHNormalizationPoint(self, value: Optional[List[Decimal]]): + if value is None: + if "DVHNormalizationPoint" in self._dataset: + del self._dataset.DVHNormalizationPoint + else: + self._dataset.DVHNormalizationPoint = value + + @property + def DVHNormalizationDoseValue(self) -> Optional[Decimal]: + if "DVHNormalizationDoseValue" in self._dataset: + return self._dataset.DVHNormalizationDoseValue + return None + + @DVHNormalizationDoseValue.setter + def DVHNormalizationDoseValue(self, value: Optional[Decimal]): + if value is None: + if "DVHNormalizationDoseValue" in self._dataset: + del self._dataset.DVHNormalizationDoseValue + else: + self._dataset.DVHNormalizationDoseValue = value + + @property + def DVHSequence(self) -> Optional[List[DVHSequenceItem]]: + if "DVHSequence" in self._dataset: + if len(self._DVHSequence) == len(self._dataset.DVHSequence): + return self._DVHSequence + else: + return [DVHSequenceItem(x) for x in self._dataset.DVHSequence] + return None + + @DVHSequence.setter + def DVHSequence(self, value: Optional[List[DVHSequenceItem]]): + if value is None: + self._DVHSequence = [] + if "DVHSequence" in self._dataset: + del self._dataset.DVHSequence + elif not isinstance(value, list) or not all(isinstance(item, DVHSequenceItem) for item in value): + raise ValueError("DVHSequence must be a list of DVHSequenceItem objects") + else: + self._DVHSequence = value + if "DVHSequence" not in self._dataset: + self._dataset.DVHSequence = pydicom.Sequence() + self._dataset.DVHSequence.clear() + self._dataset.DVHSequence.extend([item.to_dataset() for item in value]) + + def add_DVH(self, item: DVHSequenceItem): + if not isinstance(item, DVHSequenceItem): + raise ValueError("Item must be an instance of DVHSequenceItem") + self._DVHSequence.append(item) + if "DVHSequence" not in self._dataset: + self._dataset.DVHSequence = pydicom.Sequence() + self._dataset.DVHSequence.append(item.to_dataset()) + + @property + def ReferencedStructureSetSequence(self) -> Optional[List[ReferencedStructureSetSequenceItem]]: + if "ReferencedStructureSetSequence" in self._dataset: + if len(self._ReferencedStructureSetSequence) == len(self._dataset.ReferencedStructureSetSequence): + return self._ReferencedStructureSetSequence + else: + return [ReferencedStructureSetSequenceItem(x) for x in self._dataset.ReferencedStructureSetSequence] + return None + + @ReferencedStructureSetSequence.setter + def ReferencedStructureSetSequence(self, value: Optional[List[ReferencedStructureSetSequenceItem]]): + if value is None: + self._ReferencedStructureSetSequence = [] + if "ReferencedStructureSetSequence" in self._dataset: + del self._dataset.ReferencedStructureSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStructureSetSequenceItem) for item in value): + raise ValueError("ReferencedStructureSetSequence must be a list of ReferencedStructureSetSequenceItem objects") + else: + self._ReferencedStructureSetSequence = value + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.clear() + self._dataset.ReferencedStructureSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStructureSet(self, item: ReferencedStructureSetSequenceItem): + if not isinstance(item, ReferencedStructureSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedStructureSetSequenceItem") + self._ReferencedStructureSetSequence.append(item) + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_image.py b/tdwii_plus_examples/domain_model/rt_image.py new file mode 100644 index 0000000..aba463e --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image.py @@ -0,0 +1,6350 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .enhanced_rt_beam_limiting_device_sequence_item import ( + EnhancedRTBeamLimitingDeviceSequenceItem, +) +from .exposure_sequence_item import ExposureSequenceItem +from .fluence_map_sequence_item import FluenceMapSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class RtImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ExposureSequence: List[ExposureSequenceItem] = [] + self._FluenceMapSequence: List[FluenceMapSequenceItem] = [] + self._EnhancedRTBeamLimitingDeviceSequence: List[EnhancedRTBeamLimitingDeviceSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def PixelIntensityRelationshipSign(self) -> Optional[int]: + if "PixelIntensityRelationshipSign" in self._dataset: + return self._dataset.PixelIntensityRelationshipSign + return None + + @PixelIntensityRelationshipSign.setter + def PixelIntensityRelationshipSign(self, value: Optional[int]): + if value is None: + if "PixelIntensityRelationshipSign" in self._dataset: + del self._dataset.PixelIntensityRelationshipSign + else: + self._dataset.PixelIntensityRelationshipSign = value + + @property + def RTImageLabel(self) -> Optional[str]: + if "RTImageLabel" in self._dataset: + return self._dataset.RTImageLabel + return None + + @RTImageLabel.setter + def RTImageLabel(self, value: Optional[str]): + if value is None: + if "RTImageLabel" in self._dataset: + del self._dataset.RTImageLabel + else: + self._dataset.RTImageLabel = value + + @property + def RTImageName(self) -> Optional[str]: + if "RTImageName" in self._dataset: + return self._dataset.RTImageName + return None + + @RTImageName.setter + def RTImageName(self, value: Optional[str]): + if value is None: + if "RTImageName" in self._dataset: + del self._dataset.RTImageName + else: + self._dataset.RTImageName = value + + @property + def RTImageDescription(self) -> Optional[str]: + if "RTImageDescription" in self._dataset: + return self._dataset.RTImageDescription + return None + + @RTImageDescription.setter + def RTImageDescription(self, value: Optional[str]): + if value is None: + if "RTImageDescription" in self._dataset: + del self._dataset.RTImageDescription + else: + self._dataset.RTImageDescription = value + + @property + def ReportedValuesOrigin(self) -> Optional[str]: + if "ReportedValuesOrigin" in self._dataset: + return self._dataset.ReportedValuesOrigin + return None + + @ReportedValuesOrigin.setter + def ReportedValuesOrigin(self, value: Optional[str]): + if value is None: + if "ReportedValuesOrigin" in self._dataset: + del self._dataset.ReportedValuesOrigin + else: + self._dataset.ReportedValuesOrigin = value + + @property + def RTImagePlane(self) -> Optional[str]: + if "RTImagePlane" in self._dataset: + return self._dataset.RTImagePlane + return None + + @RTImagePlane.setter + def RTImagePlane(self, value: Optional[str]): + if value is None: + if "RTImagePlane" in self._dataset: + del self._dataset.RTImagePlane + else: + self._dataset.RTImagePlane = value + + @property + def XRayImageReceptorTranslation(self) -> Optional[List[Decimal]]: + if "XRayImageReceptorTranslation" in self._dataset: + return self._dataset.XRayImageReceptorTranslation + return None + + @XRayImageReceptorTranslation.setter + def XRayImageReceptorTranslation(self, value: Optional[List[Decimal]]): + if value is None: + if "XRayImageReceptorTranslation" in self._dataset: + del self._dataset.XRayImageReceptorTranslation + else: + self._dataset.XRayImageReceptorTranslation = value + + @property + def XRayImageReceptorAngle(self) -> Optional[Decimal]: + if "XRayImageReceptorAngle" in self._dataset: + return self._dataset.XRayImageReceptorAngle + return None + + @XRayImageReceptorAngle.setter + def XRayImageReceptorAngle(self, value: Optional[Decimal]): + if value is None: + if "XRayImageReceptorAngle" in self._dataset: + del self._dataset.XRayImageReceptorAngle + else: + self._dataset.XRayImageReceptorAngle = value + + @property + def RTImageOrientation(self) -> Optional[List[Decimal]]: + if "RTImageOrientation" in self._dataset: + return self._dataset.RTImageOrientation + return None + + @RTImageOrientation.setter + def RTImageOrientation(self, value: Optional[List[Decimal]]): + if value is None: + if "RTImageOrientation" in self._dataset: + del self._dataset.RTImageOrientation + else: + self._dataset.RTImageOrientation = value + + @property + def ImagePlanePixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagePlanePixelSpacing" in self._dataset: + return self._dataset.ImagePlanePixelSpacing + return None + + @ImagePlanePixelSpacing.setter + def ImagePlanePixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePlanePixelSpacing" in self._dataset: + del self._dataset.ImagePlanePixelSpacing + else: + self._dataset.ImagePlanePixelSpacing = value + + @property + def RTImagePosition(self) -> Optional[List[Decimal]]: + if "RTImagePosition" in self._dataset: + return self._dataset.RTImagePosition + return None + + @RTImagePosition.setter + def RTImagePosition(self, value: Optional[List[Decimal]]): + if value is None: + if "RTImagePosition" in self._dataset: + del self._dataset.RTImagePosition + else: + self._dataset.RTImagePosition = value + + @property + def RadiationMachineName(self) -> Optional[str]: + if "RadiationMachineName" in self._dataset: + return self._dataset.RadiationMachineName + return None + + @RadiationMachineName.setter + def RadiationMachineName(self, value: Optional[str]): + if value is None: + if "RadiationMachineName" in self._dataset: + del self._dataset.RadiationMachineName + else: + self._dataset.RadiationMachineName = value + + @property + def RadiationMachineSAD(self) -> Optional[Decimal]: + if "RadiationMachineSAD" in self._dataset: + return self._dataset.RadiationMachineSAD + return None + + @RadiationMachineSAD.setter + def RadiationMachineSAD(self, value: Optional[Decimal]): + if value is None: + if "RadiationMachineSAD" in self._dataset: + del self._dataset.RadiationMachineSAD + else: + self._dataset.RadiationMachineSAD = value + + @property + def RadiationMachineSSD(self) -> Optional[Decimal]: + if "RadiationMachineSSD" in self._dataset: + return self._dataset.RadiationMachineSSD + return None + + @RadiationMachineSSD.setter + def RadiationMachineSSD(self, value: Optional[Decimal]): + if value is None: + if "RadiationMachineSSD" in self._dataset: + del self._dataset.RadiationMachineSSD + else: + self._dataset.RadiationMachineSSD = value + + @property + def RTImageSID(self) -> Optional[Decimal]: + if "RTImageSID" in self._dataset: + return self._dataset.RTImageSID + return None + + @RTImageSID.setter + def RTImageSID(self, value: Optional[Decimal]): + if value is None: + if "RTImageSID" in self._dataset: + del self._dataset.RTImageSID + else: + self._dataset.RTImageSID = value + + @property + def SourceToReferenceObjectDistance(self) -> Optional[Decimal]: + if "SourceToReferenceObjectDistance" in self._dataset: + return self._dataset.SourceToReferenceObjectDistance + return None + + @SourceToReferenceObjectDistance.setter + def SourceToReferenceObjectDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToReferenceObjectDistance" in self._dataset: + del self._dataset.SourceToReferenceObjectDistance + else: + self._dataset.SourceToReferenceObjectDistance = value + + @property + def FractionNumber(self) -> Optional[int]: + if "FractionNumber" in self._dataset: + return self._dataset.FractionNumber + return None + + @FractionNumber.setter + def FractionNumber(self, value: Optional[int]): + if value is None: + if "FractionNumber" in self._dataset: + del self._dataset.FractionNumber + else: + self._dataset.FractionNumber = value + + @property + def ExposureSequence(self) -> Optional[List[ExposureSequenceItem]]: + if "ExposureSequence" in self._dataset: + if len(self._ExposureSequence) == len(self._dataset.ExposureSequence): + return self._ExposureSequence + else: + return [ExposureSequenceItem(x) for x in self._dataset.ExposureSequence] + return None + + @ExposureSequence.setter + def ExposureSequence(self, value: Optional[List[ExposureSequenceItem]]): + if value is None: + self._ExposureSequence = [] + if "ExposureSequence" in self._dataset: + del self._dataset.ExposureSequence + elif not isinstance(value, list) or not all(isinstance(item, ExposureSequenceItem) for item in value): + raise ValueError("ExposureSequence must be a list of ExposureSequenceItem objects") + else: + self._ExposureSequence = value + if "ExposureSequence" not in self._dataset: + self._dataset.ExposureSequence = pydicom.Sequence() + self._dataset.ExposureSequence.clear() + self._dataset.ExposureSequence.extend([item.to_dataset() for item in value]) + + def add_Exposure(self, item: ExposureSequenceItem): + if not isinstance(item, ExposureSequenceItem): + raise ValueError("Item must be an instance of ExposureSequenceItem") + self._ExposureSequence.append(item) + if "ExposureSequence" not in self._dataset: + self._dataset.ExposureSequence = pydicom.Sequence() + self._dataset.ExposureSequence.append(item.to_dataset()) + + @property + def MetersetExposure(self) -> Optional[Decimal]: + if "MetersetExposure" in self._dataset: + return self._dataset.MetersetExposure + return None + + @MetersetExposure.setter + def MetersetExposure(self, value: Optional[Decimal]): + if value is None: + if "MetersetExposure" in self._dataset: + del self._dataset.MetersetExposure + else: + self._dataset.MetersetExposure = value + + @property + def FluenceMapSequence(self) -> Optional[List[FluenceMapSequenceItem]]: + if "FluenceMapSequence" in self._dataset: + if len(self._FluenceMapSequence) == len(self._dataset.FluenceMapSequence): + return self._FluenceMapSequence + else: + return [FluenceMapSequenceItem(x) for x in self._dataset.FluenceMapSequence] + return None + + @FluenceMapSequence.setter + def FluenceMapSequence(self, value: Optional[List[FluenceMapSequenceItem]]): + if value is None: + self._FluenceMapSequence = [] + if "FluenceMapSequence" in self._dataset: + del self._dataset.FluenceMapSequence + elif not isinstance(value, list) or not all(isinstance(item, FluenceMapSequenceItem) for item in value): + raise ValueError("FluenceMapSequence must be a list of FluenceMapSequenceItem objects") + else: + self._FluenceMapSequence = value + if "FluenceMapSequence" not in self._dataset: + self._dataset.FluenceMapSequence = pydicom.Sequence() + self._dataset.FluenceMapSequence.clear() + self._dataset.FluenceMapSequence.extend([item.to_dataset() for item in value]) + + def add_FluenceMap(self, item: FluenceMapSequenceItem): + if not isinstance(item, FluenceMapSequenceItem): + raise ValueError("Item must be an instance of FluenceMapSequenceItem") + self._FluenceMapSequence.append(item) + if "FluenceMapSequence" not in self._dataset: + self._dataset.FluenceMapSequence = pydicom.Sequence() + self._dataset.FluenceMapSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceSequence(self) -> Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]: + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingDeviceSequence) == len(self._dataset.EnhancedRTBeamLimitingDeviceSequence): + return self._EnhancedRTBeamLimitingDeviceSequence + else: + return [ + EnhancedRTBeamLimitingDeviceSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingDeviceSequence + ] + return None + + @EnhancedRTBeamLimitingDeviceSequence.setter + def EnhancedRTBeamLimitingDeviceSequence(self, value: Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingDeviceSequence = [] + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingDeviceSequence must be a list of EnhancedRTBeamLimitingDeviceSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingDeviceSequence = value + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.clear() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingDevice(self, item: EnhancedRTBeamLimitingDeviceSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingDeviceSequenceItem") + self._EnhancedRTBeamLimitingDeviceSequence.append(item) + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self) -> Optional[str]: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + return self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + return None + + @EnhancedRTBeamLimitingDeviceDefinitionFlag.setter + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self, value: Optional[str]): + if value is None: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + else: + self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag = value + + @property + def PrimaryDosimeterUnit(self) -> Optional[str]: + if "PrimaryDosimeterUnit" in self._dataset: + return self._dataset.PrimaryDosimeterUnit + return None + + @PrimaryDosimeterUnit.setter + def PrimaryDosimeterUnit(self, value: Optional[str]): + if value is None: + if "PrimaryDosimeterUnit" in self._dataset: + del self._dataset.PrimaryDosimeterUnit + else: + self._dataset.PrimaryDosimeterUnit = value + + @property + def GantryAngle(self) -> Optional[Decimal]: + if "GantryAngle" in self._dataset: + return self._dataset.GantryAngle + return None + + @GantryAngle.setter + def GantryAngle(self, value: Optional[Decimal]): + if value is None: + if "GantryAngle" in self._dataset: + del self._dataset.GantryAngle + else: + self._dataset.GantryAngle = value + + @property + def BeamLimitingDeviceAngle(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngle" in self._dataset: + return self._dataset.BeamLimitingDeviceAngle + return None + + @BeamLimitingDeviceAngle.setter + def BeamLimitingDeviceAngle(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngle" in self._dataset: + del self._dataset.BeamLimitingDeviceAngle + else: + self._dataset.BeamLimitingDeviceAngle = value + + @property + def PatientSupportAngle(self) -> Optional[Decimal]: + if "PatientSupportAngle" in self._dataset: + return self._dataset.PatientSupportAngle + return None + + @PatientSupportAngle.setter + def PatientSupportAngle(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngle" in self._dataset: + del self._dataset.PatientSupportAngle + else: + self._dataset.PatientSupportAngle = value + + @property + def TableTopEccentricAxisDistance(self) -> Optional[Decimal]: + if "TableTopEccentricAxisDistance" in self._dataset: + return self._dataset.TableTopEccentricAxisDistance + return None + + @TableTopEccentricAxisDistance.setter + def TableTopEccentricAxisDistance(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAxisDistance" in self._dataset: + del self._dataset.TableTopEccentricAxisDistance + else: + self._dataset.TableTopEccentricAxisDistance = value + + @property + def TableTopEccentricAngle(self) -> Optional[Decimal]: + if "TableTopEccentricAngle" in self._dataset: + return self._dataset.TableTopEccentricAngle + return None + + @TableTopEccentricAngle.setter + def TableTopEccentricAngle(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAngle" in self._dataset: + del self._dataset.TableTopEccentricAngle + else: + self._dataset.TableTopEccentricAngle = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value + + @property + def IsocenterPosition(self) -> Optional[List[Decimal]]: + if "IsocenterPosition" in self._dataset: + return self._dataset.IsocenterPosition + return None + + @IsocenterPosition.setter + def IsocenterPosition(self, value: Optional[List[Decimal]]): + if value is None: + if "IsocenterPosition" in self._dataset: + del self._dataset.IsocenterPosition + else: + self._dataset.IsocenterPosition = value + + @property + def TableTopPitchAngle(self) -> Optional[float]: + if "TableTopPitchAngle" in self._dataset: + return self._dataset.TableTopPitchAngle + return None + + @TableTopPitchAngle.setter + def TableTopPitchAngle(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngle" in self._dataset: + del self._dataset.TableTopPitchAngle + else: + self._dataset.TableTopPitchAngle = value + + @property + def TableTopRollAngle(self) -> Optional[float]: + if "TableTopRollAngle" in self._dataset: + return self._dataset.TableTopRollAngle + return None + + @TableTopRollAngle.setter + def TableTopRollAngle(self, value: Optional[float]): + if value is None: + if "TableTopRollAngle" in self._dataset: + del self._dataset.TableTopRollAngle + else: + self._dataset.TableTopRollAngle = value + + @property + def GantryPitchAngle(self) -> Optional[float]: + if "GantryPitchAngle" in self._dataset: + return self._dataset.GantryPitchAngle + return None + + @GantryPitchAngle.setter + def GantryPitchAngle(self, value: Optional[float]): + if value is None: + if "GantryPitchAngle" in self._dataset: + del self._dataset.GantryPitchAngle + else: + self._dataset.GantryPitchAngle = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def StartCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "StartCumulativeMetersetWeight" in self._dataset: + return self._dataset.StartCumulativeMetersetWeight + return None + + @StartCumulativeMetersetWeight.setter + def StartCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "StartCumulativeMetersetWeight" in self._dataset: + del self._dataset.StartCumulativeMetersetWeight + else: + self._dataset.StartCumulativeMetersetWeight = value + + @property + def EndCumulativeMetersetWeight(self) -> Optional[Decimal]: + if "EndCumulativeMetersetWeight" in self._dataset: + return self._dataset.EndCumulativeMetersetWeight + return None + + @EndCumulativeMetersetWeight.setter + def EndCumulativeMetersetWeight(self, value: Optional[Decimal]): + if value is None: + if "EndCumulativeMetersetWeight" in self._dataset: + del self._dataset.EndCumulativeMetersetWeight + else: + self._dataset.EndCumulativeMetersetWeight = value + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ApprovalStatus(self) -> Optional[str]: + if "ApprovalStatus" in self._dataset: + return self._dataset.ApprovalStatus + return None + + @ApprovalStatus.setter + def ApprovalStatus(self, value: Optional[str]): + if value is None: + if "ApprovalStatus" in self._dataset: + del self._dataset.ApprovalStatus + else: + self._dataset.ApprovalStatus = value + + @property + def ReviewDate(self) -> Optional[str]: + if "ReviewDate" in self._dataset: + return self._dataset.ReviewDate + return None + + @ReviewDate.setter + def ReviewDate(self, value: Optional[str]): + if value is None: + if "ReviewDate" in self._dataset: + del self._dataset.ReviewDate + else: + self._dataset.ReviewDate = value + + @property + def ReviewTime(self) -> Optional[str]: + if "ReviewTime" in self._dataset: + return self._dataset.ReviewTime + return None + + @ReviewTime.setter + def ReviewTime(self, value: Optional[str]): + if value is None: + if "ReviewTime" in self._dataset: + del self._dataset.ReviewTime + else: + self._dataset.ReviewTime = value + + @property + def ReviewerName(self) -> Optional[str]: + if "ReviewerName" in self._dataset: + return self._dataset.ReviewerName + return None + + @ReviewerName.setter + def ReviewerName(self, value: Optional[str]): + if value is None: + if "ReviewerName" in self._dataset: + del self._dataset.ReviewerName + else: + self._dataset.ReviewerName = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_image_frame_context_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_frame_context_sequence_item.py new file mode 100644 index 0000000..3b02bf2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_frame_context_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_image_scope_sequence_item import RTImageScopeSequenceItem + + +class RTImageFrameContextSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTImageScopeSequence: List[RTImageScopeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTImageScopeSequence(self) -> Optional[List[RTImageScopeSequenceItem]]: + if "RTImageScopeSequence" in self._dataset: + if len(self._RTImageScopeSequence) == len(self._dataset.RTImageScopeSequence): + return self._RTImageScopeSequence + else: + return [RTImageScopeSequenceItem(x) for x in self._dataset.RTImageScopeSequence] + return None + + @RTImageScopeSequence.setter + def RTImageScopeSequence(self, value: Optional[List[RTImageScopeSequenceItem]]): + if value is None: + self._RTImageScopeSequence = [] + if "RTImageScopeSequence" in self._dataset: + del self._dataset.RTImageScopeSequence + elif not isinstance(value, list) or not all(isinstance(item, RTImageScopeSequenceItem) for item in value): + raise ValueError("RTImageScopeSequence must be a list of RTImageScopeSequenceItem objects") + else: + self._RTImageScopeSequence = value + if "RTImageScopeSequence" not in self._dataset: + self._dataset.RTImageScopeSequence = pydicom.Sequence() + self._dataset.RTImageScopeSequence.clear() + self._dataset.RTImageScopeSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageScope(self, item: RTImageScopeSequenceItem): + if not isinstance(item, RTImageScopeSequenceItem): + raise ValueError("Item must be an instance of RTImageScopeSequenceItem") + self._RTImageScopeSequence.append(item) + if "RTImageScopeSequence" not in self._dataset: + self._dataset.RTImageScopeSequence = pydicom.Sequence() + self._dataset.RTImageScopeSequence.append(item.to_dataset()) + + @property + def RTRadiationSetDeliveryNumber(self) -> Optional[int]: + if "RTRadiationSetDeliveryNumber" in self._dataset: + return self._dataset.RTRadiationSetDeliveryNumber + return None + + @RTRadiationSetDeliveryNumber.setter + def RTRadiationSetDeliveryNumber(self, value: Optional[int]): + if value is None: + if "RTRadiationSetDeliveryNumber" in self._dataset: + del self._dataset.RTRadiationSetDeliveryNumber + else: + self._dataset.RTRadiationSetDeliveryNumber = value + + @property + def ClinicalFractionNumber(self) -> Optional[int]: + if "ClinicalFractionNumber" in self._dataset: + return self._dataset.ClinicalFractionNumber + return None + + @ClinicalFractionNumber.setter + def ClinicalFractionNumber(self, value: Optional[int]): + if value is None: + if "ClinicalFractionNumber" in self._dataset: + del self._dataset.ClinicalFractionNumber + else: + self._dataset.ClinicalFractionNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_image_frame_general_content_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_frame_general_content_sequence_item.py new file mode 100644 index 0000000..d34df58 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_frame_general_content_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTImageFrameGeneralContentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def StartCumulativeMeterset(self) -> Optional[float]: + if "StartCumulativeMeterset" in self._dataset: + return self._dataset.StartCumulativeMeterset + return None + + @StartCumulativeMeterset.setter + def StartCumulativeMeterset(self, value: Optional[float]): + if value is None: + if "StartCumulativeMeterset" in self._dataset: + del self._dataset.StartCumulativeMeterset + else: + self._dataset.StartCumulativeMeterset = value + + @property + def ReferencedTreatmentPositionIndex(self) -> Optional[int]: + if "ReferencedTreatmentPositionIndex" in self._dataset: + return self._dataset.ReferencedTreatmentPositionIndex + return None + + @ReferencedTreatmentPositionIndex.setter + def ReferencedTreatmentPositionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedTreatmentPositionIndex" in self._dataset: + del self._dataset.ReferencedTreatmentPositionIndex + else: + self._dataset.ReferencedTreatmentPositionIndex = value diff --git a/tdwii_plus_examples/domain_model/rt_image_frame_imaging_device_position_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_frame_imaging_device_position_sequence_item.py new file mode 100644 index 0000000..87962c7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_frame_imaging_device_position_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .image_receptor_position_sequence_item import ImageReceptorPositionSequenceItem +from .imaging_source_position_sequence_item import ImagingSourcePositionSequenceItem + + +class RTImageFrameImagingDevicePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ImagingSourcePositionSequence: List[ImagingSourcePositionSequenceItem] = [] + self._ImageReceptorPositionSequence: List[ImageReceptorPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagingSourcePositionSequence(self) -> Optional[List[ImagingSourcePositionSequenceItem]]: + if "ImagingSourcePositionSequence" in self._dataset: + if len(self._ImagingSourcePositionSequence) == len(self._dataset.ImagingSourcePositionSequence): + return self._ImagingSourcePositionSequence + else: + return [ImagingSourcePositionSequenceItem(x) for x in self._dataset.ImagingSourcePositionSequence] + return None + + @ImagingSourcePositionSequence.setter + def ImagingSourcePositionSequence(self, value: Optional[List[ImagingSourcePositionSequenceItem]]): + if value is None: + self._ImagingSourcePositionSequence = [] + if "ImagingSourcePositionSequence" in self._dataset: + del self._dataset.ImagingSourcePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImagingSourcePositionSequenceItem) for item in value): + raise ValueError("ImagingSourcePositionSequence must be a list of ImagingSourcePositionSequenceItem objects") + else: + self._ImagingSourcePositionSequence = value + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.clear() + self._dataset.ImagingSourcePositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingSourcePosition(self, item: ImagingSourcePositionSequenceItem): + if not isinstance(item, ImagingSourcePositionSequenceItem): + raise ValueError("Item must be an instance of ImagingSourcePositionSequenceItem") + self._ImagingSourcePositionSequence.append(item) + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.append(item.to_dataset()) + + @property + def ImageReceptorPositionSequence(self) -> Optional[List[ImageReceptorPositionSequenceItem]]: + if "ImageReceptorPositionSequence" in self._dataset: + if len(self._ImageReceptorPositionSequence) == len(self._dataset.ImageReceptorPositionSequence): + return self._ImageReceptorPositionSequence + else: + return [ImageReceptorPositionSequenceItem(x) for x in self._dataset.ImageReceptorPositionSequence] + return None + + @ImageReceptorPositionSequence.setter + def ImageReceptorPositionSequence(self, value: Optional[List[ImageReceptorPositionSequenceItem]]): + if value is None: + self._ImageReceptorPositionSequence = [] + if "ImageReceptorPositionSequence" in self._dataset: + del self._dataset.ImageReceptorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageReceptorPositionSequenceItem) for item in value): + raise ValueError("ImageReceptorPositionSequence must be a list of ImageReceptorPositionSequenceItem objects") + else: + self._ImageReceptorPositionSequence = value + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.clear() + self._dataset.ImageReceptorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImageReceptorPosition(self, item: ImageReceptorPositionSequenceItem): + if not isinstance(item, ImageReceptorPositionSequenceItem): + raise ValueError("Item must be an instance of ImageReceptorPositionSequenceItem") + self._ImageReceptorPositionSequence.append(item) + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_image_frame_mv_radiation_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_frame_mv_radiation_acquisition_sequence_item.py new file mode 100644 index 0000000..909d196 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_frame_mv_radiation_acquisition_sequence_item.py @@ -0,0 +1,176 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .delivery_rate_unit_sequence_item import DeliveryRateUnitSequenceItem +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem + + +class RTImageFrameMVRadiationAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EnergyDerivationCodeSequence: List[CodeSequenceItem] = [] + self._DeliveryRateUnitSequence: List[DeliveryRateUnitSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def EnergyDerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EnergyDerivationCodeSequence" in self._dataset: + if len(self._EnergyDerivationCodeSequence) == len(self._dataset.EnergyDerivationCodeSequence): + return self._EnergyDerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EnergyDerivationCodeSequence] + return None + + @EnergyDerivationCodeSequence.setter + def EnergyDerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EnergyDerivationCodeSequence = [] + if "EnergyDerivationCodeSequence" in self._dataset: + del self._dataset.EnergyDerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EnergyDerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EnergyDerivationCodeSequence = value + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.clear() + self._dataset.EnergyDerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyDerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EnergyDerivationCodeSequence.append(item) + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.append(item.to_dataset()) + + @property + def MaximumCumulativeMetersetExposure(self) -> Optional[float]: + if "MaximumCumulativeMetersetExposure" in self._dataset: + return self._dataset.MaximumCumulativeMetersetExposure + return None + + @MaximumCumulativeMetersetExposure.setter + def MaximumCumulativeMetersetExposure(self, value: Optional[float]): + if value is None: + if "MaximumCumulativeMetersetExposure" in self._dataset: + del self._dataset.MaximumCumulativeMetersetExposure + else: + self._dataset.MaximumCumulativeMetersetExposure = value + + @property + def DeliveryRate(self) -> Optional[float]: + if "DeliveryRate" in self._dataset: + return self._dataset.DeliveryRate + return None + + @DeliveryRate.setter + def DeliveryRate(self, value: Optional[float]): + if value is None: + if "DeliveryRate" in self._dataset: + del self._dataset.DeliveryRate + else: + self._dataset.DeliveryRate = value + + @property + def DeliveryRateUnitSequence(self) -> Optional[List[DeliveryRateUnitSequenceItem]]: + if "DeliveryRateUnitSequence" in self._dataset: + if len(self._DeliveryRateUnitSequence) == len(self._dataset.DeliveryRateUnitSequence): + return self._DeliveryRateUnitSequence + else: + return [DeliveryRateUnitSequenceItem(x) for x in self._dataset.DeliveryRateUnitSequence] + return None + + @DeliveryRateUnitSequence.setter + def DeliveryRateUnitSequence(self, value: Optional[List[DeliveryRateUnitSequenceItem]]): + if value is None: + self._DeliveryRateUnitSequence = [] + if "DeliveryRateUnitSequence" in self._dataset: + del self._dataset.DeliveryRateUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, DeliveryRateUnitSequenceItem) for item in value): + raise ValueError("DeliveryRateUnitSequence must be a list of DeliveryRateUnitSequenceItem objects") + else: + self._DeliveryRateUnitSequence = value + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.clear() + self._dataset.DeliveryRateUnitSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryRateUnit(self, item: DeliveryRateUnitSequenceItem): + if not isinstance(item, DeliveryRateUnitSequenceItem): + raise ValueError("Item must be an instance of DeliveryRateUnitSequenceItem") + self._DeliveryRateUnitSequence.append(item) + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_image_frame_radiation_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_frame_radiation_acquisition_sequence_item.py new file mode 100644 index 0000000..dc4b764 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_frame_radiation_acquisition_sequence_item.py @@ -0,0 +1,108 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_image_frame_mv_radiation_acquisition_sequence_item import ( + RTImageFrameMVRadiationAcquisitionSequenceItem, +) +from .rt_image_framek_v_radiation_acquisition_sequence_item import ( + RTImageFramekVRadiationAcquisitionSequenceItem, +) + + +class RTImageFrameRadiationAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTImageFramekVRadiationAcquisitionSequence: List[RTImageFramekVRadiationAcquisitionSequenceItem] = [] + self._RTImageFrameMVRadiationAcquisitionSequence: List[RTImageFrameMVRadiationAcquisitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTImageFramekVRadiationAcquisitionSequence(self) -> Optional[List[RTImageFramekVRadiationAcquisitionSequenceItem]]: + if "RTImageFramekVRadiationAcquisitionSequence" in self._dataset: + if len(self._RTImageFramekVRadiationAcquisitionSequence) == len( + self._dataset.RTImageFramekVRadiationAcquisitionSequence + ): + return self._RTImageFramekVRadiationAcquisitionSequence + else: + return [ + RTImageFramekVRadiationAcquisitionSequenceItem(x) + for x in self._dataset.RTImageFramekVRadiationAcquisitionSequence + ] + return None + + @RTImageFramekVRadiationAcquisitionSequence.setter + def RTImageFramekVRadiationAcquisitionSequence( + self, value: Optional[List[RTImageFramekVRadiationAcquisitionSequenceItem]] + ): + if value is None: + self._RTImageFramekVRadiationAcquisitionSequence = [] + if "RTImageFramekVRadiationAcquisitionSequence" in self._dataset: + del self._dataset.RTImageFramekVRadiationAcquisitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFramekVRadiationAcquisitionSequenceItem) for item in value + ): + raise ValueError( + "RTImageFramekVRadiationAcquisitionSequence must be a list of RTImageFramekVRadiationAcquisitionSequenceItem" + " objects" + ) + else: + self._RTImageFramekVRadiationAcquisitionSequence = value + if "RTImageFramekVRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFramekVRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFramekVRadiationAcquisitionSequence.clear() + self._dataset.RTImageFramekVRadiationAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFramekVRadiationAcquisition(self, item: RTImageFramekVRadiationAcquisitionSequenceItem): + if not isinstance(item, RTImageFramekVRadiationAcquisitionSequenceItem): + raise ValueError("Item must be an instance of RTImageFramekVRadiationAcquisitionSequenceItem") + self._RTImageFramekVRadiationAcquisitionSequence.append(item) + if "RTImageFramekVRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFramekVRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFramekVRadiationAcquisitionSequence.append(item.to_dataset()) + + @property + def RTImageFrameMVRadiationAcquisitionSequence(self) -> Optional[List[RTImageFrameMVRadiationAcquisitionSequenceItem]]: + if "RTImageFrameMVRadiationAcquisitionSequence" in self._dataset: + if len(self._RTImageFrameMVRadiationAcquisitionSequence) == len( + self._dataset.RTImageFrameMVRadiationAcquisitionSequence + ): + return self._RTImageFrameMVRadiationAcquisitionSequence + else: + return [ + RTImageFrameMVRadiationAcquisitionSequenceItem(x) + for x in self._dataset.RTImageFrameMVRadiationAcquisitionSequence + ] + return None + + @RTImageFrameMVRadiationAcquisitionSequence.setter + def RTImageFrameMVRadiationAcquisitionSequence( + self, value: Optional[List[RTImageFrameMVRadiationAcquisitionSequenceItem]] + ): + if value is None: + self._RTImageFrameMVRadiationAcquisitionSequence = [] + if "RTImageFrameMVRadiationAcquisitionSequence" in self._dataset: + del self._dataset.RTImageFrameMVRadiationAcquisitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameMVRadiationAcquisitionSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameMVRadiationAcquisitionSequence must be a list of RTImageFrameMVRadiationAcquisitionSequenceItem" + " objects" + ) + else: + self._RTImageFrameMVRadiationAcquisitionSequence = value + if "RTImageFrameMVRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFrameMVRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFrameMVRadiationAcquisitionSequence.clear() + self._dataset.RTImageFrameMVRadiationAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameMVRadiationAcquisition(self, item: RTImageFrameMVRadiationAcquisitionSequenceItem): + if not isinstance(item, RTImageFrameMVRadiationAcquisitionSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameMVRadiationAcquisitionSequenceItem") + self._RTImageFrameMVRadiationAcquisitionSequence.append(item) + if "RTImageFrameMVRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFrameMVRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFrameMVRadiationAcquisitionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_image_framek_v_radiation_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_framek_v_radiation_acquisition_sequence_item.py new file mode 100644 index 0000000..bc4e6c9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_framek_v_radiation_acquisition_sequence_item.py @@ -0,0 +1,151 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .x_ray_filter_sequence_item import XRayFilterSequenceItem + + +class RTImageFramekVRadiationAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._XRayFilterSequence: List[XRayFilterSequenceItem] = [] + self._EnergyDerivationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def RadiationMode(self) -> Optional[str]: + if "RadiationMode" in self._dataset: + return self._dataset.RadiationMode + return None + + @RadiationMode.setter + def RadiationMode(self, value: Optional[str]): + if value is None: + if "RadiationMode" in self._dataset: + del self._dataset.RadiationMode + else: + self._dataset.RadiationMode = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def XRayFilterSequence(self) -> Optional[List[XRayFilterSequenceItem]]: + if "XRayFilterSequence" in self._dataset: + if len(self._XRayFilterSequence) == len(self._dataset.XRayFilterSequence): + return self._XRayFilterSequence + else: + return [XRayFilterSequenceItem(x) for x in self._dataset.XRayFilterSequence] + return None + + @XRayFilterSequence.setter + def XRayFilterSequence(self, value: Optional[List[XRayFilterSequenceItem]]): + if value is None: + self._XRayFilterSequence = [] + if "XRayFilterSequence" in self._dataset: + del self._dataset.XRayFilterSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayFilterSequenceItem) for item in value): + raise ValueError("XRayFilterSequence must be a list of XRayFilterSequenceItem objects") + else: + self._XRayFilterSequence = value + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.clear() + self._dataset.XRayFilterSequence.extend([item.to_dataset() for item in value]) + + def add_XRayFilter(self, item: XRayFilterSequenceItem): + if not isinstance(item, XRayFilterSequenceItem): + raise ValueError("Item must be an instance of XRayFilterSequenceItem") + self._XRayFilterSequence.append(item) + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.append(item.to_dataset()) + + @property + def EnergyDerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EnergyDerivationCodeSequence" in self._dataset: + if len(self._EnergyDerivationCodeSequence) == len(self._dataset.EnergyDerivationCodeSequence): + return self._EnergyDerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EnergyDerivationCodeSequence] + return None + + @EnergyDerivationCodeSequence.setter + def EnergyDerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EnergyDerivationCodeSequence = [] + if "EnergyDerivationCodeSequence" in self._dataset: + del self._dataset.EnergyDerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EnergyDerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EnergyDerivationCodeSequence = value + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.clear() + self._dataset.EnergyDerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EnergyDerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EnergyDerivationCodeSequence.append(item) + if "EnergyDerivationCodeSequence" not in self._dataset: + self._dataset.EnergyDerivationCodeSequence = pydicom.Sequence() + self._dataset.EnergyDerivationCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_image_scope_sequence_item.py b/tdwii_plus_examples/domain_model/rt_image_scope_sequence_item.py new file mode 100644 index 0000000..c7e239d --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_image_scope_sequence_item.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem +from .referenced_rt_radiation_set_sequence_item import ( + ReferencedRTRadiationSetSequenceItem, +) + + +class RTImageScopeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + self._ReferencedRTRadiationSetSequence: List[ReferencedRTRadiationSetSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSetSequence(self) -> Optional[List[ReferencedRTRadiationSetSequenceItem]]: + if "ReferencedRTRadiationSetSequence" in self._dataset: + if len(self._ReferencedRTRadiationSetSequence) == len(self._dataset.ReferencedRTRadiationSetSequence): + return self._ReferencedRTRadiationSetSequence + else: + return [ReferencedRTRadiationSetSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSetSequence] + return None + + @ReferencedRTRadiationSetSequence.setter + def ReferencedRTRadiationSetSequence(self, value: Optional[List[ReferencedRTRadiationSetSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSetSequence = [] + if "ReferencedRTRadiationSetSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSetSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSetSequence must be a list of ReferencedRTRadiationSetSequenceItem objects") + else: + self._ReferencedRTRadiationSetSequence = value + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.clear() + self._dataset.ReferencedRTRadiationSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationSet(self, item: ReferencedRTRadiationSetSequenceItem): + if not isinstance(item, ReferencedRTRadiationSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSetSequenceItem") + self._ReferencedRTRadiationSetSequence.append(item) + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_ion_beams_treatment_record.py b/tdwii_plus_examples/domain_model/rt_ion_beams_treatment_record.py new file mode 100644 index 0000000..9173f21 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_ion_beams_treatment_record.py @@ -0,0 +1,4473 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .calculated_dose_reference_sequence_item import CalculatedDoseReferenceSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_group_summary_sequence_item import FractionGroupSummarySequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_dose_reference_sequence_item import MeasuredDoseReferenceSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_setup_sequence_item import PatientSetupSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_treatment_record_sequence_item import ( + ReferencedTreatmentRecordSequenceItem, +) +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_machine_sequence_item import TreatmentMachineSequenceItem +from .treatment_session_ion_beam_sequence_item import ( + TreatmentSessionIonBeamSequenceItem, +) +from .treatment_summary_calculated_dose_reference_sequence_item import ( + TreatmentSummaryCalculatedDoseReferenceSequenceItem, +) +from .treatment_summary_measured_dose_reference_sequence_item import ( + TreatmentSummaryMeasuredDoseReferenceSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtIonBeamsTreatmentRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientSetupSequence: List[PatientSetupSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._TreatmentSessionIonBeamSequence: List[TreatmentSessionIonBeamSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedTreatmentRecordSequence: List[ReferencedTreatmentRecordSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._TreatmentMachineSequence: List[TreatmentMachineSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._MeasuredDoseReferenceSequence: List[MeasuredDoseReferenceSequenceItem] = [] + self._CalculatedDoseReferenceSequence: List[CalculatedDoseReferenceSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentSummaryCalculatedDoseReferenceSequence: List[TreatmentSummaryCalculatedDoseReferenceSequenceItem] = [] + self._TreatmentSummaryMeasuredDoseReferenceSequence: List[TreatmentSummaryMeasuredDoseReferenceSequenceItem] = [] + self._FractionGroupSummarySequence: List[FractionGroupSummarySequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PatientSetupSequence(self) -> Optional[List[PatientSetupSequenceItem]]: + if "PatientSetupSequence" in self._dataset: + if len(self._PatientSetupSequence) == len(self._dataset.PatientSetupSequence): + return self._PatientSetupSequence + else: + return [PatientSetupSequenceItem(x) for x in self._dataset.PatientSetupSequence] + return None + + @PatientSetupSequence.setter + def PatientSetupSequence(self, value: Optional[List[PatientSetupSequenceItem]]): + if value is None: + self._PatientSetupSequence = [] + if "PatientSetupSequence" in self._dataset: + del self._dataset.PatientSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSetupSequenceItem) for item in value): + raise ValueError("PatientSetupSequence must be a list of PatientSetupSequenceItem objects") + else: + self._PatientSetupSequence = value + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.clear() + self._dataset.PatientSetupSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSetup(self, item: PatientSetupSequenceItem): + if not isinstance(item, PatientSetupSequenceItem): + raise ValueError("Item must be an instance of PatientSetupSequenceItem") + self._PatientSetupSequence.append(item) + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def TreatmentSessionIonBeamSequence(self) -> Optional[List[TreatmentSessionIonBeamSequenceItem]]: + if "TreatmentSessionIonBeamSequence" in self._dataset: + if len(self._TreatmentSessionIonBeamSequence) == len(self._dataset.TreatmentSessionIonBeamSequence): + return self._TreatmentSessionIonBeamSequence + else: + return [TreatmentSessionIonBeamSequenceItem(x) for x in self._dataset.TreatmentSessionIonBeamSequence] + return None + + @TreatmentSessionIonBeamSequence.setter + def TreatmentSessionIonBeamSequence(self, value: Optional[List[TreatmentSessionIonBeamSequenceItem]]): + if value is None: + self._TreatmentSessionIonBeamSequence = [] + if "TreatmentSessionIonBeamSequence" in self._dataset: + del self._dataset.TreatmentSessionIonBeamSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentSessionIonBeamSequenceItem) for item in value): + raise ValueError("TreatmentSessionIonBeamSequence must be a list of TreatmentSessionIonBeamSequenceItem objects") + else: + self._TreatmentSessionIonBeamSequence = value + if "TreatmentSessionIonBeamSequence" not in self._dataset: + self._dataset.TreatmentSessionIonBeamSequence = pydicom.Sequence() + self._dataset.TreatmentSessionIonBeamSequence.clear() + self._dataset.TreatmentSessionIonBeamSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSessionIonBeam(self, item: TreatmentSessionIonBeamSequenceItem): + if not isinstance(item, TreatmentSessionIonBeamSequenceItem): + raise ValueError("Item must be an instance of TreatmentSessionIonBeamSequenceItem") + self._TreatmentSessionIonBeamSequence.append(item) + if "TreatmentSessionIonBeamSequence" not in self._dataset: + self._dataset.TreatmentSessionIonBeamSequence = pydicom.Sequence() + self._dataset.TreatmentSessionIonBeamSequence.append(item.to_dataset()) + + @property + def NumberOfFractionsPlanned(self) -> Optional[int]: + if "NumberOfFractionsPlanned" in self._dataset: + return self._dataset.NumberOfFractionsPlanned + return None + + @NumberOfFractionsPlanned.setter + def NumberOfFractionsPlanned(self, value: Optional[int]): + if value is None: + if "NumberOfFractionsPlanned" in self._dataset: + del self._dataset.NumberOfFractionsPlanned + else: + self._dataset.NumberOfFractionsPlanned = value + + @property + def PrimaryDosimeterUnit(self) -> Optional[str]: + if "PrimaryDosimeterUnit" in self._dataset: + return self._dataset.PrimaryDosimeterUnit + return None + + @PrimaryDosimeterUnit.setter + def PrimaryDosimeterUnit(self, value: Optional[str]): + if value is None: + if "PrimaryDosimeterUnit" in self._dataset: + del self._dataset.PrimaryDosimeterUnit + else: + self._dataset.PrimaryDosimeterUnit = value + + @property + def ReferencedFractionGroupNumber(self) -> Optional[int]: + if "ReferencedFractionGroupNumber" in self._dataset: + return self._dataset.ReferencedFractionGroupNumber + return None + + @ReferencedFractionGroupNumber.setter + def ReferencedFractionGroupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedFractionGroupNumber" in self._dataset: + del self._dataset.ReferencedFractionGroupNumber + else: + self._dataset.ReferencedFractionGroupNumber = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedTreatmentRecordSequence(self) -> Optional[List[ReferencedTreatmentRecordSequenceItem]]: + if "ReferencedTreatmentRecordSequence" in self._dataset: + if len(self._ReferencedTreatmentRecordSequence) == len(self._dataset.ReferencedTreatmentRecordSequence): + return self._ReferencedTreatmentRecordSequence + else: + return [ReferencedTreatmentRecordSequenceItem(x) for x in self._dataset.ReferencedTreatmentRecordSequence] + return None + + @ReferencedTreatmentRecordSequence.setter + def ReferencedTreatmentRecordSequence(self, value: Optional[List[ReferencedTreatmentRecordSequenceItem]]): + if value is None: + self._ReferencedTreatmentRecordSequence = [] + if "ReferencedTreatmentRecordSequence" in self._dataset: + del self._dataset.ReferencedTreatmentRecordSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedTreatmentRecordSequenceItem) for item in value): + raise ValueError( + "ReferencedTreatmentRecordSequence must be a list of ReferencedTreatmentRecordSequenceItem objects" + ) + else: + self._ReferencedTreatmentRecordSequence = value + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.clear() + self._dataset.ReferencedTreatmentRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedTreatmentRecord(self, item: ReferencedTreatmentRecordSequenceItem): + if not isinstance(item, ReferencedTreatmentRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedTreatmentRecordSequenceItem") + self._ReferencedTreatmentRecordSequence.append(item) + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.append(item.to_dataset()) + + @property + def TreatmentDate(self) -> Optional[str]: + if "TreatmentDate" in self._dataset: + return self._dataset.TreatmentDate + return None + + @TreatmentDate.setter + def TreatmentDate(self, value: Optional[str]): + if value is None: + if "TreatmentDate" in self._dataset: + del self._dataset.TreatmentDate + else: + self._dataset.TreatmentDate = value + + @property + def TreatmentTime(self) -> Optional[str]: + if "TreatmentTime" in self._dataset: + return self._dataset.TreatmentTime + return None + + @TreatmentTime.setter + def TreatmentTime(self, value: Optional[str]): + if value is None: + if "TreatmentTime" in self._dataset: + del self._dataset.TreatmentTime + else: + self._dataset.TreatmentTime = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSequence(self) -> Optional[List[TreatmentMachineSequenceItem]]: + if "TreatmentMachineSequence" in self._dataset: + if len(self._TreatmentMachineSequence) == len(self._dataset.TreatmentMachineSequence): + return self._TreatmentMachineSequence + else: + return [TreatmentMachineSequenceItem(x) for x in self._dataset.TreatmentMachineSequence] + return None + + @TreatmentMachineSequence.setter + def TreatmentMachineSequence(self, value: Optional[List[TreatmentMachineSequenceItem]]): + if value is None: + self._TreatmentMachineSequence = [] + if "TreatmentMachineSequence" in self._dataset: + del self._dataset.TreatmentMachineSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentMachineSequenceItem) for item in value): + raise ValueError("TreatmentMachineSequence must be a list of TreatmentMachineSequenceItem objects") + else: + self._TreatmentMachineSequence = value + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.clear() + self._dataset.TreatmentMachineSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachine(self, item: TreatmentMachineSequenceItem): + if not isinstance(item, TreatmentMachineSequenceItem): + raise ValueError("Item must be an instance of TreatmentMachineSequenceItem") + self._TreatmentMachineSequence.append(item) + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def MeasuredDoseReferenceSequence(self) -> Optional[List[MeasuredDoseReferenceSequenceItem]]: + if "MeasuredDoseReferenceSequence" in self._dataset: + if len(self._MeasuredDoseReferenceSequence) == len(self._dataset.MeasuredDoseReferenceSequence): + return self._MeasuredDoseReferenceSequence + else: + return [MeasuredDoseReferenceSequenceItem(x) for x in self._dataset.MeasuredDoseReferenceSequence] + return None + + @MeasuredDoseReferenceSequence.setter + def MeasuredDoseReferenceSequence(self, value: Optional[List[MeasuredDoseReferenceSequenceItem]]): + if value is None: + self._MeasuredDoseReferenceSequence = [] + if "MeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.MeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredDoseReferenceSequenceItem) for item in value): + raise ValueError("MeasuredDoseReferenceSequence must be a list of MeasuredDoseReferenceSequenceItem objects") + else: + self._MeasuredDoseReferenceSequence = value + if "MeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.MeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.MeasuredDoseReferenceSequence.clear() + self._dataset.MeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredDoseReference(self, item: MeasuredDoseReferenceSequenceItem): + if not isinstance(item, MeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of MeasuredDoseReferenceSequenceItem") + self._MeasuredDoseReferenceSequence.append(item) + if "MeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.MeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.MeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CalculatedDoseReferenceSequence(self) -> Optional[List[CalculatedDoseReferenceSequenceItem]]: + if "CalculatedDoseReferenceSequence" in self._dataset: + if len(self._CalculatedDoseReferenceSequence) == len(self._dataset.CalculatedDoseReferenceSequence): + return self._CalculatedDoseReferenceSequence + else: + return [CalculatedDoseReferenceSequenceItem(x) for x in self._dataset.CalculatedDoseReferenceSequence] + return None + + @CalculatedDoseReferenceSequence.setter + def CalculatedDoseReferenceSequence(self, value: Optional[List[CalculatedDoseReferenceSequenceItem]]): + if value is None: + self._CalculatedDoseReferenceSequence = [] + if "CalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.CalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, CalculatedDoseReferenceSequenceItem) for item in value): + raise ValueError("CalculatedDoseReferenceSequence must be a list of CalculatedDoseReferenceSequenceItem objects") + else: + self._CalculatedDoseReferenceSequence = value + if "CalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.CalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.CalculatedDoseReferenceSequence.clear() + self._dataset.CalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_CalculatedDoseReference(self, item: CalculatedDoseReferenceSequenceItem): + if not isinstance(item, CalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of CalculatedDoseReferenceSequenceItem") + self._CalculatedDoseReferenceSequence.append(item) + if "CalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.CalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.CalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]]: + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryCalculatedDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ): + return self._TreatmentSummaryCalculatedDoseReferenceSequence + else: + return [ + TreatmentSummaryCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ] + return None + + @TreatmentSummaryCalculatedDoseReferenceSequence.setter + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryCalculatedDoseReferenceSequence = [] + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryCalculatedDoseReferenceSequence must be a list of" + " TreatmentSummaryCalculatedDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryCalculatedDoseReferenceSequence = value + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryCalculatedDoseReference(self, item: TreatmentSummaryCalculatedDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryCalculatedDoseReferenceSequenceItem") + self._TreatmentSummaryCalculatedDoseReferenceSequence.append(item) + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def FirstTreatmentDate(self) -> Optional[str]: + if "FirstTreatmentDate" in self._dataset: + return self._dataset.FirstTreatmentDate + return None + + @FirstTreatmentDate.setter + def FirstTreatmentDate(self, value: Optional[str]): + if value is None: + if "FirstTreatmentDate" in self._dataset: + del self._dataset.FirstTreatmentDate + else: + self._dataset.FirstTreatmentDate = value + + @property + def MostRecentTreatmentDate(self) -> Optional[str]: + if "MostRecentTreatmentDate" in self._dataset: + return self._dataset.MostRecentTreatmentDate + return None + + @MostRecentTreatmentDate.setter + def MostRecentTreatmentDate(self, value: Optional[str]): + if value is None: + if "MostRecentTreatmentDate" in self._dataset: + del self._dataset.MostRecentTreatmentDate + else: + self._dataset.MostRecentTreatmentDate = value + + @property + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]]: + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryMeasuredDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ): + return self._TreatmentSummaryMeasuredDoseReferenceSequence + else: + return [ + TreatmentSummaryMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ] + return None + + @TreatmentSummaryMeasuredDoseReferenceSequence.setter + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryMeasuredDoseReferenceSequence = [] + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryMeasuredDoseReferenceSequence must be a list of" + " TreatmentSummaryMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryMeasuredDoseReferenceSequence = value + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryMeasuredDoseReference(self, item: TreatmentSummaryMeasuredDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryMeasuredDoseReferenceSequenceItem") + self._TreatmentSummaryMeasuredDoseReferenceSequence.append(item) + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CurrentTreatmentStatus(self) -> Optional[str]: + if "CurrentTreatmentStatus" in self._dataset: + return self._dataset.CurrentTreatmentStatus + return None + + @CurrentTreatmentStatus.setter + def CurrentTreatmentStatus(self, value: Optional[str]): + if value is None: + if "CurrentTreatmentStatus" in self._dataset: + del self._dataset.CurrentTreatmentStatus + else: + self._dataset.CurrentTreatmentStatus = value + + @property + def TreatmentStatusComment(self) -> Optional[str]: + if "TreatmentStatusComment" in self._dataset: + return self._dataset.TreatmentStatusComment + return None + + @TreatmentStatusComment.setter + def TreatmentStatusComment(self, value: Optional[str]): + if value is None: + if "TreatmentStatusComment" in self._dataset: + del self._dataset.TreatmentStatusComment + else: + self._dataset.TreatmentStatusComment = value + + @property + def FractionGroupSummarySequence(self) -> Optional[List[FractionGroupSummarySequenceItem]]: + if "FractionGroupSummarySequence" in self._dataset: + if len(self._FractionGroupSummarySequence) == len(self._dataset.FractionGroupSummarySequence): + return self._FractionGroupSummarySequence + else: + return [FractionGroupSummarySequenceItem(x) for x in self._dataset.FractionGroupSummarySequence] + return None + + @FractionGroupSummarySequence.setter + def FractionGroupSummarySequence(self, value: Optional[List[FractionGroupSummarySequenceItem]]): + if value is None: + self._FractionGroupSummarySequence = [] + if "FractionGroupSummarySequence" in self._dataset: + del self._dataset.FractionGroupSummarySequence + elif not isinstance(value, list) or not all(isinstance(item, FractionGroupSummarySequenceItem) for item in value): + raise ValueError("FractionGroupSummarySequence must be a list of FractionGroupSummarySequenceItem objects") + else: + self._FractionGroupSummarySequence = value + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.clear() + self._dataset.FractionGroupSummarySequence.extend([item.to_dataset() for item in value]) + + def add_FractionGroupSummary(self, item: FractionGroupSummarySequenceItem): + if not isinstance(item, FractionGroupSummarySequenceItem): + raise ValueError("Item must be an instance of FractionGroupSummarySequenceItem") + self._FractionGroupSummarySequence.append(item) + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_ion_plan.py b/tdwii_plus_examples/domain_model/rt_ion_plan.py new file mode 100644 index 0000000..c695823 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_ion_plan.py @@ -0,0 +1,4512 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dose_reference_sequence_item import DoseReferenceSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_group_sequence_item import FractionGroupSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .ion_beam_sequence_item import IonBeamSequenceItem +from .ion_tolerance_table_sequence_item import IonToleranceTableSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_setup_sequence_item import PatientSetupSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_dose_sequence_item import ReferencedDoseSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_structure_set_sequence_item import ReferencedStructureSetSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtIonPlan: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._IonBeamSequence: List[IonBeamSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._IonToleranceTableSequence: List[IonToleranceTableSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._DoseReferenceSequence: List[DoseReferenceSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientSetupSequence: List[PatientSetupSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._ReferencedStructureSetSequence: List[ReferencedStructureSetSequenceItem] = [] + self._ReferencedDoseSequence: List[ReferencedDoseSequenceItem] = [] + self._TreatmentSiteCodeSequence: List[CodeSequenceItem] = [] + self._FractionGroupSequence: List[FractionGroupSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def IonBeamSequence(self) -> Optional[List[IonBeamSequenceItem]]: + if "IonBeamSequence" in self._dataset: + if len(self._IonBeamSequence) == len(self._dataset.IonBeamSequence): + return self._IonBeamSequence + else: + return [IonBeamSequenceItem(x) for x in self._dataset.IonBeamSequence] + return None + + @IonBeamSequence.setter + def IonBeamSequence(self, value: Optional[List[IonBeamSequenceItem]]): + if value is None: + self._IonBeamSequence = [] + if "IonBeamSequence" in self._dataset: + del self._dataset.IonBeamSequence + elif not isinstance(value, list) or not all(isinstance(item, IonBeamSequenceItem) for item in value): + raise ValueError("IonBeamSequence must be a list of IonBeamSequenceItem objects") + else: + self._IonBeamSequence = value + if "IonBeamSequence" not in self._dataset: + self._dataset.IonBeamSequence = pydicom.Sequence() + self._dataset.IonBeamSequence.clear() + self._dataset.IonBeamSequence.extend([item.to_dataset() for item in value]) + + def add_IonBeam(self, item: IonBeamSequenceItem): + if not isinstance(item, IonBeamSequenceItem): + raise ValueError("Item must be an instance of IonBeamSequenceItem") + self._IonBeamSequence.append(item) + if "IonBeamSequence" not in self._dataset: + self._dataset.IonBeamSequence = pydicom.Sequence() + self._dataset.IonBeamSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def IonToleranceTableSequence(self) -> Optional[List[IonToleranceTableSequenceItem]]: + if "IonToleranceTableSequence" in self._dataset: + if len(self._IonToleranceTableSequence) == len(self._dataset.IonToleranceTableSequence): + return self._IonToleranceTableSequence + else: + return [IonToleranceTableSequenceItem(x) for x in self._dataset.IonToleranceTableSequence] + return None + + @IonToleranceTableSequence.setter + def IonToleranceTableSequence(self, value: Optional[List[IonToleranceTableSequenceItem]]): + if value is None: + self._IonToleranceTableSequence = [] + if "IonToleranceTableSequence" in self._dataset: + del self._dataset.IonToleranceTableSequence + elif not isinstance(value, list) or not all(isinstance(item, IonToleranceTableSequenceItem) for item in value): + raise ValueError("IonToleranceTableSequence must be a list of IonToleranceTableSequenceItem objects") + else: + self._IonToleranceTableSequence = value + if "IonToleranceTableSequence" not in self._dataset: + self._dataset.IonToleranceTableSequence = pydicom.Sequence() + self._dataset.IonToleranceTableSequence.clear() + self._dataset.IonToleranceTableSequence.extend([item.to_dataset() for item in value]) + + def add_IonToleranceTable(self, item: IonToleranceTableSequenceItem): + if not isinstance(item, IonToleranceTableSequenceItem): + raise ValueError("Item must be an instance of IonToleranceTableSequenceItem") + self._IonToleranceTableSequence.append(item) + if "IonToleranceTableSequence" not in self._dataset: + self._dataset.IonToleranceTableSequence = pydicom.Sequence() + self._dataset.IonToleranceTableSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def PrescriptionDescription(self) -> Optional[str]: + if "PrescriptionDescription" in self._dataset: + return self._dataset.PrescriptionDescription + return None + + @PrescriptionDescription.setter + def PrescriptionDescription(self, value: Optional[str]): + if value is None: + if "PrescriptionDescription" in self._dataset: + del self._dataset.PrescriptionDescription + else: + self._dataset.PrescriptionDescription = value + + @property + def DoseReferenceSequence(self) -> Optional[List[DoseReferenceSequenceItem]]: + if "DoseReferenceSequence" in self._dataset: + if len(self._DoseReferenceSequence) == len(self._dataset.DoseReferenceSequence): + return self._DoseReferenceSequence + else: + return [DoseReferenceSequenceItem(x) for x in self._dataset.DoseReferenceSequence] + return None + + @DoseReferenceSequence.setter + def DoseReferenceSequence(self, value: Optional[List[DoseReferenceSequenceItem]]): + if value is None: + self._DoseReferenceSequence = [] + if "DoseReferenceSequence" in self._dataset: + del self._dataset.DoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, DoseReferenceSequenceItem) for item in value): + raise ValueError("DoseReferenceSequence must be a list of DoseReferenceSequenceItem objects") + else: + self._DoseReferenceSequence = value + if "DoseReferenceSequence" not in self._dataset: + self._dataset.DoseReferenceSequence = pydicom.Sequence() + self._dataset.DoseReferenceSequence.clear() + self._dataset.DoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_DoseReference(self, item: DoseReferenceSequenceItem): + if not isinstance(item, DoseReferenceSequenceItem): + raise ValueError("Item must be an instance of DoseReferenceSequenceItem") + self._DoseReferenceSequence.append(item) + if "DoseReferenceSequence" not in self._dataset: + self._dataset.DoseReferenceSequence = pydicom.Sequence() + self._dataset.DoseReferenceSequence.append(item.to_dataset()) + + @property + def ApprovalStatus(self) -> Optional[str]: + if "ApprovalStatus" in self._dataset: + return self._dataset.ApprovalStatus + return None + + @ApprovalStatus.setter + def ApprovalStatus(self, value: Optional[str]): + if value is None: + if "ApprovalStatus" in self._dataset: + del self._dataset.ApprovalStatus + else: + self._dataset.ApprovalStatus = value + + @property + def ReviewDate(self) -> Optional[str]: + if "ReviewDate" in self._dataset: + return self._dataset.ReviewDate + return None + + @ReviewDate.setter + def ReviewDate(self, value: Optional[str]): + if value is None: + if "ReviewDate" in self._dataset: + del self._dataset.ReviewDate + else: + self._dataset.ReviewDate = value + + @property + def ReviewTime(self) -> Optional[str]: + if "ReviewTime" in self._dataset: + return self._dataset.ReviewTime + return None + + @ReviewTime.setter + def ReviewTime(self, value: Optional[str]): + if value is None: + if "ReviewTime" in self._dataset: + del self._dataset.ReviewTime + else: + self._dataset.ReviewTime = value + + @property + def ReviewerName(self) -> Optional[str]: + if "ReviewerName" in self._dataset: + return self._dataset.ReviewerName + return None + + @ReviewerName.setter + def ReviewerName(self, value: Optional[str]): + if value is None: + if "ReviewerName" in self._dataset: + del self._dataset.ReviewerName + else: + self._dataset.ReviewerName = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PatientSetupSequence(self) -> Optional[List[PatientSetupSequenceItem]]: + if "PatientSetupSequence" in self._dataset: + if len(self._PatientSetupSequence) == len(self._dataset.PatientSetupSequence): + return self._PatientSetupSequence + else: + return [PatientSetupSequenceItem(x) for x in self._dataset.PatientSetupSequence] + return None + + @PatientSetupSequence.setter + def PatientSetupSequence(self, value: Optional[List[PatientSetupSequenceItem]]): + if value is None: + self._PatientSetupSequence = [] + if "PatientSetupSequence" in self._dataset: + del self._dataset.PatientSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSetupSequenceItem) for item in value): + raise ValueError("PatientSetupSequence must be a list of PatientSetupSequenceItem objects") + else: + self._PatientSetupSequence = value + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.clear() + self._dataset.PatientSetupSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSetup(self, item: PatientSetupSequenceItem): + if not isinstance(item, PatientSetupSequenceItem): + raise ValueError("Item must be an instance of PatientSetupSequenceItem") + self._PatientSetupSequence.append(item) + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(self) -> Optional[List[float]]: + if "FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix" in self._dataset: + return self._dataset.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix + return None + + @FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.setter + def FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(self, value: Optional[List[float]]): + if value is None: + if "FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix" in self._dataset: + del self._dataset.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix + else: + self._dataset.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = value + + @property + def RTPlanLabel(self) -> Optional[str]: + if "RTPlanLabel" in self._dataset: + return self._dataset.RTPlanLabel + return None + + @RTPlanLabel.setter + def RTPlanLabel(self, value: Optional[str]): + if value is None: + if "RTPlanLabel" in self._dataset: + del self._dataset.RTPlanLabel + else: + self._dataset.RTPlanLabel = value + + @property + def RTPlanName(self) -> Optional[str]: + if "RTPlanName" in self._dataset: + return self._dataset.RTPlanName + return None + + @RTPlanName.setter + def RTPlanName(self, value: Optional[str]): + if value is None: + if "RTPlanName" in self._dataset: + del self._dataset.RTPlanName + else: + self._dataset.RTPlanName = value + + @property + def RTPlanDescription(self) -> Optional[str]: + if "RTPlanDescription" in self._dataset: + return self._dataset.RTPlanDescription + return None + + @RTPlanDescription.setter + def RTPlanDescription(self, value: Optional[str]): + if value is None: + if "RTPlanDescription" in self._dataset: + del self._dataset.RTPlanDescription + else: + self._dataset.RTPlanDescription = value + + @property + def RTPlanDate(self) -> Optional[str]: + if "RTPlanDate" in self._dataset: + return self._dataset.RTPlanDate + return None + + @RTPlanDate.setter + def RTPlanDate(self, value: Optional[str]): + if value is None: + if "RTPlanDate" in self._dataset: + del self._dataset.RTPlanDate + else: + self._dataset.RTPlanDate = value + + @property + def RTPlanTime(self) -> Optional[str]: + if "RTPlanTime" in self._dataset: + return self._dataset.RTPlanTime + return None + + @RTPlanTime.setter + def RTPlanTime(self, value: Optional[str]): + if value is None: + if "RTPlanTime" in self._dataset: + del self._dataset.RTPlanTime + else: + self._dataset.RTPlanTime = value + + @property + def TreatmentProtocols(self) -> Optional[List[str]]: + if "TreatmentProtocols" in self._dataset: + return self._dataset.TreatmentProtocols + return None + + @TreatmentProtocols.setter + def TreatmentProtocols(self, value: Optional[List[str]]): + if value is None: + if "TreatmentProtocols" in self._dataset: + del self._dataset.TreatmentProtocols + else: + self._dataset.TreatmentProtocols = value + + @property + def PlanIntent(self) -> Optional[str]: + if "PlanIntent" in self._dataset: + return self._dataset.PlanIntent + return None + + @PlanIntent.setter + def PlanIntent(self, value: Optional[str]): + if value is None: + if "PlanIntent" in self._dataset: + del self._dataset.PlanIntent + else: + self._dataset.PlanIntent = value + + @property + def RTPlanGeometry(self) -> Optional[str]: + if "RTPlanGeometry" in self._dataset: + return self._dataset.RTPlanGeometry + return None + + @RTPlanGeometry.setter + def RTPlanGeometry(self, value: Optional[str]): + if value is None: + if "RTPlanGeometry" in self._dataset: + del self._dataset.RTPlanGeometry + else: + self._dataset.RTPlanGeometry = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def ReferencedStructureSetSequence(self) -> Optional[List[ReferencedStructureSetSequenceItem]]: + if "ReferencedStructureSetSequence" in self._dataset: + if len(self._ReferencedStructureSetSequence) == len(self._dataset.ReferencedStructureSetSequence): + return self._ReferencedStructureSetSequence + else: + return [ReferencedStructureSetSequenceItem(x) for x in self._dataset.ReferencedStructureSetSequence] + return None + + @ReferencedStructureSetSequence.setter + def ReferencedStructureSetSequence(self, value: Optional[List[ReferencedStructureSetSequenceItem]]): + if value is None: + self._ReferencedStructureSetSequence = [] + if "ReferencedStructureSetSequence" in self._dataset: + del self._dataset.ReferencedStructureSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStructureSetSequenceItem) for item in value): + raise ValueError("ReferencedStructureSetSequence must be a list of ReferencedStructureSetSequenceItem objects") + else: + self._ReferencedStructureSetSequence = value + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.clear() + self._dataset.ReferencedStructureSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStructureSet(self, item: ReferencedStructureSetSequenceItem): + if not isinstance(item, ReferencedStructureSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedStructureSetSequenceItem") + self._ReferencedStructureSetSequence.append(item) + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.append(item.to_dataset()) + + @property + def ReferencedDoseSequence(self) -> Optional[List[ReferencedDoseSequenceItem]]: + if "ReferencedDoseSequence" in self._dataset: + if len(self._ReferencedDoseSequence) == len(self._dataset.ReferencedDoseSequence): + return self._ReferencedDoseSequence + else: + return [ReferencedDoseSequenceItem(x) for x in self._dataset.ReferencedDoseSequence] + return None + + @ReferencedDoseSequence.setter + def ReferencedDoseSequence(self, value: Optional[List[ReferencedDoseSequenceItem]]): + if value is None: + self._ReferencedDoseSequence = [] + if "ReferencedDoseSequence" in self._dataset: + del self._dataset.ReferencedDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseSequenceItem) for item in value): + raise ValueError("ReferencedDoseSequence must be a list of ReferencedDoseSequenceItem objects") + else: + self._ReferencedDoseSequence = value + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.clear() + self._dataset.ReferencedDoseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDose(self, item: ReferencedDoseSequenceItem): + if not isinstance(item, ReferencedDoseSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseSequenceItem") + self._ReferencedDoseSequence.append(item) + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.append(item.to_dataset()) + + @property + def TreatmentSite(self) -> Optional[str]: + if "TreatmentSite" in self._dataset: + return self._dataset.TreatmentSite + return None + + @TreatmentSite.setter + def TreatmentSite(self, value: Optional[str]): + if value is None: + if "TreatmentSite" in self._dataset: + del self._dataset.TreatmentSite + else: + self._dataset.TreatmentSite = value + + @property + def TreatmentSiteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentSiteCodeSequence" in self._dataset: + if len(self._TreatmentSiteCodeSequence) == len(self._dataset.TreatmentSiteCodeSequence): + return self._TreatmentSiteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentSiteCodeSequence] + return None + + @TreatmentSiteCodeSequence.setter + def TreatmentSiteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentSiteCodeSequence = [] + if "TreatmentSiteCodeSequence" in self._dataset: + del self._dataset.TreatmentSiteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentSiteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentSiteCodeSequence = value + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.clear() + self._dataset.TreatmentSiteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSiteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentSiteCodeSequence.append(item) + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.append(item.to_dataset()) + + @property + def FractionGroupSequence(self) -> Optional[List[FractionGroupSequenceItem]]: + if "FractionGroupSequence" in self._dataset: + if len(self._FractionGroupSequence) == len(self._dataset.FractionGroupSequence): + return self._FractionGroupSequence + else: + return [FractionGroupSequenceItem(x) for x in self._dataset.FractionGroupSequence] + return None + + @FractionGroupSequence.setter + def FractionGroupSequence(self, value: Optional[List[FractionGroupSequenceItem]]): + if value is None: + self._FractionGroupSequence = [] + if "FractionGroupSequence" in self._dataset: + del self._dataset.FractionGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, FractionGroupSequenceItem) for item in value): + raise ValueError("FractionGroupSequence must be a list of FractionGroupSequenceItem objects") + else: + self._FractionGroupSequence = value + if "FractionGroupSequence" not in self._dataset: + self._dataset.FractionGroupSequence = pydicom.Sequence() + self._dataset.FractionGroupSequence.clear() + self._dataset.FractionGroupSequence.extend([item.to_dataset() for item in value]) + + def add_FractionGroup(self, item: FractionGroupSequenceItem): + if not isinstance(item, FractionGroupSequenceItem): + raise ValueError("Item must be an instance of FractionGroupSequenceItem") + self._FractionGroupSequence.append(item) + if "FractionGroupSequence" not in self._dataset: + self._dataset.FractionGroupSequence = pydicom.Sequence() + self._dataset.FractionGroupSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_patient_position_acquisition_instruction.py b/tdwii_plus_examples/domain_model/rt_patient_position_acquisition_instruction.py new file mode 100644 index 0000000..1cb6b5b --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_patient_position_acquisition_instruction.py @@ -0,0 +1,4787 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_device_sequence_item import AcquisitionDeviceSequenceItem +from .acquisition_task_sequence_item import AcquisitionTaskSequenceItem +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .general_accessory_definition_sequence_item import ( + GeneralAccessoryDefinitionSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_accessory_holder_definition_sequence_item import ( + RTAccessoryHolderDefinitionSequenceItem, +) +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtPatientPositionAcquisitionInstruction: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._AcquisitionDeviceSequence: List[AcquisitionDeviceSequenceItem] = [] + self._RTAccessoryHolderDefinitionSequence: List[RTAccessoryHolderDefinitionSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._GeneralAccessoryDefinitionSequence: List[GeneralAccessoryDefinitionSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionTaskSequence: List[AcquisitionTaskSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def NumberOfAcquisitionDevices(self) -> Optional[int]: + if "NumberOfAcquisitionDevices" in self._dataset: + return self._dataset.NumberOfAcquisitionDevices + return None + + @NumberOfAcquisitionDevices.setter + def NumberOfAcquisitionDevices(self, value: Optional[int]): + if value is None: + if "NumberOfAcquisitionDevices" in self._dataset: + del self._dataset.NumberOfAcquisitionDevices + else: + self._dataset.NumberOfAcquisitionDevices = value + + @property + def AcquisitionDeviceSequence(self) -> Optional[List[AcquisitionDeviceSequenceItem]]: + if "AcquisitionDeviceSequence" in self._dataset: + if len(self._AcquisitionDeviceSequence) == len(self._dataset.AcquisitionDeviceSequence): + return self._AcquisitionDeviceSequence + else: + return [AcquisitionDeviceSequenceItem(x) for x in self._dataset.AcquisitionDeviceSequence] + return None + + @AcquisitionDeviceSequence.setter + def AcquisitionDeviceSequence(self, value: Optional[List[AcquisitionDeviceSequenceItem]]): + if value is None: + self._AcquisitionDeviceSequence = [] + if "AcquisitionDeviceSequence" in self._dataset: + del self._dataset.AcquisitionDeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionDeviceSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceSequence must be a list of AcquisitionDeviceSequenceItem objects") + else: + self._AcquisitionDeviceSequence = value + if "AcquisitionDeviceSequence" not in self._dataset: + self._dataset.AcquisitionDeviceSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceSequence.clear() + self._dataset.AcquisitionDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDevice(self, item: AcquisitionDeviceSequenceItem): + if not isinstance(item, AcquisitionDeviceSequenceItem): + raise ValueError("Item must be an instance of AcquisitionDeviceSequenceItem") + self._AcquisitionDeviceSequence.append(item) + if "AcquisitionDeviceSequence" not in self._dataset: + self._dataset.AcquisitionDeviceSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceSequence.append(item.to_dataset()) + + @property + def RTAccessoryHolderDefinitionSequence(self) -> Optional[List[RTAccessoryHolderDefinitionSequenceItem]]: + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + if len(self._RTAccessoryHolderDefinitionSequence) == len(self._dataset.RTAccessoryHolderDefinitionSequence): + return self._RTAccessoryHolderDefinitionSequence + else: + return [RTAccessoryHolderDefinitionSequenceItem(x) for x in self._dataset.RTAccessoryHolderDefinitionSequence] + return None + + @RTAccessoryHolderDefinitionSequence.setter + def RTAccessoryHolderDefinitionSequence(self, value: Optional[List[RTAccessoryHolderDefinitionSequenceItem]]): + if value is None: + self._RTAccessoryHolderDefinitionSequence = [] + if "RTAccessoryHolderDefinitionSequence" in self._dataset: + del self._dataset.RTAccessoryHolderDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTAccessoryHolderDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTAccessoryHolderDefinitionSequence must be a list of RTAccessoryHolderDefinitionSequenceItem objects" + ) + else: + self._RTAccessoryHolderDefinitionSequence = value + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.clear() + self._dataset.RTAccessoryHolderDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAccessoryHolderDefinition(self, item: RTAccessoryHolderDefinitionSequenceItem): + if not isinstance(item, RTAccessoryHolderDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTAccessoryHolderDefinitionSequenceItem") + self._RTAccessoryHolderDefinitionSequence.append(item) + if "RTAccessoryHolderDefinitionSequence" not in self._dataset: + self._dataset.RTAccessoryHolderDefinitionSequence = pydicom.Sequence() + self._dataset.RTAccessoryHolderDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfRTAccessoryHolders(self) -> Optional[int]: + if "NumberOfRTAccessoryHolders" in self._dataset: + return self._dataset.NumberOfRTAccessoryHolders + return None + + @NumberOfRTAccessoryHolders.setter + def NumberOfRTAccessoryHolders(self, value: Optional[int]): + if value is None: + if "NumberOfRTAccessoryHolders" in self._dataset: + del self._dataset.NumberOfRTAccessoryHolders + else: + self._dataset.NumberOfRTAccessoryHolders = value + + @property + def GeneralAccessoryDefinitionSequence(self) -> Optional[List[GeneralAccessoryDefinitionSequenceItem]]: + if "GeneralAccessoryDefinitionSequence" in self._dataset: + if len(self._GeneralAccessoryDefinitionSequence) == len(self._dataset.GeneralAccessoryDefinitionSequence): + return self._GeneralAccessoryDefinitionSequence + else: + return [GeneralAccessoryDefinitionSequenceItem(x) for x in self._dataset.GeneralAccessoryDefinitionSequence] + return None + + @GeneralAccessoryDefinitionSequence.setter + def GeneralAccessoryDefinitionSequence(self, value: Optional[List[GeneralAccessoryDefinitionSequenceItem]]): + if value is None: + self._GeneralAccessoryDefinitionSequence = [] + if "GeneralAccessoryDefinitionSequence" in self._dataset: + del self._dataset.GeneralAccessoryDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, GeneralAccessoryDefinitionSequenceItem) for item in value + ): + raise ValueError( + "GeneralAccessoryDefinitionSequence must be a list of GeneralAccessoryDefinitionSequenceItem objects" + ) + else: + self._GeneralAccessoryDefinitionSequence = value + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.clear() + self._dataset.GeneralAccessoryDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessoryDefinition(self, item: GeneralAccessoryDefinitionSequenceItem): + if not isinstance(item, GeneralAccessoryDefinitionSequenceItem): + raise ValueError("Item must be an instance of GeneralAccessoryDefinitionSequenceItem") + self._GeneralAccessoryDefinitionSequence.append(item) + if "GeneralAccessoryDefinitionSequence" not in self._dataset: + self._dataset.GeneralAccessoryDefinitionSequence = pydicom.Sequence() + self._dataset.GeneralAccessoryDefinitionSequence.append(item.to_dataset()) + + @property + def NumberOfGeneralAccessories(self) -> Optional[int]: + if "NumberOfGeneralAccessories" in self._dataset: + return self._dataset.NumberOfGeneralAccessories + return None + + @NumberOfGeneralAccessories.setter + def NumberOfGeneralAccessories(self, value: Optional[int]): + if value is None: + if "NumberOfGeneralAccessories" in self._dataset: + del self._dataset.NumberOfGeneralAccessories + else: + self._dataset.NumberOfGeneralAccessories = value + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionTaskSequence(self) -> Optional[List[AcquisitionTaskSequenceItem]]: + if "AcquisitionTaskSequence" in self._dataset: + if len(self._AcquisitionTaskSequence) == len(self._dataset.AcquisitionTaskSequence): + return self._AcquisitionTaskSequence + else: + return [AcquisitionTaskSequenceItem(x) for x in self._dataset.AcquisitionTaskSequence] + return None + + @AcquisitionTaskSequence.setter + def AcquisitionTaskSequence(self, value: Optional[List[AcquisitionTaskSequenceItem]]): + if value is None: + self._AcquisitionTaskSequence = [] + if "AcquisitionTaskSequence" in self._dataset: + del self._dataset.AcquisitionTaskSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionTaskSequenceItem) for item in value): + raise ValueError("AcquisitionTaskSequence must be a list of AcquisitionTaskSequenceItem objects") + else: + self._AcquisitionTaskSequence = value + if "AcquisitionTaskSequence" not in self._dataset: + self._dataset.AcquisitionTaskSequence = pydicom.Sequence() + self._dataset.AcquisitionTaskSequence.clear() + self._dataset.AcquisitionTaskSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionTask(self, item: AcquisitionTaskSequenceItem): + if not isinstance(item, AcquisitionTaskSequenceItem): + raise ValueError("Item must be an instance of AcquisitionTaskSequenceItem") + self._AcquisitionTaskSequence.append(item) + if "AcquisitionTaskSequence" not in self._dataset: + self._dataset.AcquisitionTaskSequence = pydicom.Sequence() + self._dataset.AcquisitionTaskSequence.append(item.to_dataset()) + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_patient_position_displacement_sequence_item.py b/tdwii_plus_examples/domain_model/rt_patient_position_displacement_sequence_item.py new file mode 100644 index 0000000..33e164b --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_patient_position_displacement_sequence_item.py @@ -0,0 +1,150 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .conceptual_volume_sequence_item import ConceptualVolumeSequenceItem +from .patient_support_displacement_sequence_item import ( + PatientSupportDisplacementSequenceItem, +) + + +class RTPatientPositionDisplacementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientSupportDisplacementSequence: List[PatientSupportDisplacementSequenceItem] = [] + self._DisplacementReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._ConceptualVolumeSequence: List[ConceptualVolumeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DisplacementReferenceLabel(self) -> Optional[str]: + if "DisplacementReferenceLabel" in self._dataset: + return self._dataset.DisplacementReferenceLabel + return None + + @DisplacementReferenceLabel.setter + def DisplacementReferenceLabel(self, value: Optional[str]): + if value is None: + if "DisplacementReferenceLabel" in self._dataset: + del self._dataset.DisplacementReferenceLabel + else: + self._dataset.DisplacementReferenceLabel = value + + @property + def DisplacementMatrix(self) -> Optional[List[float]]: + if "DisplacementMatrix" in self._dataset: + return self._dataset.DisplacementMatrix + return None + + @DisplacementMatrix.setter + def DisplacementMatrix(self, value: Optional[List[float]]): + if value is None: + if "DisplacementMatrix" in self._dataset: + del self._dataset.DisplacementMatrix + else: + self._dataset.DisplacementMatrix = value + + @property + def PatientSupportDisplacementSequence(self) -> Optional[List[PatientSupportDisplacementSequenceItem]]: + if "PatientSupportDisplacementSequence" in self._dataset: + if len(self._PatientSupportDisplacementSequence) == len(self._dataset.PatientSupportDisplacementSequence): + return self._PatientSupportDisplacementSequence + else: + return [PatientSupportDisplacementSequenceItem(x) for x in self._dataset.PatientSupportDisplacementSequence] + return None + + @PatientSupportDisplacementSequence.setter + def PatientSupportDisplacementSequence(self, value: Optional[List[PatientSupportDisplacementSequenceItem]]): + if value is None: + self._PatientSupportDisplacementSequence = [] + if "PatientSupportDisplacementSequence" in self._dataset: + del self._dataset.PatientSupportDisplacementSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientSupportDisplacementSequenceItem) for item in value + ): + raise ValueError( + "PatientSupportDisplacementSequence must be a list of PatientSupportDisplacementSequenceItem objects" + ) + else: + self._PatientSupportDisplacementSequence = value + if "PatientSupportDisplacementSequence" not in self._dataset: + self._dataset.PatientSupportDisplacementSequence = pydicom.Sequence() + self._dataset.PatientSupportDisplacementSequence.clear() + self._dataset.PatientSupportDisplacementSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDisplacement(self, item: PatientSupportDisplacementSequenceItem): + if not isinstance(item, PatientSupportDisplacementSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDisplacementSequenceItem") + self._PatientSupportDisplacementSequence.append(item) + if "PatientSupportDisplacementSequence" not in self._dataset: + self._dataset.PatientSupportDisplacementSequence = pydicom.Sequence() + self._dataset.PatientSupportDisplacementSequence.append(item.to_dataset()) + + @property + def DisplacementReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DisplacementReferenceLocationCodeSequence" in self._dataset: + if len(self._DisplacementReferenceLocationCodeSequence) == len( + self._dataset.DisplacementReferenceLocationCodeSequence + ): + return self._DisplacementReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DisplacementReferenceLocationCodeSequence] + return None + + @DisplacementReferenceLocationCodeSequence.setter + def DisplacementReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DisplacementReferenceLocationCodeSequence = [] + if "DisplacementReferenceLocationCodeSequence" in self._dataset: + del self._dataset.DisplacementReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DisplacementReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DisplacementReferenceLocationCodeSequence = value + if "DisplacementReferenceLocationCodeSequence" not in self._dataset: + self._dataset.DisplacementReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.DisplacementReferenceLocationCodeSequence.clear() + self._dataset.DisplacementReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DisplacementReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DisplacementReferenceLocationCodeSequence.append(item) + if "DisplacementReferenceLocationCodeSequence" not in self._dataset: + self._dataset.DisplacementReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.DisplacementReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeSequence(self) -> Optional[List[ConceptualVolumeSequenceItem]]: + if "ConceptualVolumeSequence" in self._dataset: + if len(self._ConceptualVolumeSequence) == len(self._dataset.ConceptualVolumeSequence): + return self._ConceptualVolumeSequence + else: + return [ConceptualVolumeSequenceItem(x) for x in self._dataset.ConceptualVolumeSequence] + return None + + @ConceptualVolumeSequence.setter + def ConceptualVolumeSequence(self, value: Optional[List[ConceptualVolumeSequenceItem]]): + if value is None: + self._ConceptualVolumeSequence = [] + if "ConceptualVolumeSequence" in self._dataset: + del self._dataset.ConceptualVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, ConceptualVolumeSequenceItem) for item in value): + raise ValueError("ConceptualVolumeSequence must be a list of ConceptualVolumeSequenceItem objects") + else: + self._ConceptualVolumeSequence = value + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.clear() + self._dataset.ConceptualVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolume(self, item: ConceptualVolumeSequenceItem): + if not isinstance(item, ConceptualVolumeSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeSequenceItem") + self._ConceptualVolumeSequence.append(item) + if "ConceptualVolumeSequence" not in self._dataset: + self._dataset.ConceptualVolumeSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_patient_position_scope_sequence_item.py b/tdwii_plus_examples/domain_model/rt_patient_position_scope_sequence_item.py new file mode 100644 index 0000000..6df2a93 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_patient_position_scope_sequence_item.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem +from .referenced_rt_radiation_set_sequence_item import ( + ReferencedRTRadiationSetSequenceItem, +) + + +class RTPatientPositionScopeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + self._ReferencedRTRadiationSetSequence: List[ReferencedRTRadiationSetSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSetSequence(self) -> Optional[List[ReferencedRTRadiationSetSequenceItem]]: + if "ReferencedRTRadiationSetSequence" in self._dataset: + if len(self._ReferencedRTRadiationSetSequence) == len(self._dataset.ReferencedRTRadiationSetSequence): + return self._ReferencedRTRadiationSetSequence + else: + return [ReferencedRTRadiationSetSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSetSequence] + return None + + @ReferencedRTRadiationSetSequence.setter + def ReferencedRTRadiationSetSequence(self, value: Optional[List[ReferencedRTRadiationSetSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSetSequence = [] + if "ReferencedRTRadiationSetSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSetSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSetSequence must be a list of ReferencedRTRadiationSetSequenceItem objects") + else: + self._ReferencedRTRadiationSetSequence = value + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.clear() + self._dataset.ReferencedRTRadiationSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationSet(self, item: ReferencedRTRadiationSetSequenceItem): + if not isinstance(item, ReferencedRTRadiationSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSetSequenceItem") + self._ReferencedRTRadiationSetSequence.append(item) + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_patient_position_sequence_item.py b/tdwii_plus_examples/domain_model/rt_patient_position_sequence_item.py new file mode 100644 index 0000000..c332897 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_patient_position_sequence_item.py @@ -0,0 +1,115 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .patient_location_coordinates_sequence_item import ( + PatientLocationCoordinatesSequenceItem, +) +from .patient_support_position_sequence_item import PatientSupportPositionSequenceItem + + +class RTPatientPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientLocationCoordinatesSequence: List[PatientLocationCoordinatesSequenceItem] = [] + self._PatientSupportPositionSequence: List[PatientSupportPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageToEquipmentMappingMatrix(self) -> Optional[List[Decimal]]: + if "ImageToEquipmentMappingMatrix" in self._dataset: + return self._dataset.ImageToEquipmentMappingMatrix + return None + + @ImageToEquipmentMappingMatrix.setter + def ImageToEquipmentMappingMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageToEquipmentMappingMatrix" in self._dataset: + del self._dataset.ImageToEquipmentMappingMatrix + else: + self._dataset.ImageToEquipmentMappingMatrix = value + + @property + def FrameOfReferenceTransformationComment(self) -> Optional[str]: + if "FrameOfReferenceTransformationComment" in self._dataset: + return self._dataset.FrameOfReferenceTransformationComment + return None + + @FrameOfReferenceTransformationComment.setter + def FrameOfReferenceTransformationComment(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationComment" in self._dataset: + del self._dataset.FrameOfReferenceTransformationComment + else: + self._dataset.FrameOfReferenceTransformationComment = value + + @property + def PatientLocationCoordinatesSequence(self) -> Optional[List[PatientLocationCoordinatesSequenceItem]]: + if "PatientLocationCoordinatesSequence" in self._dataset: + if len(self._PatientLocationCoordinatesSequence) == len(self._dataset.PatientLocationCoordinatesSequence): + return self._PatientLocationCoordinatesSequence + else: + return [PatientLocationCoordinatesSequenceItem(x) for x in self._dataset.PatientLocationCoordinatesSequence] + return None + + @PatientLocationCoordinatesSequence.setter + def PatientLocationCoordinatesSequence(self, value: Optional[List[PatientLocationCoordinatesSequenceItem]]): + if value is None: + self._PatientLocationCoordinatesSequence = [] + if "PatientLocationCoordinatesSequence" in self._dataset: + del self._dataset.PatientLocationCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientLocationCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "PatientLocationCoordinatesSequence must be a list of PatientLocationCoordinatesSequenceItem objects" + ) + else: + self._PatientLocationCoordinatesSequence = value + if "PatientLocationCoordinatesSequence" not in self._dataset: + self._dataset.PatientLocationCoordinatesSequence = pydicom.Sequence() + self._dataset.PatientLocationCoordinatesSequence.clear() + self._dataset.PatientLocationCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientLocationCoordinates(self, item: PatientLocationCoordinatesSequenceItem): + if not isinstance(item, PatientLocationCoordinatesSequenceItem): + raise ValueError("Item must be an instance of PatientLocationCoordinatesSequenceItem") + self._PatientLocationCoordinatesSequence.append(item) + if "PatientLocationCoordinatesSequence" not in self._dataset: + self._dataset.PatientLocationCoordinatesSequence = pydicom.Sequence() + self._dataset.PatientLocationCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportPositionSequence(self) -> Optional[List[PatientSupportPositionSequenceItem]]: + if "PatientSupportPositionSequence" in self._dataset: + if len(self._PatientSupportPositionSequence) == len(self._dataset.PatientSupportPositionSequence): + return self._PatientSupportPositionSequence + else: + return [PatientSupportPositionSequenceItem(x) for x in self._dataset.PatientSupportPositionSequence] + return None + + @PatientSupportPositionSequence.setter + def PatientSupportPositionSequence(self, value: Optional[List[PatientSupportPositionSequenceItem]]): + if value is None: + self._PatientSupportPositionSequence = [] + if "PatientSupportPositionSequence" in self._dataset: + del self._dataset.PatientSupportPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportPositionSequenceItem) for item in value): + raise ValueError("PatientSupportPositionSequence must be a list of PatientSupportPositionSequenceItem objects") + else: + self._PatientSupportPositionSequence = value + if "PatientSupportPositionSequence" not in self._dataset: + self._dataset.PatientSupportPositionSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionSequence.clear() + self._dataset.PatientSupportPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPosition(self, item: PatientSupportPositionSequenceItem): + if not isinstance(item, PatientSupportPositionSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionSequenceItem") + self._PatientSupportPositionSequence.append(item) + if "PatientSupportPositionSequence" not in self._dataset: + self._dataset.PatientSupportPositionSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_physician_intent.py b/tdwii_plus_examples/domain_model/rt_physician_intent.py new file mode 100644 index 0000000..0598c20 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_physician_intent.py @@ -0,0 +1,4716 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dosimetric_objective_sequence_item import DosimetricObjectiveSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .intended_rt_treatment_phase_sequence_item import ( + IntendedRTTreatmentPhaseSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_physician_intent_sequence_item import RTPhysicianIntentSequenceItem +from .rt_prescription_sequence_item import RTPrescriptionSequenceItem +from .rt_treatment_phase_interval_sequence_item import ( + RTTreatmentPhaseIntervalSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtPhysicianIntent: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTPhysicianIntentSequence: List[RTPhysicianIntentSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._RTPrescriptionSequence: List[RTPrescriptionSequenceItem] = [] + self._DosimetricObjectiveSequence: List[DosimetricObjectiveSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._IntendedRTTreatmentPhaseSequence: List[IntendedRTTreatmentPhaseSequenceItem] = [] + self._RTTreatmentPhaseIntervalSequence: List[RTTreatmentPhaseIntervalSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def RTTreatmentPhaseIntentPresenceFlag(self) -> Optional[str]: + if "RTTreatmentPhaseIntentPresenceFlag" in self._dataset: + return self._dataset.RTTreatmentPhaseIntentPresenceFlag + return None + + @RTTreatmentPhaseIntentPresenceFlag.setter + def RTTreatmentPhaseIntentPresenceFlag(self, value: Optional[str]): + if value is None: + if "RTTreatmentPhaseIntentPresenceFlag" in self._dataset: + del self._dataset.RTTreatmentPhaseIntentPresenceFlag + else: + self._dataset.RTTreatmentPhaseIntentPresenceFlag = value + + @property + def RTPhysicianIntentSequence(self) -> Optional[List[RTPhysicianIntentSequenceItem]]: + if "RTPhysicianIntentSequence" in self._dataset: + if len(self._RTPhysicianIntentSequence) == len(self._dataset.RTPhysicianIntentSequence): + return self._RTPhysicianIntentSequence + else: + return [RTPhysicianIntentSequenceItem(x) for x in self._dataset.RTPhysicianIntentSequence] + return None + + @RTPhysicianIntentSequence.setter + def RTPhysicianIntentSequence(self, value: Optional[List[RTPhysicianIntentSequenceItem]]): + if value is None: + self._RTPhysicianIntentSequence = [] + if "RTPhysicianIntentSequence" in self._dataset: + del self._dataset.RTPhysicianIntentSequence + elif not isinstance(value, list) or not all(isinstance(item, RTPhysicianIntentSequenceItem) for item in value): + raise ValueError("RTPhysicianIntentSequence must be a list of RTPhysicianIntentSequenceItem objects") + else: + self._RTPhysicianIntentSequence = value + if "RTPhysicianIntentSequence" not in self._dataset: + self._dataset.RTPhysicianIntentSequence = pydicom.Sequence() + self._dataset.RTPhysicianIntentSequence.clear() + self._dataset.RTPhysicianIntentSequence.extend([item.to_dataset() for item in value]) + + def add_RTPhysicianIntent(self, item: RTPhysicianIntentSequenceItem): + if not isinstance(item, RTPhysicianIntentSequenceItem): + raise ValueError("Item must be an instance of RTPhysicianIntentSequenceItem") + self._RTPhysicianIntentSequence.append(item) + if "RTPhysicianIntentSequence" not in self._dataset: + self._dataset.RTPhysicianIntentSequence = pydicom.Sequence() + self._dataset.RTPhysicianIntentSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def RTPrescriptionSequence(self) -> Optional[List[RTPrescriptionSequenceItem]]: + if "RTPrescriptionSequence" in self._dataset: + if len(self._RTPrescriptionSequence) == len(self._dataset.RTPrescriptionSequence): + return self._RTPrescriptionSequence + else: + return [RTPrescriptionSequenceItem(x) for x in self._dataset.RTPrescriptionSequence] + return None + + @RTPrescriptionSequence.setter + def RTPrescriptionSequence(self, value: Optional[List[RTPrescriptionSequenceItem]]): + if value is None: + self._RTPrescriptionSequence = [] + if "RTPrescriptionSequence" in self._dataset: + del self._dataset.RTPrescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, RTPrescriptionSequenceItem) for item in value): + raise ValueError("RTPrescriptionSequence must be a list of RTPrescriptionSequenceItem objects") + else: + self._RTPrescriptionSequence = value + if "RTPrescriptionSequence" not in self._dataset: + self._dataset.RTPrescriptionSequence = pydicom.Sequence() + self._dataset.RTPrescriptionSequence.clear() + self._dataset.RTPrescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_RTPrescription(self, item: RTPrescriptionSequenceItem): + if not isinstance(item, RTPrescriptionSequenceItem): + raise ValueError("Item must be an instance of RTPrescriptionSequenceItem") + self._RTPrescriptionSequence.append(item) + if "RTPrescriptionSequence" not in self._dataset: + self._dataset.RTPrescriptionSequence = pydicom.Sequence() + self._dataset.RTPrescriptionSequence.append(item.to_dataset()) + + @property + def DosimetricObjectiveSequence(self) -> Optional[List[DosimetricObjectiveSequenceItem]]: + if "DosimetricObjectiveSequence" in self._dataset: + if len(self._DosimetricObjectiveSequence) == len(self._dataset.DosimetricObjectiveSequence): + return self._DosimetricObjectiveSequence + else: + return [DosimetricObjectiveSequenceItem(x) for x in self._dataset.DosimetricObjectiveSequence] + return None + + @DosimetricObjectiveSequence.setter + def DosimetricObjectiveSequence(self, value: Optional[List[DosimetricObjectiveSequenceItem]]): + if value is None: + self._DosimetricObjectiveSequence = [] + if "DosimetricObjectiveSequence" in self._dataset: + del self._dataset.DosimetricObjectiveSequence + elif not isinstance(value, list) or not all(isinstance(item, DosimetricObjectiveSequenceItem) for item in value): + raise ValueError("DosimetricObjectiveSequence must be a list of DosimetricObjectiveSequenceItem objects") + else: + self._DosimetricObjectiveSequence = value + if "DosimetricObjectiveSequence" not in self._dataset: + self._dataset.DosimetricObjectiveSequence = pydicom.Sequence() + self._dataset.DosimetricObjectiveSequence.clear() + self._dataset.DosimetricObjectiveSequence.extend([item.to_dataset() for item in value]) + + def add_DosimetricObjective(self, item: DosimetricObjectiveSequenceItem): + if not isinstance(item, DosimetricObjectiveSequenceItem): + raise ValueError("Item must be an instance of DosimetricObjectiveSequenceItem") + self._DosimetricObjectiveSequence.append(item) + if "DosimetricObjectiveSequence" not in self._dataset: + self._dataset.DosimetricObjectiveSequence = pydicom.Sequence() + self._dataset.DosimetricObjectiveSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def IntendedRTTreatmentPhaseSequence(self) -> Optional[List[IntendedRTTreatmentPhaseSequenceItem]]: + if "IntendedRTTreatmentPhaseSequence" in self._dataset: + if len(self._IntendedRTTreatmentPhaseSequence) == len(self._dataset.IntendedRTTreatmentPhaseSequence): + return self._IntendedRTTreatmentPhaseSequence + else: + return [IntendedRTTreatmentPhaseSequenceItem(x) for x in self._dataset.IntendedRTTreatmentPhaseSequence] + return None + + @IntendedRTTreatmentPhaseSequence.setter + def IntendedRTTreatmentPhaseSequence(self, value: Optional[List[IntendedRTTreatmentPhaseSequenceItem]]): + if value is None: + self._IntendedRTTreatmentPhaseSequence = [] + if "IntendedRTTreatmentPhaseSequence" in self._dataset: + del self._dataset.IntendedRTTreatmentPhaseSequence + elif not isinstance(value, list) or not all(isinstance(item, IntendedRTTreatmentPhaseSequenceItem) for item in value): + raise ValueError("IntendedRTTreatmentPhaseSequence must be a list of IntendedRTTreatmentPhaseSequenceItem objects") + else: + self._IntendedRTTreatmentPhaseSequence = value + if "IntendedRTTreatmentPhaseSequence" not in self._dataset: + self._dataset.IntendedRTTreatmentPhaseSequence = pydicom.Sequence() + self._dataset.IntendedRTTreatmentPhaseSequence.clear() + self._dataset.IntendedRTTreatmentPhaseSequence.extend([item.to_dataset() for item in value]) + + def add_IntendedRTTreatmentPhase(self, item: IntendedRTTreatmentPhaseSequenceItem): + if not isinstance(item, IntendedRTTreatmentPhaseSequenceItem): + raise ValueError("Item must be an instance of IntendedRTTreatmentPhaseSequenceItem") + self._IntendedRTTreatmentPhaseSequence.append(item) + if "IntendedRTTreatmentPhaseSequence" not in self._dataset: + self._dataset.IntendedRTTreatmentPhaseSequence = pydicom.Sequence() + self._dataset.IntendedRTTreatmentPhaseSequence.append(item.to_dataset()) + + @property + def RTTreatmentPhaseIntervalSequence(self) -> Optional[List[RTTreatmentPhaseIntervalSequenceItem]]: + if "RTTreatmentPhaseIntervalSequence" in self._dataset: + if len(self._RTTreatmentPhaseIntervalSequence) == len(self._dataset.RTTreatmentPhaseIntervalSequence): + return self._RTTreatmentPhaseIntervalSequence + else: + return [RTTreatmentPhaseIntervalSequenceItem(x) for x in self._dataset.RTTreatmentPhaseIntervalSequence] + return None + + @RTTreatmentPhaseIntervalSequence.setter + def RTTreatmentPhaseIntervalSequence(self, value: Optional[List[RTTreatmentPhaseIntervalSequenceItem]]): + if value is None: + self._RTTreatmentPhaseIntervalSequence = [] + if "RTTreatmentPhaseIntervalSequence" in self._dataset: + del self._dataset.RTTreatmentPhaseIntervalSequence + elif not isinstance(value, list) or not all(isinstance(item, RTTreatmentPhaseIntervalSequenceItem) for item in value): + raise ValueError("RTTreatmentPhaseIntervalSequence must be a list of RTTreatmentPhaseIntervalSequenceItem objects") + else: + self._RTTreatmentPhaseIntervalSequence = value + if "RTTreatmentPhaseIntervalSequence" not in self._dataset: + self._dataset.RTTreatmentPhaseIntervalSequence = pydicom.Sequence() + self._dataset.RTTreatmentPhaseIntervalSequence.clear() + self._dataset.RTTreatmentPhaseIntervalSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentPhaseInterval(self, item: RTTreatmentPhaseIntervalSequenceItem): + if not isinstance(item, RTTreatmentPhaseIntervalSequenceItem): + raise ValueError("Item must be an instance of RTTreatmentPhaseIntervalSequenceItem") + self._RTTreatmentPhaseIntervalSequence.append(item) + if "RTTreatmentPhaseIntervalSequence" not in self._dataset: + self._dataset.RTTreatmentPhaseIntervalSequence = pydicom.Sequence() + self._dataset.RTTreatmentPhaseIntervalSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_physician_intent_input_instance_sequence_item.py b/tdwii_plus_examples/domain_model/rt_physician_intent_input_instance_sequence_item.py new file mode 100644 index 0000000..4bf9e28 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_physician_intent_input_instance_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem + + +class RTPhysicianIntentInputInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_physician_intent_predecessor_sequence_item.py b/tdwii_plus_examples/domain_model/rt_physician_intent_predecessor_sequence_item.py new file mode 100644 index 0000000..488d414 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_physician_intent_predecessor_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTPhysicianIntentPredecessorSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReasonForSuperseding(self) -> Optional[str]: + if "ReasonForSuperseding" in self._dataset: + return self._dataset.ReasonForSuperseding + return None + + @ReasonForSuperseding.setter + def ReasonForSuperseding(self, value: Optional[str]): + if value is None: + if "ReasonForSuperseding" in self._dataset: + del self._dataset.ReasonForSuperseding + else: + self._dataset.ReasonForSuperseding = value diff --git a/tdwii_plus_examples/domain_model/rt_physician_intent_sequence_item.py b/tdwii_plus_examples/domain_model/rt_physician_intent_sequence_item.py new file mode 100644 index 0000000..7ee9dd2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_physician_intent_sequence_item.py @@ -0,0 +1,266 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .rt_physician_intent_input_instance_sequence_item import ( + RTPhysicianIntentInputInstanceSequenceItem, +) +from .rt_physician_intent_predecessor_sequence_item import ( + RTPhysicianIntentPredecessorSequenceItem, +) + + +class RTPhysicianIntentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTPhysicianIntentPredecessorSequence: List[RTPhysicianIntentPredecessorSequenceItem] = [] + self._RTProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RTDiagnosisCodeSequence: List[CodeSequenceItem] = [] + self._RTPhysicianIntentInputInstanceSequence: List[RTPhysicianIntentInputInstanceSequenceItem] = [] + self._TreatmentSiteCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTPhysicianIntentPredecessorSequence(self) -> Optional[List[RTPhysicianIntentPredecessorSequenceItem]]: + if "RTPhysicianIntentPredecessorSequence" in self._dataset: + if len(self._RTPhysicianIntentPredecessorSequence) == len(self._dataset.RTPhysicianIntentPredecessorSequence): + return self._RTPhysicianIntentPredecessorSequence + else: + return [ + RTPhysicianIntentPredecessorSequenceItem(x) for x in self._dataset.RTPhysicianIntentPredecessorSequence + ] + return None + + @RTPhysicianIntentPredecessorSequence.setter + def RTPhysicianIntentPredecessorSequence(self, value: Optional[List[RTPhysicianIntentPredecessorSequenceItem]]): + if value is None: + self._RTPhysicianIntentPredecessorSequence = [] + if "RTPhysicianIntentPredecessorSequence" in self._dataset: + del self._dataset.RTPhysicianIntentPredecessorSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTPhysicianIntentPredecessorSequenceItem) for item in value + ): + raise ValueError( + "RTPhysicianIntentPredecessorSequence must be a list of RTPhysicianIntentPredecessorSequenceItem objects" + ) + else: + self._RTPhysicianIntentPredecessorSequence = value + if "RTPhysicianIntentPredecessorSequence" not in self._dataset: + self._dataset.RTPhysicianIntentPredecessorSequence = pydicom.Sequence() + self._dataset.RTPhysicianIntentPredecessorSequence.clear() + self._dataset.RTPhysicianIntentPredecessorSequence.extend([item.to_dataset() for item in value]) + + def add_RTPhysicianIntentPredecessor(self, item: RTPhysicianIntentPredecessorSequenceItem): + if not isinstance(item, RTPhysicianIntentPredecessorSequenceItem): + raise ValueError("Item must be an instance of RTPhysicianIntentPredecessorSequenceItem") + self._RTPhysicianIntentPredecessorSequence.append(item) + if "RTPhysicianIntentPredecessorSequence" not in self._dataset: + self._dataset.RTPhysicianIntentPredecessorSequence = pydicom.Sequence() + self._dataset.RTPhysicianIntentPredecessorSequence.append(item.to_dataset()) + + @property + def RTTreatmentApproachLabel(self) -> Optional[str]: + if "RTTreatmentApproachLabel" in self._dataset: + return self._dataset.RTTreatmentApproachLabel + return None + + @RTTreatmentApproachLabel.setter + def RTTreatmentApproachLabel(self, value: Optional[str]): + if value is None: + if "RTTreatmentApproachLabel" in self._dataset: + del self._dataset.RTTreatmentApproachLabel + else: + self._dataset.RTTreatmentApproachLabel = value + + @property + def RTPhysicianIntentIndex(self) -> Optional[int]: + if "RTPhysicianIntentIndex" in self._dataset: + return self._dataset.RTPhysicianIntentIndex + return None + + @RTPhysicianIntentIndex.setter + def RTPhysicianIntentIndex(self, value: Optional[int]): + if value is None: + if "RTPhysicianIntentIndex" in self._dataset: + del self._dataset.RTPhysicianIntentIndex + else: + self._dataset.RTPhysicianIntentIndex = value + + @property + def RTTreatmentIntentType(self) -> Optional[str]: + if "RTTreatmentIntentType" in self._dataset: + return self._dataset.RTTreatmentIntentType + return None + + @RTTreatmentIntentType.setter + def RTTreatmentIntentType(self, value: Optional[str]): + if value is None: + if "RTTreatmentIntentType" in self._dataset: + del self._dataset.RTTreatmentIntentType + else: + self._dataset.RTTreatmentIntentType = value + + @property + def RTPhysicianIntentNarrative(self) -> Optional[str]: + if "RTPhysicianIntentNarrative" in self._dataset: + return self._dataset.RTPhysicianIntentNarrative + return None + + @RTPhysicianIntentNarrative.setter + def RTPhysicianIntentNarrative(self, value: Optional[str]): + if value is None: + if "RTPhysicianIntentNarrative" in self._dataset: + del self._dataset.RTPhysicianIntentNarrative + else: + self._dataset.RTPhysicianIntentNarrative = value + + @property + def RTProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTProtocolCodeSequence" in self._dataset: + if len(self._RTProtocolCodeSequence) == len(self._dataset.RTProtocolCodeSequence): + return self._RTProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTProtocolCodeSequence] + return None + + @RTProtocolCodeSequence.setter + def RTProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTProtocolCodeSequence = [] + if "RTProtocolCodeSequence" in self._dataset: + del self._dataset.RTProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTProtocolCodeSequence = value + if "RTProtocolCodeSequence" not in self._dataset: + self._dataset.RTProtocolCodeSequence = pydicom.Sequence() + self._dataset.RTProtocolCodeSequence.clear() + self._dataset.RTProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTProtocolCodeSequence.append(item) + if "RTProtocolCodeSequence" not in self._dataset: + self._dataset.RTProtocolCodeSequence = pydicom.Sequence() + self._dataset.RTProtocolCodeSequence.append(item.to_dataset()) + + @property + def RTDiagnosisCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDiagnosisCodeSequence" in self._dataset: + if len(self._RTDiagnosisCodeSequence) == len(self._dataset.RTDiagnosisCodeSequence): + return self._RTDiagnosisCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDiagnosisCodeSequence] + return None + + @RTDiagnosisCodeSequence.setter + def RTDiagnosisCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDiagnosisCodeSequence = [] + if "RTDiagnosisCodeSequence" in self._dataset: + del self._dataset.RTDiagnosisCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDiagnosisCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDiagnosisCodeSequence = value + if "RTDiagnosisCodeSequence" not in self._dataset: + self._dataset.RTDiagnosisCodeSequence = pydicom.Sequence() + self._dataset.RTDiagnosisCodeSequence.clear() + self._dataset.RTDiagnosisCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDiagnosisCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDiagnosisCodeSequence.append(item) + if "RTDiagnosisCodeSequence" not in self._dataset: + self._dataset.RTDiagnosisCodeSequence = pydicom.Sequence() + self._dataset.RTDiagnosisCodeSequence.append(item.to_dataset()) + + @property + def RTPhysicianIntentInputInstanceSequence(self) -> Optional[List[RTPhysicianIntentInputInstanceSequenceItem]]: + if "RTPhysicianIntentInputInstanceSequence" in self._dataset: + if len(self._RTPhysicianIntentInputInstanceSequence) == len(self._dataset.RTPhysicianIntentInputInstanceSequence): + return self._RTPhysicianIntentInputInstanceSequence + else: + return [ + RTPhysicianIntentInputInstanceSequenceItem(x) for x in self._dataset.RTPhysicianIntentInputInstanceSequence + ] + return None + + @RTPhysicianIntentInputInstanceSequence.setter + def RTPhysicianIntentInputInstanceSequence(self, value: Optional[List[RTPhysicianIntentInputInstanceSequenceItem]]): + if value is None: + self._RTPhysicianIntentInputInstanceSequence = [] + if "RTPhysicianIntentInputInstanceSequence" in self._dataset: + del self._dataset.RTPhysicianIntentInputInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTPhysicianIntentInputInstanceSequenceItem) for item in value + ): + raise ValueError( + "RTPhysicianIntentInputInstanceSequence must be a list of RTPhysicianIntentInputInstanceSequenceItem objects" + ) + else: + self._RTPhysicianIntentInputInstanceSequence = value + if "RTPhysicianIntentInputInstanceSequence" not in self._dataset: + self._dataset.RTPhysicianIntentInputInstanceSequence = pydicom.Sequence() + self._dataset.RTPhysicianIntentInputInstanceSequence.clear() + self._dataset.RTPhysicianIntentInputInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_RTPhysicianIntentInputInstance(self, item: RTPhysicianIntentInputInstanceSequenceItem): + if not isinstance(item, RTPhysicianIntentInputInstanceSequenceItem): + raise ValueError("Item must be an instance of RTPhysicianIntentInputInstanceSequenceItem") + self._RTPhysicianIntentInputInstanceSequence.append(item) + if "RTPhysicianIntentInputInstanceSequence" not in self._dataset: + self._dataset.RTPhysicianIntentInputInstanceSequence = pydicom.Sequence() + self._dataset.RTPhysicianIntentInputInstanceSequence.append(item.to_dataset()) + + @property + def TreatmentSite(self) -> Optional[str]: + if "TreatmentSite" in self._dataset: + return self._dataset.TreatmentSite + return None + + @TreatmentSite.setter + def TreatmentSite(self, value: Optional[str]): + if value is None: + if "TreatmentSite" in self._dataset: + del self._dataset.TreatmentSite + else: + self._dataset.TreatmentSite = value + + @property + def TreatmentSiteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentSiteCodeSequence" in self._dataset: + if len(self._TreatmentSiteCodeSequence) == len(self._dataset.TreatmentSiteCodeSequence): + return self._TreatmentSiteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentSiteCodeSequence] + return None + + @TreatmentSiteCodeSequence.setter + def TreatmentSiteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentSiteCodeSequence = [] + if "TreatmentSiteCodeSequence" in self._dataset: + del self._dataset.TreatmentSiteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentSiteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentSiteCodeSequence = value + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.clear() + self._dataset.TreatmentSiteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSiteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentSiteCodeSequence.append(item) + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_plan.py b/tdwii_plus_examples/domain_model/rt_plan.py new file mode 100644 index 0000000..b6a30d4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_plan.py @@ -0,0 +1,4642 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .application_setup_sequence_item import ApplicationSetupSequenceItem +from .beam_sequence_item import BeamSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dose_reference_sequence_item import DoseReferenceSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_group_sequence_item import FractionGroupSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_setup_sequence_item import PatientSetupSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_dose_sequence_item import ReferencedDoseSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_structure_set_sequence_item import ReferencedStructureSetSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .source_sequence_item import SourceSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .tolerance_table_sequence_item import ToleranceTableSequenceItem +from .treatment_machine_sequence_item import TreatmentMachineSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RtPlan: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ToleranceTableSequence: List[ToleranceTableSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._TreatmentMachineSequence: List[TreatmentMachineSequenceItem] = [] + self._SourceSequence: List[SourceSequenceItem] = [] + self._ApplicationSetupSequence: List[ApplicationSetupSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._DoseReferenceSequence: List[DoseReferenceSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PatientSetupSequence: List[PatientSetupSequenceItem] = [] + self._BeamSequence: List[BeamSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._ReferencedStructureSetSequence: List[ReferencedStructureSetSequenceItem] = [] + self._ReferencedDoseSequence: List[ReferencedDoseSequenceItem] = [] + self._TreatmentSiteCodeSequence: List[CodeSequenceItem] = [] + self._FractionGroupSequence: List[FractionGroupSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ToleranceTableSequence(self) -> Optional[List[ToleranceTableSequenceItem]]: + if "ToleranceTableSequence" in self._dataset: + if len(self._ToleranceTableSequence) == len(self._dataset.ToleranceTableSequence): + return self._ToleranceTableSequence + else: + return [ToleranceTableSequenceItem(x) for x in self._dataset.ToleranceTableSequence] + return None + + @ToleranceTableSequence.setter + def ToleranceTableSequence(self, value: Optional[List[ToleranceTableSequenceItem]]): + if value is None: + self._ToleranceTableSequence = [] + if "ToleranceTableSequence" in self._dataset: + del self._dataset.ToleranceTableSequence + elif not isinstance(value, list) or not all(isinstance(item, ToleranceTableSequenceItem) for item in value): + raise ValueError("ToleranceTableSequence must be a list of ToleranceTableSequenceItem objects") + else: + self._ToleranceTableSequence = value + if "ToleranceTableSequence" not in self._dataset: + self._dataset.ToleranceTableSequence = pydicom.Sequence() + self._dataset.ToleranceTableSequence.clear() + self._dataset.ToleranceTableSequence.extend([item.to_dataset() for item in value]) + + def add_ToleranceTable(self, item: ToleranceTableSequenceItem): + if not isinstance(item, ToleranceTableSequenceItem): + raise ValueError("Item must be an instance of ToleranceTableSequenceItem") + self._ToleranceTableSequence.append(item) + if "ToleranceTableSequence" not in self._dataset: + self._dataset.ToleranceTableSequence = pydicom.Sequence() + self._dataset.ToleranceTableSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def BrachyTreatmentTechnique(self) -> Optional[str]: + if "BrachyTreatmentTechnique" in self._dataset: + return self._dataset.BrachyTreatmentTechnique + return None + + @BrachyTreatmentTechnique.setter + def BrachyTreatmentTechnique(self, value: Optional[str]): + if value is None: + if "BrachyTreatmentTechnique" in self._dataset: + del self._dataset.BrachyTreatmentTechnique + else: + self._dataset.BrachyTreatmentTechnique = value + + @property + def BrachyTreatmentType(self) -> Optional[str]: + if "BrachyTreatmentType" in self._dataset: + return self._dataset.BrachyTreatmentType + return None + + @BrachyTreatmentType.setter + def BrachyTreatmentType(self, value: Optional[str]): + if value is None: + if "BrachyTreatmentType" in self._dataset: + del self._dataset.BrachyTreatmentType + else: + self._dataset.BrachyTreatmentType = value + + @property + def TreatmentMachineSequence(self) -> Optional[List[TreatmentMachineSequenceItem]]: + if "TreatmentMachineSequence" in self._dataset: + if len(self._TreatmentMachineSequence) == len(self._dataset.TreatmentMachineSequence): + return self._TreatmentMachineSequence + else: + return [TreatmentMachineSequenceItem(x) for x in self._dataset.TreatmentMachineSequence] + return None + + @TreatmentMachineSequence.setter + def TreatmentMachineSequence(self, value: Optional[List[TreatmentMachineSequenceItem]]): + if value is None: + self._TreatmentMachineSequence = [] + if "TreatmentMachineSequence" in self._dataset: + del self._dataset.TreatmentMachineSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentMachineSequenceItem) for item in value): + raise ValueError("TreatmentMachineSequence must be a list of TreatmentMachineSequenceItem objects") + else: + self._TreatmentMachineSequence = value + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.clear() + self._dataset.TreatmentMachineSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachine(self, item: TreatmentMachineSequenceItem): + if not isinstance(item, TreatmentMachineSequenceItem): + raise ValueError("Item must be an instance of TreatmentMachineSequenceItem") + self._TreatmentMachineSequence.append(item) + if "TreatmentMachineSequence" not in self._dataset: + self._dataset.TreatmentMachineSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSequence.append(item.to_dataset()) + + @property + def SourceSequence(self) -> Optional[List[SourceSequenceItem]]: + if "SourceSequence" in self._dataset: + if len(self._SourceSequence) == len(self._dataset.SourceSequence): + return self._SourceSequence + else: + return [SourceSequenceItem(x) for x in self._dataset.SourceSequence] + return None + + @SourceSequence.setter + def SourceSequence(self, value: Optional[List[SourceSequenceItem]]): + if value is None: + self._SourceSequence = [] + if "SourceSequence" in self._dataset: + del self._dataset.SourceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceSequenceItem) for item in value): + raise ValueError("SourceSequence must be a list of SourceSequenceItem objects") + else: + self._SourceSequence = value + if "SourceSequence" not in self._dataset: + self._dataset.SourceSequence = pydicom.Sequence() + self._dataset.SourceSequence.clear() + self._dataset.SourceSequence.extend([item.to_dataset() for item in value]) + + def add_Source(self, item: SourceSequenceItem): + if not isinstance(item, SourceSequenceItem): + raise ValueError("Item must be an instance of SourceSequenceItem") + self._SourceSequence.append(item) + if "SourceSequence" not in self._dataset: + self._dataset.SourceSequence = pydicom.Sequence() + self._dataset.SourceSequence.append(item.to_dataset()) + + @property + def ApplicationSetupSequence(self) -> Optional[List[ApplicationSetupSequenceItem]]: + if "ApplicationSetupSequence" in self._dataset: + if len(self._ApplicationSetupSequence) == len(self._dataset.ApplicationSetupSequence): + return self._ApplicationSetupSequence + else: + return [ApplicationSetupSequenceItem(x) for x in self._dataset.ApplicationSetupSequence] + return None + + @ApplicationSetupSequence.setter + def ApplicationSetupSequence(self, value: Optional[List[ApplicationSetupSequenceItem]]): + if value is None: + self._ApplicationSetupSequence = [] + if "ApplicationSetupSequence" in self._dataset: + del self._dataset.ApplicationSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicationSetupSequenceItem) for item in value): + raise ValueError("ApplicationSetupSequence must be a list of ApplicationSetupSequenceItem objects") + else: + self._ApplicationSetupSequence = value + if "ApplicationSetupSequence" not in self._dataset: + self._dataset.ApplicationSetupSequence = pydicom.Sequence() + self._dataset.ApplicationSetupSequence.clear() + self._dataset.ApplicationSetupSequence.extend([item.to_dataset() for item in value]) + + def add_ApplicationSetup(self, item: ApplicationSetupSequenceItem): + if not isinstance(item, ApplicationSetupSequenceItem): + raise ValueError("Item must be an instance of ApplicationSetupSequenceItem") + self._ApplicationSetupSequence.append(item) + if "ApplicationSetupSequence" not in self._dataset: + self._dataset.ApplicationSetupSequence = pydicom.Sequence() + self._dataset.ApplicationSetupSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def PrescriptionDescription(self) -> Optional[str]: + if "PrescriptionDescription" in self._dataset: + return self._dataset.PrescriptionDescription + return None + + @PrescriptionDescription.setter + def PrescriptionDescription(self, value: Optional[str]): + if value is None: + if "PrescriptionDescription" in self._dataset: + del self._dataset.PrescriptionDescription + else: + self._dataset.PrescriptionDescription = value + + @property + def DoseReferenceSequence(self) -> Optional[List[DoseReferenceSequenceItem]]: + if "DoseReferenceSequence" in self._dataset: + if len(self._DoseReferenceSequence) == len(self._dataset.DoseReferenceSequence): + return self._DoseReferenceSequence + else: + return [DoseReferenceSequenceItem(x) for x in self._dataset.DoseReferenceSequence] + return None + + @DoseReferenceSequence.setter + def DoseReferenceSequence(self, value: Optional[List[DoseReferenceSequenceItem]]): + if value is None: + self._DoseReferenceSequence = [] + if "DoseReferenceSequence" in self._dataset: + del self._dataset.DoseReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, DoseReferenceSequenceItem) for item in value): + raise ValueError("DoseReferenceSequence must be a list of DoseReferenceSequenceItem objects") + else: + self._DoseReferenceSequence = value + if "DoseReferenceSequence" not in self._dataset: + self._dataset.DoseReferenceSequence = pydicom.Sequence() + self._dataset.DoseReferenceSequence.clear() + self._dataset.DoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_DoseReference(self, item: DoseReferenceSequenceItem): + if not isinstance(item, DoseReferenceSequenceItem): + raise ValueError("Item must be an instance of DoseReferenceSequenceItem") + self._DoseReferenceSequence.append(item) + if "DoseReferenceSequence" not in self._dataset: + self._dataset.DoseReferenceSequence = pydicom.Sequence() + self._dataset.DoseReferenceSequence.append(item.to_dataset()) + + @property + def ApprovalStatus(self) -> Optional[str]: + if "ApprovalStatus" in self._dataset: + return self._dataset.ApprovalStatus + return None + + @ApprovalStatus.setter + def ApprovalStatus(self, value: Optional[str]): + if value is None: + if "ApprovalStatus" in self._dataset: + del self._dataset.ApprovalStatus + else: + self._dataset.ApprovalStatus = value + + @property + def ReviewDate(self) -> Optional[str]: + if "ReviewDate" in self._dataset: + return self._dataset.ReviewDate + return None + + @ReviewDate.setter + def ReviewDate(self, value: Optional[str]): + if value is None: + if "ReviewDate" in self._dataset: + del self._dataset.ReviewDate + else: + self._dataset.ReviewDate = value + + @property + def ReviewTime(self) -> Optional[str]: + if "ReviewTime" in self._dataset: + return self._dataset.ReviewTime + return None + + @ReviewTime.setter + def ReviewTime(self, value: Optional[str]): + if value is None: + if "ReviewTime" in self._dataset: + del self._dataset.ReviewTime + else: + self._dataset.ReviewTime = value + + @property + def ReviewerName(self) -> Optional[str]: + if "ReviewerName" in self._dataset: + return self._dataset.ReviewerName + return None + + @ReviewerName.setter + def ReviewerName(self, value: Optional[str]): + if value is None: + if "ReviewerName" in self._dataset: + del self._dataset.ReviewerName + else: + self._dataset.ReviewerName = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PatientSetupSequence(self) -> Optional[List[PatientSetupSequenceItem]]: + if "PatientSetupSequence" in self._dataset: + if len(self._PatientSetupSequence) == len(self._dataset.PatientSetupSequence): + return self._PatientSetupSequence + else: + return [PatientSetupSequenceItem(x) for x in self._dataset.PatientSetupSequence] + return None + + @PatientSetupSequence.setter + def PatientSetupSequence(self, value: Optional[List[PatientSetupSequenceItem]]): + if value is None: + self._PatientSetupSequence = [] + if "PatientSetupSequence" in self._dataset: + del self._dataset.PatientSetupSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSetupSequenceItem) for item in value): + raise ValueError("PatientSetupSequence must be a list of PatientSetupSequenceItem objects") + else: + self._PatientSetupSequence = value + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.clear() + self._dataset.PatientSetupSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSetup(self, item: PatientSetupSequenceItem): + if not isinstance(item, PatientSetupSequenceItem): + raise ValueError("Item must be an instance of PatientSetupSequenceItem") + self._PatientSetupSequence.append(item) + if "PatientSetupSequence" not in self._dataset: + self._dataset.PatientSetupSequence = pydicom.Sequence() + self._dataset.PatientSetupSequence.append(item.to_dataset()) + + @property + def BeamSequence(self) -> Optional[List[BeamSequenceItem]]: + if "BeamSequence" in self._dataset: + if len(self._BeamSequence) == len(self._dataset.BeamSequence): + return self._BeamSequence + else: + return [BeamSequenceItem(x) for x in self._dataset.BeamSequence] + return None + + @BeamSequence.setter + def BeamSequence(self, value: Optional[List[BeamSequenceItem]]): + if value is None: + self._BeamSequence = [] + if "BeamSequence" in self._dataset: + del self._dataset.BeamSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamSequenceItem) for item in value): + raise ValueError("BeamSequence must be a list of BeamSequenceItem objects") + else: + self._BeamSequence = value + if "BeamSequence" not in self._dataset: + self._dataset.BeamSequence = pydicom.Sequence() + self._dataset.BeamSequence.clear() + self._dataset.BeamSequence.extend([item.to_dataset() for item in value]) + + def add_Beam(self, item: BeamSequenceItem): + if not isinstance(item, BeamSequenceItem): + raise ValueError("Item must be an instance of BeamSequenceItem") + self._BeamSequence.append(item) + if "BeamSequence" not in self._dataset: + self._dataset.BeamSequence = pydicom.Sequence() + self._dataset.BeamSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(self) -> Optional[List[float]]: + if "FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix" in self._dataset: + return self._dataset.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix + return None + + @FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.setter + def FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(self, value: Optional[List[float]]): + if value is None: + if "FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix" in self._dataset: + del self._dataset.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix + else: + self._dataset.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = value + + @property + def RTPlanLabel(self) -> Optional[str]: + if "RTPlanLabel" in self._dataset: + return self._dataset.RTPlanLabel + return None + + @RTPlanLabel.setter + def RTPlanLabel(self, value: Optional[str]): + if value is None: + if "RTPlanLabel" in self._dataset: + del self._dataset.RTPlanLabel + else: + self._dataset.RTPlanLabel = value + + @property + def RTPlanName(self) -> Optional[str]: + if "RTPlanName" in self._dataset: + return self._dataset.RTPlanName + return None + + @RTPlanName.setter + def RTPlanName(self, value: Optional[str]): + if value is None: + if "RTPlanName" in self._dataset: + del self._dataset.RTPlanName + else: + self._dataset.RTPlanName = value + + @property + def RTPlanDescription(self) -> Optional[str]: + if "RTPlanDescription" in self._dataset: + return self._dataset.RTPlanDescription + return None + + @RTPlanDescription.setter + def RTPlanDescription(self, value: Optional[str]): + if value is None: + if "RTPlanDescription" in self._dataset: + del self._dataset.RTPlanDescription + else: + self._dataset.RTPlanDescription = value + + @property + def RTPlanDate(self) -> Optional[str]: + if "RTPlanDate" in self._dataset: + return self._dataset.RTPlanDate + return None + + @RTPlanDate.setter + def RTPlanDate(self, value: Optional[str]): + if value is None: + if "RTPlanDate" in self._dataset: + del self._dataset.RTPlanDate + else: + self._dataset.RTPlanDate = value + + @property + def RTPlanTime(self) -> Optional[str]: + if "RTPlanTime" in self._dataset: + return self._dataset.RTPlanTime + return None + + @RTPlanTime.setter + def RTPlanTime(self, value: Optional[str]): + if value is None: + if "RTPlanTime" in self._dataset: + del self._dataset.RTPlanTime + else: + self._dataset.RTPlanTime = value + + @property + def TreatmentProtocols(self) -> Optional[List[str]]: + if "TreatmentProtocols" in self._dataset: + return self._dataset.TreatmentProtocols + return None + + @TreatmentProtocols.setter + def TreatmentProtocols(self, value: Optional[List[str]]): + if value is None: + if "TreatmentProtocols" in self._dataset: + del self._dataset.TreatmentProtocols + else: + self._dataset.TreatmentProtocols = value + + @property + def PlanIntent(self) -> Optional[str]: + if "PlanIntent" in self._dataset: + return self._dataset.PlanIntent + return None + + @PlanIntent.setter + def PlanIntent(self, value: Optional[str]): + if value is None: + if "PlanIntent" in self._dataset: + del self._dataset.PlanIntent + else: + self._dataset.PlanIntent = value + + @property + def RTPlanGeometry(self) -> Optional[str]: + if "RTPlanGeometry" in self._dataset: + return self._dataset.RTPlanGeometry + return None + + @RTPlanGeometry.setter + def RTPlanGeometry(self, value: Optional[str]): + if value is None: + if "RTPlanGeometry" in self._dataset: + del self._dataset.RTPlanGeometry + else: + self._dataset.RTPlanGeometry = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def ReferencedStructureSetSequence(self) -> Optional[List[ReferencedStructureSetSequenceItem]]: + if "ReferencedStructureSetSequence" in self._dataset: + if len(self._ReferencedStructureSetSequence) == len(self._dataset.ReferencedStructureSetSequence): + return self._ReferencedStructureSetSequence + else: + return [ReferencedStructureSetSequenceItem(x) for x in self._dataset.ReferencedStructureSetSequence] + return None + + @ReferencedStructureSetSequence.setter + def ReferencedStructureSetSequence(self, value: Optional[List[ReferencedStructureSetSequenceItem]]): + if value is None: + self._ReferencedStructureSetSequence = [] + if "ReferencedStructureSetSequence" in self._dataset: + del self._dataset.ReferencedStructureSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStructureSetSequenceItem) for item in value): + raise ValueError("ReferencedStructureSetSequence must be a list of ReferencedStructureSetSequenceItem objects") + else: + self._ReferencedStructureSetSequence = value + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.clear() + self._dataset.ReferencedStructureSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStructureSet(self, item: ReferencedStructureSetSequenceItem): + if not isinstance(item, ReferencedStructureSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedStructureSetSequenceItem") + self._ReferencedStructureSetSequence.append(item) + if "ReferencedStructureSetSequence" not in self._dataset: + self._dataset.ReferencedStructureSetSequence = pydicom.Sequence() + self._dataset.ReferencedStructureSetSequence.append(item.to_dataset()) + + @property + def ReferencedDoseSequence(self) -> Optional[List[ReferencedDoseSequenceItem]]: + if "ReferencedDoseSequence" in self._dataset: + if len(self._ReferencedDoseSequence) == len(self._dataset.ReferencedDoseSequence): + return self._ReferencedDoseSequence + else: + return [ReferencedDoseSequenceItem(x) for x in self._dataset.ReferencedDoseSequence] + return None + + @ReferencedDoseSequence.setter + def ReferencedDoseSequence(self, value: Optional[List[ReferencedDoseSequenceItem]]): + if value is None: + self._ReferencedDoseSequence = [] + if "ReferencedDoseSequence" in self._dataset: + del self._dataset.ReferencedDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDoseSequenceItem) for item in value): + raise ValueError("ReferencedDoseSequence must be a list of ReferencedDoseSequenceItem objects") + else: + self._ReferencedDoseSequence = value + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.clear() + self._dataset.ReferencedDoseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDose(self, item: ReferencedDoseSequenceItem): + if not isinstance(item, ReferencedDoseSequenceItem): + raise ValueError("Item must be an instance of ReferencedDoseSequenceItem") + self._ReferencedDoseSequence.append(item) + if "ReferencedDoseSequence" not in self._dataset: + self._dataset.ReferencedDoseSequence = pydicom.Sequence() + self._dataset.ReferencedDoseSequence.append(item.to_dataset()) + + @property + def TreatmentSite(self) -> Optional[str]: + if "TreatmentSite" in self._dataset: + return self._dataset.TreatmentSite + return None + + @TreatmentSite.setter + def TreatmentSite(self, value: Optional[str]): + if value is None: + if "TreatmentSite" in self._dataset: + del self._dataset.TreatmentSite + else: + self._dataset.TreatmentSite = value + + @property + def TreatmentSiteCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentSiteCodeSequence" in self._dataset: + if len(self._TreatmentSiteCodeSequence) == len(self._dataset.TreatmentSiteCodeSequence): + return self._TreatmentSiteCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentSiteCodeSequence] + return None + + @TreatmentSiteCodeSequence.setter + def TreatmentSiteCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentSiteCodeSequence = [] + if "TreatmentSiteCodeSequence" in self._dataset: + del self._dataset.TreatmentSiteCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentSiteCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentSiteCodeSequence = value + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.clear() + self._dataset.TreatmentSiteCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSiteCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentSiteCodeSequence.append(item) + if "TreatmentSiteCodeSequence" not in self._dataset: + self._dataset.TreatmentSiteCodeSequence = pydicom.Sequence() + self._dataset.TreatmentSiteCodeSequence.append(item.to_dataset()) + + @property + def FractionGroupSequence(self) -> Optional[List[FractionGroupSequenceItem]]: + if "FractionGroupSequence" in self._dataset: + if len(self._FractionGroupSequence) == len(self._dataset.FractionGroupSequence): + return self._FractionGroupSequence + else: + return [FractionGroupSequenceItem(x) for x in self._dataset.FractionGroupSequence] + return None + + @FractionGroupSequence.setter + def FractionGroupSequence(self, value: Optional[List[FractionGroupSequenceItem]]): + if value is None: + self._FractionGroupSequence = [] + if "FractionGroupSequence" in self._dataset: + del self._dataset.FractionGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, FractionGroupSequenceItem) for item in value): + raise ValueError("FractionGroupSequence must be a list of FractionGroupSequenceItem objects") + else: + self._FractionGroupSequence = value + if "FractionGroupSequence" not in self._dataset: + self._dataset.FractionGroupSequence = pydicom.Sequence() + self._dataset.FractionGroupSequence.clear() + self._dataset.FractionGroupSequence.extend([item.to_dataset() for item in value]) + + def add_FractionGroup(self, item: FractionGroupSequenceItem): + if not isinstance(item, FractionGroupSequenceItem): + raise ValueError("Item must be an instance of FractionGroupSequenceItem") + self._FractionGroupSequence.append(item) + if "FractionGroupSequence" not in self._dataset: + self._dataset.FractionGroupSequence = pydicom.Sequence() + self._dataset.FractionGroupSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_prescription_sequence_item.py b/tdwii_plus_examples/domain_model/rt_prescription_sequence_item.py new file mode 100644 index 0000000..0b73904 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_prescription_sequence_item.py @@ -0,0 +1,593 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .fraction_based_relationship_sequence_item import ( + FractionBasedRelationshipSequenceItem, +) +from .fraction_pattern_sequence_item import FractionPatternSequenceItem +from .patient_treatment_orientation_sequence_item import ( + PatientTreatmentOrientationSequenceItem, +) +from .planning_input_information_sequence_item import ( + PlanningInputInformationSequenceItem, +) +from .prescription_notes_sequence_item import PrescriptionNotesSequenceItem +from .prior_treatment_reference_sequence_item import PriorTreatmentReferenceSequenceItem +from .referenced_dosimetric_objectives_sequence_item import ( + ReferencedDosimetricObjectivesSequenceItem, +) +from .referenced_rt_treatment_phase_sequence_item import ( + ReferencedRTTreatmentPhaseSequenceItem, +) +from .rt_anatomic_prescription_sequence_item import RTAnatomicPrescriptionSequenceItem + + +class RTPrescriptionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientTreatmentOrientationSequence: List[PatientTreatmentOrientationSequenceItem] = [] + self._ReferencedRTTreatmentPhaseSequence: List[ReferencedRTTreatmentPhaseSequenceItem] = [] + self._RTAnatomicPrescriptionSequence: List[RTAnatomicPrescriptionSequenceItem] = [] + self._PriorTreatmentReferenceSequence: List[PriorTreatmentReferenceSequenceItem] = [] + self._ReferencedDosimetricObjectivesSequence: List[ReferencedDosimetricObjectivesSequenceItem] = [] + self._PlanningInputInformationSequence: List[PlanningInputInformationSequenceItem] = [] + self._FractionPatternSequence: List[FractionPatternSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._PrescriptionNotesSequence: List[PrescriptionNotesSequenceItem] = [] + self._FractionBasedRelationshipSequence: List[FractionBasedRelationshipSequenceItem] = [] + self._DeliveryTimeStructureCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientTreatmentOrientationSequence(self) -> Optional[List[PatientTreatmentOrientationSequenceItem]]: + if "PatientTreatmentOrientationSequence" in self._dataset: + if len(self._PatientTreatmentOrientationSequence) == len(self._dataset.PatientTreatmentOrientationSequence): + return self._PatientTreatmentOrientationSequence + else: + return [PatientTreatmentOrientationSequenceItem(x) for x in self._dataset.PatientTreatmentOrientationSequence] + return None + + @PatientTreatmentOrientationSequence.setter + def PatientTreatmentOrientationSequence(self, value: Optional[List[PatientTreatmentOrientationSequenceItem]]): + if value is None: + self._PatientTreatmentOrientationSequence = [] + if "PatientTreatmentOrientationSequence" in self._dataset: + del self._dataset.PatientTreatmentOrientationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientTreatmentOrientationSequenceItem) for item in value + ): + raise ValueError( + "PatientTreatmentOrientationSequence must be a list of PatientTreatmentOrientationSequenceItem objects" + ) + else: + self._PatientTreatmentOrientationSequence = value + if "PatientTreatmentOrientationSequence" not in self._dataset: + self._dataset.PatientTreatmentOrientationSequence = pydicom.Sequence() + self._dataset.PatientTreatmentOrientationSequence.clear() + self._dataset.PatientTreatmentOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PatientTreatmentOrientation(self, item: PatientTreatmentOrientationSequenceItem): + if not isinstance(item, PatientTreatmentOrientationSequenceItem): + raise ValueError("Item must be an instance of PatientTreatmentOrientationSequenceItem") + self._PatientTreatmentOrientationSequence.append(item) + if "PatientTreatmentOrientationSequence" not in self._dataset: + self._dataset.PatientTreatmentOrientationSequence = pydicom.Sequence() + self._dataset.PatientTreatmentOrientationSequence.append(item.to_dataset()) + + @property + def RTPrescriptionIndex(self) -> Optional[int]: + if "RTPrescriptionIndex" in self._dataset: + return self._dataset.RTPrescriptionIndex + return None + + @RTPrescriptionIndex.setter + def RTPrescriptionIndex(self, value: Optional[int]): + if value is None: + if "RTPrescriptionIndex" in self._dataset: + del self._dataset.RTPrescriptionIndex + else: + self._dataset.RTPrescriptionIndex = value + + @property + def ReferencedParentRTPrescriptionIndex(self) -> Optional[int]: + if "ReferencedParentRTPrescriptionIndex" in self._dataset: + return self._dataset.ReferencedParentRTPrescriptionIndex + return None + + @ReferencedParentRTPrescriptionIndex.setter + def ReferencedParentRTPrescriptionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedParentRTPrescriptionIndex" in self._dataset: + del self._dataset.ReferencedParentRTPrescriptionIndex + else: + self._dataset.ReferencedParentRTPrescriptionIndex = value + + @property + def RadiotherapyTreatmentType(self) -> Optional[str]: + if "RadiotherapyTreatmentType" in self._dataset: + return self._dataset.RadiotherapyTreatmentType + return None + + @RadiotherapyTreatmentType.setter + def RadiotherapyTreatmentType(self, value: Optional[str]): + if value is None: + if "RadiotherapyTreatmentType" in self._dataset: + del self._dataset.RadiotherapyTreatmentType + else: + self._dataset.RadiotherapyTreatmentType = value + + @property + def TeletherapyRadiationType(self) -> Optional[List[str]]: + if "TeletherapyRadiationType" in self._dataset: + return self._dataset.TeletherapyRadiationType + return None + + @TeletherapyRadiationType.setter + def TeletherapyRadiationType(self, value: Optional[List[str]]): + if value is None: + if "TeletherapyRadiationType" in self._dataset: + del self._dataset.TeletherapyRadiationType + else: + self._dataset.TeletherapyRadiationType = value + + @property + def BrachytherapySourceType(self) -> Optional[List[str]]: + if "BrachytherapySourceType" in self._dataset: + return self._dataset.BrachytherapySourceType + return None + + @BrachytherapySourceType.setter + def BrachytherapySourceType(self, value: Optional[List[str]]): + if value is None: + if "BrachytherapySourceType" in self._dataset: + del self._dataset.BrachytherapySourceType + else: + self._dataset.BrachytherapySourceType = value + + @property + def ReferencedRTTreatmentPhaseSequence(self) -> Optional[List[ReferencedRTTreatmentPhaseSequenceItem]]: + if "ReferencedRTTreatmentPhaseSequence" in self._dataset: + if len(self._ReferencedRTTreatmentPhaseSequence) == len(self._dataset.ReferencedRTTreatmentPhaseSequence): + return self._ReferencedRTTreatmentPhaseSequence + else: + return [ReferencedRTTreatmentPhaseSequenceItem(x) for x in self._dataset.ReferencedRTTreatmentPhaseSequence] + return None + + @ReferencedRTTreatmentPhaseSequence.setter + def ReferencedRTTreatmentPhaseSequence(self, value: Optional[List[ReferencedRTTreatmentPhaseSequenceItem]]): + if value is None: + self._ReferencedRTTreatmentPhaseSequence = [] + if "ReferencedRTTreatmentPhaseSequence" in self._dataset: + del self._dataset.ReferencedRTTreatmentPhaseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRTTreatmentPhaseSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRTTreatmentPhaseSequence must be a list of ReferencedRTTreatmentPhaseSequenceItem objects" + ) + else: + self._ReferencedRTTreatmentPhaseSequence = value + if "ReferencedRTTreatmentPhaseSequence" not in self._dataset: + self._dataset.ReferencedRTTreatmentPhaseSequence = pydicom.Sequence() + self._dataset.ReferencedRTTreatmentPhaseSequence.clear() + self._dataset.ReferencedRTTreatmentPhaseSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTTreatmentPhase(self, item: ReferencedRTTreatmentPhaseSequenceItem): + if not isinstance(item, ReferencedRTTreatmentPhaseSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTTreatmentPhaseSequenceItem") + self._ReferencedRTTreatmentPhaseSequence.append(item) + if "ReferencedRTTreatmentPhaseSequence" not in self._dataset: + self._dataset.ReferencedRTTreatmentPhaseSequence = pydicom.Sequence() + self._dataset.ReferencedRTTreatmentPhaseSequence.append(item.to_dataset()) + + @property + def RTPrescriptionLabel(self) -> Optional[str]: + if "RTPrescriptionLabel" in self._dataset: + return self._dataset.RTPrescriptionLabel + return None + + @RTPrescriptionLabel.setter + def RTPrescriptionLabel(self, value: Optional[str]): + if value is None: + if "RTPrescriptionLabel" in self._dataset: + del self._dataset.RTPrescriptionLabel + else: + self._dataset.RTPrescriptionLabel = value + + @property + def ReferencedRTPhysicianIntentIndex(self) -> Optional[int]: + if "ReferencedRTPhysicianIntentIndex" in self._dataset: + return self._dataset.ReferencedRTPhysicianIntentIndex + return None + + @ReferencedRTPhysicianIntentIndex.setter + def ReferencedRTPhysicianIntentIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTPhysicianIntentIndex" in self._dataset: + del self._dataset.ReferencedRTPhysicianIntentIndex + else: + self._dataset.ReferencedRTPhysicianIntentIndex = value + + @property + def RTAnatomicPrescriptionSequence(self) -> Optional[List[RTAnatomicPrescriptionSequenceItem]]: + if "RTAnatomicPrescriptionSequence" in self._dataset: + if len(self._RTAnatomicPrescriptionSequence) == len(self._dataset.RTAnatomicPrescriptionSequence): + return self._RTAnatomicPrescriptionSequence + else: + return [RTAnatomicPrescriptionSequenceItem(x) for x in self._dataset.RTAnatomicPrescriptionSequence] + return None + + @RTAnatomicPrescriptionSequence.setter + def RTAnatomicPrescriptionSequence(self, value: Optional[List[RTAnatomicPrescriptionSequenceItem]]): + if value is None: + self._RTAnatomicPrescriptionSequence = [] + if "RTAnatomicPrescriptionSequence" in self._dataset: + del self._dataset.RTAnatomicPrescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, RTAnatomicPrescriptionSequenceItem) for item in value): + raise ValueError("RTAnatomicPrescriptionSequence must be a list of RTAnatomicPrescriptionSequenceItem objects") + else: + self._RTAnatomicPrescriptionSequence = value + if "RTAnatomicPrescriptionSequence" not in self._dataset: + self._dataset.RTAnatomicPrescriptionSequence = pydicom.Sequence() + self._dataset.RTAnatomicPrescriptionSequence.clear() + self._dataset.RTAnatomicPrescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_RTAnatomicPrescription(self, item: RTAnatomicPrescriptionSequenceItem): + if not isinstance(item, RTAnatomicPrescriptionSequenceItem): + raise ValueError("Item must be an instance of RTAnatomicPrescriptionSequenceItem") + self._RTAnatomicPrescriptionSequence.append(item) + if "RTAnatomicPrescriptionSequence" not in self._dataset: + self._dataset.RTAnatomicPrescriptionSequence = pydicom.Sequence() + self._dataset.RTAnatomicPrescriptionSequence.append(item.to_dataset()) + + @property + def PriorTreatmentDoseDescription(self) -> Optional[str]: + if "PriorTreatmentDoseDescription" in self._dataset: + return self._dataset.PriorTreatmentDoseDescription + return None + + @PriorTreatmentDoseDescription.setter + def PriorTreatmentDoseDescription(self, value: Optional[str]): + if value is None: + if "PriorTreatmentDoseDescription" in self._dataset: + del self._dataset.PriorTreatmentDoseDescription + else: + self._dataset.PriorTreatmentDoseDescription = value + + @property + def PriorTreatmentReferenceSequence(self) -> Optional[List[PriorTreatmentReferenceSequenceItem]]: + if "PriorTreatmentReferenceSequence" in self._dataset: + if len(self._PriorTreatmentReferenceSequence) == len(self._dataset.PriorTreatmentReferenceSequence): + return self._PriorTreatmentReferenceSequence + else: + return [PriorTreatmentReferenceSequenceItem(x) for x in self._dataset.PriorTreatmentReferenceSequence] + return None + + @PriorTreatmentReferenceSequence.setter + def PriorTreatmentReferenceSequence(self, value: Optional[List[PriorTreatmentReferenceSequenceItem]]): + if value is None: + self._PriorTreatmentReferenceSequence = [] + if "PriorTreatmentReferenceSequence" in self._dataset: + del self._dataset.PriorTreatmentReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PriorTreatmentReferenceSequenceItem) for item in value): + raise ValueError("PriorTreatmentReferenceSequence must be a list of PriorTreatmentReferenceSequenceItem objects") + else: + self._PriorTreatmentReferenceSequence = value + if "PriorTreatmentReferenceSequence" not in self._dataset: + self._dataset.PriorTreatmentReferenceSequence = pydicom.Sequence() + self._dataset.PriorTreatmentReferenceSequence.clear() + self._dataset.PriorTreatmentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_PriorTreatmentReference(self, item: PriorTreatmentReferenceSequenceItem): + if not isinstance(item, PriorTreatmentReferenceSequenceItem): + raise ValueError("Item must be an instance of PriorTreatmentReferenceSequenceItem") + self._PriorTreatmentReferenceSequence.append(item) + if "PriorTreatmentReferenceSequence" not in self._dataset: + self._dataset.PriorTreatmentReferenceSequence = pydicom.Sequence() + self._dataset.PriorTreatmentReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedDosimetricObjectivesSequence(self) -> Optional[List[ReferencedDosimetricObjectivesSequenceItem]]: + if "ReferencedDosimetricObjectivesSequence" in self._dataset: + if len(self._ReferencedDosimetricObjectivesSequence) == len(self._dataset.ReferencedDosimetricObjectivesSequence): + return self._ReferencedDosimetricObjectivesSequence + else: + return [ + ReferencedDosimetricObjectivesSequenceItem(x) for x in self._dataset.ReferencedDosimetricObjectivesSequence + ] + return None + + @ReferencedDosimetricObjectivesSequence.setter + def ReferencedDosimetricObjectivesSequence(self, value: Optional[List[ReferencedDosimetricObjectivesSequenceItem]]): + if value is None: + self._ReferencedDosimetricObjectivesSequence = [] + if "ReferencedDosimetricObjectivesSequence" in self._dataset: + del self._dataset.ReferencedDosimetricObjectivesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedDosimetricObjectivesSequenceItem) for item in value + ): + raise ValueError( + "ReferencedDosimetricObjectivesSequence must be a list of ReferencedDosimetricObjectivesSequenceItem objects" + ) + else: + self._ReferencedDosimetricObjectivesSequence = value + if "ReferencedDosimetricObjectivesSequence" not in self._dataset: + self._dataset.ReferencedDosimetricObjectivesSequence = pydicom.Sequence() + self._dataset.ReferencedDosimetricObjectivesSequence.clear() + self._dataset.ReferencedDosimetricObjectivesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDosimetricObjectives(self, item: ReferencedDosimetricObjectivesSequenceItem): + if not isinstance(item, ReferencedDosimetricObjectivesSequenceItem): + raise ValueError("Item must be an instance of ReferencedDosimetricObjectivesSequenceItem") + self._ReferencedDosimetricObjectivesSequence.append(item) + if "ReferencedDosimetricObjectivesSequence" not in self._dataset: + self._dataset.ReferencedDosimetricObjectivesSequence = pydicom.Sequence() + self._dataset.ReferencedDosimetricObjectivesSequence.append(item.to_dataset()) + + @property + def PlanningInputInformationSequence(self) -> Optional[List[PlanningInputInformationSequenceItem]]: + if "PlanningInputInformationSequence" in self._dataset: + if len(self._PlanningInputInformationSequence) == len(self._dataset.PlanningInputInformationSequence): + return self._PlanningInputInformationSequence + else: + return [PlanningInputInformationSequenceItem(x) for x in self._dataset.PlanningInputInformationSequence] + return None + + @PlanningInputInformationSequence.setter + def PlanningInputInformationSequence(self, value: Optional[List[PlanningInputInformationSequenceItem]]): + if value is None: + self._PlanningInputInformationSequence = [] + if "PlanningInputInformationSequence" in self._dataset: + del self._dataset.PlanningInputInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanningInputInformationSequenceItem) for item in value): + raise ValueError("PlanningInputInformationSequence must be a list of PlanningInputInformationSequenceItem objects") + else: + self._PlanningInputInformationSequence = value + if "PlanningInputInformationSequence" not in self._dataset: + self._dataset.PlanningInputInformationSequence = pydicom.Sequence() + self._dataset.PlanningInputInformationSequence.clear() + self._dataset.PlanningInputInformationSequence.extend([item.to_dataset() for item in value]) + + def add_PlanningInputInformation(self, item: PlanningInputInformationSequenceItem): + if not isinstance(item, PlanningInputInformationSequenceItem): + raise ValueError("Item must be an instance of PlanningInputInformationSequenceItem") + self._PlanningInputInformationSequence.append(item) + if "PlanningInputInformationSequence" not in self._dataset: + self._dataset.PlanningInputInformationSequence = pydicom.Sequence() + self._dataset.PlanningInputInformationSequence.append(item.to_dataset()) + + @property + def FractionPatternSequence(self) -> Optional[List[FractionPatternSequenceItem]]: + if "FractionPatternSequence" in self._dataset: + if len(self._FractionPatternSequence) == len(self._dataset.FractionPatternSequence): + return self._FractionPatternSequence + else: + return [FractionPatternSequenceItem(x) for x in self._dataset.FractionPatternSequence] + return None + + @FractionPatternSequence.setter + def FractionPatternSequence(self, value: Optional[List[FractionPatternSequenceItem]]): + if value is None: + self._FractionPatternSequence = [] + if "FractionPatternSequence" in self._dataset: + del self._dataset.FractionPatternSequence + elif not isinstance(value, list) or not all(isinstance(item, FractionPatternSequenceItem) for item in value): + raise ValueError("FractionPatternSequence must be a list of FractionPatternSequenceItem objects") + else: + self._FractionPatternSequence = value + if "FractionPatternSequence" not in self._dataset: + self._dataset.FractionPatternSequence = pydicom.Sequence() + self._dataset.FractionPatternSequence.clear() + self._dataset.FractionPatternSequence.extend([item.to_dataset() for item in value]) + + def add_FractionPattern(self, item: FractionPatternSequenceItem): + if not isinstance(item, FractionPatternSequenceItem): + raise ValueError("Item must be an instance of FractionPatternSequenceItem") + self._FractionPatternSequence.append(item) + if "FractionPatternSequence" not in self._dataset: + self._dataset.FractionPatternSequence = pydicom.Sequence() + self._dataset.FractionPatternSequence.append(item.to_dataset()) + + @property + def TreatmentTechniqueNotes(self) -> Optional[str]: + if "TreatmentTechniqueNotes" in self._dataset: + return self._dataset.TreatmentTechniqueNotes + return None + + @TreatmentTechniqueNotes.setter + def TreatmentTechniqueNotes(self, value: Optional[str]): + if value is None: + if "TreatmentTechniqueNotes" in self._dataset: + del self._dataset.TreatmentTechniqueNotes + else: + self._dataset.TreatmentTechniqueNotes = value + + @property + def PrescriptionNotes(self) -> Optional[str]: + if "PrescriptionNotes" in self._dataset: + return self._dataset.PrescriptionNotes + return None + + @PrescriptionNotes.setter + def PrescriptionNotes(self, value: Optional[str]): + if value is None: + if "PrescriptionNotes" in self._dataset: + del self._dataset.PrescriptionNotes + else: + self._dataset.PrescriptionNotes = value + + @property + def NumberOfFractions(self) -> Optional[int]: + if "NumberOfFractions" in self._dataset: + return self._dataset.NumberOfFractions + return None + + @NumberOfFractions.setter + def NumberOfFractions(self, value: Optional[int]): + if value is None: + if "NumberOfFractions" in self._dataset: + del self._dataset.NumberOfFractions + else: + self._dataset.NumberOfFractions = value + + @property + def IntendedDeliveryDuration(self) -> Optional[int]: + if "IntendedDeliveryDuration" in self._dataset: + return self._dataset.IntendedDeliveryDuration + return None + + @IntendedDeliveryDuration.setter + def IntendedDeliveryDuration(self, value: Optional[int]): + if value is None: + if "IntendedDeliveryDuration" in self._dataset: + del self._dataset.IntendedDeliveryDuration + else: + self._dataset.IntendedDeliveryDuration = value + + @property + def FractionationNotes(self) -> Optional[str]: + if "FractionationNotes" in self._dataset: + return self._dataset.FractionationNotes + return None + + @FractionationNotes.setter + def FractionationNotes(self, value: Optional[str]): + if value is None: + if "FractionationNotes" in self._dataset: + del self._dataset.FractionationNotes + else: + self._dataset.FractionationNotes = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def PrescriptionNotesSequence(self) -> Optional[List[PrescriptionNotesSequenceItem]]: + if "PrescriptionNotesSequence" in self._dataset: + if len(self._PrescriptionNotesSequence) == len(self._dataset.PrescriptionNotesSequence): + return self._PrescriptionNotesSequence + else: + return [PrescriptionNotesSequenceItem(x) for x in self._dataset.PrescriptionNotesSequence] + return None + + @PrescriptionNotesSequence.setter + def PrescriptionNotesSequence(self, value: Optional[List[PrescriptionNotesSequenceItem]]): + if value is None: + self._PrescriptionNotesSequence = [] + if "PrescriptionNotesSequence" in self._dataset: + del self._dataset.PrescriptionNotesSequence + elif not isinstance(value, list) or not all(isinstance(item, PrescriptionNotesSequenceItem) for item in value): + raise ValueError("PrescriptionNotesSequence must be a list of PrescriptionNotesSequenceItem objects") + else: + self._PrescriptionNotesSequence = value + if "PrescriptionNotesSequence" not in self._dataset: + self._dataset.PrescriptionNotesSequence = pydicom.Sequence() + self._dataset.PrescriptionNotesSequence.clear() + self._dataset.PrescriptionNotesSequence.extend([item.to_dataset() for item in value]) + + def add_PrescriptionNotes(self, item: PrescriptionNotesSequenceItem): + if not isinstance(item, PrescriptionNotesSequenceItem): + raise ValueError("Item must be an instance of PrescriptionNotesSequenceItem") + self._PrescriptionNotesSequence.append(item) + if "PrescriptionNotesSequence" not in self._dataset: + self._dataset.PrescriptionNotesSequence = pydicom.Sequence() + self._dataset.PrescriptionNotesSequence.append(item.to_dataset()) + + @property + def FractionBasedRelationshipSequence(self) -> Optional[List[FractionBasedRelationshipSequenceItem]]: + if "FractionBasedRelationshipSequence" in self._dataset: + if len(self._FractionBasedRelationshipSequence) == len(self._dataset.FractionBasedRelationshipSequence): + return self._FractionBasedRelationshipSequence + else: + return [FractionBasedRelationshipSequenceItem(x) for x in self._dataset.FractionBasedRelationshipSequence] + return None + + @FractionBasedRelationshipSequence.setter + def FractionBasedRelationshipSequence(self, value: Optional[List[FractionBasedRelationshipSequenceItem]]): + if value is None: + self._FractionBasedRelationshipSequence = [] + if "FractionBasedRelationshipSequence" in self._dataset: + del self._dataset.FractionBasedRelationshipSequence + elif not isinstance(value, list) or not all(isinstance(item, FractionBasedRelationshipSequenceItem) for item in value): + raise ValueError( + "FractionBasedRelationshipSequence must be a list of FractionBasedRelationshipSequenceItem objects" + ) + else: + self._FractionBasedRelationshipSequence = value + if "FractionBasedRelationshipSequence" not in self._dataset: + self._dataset.FractionBasedRelationshipSequence = pydicom.Sequence() + self._dataset.FractionBasedRelationshipSequence.clear() + self._dataset.FractionBasedRelationshipSequence.extend([item.to_dataset() for item in value]) + + def add_FractionBasedRelationship(self, item: FractionBasedRelationshipSequenceItem): + if not isinstance(item, FractionBasedRelationshipSequenceItem): + raise ValueError("Item must be an instance of FractionBasedRelationshipSequenceItem") + self._FractionBasedRelationshipSequence.append(item) + if "FractionBasedRelationshipSequence" not in self._dataset: + self._dataset.FractionBasedRelationshipSequence = pydicom.Sequence() + self._dataset.FractionBasedRelationshipSequence.append(item.to_dataset()) + + @property + def DeliveryTimeStructureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeliveryTimeStructureCodeSequence" in self._dataset: + if len(self._DeliveryTimeStructureCodeSequence) == len(self._dataset.DeliveryTimeStructureCodeSequence): + return self._DeliveryTimeStructureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeliveryTimeStructureCodeSequence] + return None + + @DeliveryTimeStructureCodeSequence.setter + def DeliveryTimeStructureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeliveryTimeStructureCodeSequence = [] + if "DeliveryTimeStructureCodeSequence" in self._dataset: + del self._dataset.DeliveryTimeStructureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeliveryTimeStructureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeliveryTimeStructureCodeSequence = value + if "DeliveryTimeStructureCodeSequence" not in self._dataset: + self._dataset.DeliveryTimeStructureCodeSequence = pydicom.Sequence() + self._dataset.DeliveryTimeStructureCodeSequence.clear() + self._dataset.DeliveryTimeStructureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryTimeStructureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeliveryTimeStructureCodeSequence.append(item) + if "DeliveryTimeStructureCodeSequence" not in self._dataset: + self._dataset.DeliveryTimeStructureCodeSequence = pydicom.Sequence() + self._dataset.DeliveryTimeStructureCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_radiation_record_set.py b/tdwii_plus_examples/domain_model/rt_radiation_record_set.py new file mode 100644 index 0000000..16f4224 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_record_set.py @@ -0,0 +1,4748 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dose_identification_sequence_item import ( + RadiationDoseIdentificationSequenceItem, +) +from .radiation_dose_sequence_item import RadiationDoseSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_radiation_record_sequence_item import ( + ReferencedRTRadiationRecordSequenceItem, +) +from .referenced_rt_radiation_set_sequence_item import ( + ReferencedRTRadiationSetSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtRadiationRecordSet: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedRTRadiationSetSequence: List[ReferencedRTRadiationSetSequenceItem] = [] + self._ReferencedRTRadiationRecordSequence: List[ReferencedRTRadiationRecordSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._RadiationDoseSequence: List[RadiationDoseSequenceItem] = [] + self._RadiationDoseIdentificationSequence: List[RadiationDoseIdentificationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedRTRadiationSetSequence(self) -> Optional[List[ReferencedRTRadiationSetSequenceItem]]: + if "ReferencedRTRadiationSetSequence" in self._dataset: + if len(self._ReferencedRTRadiationSetSequence) == len(self._dataset.ReferencedRTRadiationSetSequence): + return self._ReferencedRTRadiationSetSequence + else: + return [ReferencedRTRadiationSetSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSetSequence] + return None + + @ReferencedRTRadiationSetSequence.setter + def ReferencedRTRadiationSetSequence(self, value: Optional[List[ReferencedRTRadiationSetSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSetSequence = [] + if "ReferencedRTRadiationSetSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSetSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSetSequence must be a list of ReferencedRTRadiationSetSequenceItem objects") + else: + self._ReferencedRTRadiationSetSequence = value + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.clear() + self._dataset.ReferencedRTRadiationSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationSet(self, item: ReferencedRTRadiationSetSequenceItem): + if not isinstance(item, ReferencedRTRadiationSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSetSequenceItem") + self._ReferencedRTRadiationSetSequence.append(item) + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationRecordSequence(self) -> Optional[List[ReferencedRTRadiationRecordSequenceItem]]: + if "ReferencedRTRadiationRecordSequence" in self._dataset: + if len(self._ReferencedRTRadiationRecordSequence) == len(self._dataset.ReferencedRTRadiationRecordSequence): + return self._ReferencedRTRadiationRecordSequence + else: + return [ReferencedRTRadiationRecordSequenceItem(x) for x in self._dataset.ReferencedRTRadiationRecordSequence] + return None + + @ReferencedRTRadiationRecordSequence.setter + def ReferencedRTRadiationRecordSequence(self, value: Optional[List[ReferencedRTRadiationRecordSequenceItem]]): + if value is None: + self._ReferencedRTRadiationRecordSequence = [] + if "ReferencedRTRadiationRecordSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationRecordSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRTRadiationRecordSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRTRadiationRecordSequence must be a list of ReferencedRTRadiationRecordSequenceItem objects" + ) + else: + self._ReferencedRTRadiationRecordSequence = value + if "ReferencedRTRadiationRecordSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationRecordSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationRecordSequence.clear() + self._dataset.ReferencedRTRadiationRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationRecord(self, item: ReferencedRTRadiationRecordSequenceItem): + if not isinstance(item, ReferencedRTRadiationRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationRecordSequenceItem") + self._ReferencedRTRadiationRecordSequence.append(item) + if "ReferencedRTRadiationRecordSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationRecordSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationRecordSequence.append(item.to_dataset()) + + @property + def RTRadiationSetDeliveryNumber(self) -> Optional[int]: + if "RTRadiationSetDeliveryNumber" in self._dataset: + return self._dataset.RTRadiationSetDeliveryNumber + return None + + @RTRadiationSetDeliveryNumber.setter + def RTRadiationSetDeliveryNumber(self, value: Optional[int]): + if value is None: + if "RTRadiationSetDeliveryNumber" in self._dataset: + del self._dataset.RTRadiationSetDeliveryNumber + else: + self._dataset.RTRadiationSetDeliveryNumber = value + + @property + def ClinicalFractionNumber(self) -> Optional[int]: + if "ClinicalFractionNumber" in self._dataset: + return self._dataset.ClinicalFractionNumber + return None + + @ClinicalFractionNumber.setter + def ClinicalFractionNumber(self, value: Optional[int]): + if value is None: + if "ClinicalFractionNumber" in self._dataset: + del self._dataset.ClinicalFractionNumber + else: + self._dataset.ClinicalFractionNumber = value + + @property + def RTTreatmentFractionCompletionStatus(self) -> Optional[str]: + if "RTTreatmentFractionCompletionStatus" in self._dataset: + return self._dataset.RTTreatmentFractionCompletionStatus + return None + + @RTTreatmentFractionCompletionStatus.setter + def RTTreatmentFractionCompletionStatus(self, value: Optional[str]): + if value is None: + if "RTTreatmentFractionCompletionStatus" in self._dataset: + del self._dataset.RTTreatmentFractionCompletionStatus + else: + self._dataset.RTTreatmentFractionCompletionStatus = value + + @property + def RTRadiationSetUsage(self) -> Optional[str]: + if "RTRadiationSetUsage" in self._dataset: + return self._dataset.RTRadiationSetUsage + return None + + @RTRadiationSetUsage.setter + def RTRadiationSetUsage(self, value: Optional[str]): + if value is None: + if "RTRadiationSetUsage" in self._dataset: + del self._dataset.RTRadiationSetUsage + else: + self._dataset.RTRadiationSetUsage = value + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def RadiationDoseSequence(self) -> Optional[List[RadiationDoseSequenceItem]]: + if "RadiationDoseSequence" in self._dataset: + if len(self._RadiationDoseSequence) == len(self._dataset.RadiationDoseSequence): + return self._RadiationDoseSequence + else: + return [RadiationDoseSequenceItem(x) for x in self._dataset.RadiationDoseSequence] + return None + + @RadiationDoseSequence.setter + def RadiationDoseSequence(self, value: Optional[List[RadiationDoseSequenceItem]]): + if value is None: + self._RadiationDoseSequence = [] + if "RadiationDoseSequence" in self._dataset: + del self._dataset.RadiationDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDoseSequenceItem) for item in value): + raise ValueError("RadiationDoseSequence must be a list of RadiationDoseSequenceItem objects") + else: + self._RadiationDoseSequence = value + if "RadiationDoseSequence" not in self._dataset: + self._dataset.RadiationDoseSequence = pydicom.Sequence() + self._dataset.RadiationDoseSequence.clear() + self._dataset.RadiationDoseSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDose(self, item: RadiationDoseSequenceItem): + if not isinstance(item, RadiationDoseSequenceItem): + raise ValueError("Item must be an instance of RadiationDoseSequenceItem") + self._RadiationDoseSequence.append(item) + if "RadiationDoseSequence" not in self._dataset: + self._dataset.RadiationDoseSequence = pydicom.Sequence() + self._dataset.RadiationDoseSequence.append(item.to_dataset()) + + @property + def RadiationDoseIdentificationSequence(self) -> Optional[List[RadiationDoseIdentificationSequenceItem]]: + if "RadiationDoseIdentificationSequence" in self._dataset: + if len(self._RadiationDoseIdentificationSequence) == len(self._dataset.RadiationDoseIdentificationSequence): + return self._RadiationDoseIdentificationSequence + else: + return [RadiationDoseIdentificationSequenceItem(x) for x in self._dataset.RadiationDoseIdentificationSequence] + return None + + @RadiationDoseIdentificationSequence.setter + def RadiationDoseIdentificationSequence(self, value: Optional[List[RadiationDoseIdentificationSequenceItem]]): + if value is None: + self._RadiationDoseIdentificationSequence = [] + if "RadiationDoseIdentificationSequence" in self._dataset: + del self._dataset.RadiationDoseIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDoseIdentificationSequenceItem) for item in value + ): + raise ValueError( + "RadiationDoseIdentificationSequence must be a list of RadiationDoseIdentificationSequenceItem objects" + ) + else: + self._RadiationDoseIdentificationSequence = value + if "RadiationDoseIdentificationSequence" not in self._dataset: + self._dataset.RadiationDoseIdentificationSequence = pydicom.Sequence() + self._dataset.RadiationDoseIdentificationSequence.clear() + self._dataset.RadiationDoseIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDoseIdentification(self, item: RadiationDoseIdentificationSequenceItem): + if not isinstance(item, RadiationDoseIdentificationSequenceItem): + raise ValueError("Item must be an instance of RadiationDoseIdentificationSequenceItem") + self._RadiationDoseIdentificationSequence.append(item) + if "RadiationDoseIdentificationSequence" not in self._dataset: + self._dataset.RadiationDoseIdentificationSequence = pydicom.Sequence() + self._dataset.RadiationDoseIdentificationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_radiation_salvage_record.py b/tdwii_plus_examples/domain_model/rt_radiation_salvage_record.py new file mode 100644 index 0000000..b2ba5f2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_salvage_record.py @@ -0,0 +1,5539 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .additional_parameter_recording_instance_sequence_item import ( + AdditionalParameterRecordingInstanceSequenceItem, +) +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .confirmation_sequence_item import ConfirmationSequenceItem +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .interlock_sequence_item import InterlockSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_instance_sequence_item import ReferencedRTInstanceSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_radiation_salvage_record_control_point_sequence_item import ( + RTRadiationSalvageRecordControlPointSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .treatment_tolerance_violation_sequence_item import ( + TreatmentToleranceViolationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtRadiationSalvageRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._RTRadiationSalvageRecordControlPointSequence: List[RTRadiationSalvageRecordControlPointSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._ReferencedRTInstanceSequence: List[ReferencedRTInstanceSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentToleranceViolationSequence: List[TreatmentToleranceViolationSequenceItem] = [] + self._ConfirmationSequence: List[ConfirmationSequenceItem] = [] + self._InterlockSequence: List[InterlockSequenceItem] = [] + self._AdditionalParameterRecordingInstanceSequence: List[AdditionalParameterRecordingInstanceSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def RTRadiationSalvageRecordControlPointSequence(self) -> Optional[List[RTRadiationSalvageRecordControlPointSequenceItem]]: + if "RTRadiationSalvageRecordControlPointSequence" in self._dataset: + if len(self._RTRadiationSalvageRecordControlPointSequence) == len( + self._dataset.RTRadiationSalvageRecordControlPointSequence + ): + return self._RTRadiationSalvageRecordControlPointSequence + else: + return [ + RTRadiationSalvageRecordControlPointSequenceItem(x) + for x in self._dataset.RTRadiationSalvageRecordControlPointSequence + ] + return None + + @RTRadiationSalvageRecordControlPointSequence.setter + def RTRadiationSalvageRecordControlPointSequence( + self, value: Optional[List[RTRadiationSalvageRecordControlPointSequenceItem]] + ): + if value is None: + self._RTRadiationSalvageRecordControlPointSequence = [] + if "RTRadiationSalvageRecordControlPointSequence" in self._dataset: + del self._dataset.RTRadiationSalvageRecordControlPointSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTRadiationSalvageRecordControlPointSequenceItem) for item in value + ): + raise ValueError( + "RTRadiationSalvageRecordControlPointSequence must be a list of" + " RTRadiationSalvageRecordControlPointSequenceItem objects" + ) + else: + self._RTRadiationSalvageRecordControlPointSequence = value + if "RTRadiationSalvageRecordControlPointSequence" not in self._dataset: + self._dataset.RTRadiationSalvageRecordControlPointSequence = pydicom.Sequence() + self._dataset.RTRadiationSalvageRecordControlPointSequence.clear() + self._dataset.RTRadiationSalvageRecordControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_RTRadiationSalvageRecordControlPoint(self, item: RTRadiationSalvageRecordControlPointSequenceItem): + if not isinstance(item, RTRadiationSalvageRecordControlPointSequenceItem): + raise ValueError("Item must be an instance of RTRadiationSalvageRecordControlPointSequenceItem") + self._RTRadiationSalvageRecordControlPointSequence.append(item) + if "RTRadiationSalvageRecordControlPointSequence" not in self._dataset: + self._dataset.RTRadiationSalvageRecordControlPointSequence = pydicom.Sequence() + self._dataset.RTRadiationSalvageRecordControlPointSequence.append(item.to_dataset()) + + @property + def StartingMetersetValueKnownFlag(self) -> Optional[str]: + if "StartingMetersetValueKnownFlag" in self._dataset: + return self._dataset.StartingMetersetValueKnownFlag + return None + + @StartingMetersetValueKnownFlag.setter + def StartingMetersetValueKnownFlag(self, value: Optional[str]): + if value is None: + if "StartingMetersetValueKnownFlag" in self._dataset: + del self._dataset.StartingMetersetValueKnownFlag + else: + self._dataset.StartingMetersetValueKnownFlag = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTInstanceSequence(self) -> Optional[List[ReferencedRTInstanceSequenceItem]]: + if "ReferencedRTInstanceSequence" in self._dataset: + if len(self._ReferencedRTInstanceSequence) == len(self._dataset.ReferencedRTInstanceSequence): + return self._ReferencedRTInstanceSequence + else: + return [ReferencedRTInstanceSequenceItem(x) for x in self._dataset.ReferencedRTInstanceSequence] + return None + + @ReferencedRTInstanceSequence.setter + def ReferencedRTInstanceSequence(self, value: Optional[List[ReferencedRTInstanceSequenceItem]]): + if value is None: + self._ReferencedRTInstanceSequence = [] + if "ReferencedRTInstanceSequence" in self._dataset: + del self._dataset.ReferencedRTInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTInstanceSequenceItem) for item in value): + raise ValueError("ReferencedRTInstanceSequence must be a list of ReferencedRTInstanceSequenceItem objects") + else: + self._ReferencedRTInstanceSequence = value + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.clear() + self._dataset.ReferencedRTInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTInstance(self, item: ReferencedRTInstanceSequenceItem): + if not isinstance(item, ReferencedRTInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTInstanceSequenceItem") + self._ReferencedRTInstanceSequence.append(item) + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RTRadiationUsage(self) -> Optional[str]: + if "RTRadiationUsage" in self._dataset: + return self._dataset.RTRadiationUsage + return None + + @RTRadiationUsage.setter + def RTRadiationUsage(self, value: Optional[str]): + if value is None: + if "RTRadiationUsage" in self._dataset: + del self._dataset.RTRadiationUsage + else: + self._dataset.RTRadiationUsage = value + + @property + def TreatmentDeliveryContinuationFlag(self) -> Optional[str]: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + return self._dataset.TreatmentDeliveryContinuationFlag + return None + + @TreatmentDeliveryContinuationFlag.setter + def TreatmentDeliveryContinuationFlag(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + del self._dataset.TreatmentDeliveryContinuationFlag + else: + self._dataset.TreatmentDeliveryContinuationFlag = value + + @property + def TreatmentRecordContentOrigin(self) -> Optional[str]: + if "TreatmentRecordContentOrigin" in self._dataset: + return self._dataset.TreatmentRecordContentOrigin + return None + + @TreatmentRecordContentOrigin.setter + def TreatmentRecordContentOrigin(self, value: Optional[str]): + if value is None: + if "TreatmentRecordContentOrigin" in self._dataset: + del self._dataset.TreatmentRecordContentOrigin + else: + self._dataset.TreatmentRecordContentOrigin = value + + @property + def RTTreatmentTerminationStatus(self) -> Optional[str]: + if "RTTreatmentTerminationStatus" in self._dataset: + return self._dataset.RTTreatmentTerminationStatus + return None + + @RTTreatmentTerminationStatus.setter + def RTTreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "RTTreatmentTerminationStatus" in self._dataset: + del self._dataset.RTTreatmentTerminationStatus + else: + self._dataset.RTTreatmentTerminationStatus = value + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def TreatmentToleranceViolationSequence(self) -> Optional[List[TreatmentToleranceViolationSequenceItem]]: + if "TreatmentToleranceViolationSequence" in self._dataset: + if len(self._TreatmentToleranceViolationSequence) == len(self._dataset.TreatmentToleranceViolationSequence): + return self._TreatmentToleranceViolationSequence + else: + return [TreatmentToleranceViolationSequenceItem(x) for x in self._dataset.TreatmentToleranceViolationSequence] + return None + + @TreatmentToleranceViolationSequence.setter + def TreatmentToleranceViolationSequence(self, value: Optional[List[TreatmentToleranceViolationSequenceItem]]): + if value is None: + self._TreatmentToleranceViolationSequence = [] + if "TreatmentToleranceViolationSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentToleranceViolationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentToleranceViolationSequence must be a list of TreatmentToleranceViolationSequenceItem objects" + ) + else: + self._TreatmentToleranceViolationSequence = value + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.clear() + self._dataset.TreatmentToleranceViolationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolation(self, item: TreatmentToleranceViolationSequenceItem): + if not isinstance(item, TreatmentToleranceViolationSequenceItem): + raise ValueError("Item must be an instance of TreatmentToleranceViolationSequenceItem") + self._TreatmentToleranceViolationSequence.append(item) + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.append(item.to_dataset()) + + @property + def ConfirmationSequence(self) -> Optional[List[ConfirmationSequenceItem]]: + if "ConfirmationSequence" in self._dataset: + if len(self._ConfirmationSequence) == len(self._dataset.ConfirmationSequence): + return self._ConfirmationSequence + else: + return [ConfirmationSequenceItem(x) for x in self._dataset.ConfirmationSequence] + return None + + @ConfirmationSequence.setter + def ConfirmationSequence(self, value: Optional[List[ConfirmationSequenceItem]]): + if value is None: + self._ConfirmationSequence = [] + if "ConfirmationSequence" in self._dataset: + del self._dataset.ConfirmationSequence + elif not isinstance(value, list) or not all(isinstance(item, ConfirmationSequenceItem) for item in value): + raise ValueError("ConfirmationSequence must be a list of ConfirmationSequenceItem objects") + else: + self._ConfirmationSequence = value + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.clear() + self._dataset.ConfirmationSequence.extend([item.to_dataset() for item in value]) + + def add_Confirmation(self, item: ConfirmationSequenceItem): + if not isinstance(item, ConfirmationSequenceItem): + raise ValueError("Item must be an instance of ConfirmationSequenceItem") + self._ConfirmationSequence.append(item) + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.append(item.to_dataset()) + + @property + def InterlockSequence(self) -> Optional[List[InterlockSequenceItem]]: + if "InterlockSequence" in self._dataset: + if len(self._InterlockSequence) == len(self._dataset.InterlockSequence): + return self._InterlockSequence + else: + return [InterlockSequenceItem(x) for x in self._dataset.InterlockSequence] + return None + + @InterlockSequence.setter + def InterlockSequence(self, value: Optional[List[InterlockSequenceItem]]): + if value is None: + self._InterlockSequence = [] + if "InterlockSequence" in self._dataset: + del self._dataset.InterlockSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockSequenceItem) for item in value): + raise ValueError("InterlockSequence must be a list of InterlockSequenceItem objects") + else: + self._InterlockSequence = value + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.clear() + self._dataset.InterlockSequence.extend([item.to_dataset() for item in value]) + + def add_Interlock(self, item: InterlockSequenceItem): + if not isinstance(item, InterlockSequenceItem): + raise ValueError("Item must be an instance of InterlockSequenceItem") + self._InterlockSequence.append(item) + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.append(item.to_dataset()) + + @property + def AdditionalParameterRecordingInstanceSequence(self) -> Optional[List[AdditionalParameterRecordingInstanceSequenceItem]]: + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + if len(self._AdditionalParameterRecordingInstanceSequence) == len( + self._dataset.AdditionalParameterRecordingInstanceSequence + ): + return self._AdditionalParameterRecordingInstanceSequence + else: + return [ + AdditionalParameterRecordingInstanceSequenceItem(x) + for x in self._dataset.AdditionalParameterRecordingInstanceSequence + ] + return None + + @AdditionalParameterRecordingInstanceSequence.setter + def AdditionalParameterRecordingInstanceSequence( + self, value: Optional[List[AdditionalParameterRecordingInstanceSequenceItem]] + ): + if value is None: + self._AdditionalParameterRecordingInstanceSequence = [] + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + del self._dataset.AdditionalParameterRecordingInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, AdditionalParameterRecordingInstanceSequenceItem) for item in value + ): + raise ValueError( + "AdditionalParameterRecordingInstanceSequence must be a list of" + " AdditionalParameterRecordingInstanceSequenceItem objects" + ) + else: + self._AdditionalParameterRecordingInstanceSequence = value + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.clear() + self._dataset.AdditionalParameterRecordingInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_AdditionalParameterRecordingInstance(self, item: AdditionalParameterRecordingInstanceSequenceItem): + if not isinstance(item, AdditionalParameterRecordingInstanceSequenceItem): + raise ValueError("Item must be an instance of AdditionalParameterRecordingInstanceSequenceItem") + self._AdditionalParameterRecordingInstanceSequence.append(item) + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_radiation_salvage_record_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/rt_radiation_salvage_record_control_point_sequence_item.py new file mode 100644 index 0000000..3be6944 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_salvage_record_control_point_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTRadiationSalvageRecordControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTControlPointIndex(self) -> Optional[int]: + if "RTControlPointIndex" in self._dataset: + return self._dataset.RTControlPointIndex + return None + + @RTControlPointIndex.setter + def RTControlPointIndex(self, value: Optional[int]): + if value is None: + if "RTControlPointIndex" in self._dataset: + del self._dataset.RTControlPointIndex + else: + self._dataset.RTControlPointIndex = value + + @property + def ReferencedRadiationGenerationModeIndex(self) -> Optional[int]: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + return self._dataset.ReferencedRadiationGenerationModeIndex + return None + + @ReferencedRadiationGenerationModeIndex.setter + def ReferencedRadiationGenerationModeIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + del self._dataset.ReferencedRadiationGenerationModeIndex + else: + self._dataset.ReferencedRadiationGenerationModeIndex = value + + @property + def ReferencedTreatmentPositionIndex(self) -> Optional[int]: + if "ReferencedTreatmentPositionIndex" in self._dataset: + return self._dataset.ReferencedTreatmentPositionIndex + return None + + @ReferencedTreatmentPositionIndex.setter + def ReferencedTreatmentPositionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedTreatmentPositionIndex" in self._dataset: + del self._dataset.ReferencedTreatmentPositionIndex + else: + self._dataset.ReferencedTreatmentPositionIndex = value + + @property + def CumulativeMeterset(self) -> Optional[float]: + if "CumulativeMeterset" in self._dataset: + return self._dataset.CumulativeMeterset + return None + + @CumulativeMeterset.setter + def CumulativeMeterset(self, value: Optional[float]): + if value is None: + if "CumulativeMeterset" in self._dataset: + del self._dataset.CumulativeMeterset + else: + self._dataset.CumulativeMeterset = value + + @property + def RecordedRTControlPointDateTime(self) -> Optional[str]: + if "RecordedRTControlPointDateTime" in self._dataset: + return self._dataset.RecordedRTControlPointDateTime + return None + + @RecordedRTControlPointDateTime.setter + def RecordedRTControlPointDateTime(self, value: Optional[str]): + if value is None: + if "RecordedRTControlPointDateTime" in self._dataset: + del self._dataset.RecordedRTControlPointDateTime + else: + self._dataset.RecordedRTControlPointDateTime = value + + @property + def ReferencedRadiationRTControlPointIndex(self) -> Optional[int]: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + return self._dataset.ReferencedRadiationRTControlPointIndex + return None + + @ReferencedRadiationRTControlPointIndex.setter + def ReferencedRadiationRTControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + del self._dataset.ReferencedRadiationRTControlPointIndex + else: + self._dataset.ReferencedRadiationRTControlPointIndex = value diff --git a/tdwii_plus_examples/domain_model/rt_radiation_sequence_item.py b/tdwii_plus_examples/domain_model/rt_radiation_sequence_item.py new file mode 100644 index 0000000..43cf8f0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTRadiationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/rt_radiation_set.py b/tdwii_plus_examples/domain_model/rt_radiation_set.py new file mode 100644 index 0000000..796e8cf --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_set.py @@ -0,0 +1,4834 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_pattern_sequence_item import FractionPatternSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dose_identification_sequence_item import ( + RadiationDoseIdentificationSequenceItem, +) +from .radiation_dose_sequence_item import RadiationDoseSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_physician_intent_sequence_item import ( + ReferencedRTPhysicianIntentSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_radiation_sequence_item import RTRadiationSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_position_group_sequence_item import TreatmentPositionGroupSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class RtRadiationSet: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._RadiationDoseSequence: List[RadiationDoseSequenceItem] = [] + self._RadiationDoseIdentificationSequence: List[RadiationDoseIdentificationSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionGroupSequence: List[TreatmentPositionGroupSequenceItem] = [] + self._RTRadiationSequence: List[RTRadiationSequenceItem] = [] + self._ReferencedRTPhysicianIntentSequence: List[ReferencedRTPhysicianIntentSequenceItem] = [] + self._FractionPatternSequence: List[FractionPatternSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def RadiationDoseSequence(self) -> Optional[List[RadiationDoseSequenceItem]]: + if "RadiationDoseSequence" in self._dataset: + if len(self._RadiationDoseSequence) == len(self._dataset.RadiationDoseSequence): + return self._RadiationDoseSequence + else: + return [RadiationDoseSequenceItem(x) for x in self._dataset.RadiationDoseSequence] + return None + + @RadiationDoseSequence.setter + def RadiationDoseSequence(self, value: Optional[List[RadiationDoseSequenceItem]]): + if value is None: + self._RadiationDoseSequence = [] + if "RadiationDoseSequence" in self._dataset: + del self._dataset.RadiationDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDoseSequenceItem) for item in value): + raise ValueError("RadiationDoseSequence must be a list of RadiationDoseSequenceItem objects") + else: + self._RadiationDoseSequence = value + if "RadiationDoseSequence" not in self._dataset: + self._dataset.RadiationDoseSequence = pydicom.Sequence() + self._dataset.RadiationDoseSequence.clear() + self._dataset.RadiationDoseSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDose(self, item: RadiationDoseSequenceItem): + if not isinstance(item, RadiationDoseSequenceItem): + raise ValueError("Item must be an instance of RadiationDoseSequenceItem") + self._RadiationDoseSequence.append(item) + if "RadiationDoseSequence" not in self._dataset: + self._dataset.RadiationDoseSequence = pydicom.Sequence() + self._dataset.RadiationDoseSequence.append(item.to_dataset()) + + @property + def RadiationDoseIdentificationSequence(self) -> Optional[List[RadiationDoseIdentificationSequenceItem]]: + if "RadiationDoseIdentificationSequence" in self._dataset: + if len(self._RadiationDoseIdentificationSequence) == len(self._dataset.RadiationDoseIdentificationSequence): + return self._RadiationDoseIdentificationSequence + else: + return [RadiationDoseIdentificationSequenceItem(x) for x in self._dataset.RadiationDoseIdentificationSequence] + return None + + @RadiationDoseIdentificationSequence.setter + def RadiationDoseIdentificationSequence(self, value: Optional[List[RadiationDoseIdentificationSequenceItem]]): + if value is None: + self._RadiationDoseIdentificationSequence = [] + if "RadiationDoseIdentificationSequence" in self._dataset: + del self._dataset.RadiationDoseIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDoseIdentificationSequenceItem) for item in value + ): + raise ValueError( + "RadiationDoseIdentificationSequence must be a list of RadiationDoseIdentificationSequenceItem objects" + ) + else: + self._RadiationDoseIdentificationSequence = value + if "RadiationDoseIdentificationSequence" not in self._dataset: + self._dataset.RadiationDoseIdentificationSequence = pydicom.Sequence() + self._dataset.RadiationDoseIdentificationSequence.clear() + self._dataset.RadiationDoseIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDoseIdentification(self, item: RadiationDoseIdentificationSequenceItem): + if not isinstance(item, RadiationDoseIdentificationSequenceItem): + raise ValueError("Item must be an instance of RadiationDoseIdentificationSequenceItem") + self._RadiationDoseIdentificationSequence.append(item) + if "RadiationDoseIdentificationSequence" not in self._dataset: + self._dataset.RadiationDoseIdentificationSequence = pydicom.Sequence() + self._dataset.RadiationDoseIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentPositionGroupSequence(self) -> Optional[List[TreatmentPositionGroupSequenceItem]]: + if "TreatmentPositionGroupSequence" in self._dataset: + if len(self._TreatmentPositionGroupSequence) == len(self._dataset.TreatmentPositionGroupSequence): + return self._TreatmentPositionGroupSequence + else: + return [TreatmentPositionGroupSequenceItem(x) for x in self._dataset.TreatmentPositionGroupSequence] + return None + + @TreatmentPositionGroupSequence.setter + def TreatmentPositionGroupSequence(self, value: Optional[List[TreatmentPositionGroupSequenceItem]]): + if value is None: + self._TreatmentPositionGroupSequence = [] + if "TreatmentPositionGroupSequence" in self._dataset: + del self._dataset.TreatmentPositionGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionGroupSequenceItem) for item in value): + raise ValueError("TreatmentPositionGroupSequence must be a list of TreatmentPositionGroupSequenceItem objects") + else: + self._TreatmentPositionGroupSequence = value + if "TreatmentPositionGroupSequence" not in self._dataset: + self._dataset.TreatmentPositionGroupSequence = pydicom.Sequence() + self._dataset.TreatmentPositionGroupSequence.clear() + self._dataset.TreatmentPositionGroupSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPositionGroup(self, item: TreatmentPositionGroupSequenceItem): + if not isinstance(item, TreatmentPositionGroupSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionGroupSequenceItem") + self._TreatmentPositionGroupSequence.append(item) + if "TreatmentPositionGroupSequence" not in self._dataset: + self._dataset.TreatmentPositionGroupSequence = pydicom.Sequence() + self._dataset.TreatmentPositionGroupSequence.append(item.to_dataset()) + + @property + def RTRadiationSequence(self) -> Optional[List[RTRadiationSequenceItem]]: + if "RTRadiationSequence" in self._dataset: + if len(self._RTRadiationSequence) == len(self._dataset.RTRadiationSequence): + return self._RTRadiationSequence + else: + return [RTRadiationSequenceItem(x) for x in self._dataset.RTRadiationSequence] + return None + + @RTRadiationSequence.setter + def RTRadiationSequence(self, value: Optional[List[RTRadiationSequenceItem]]): + if value is None: + self._RTRadiationSequence = [] + if "RTRadiationSequence" in self._dataset: + del self._dataset.RTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, RTRadiationSequenceItem) for item in value): + raise ValueError("RTRadiationSequence must be a list of RTRadiationSequenceItem objects") + else: + self._RTRadiationSequence = value + if "RTRadiationSequence" not in self._dataset: + self._dataset.RTRadiationSequence = pydicom.Sequence() + self._dataset.RTRadiationSequence.clear() + self._dataset.RTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_RTRadiation(self, item: RTRadiationSequenceItem): + if not isinstance(item, RTRadiationSequenceItem): + raise ValueError("Item must be an instance of RTRadiationSequenceItem") + self._RTRadiationSequence.append(item) + if "RTRadiationSequence" not in self._dataset: + self._dataset.RTRadiationSequence = pydicom.Sequence() + self._dataset.RTRadiationSequence.append(item.to_dataset()) + + @property + def IntendedNumberOfFractions(self) -> Optional[int]: + if "IntendedNumberOfFractions" in self._dataset: + return self._dataset.IntendedNumberOfFractions + return None + + @IntendedNumberOfFractions.setter + def IntendedNumberOfFractions(self, value: Optional[int]): + if value is None: + if "IntendedNumberOfFractions" in self._dataset: + del self._dataset.IntendedNumberOfFractions + else: + self._dataset.IntendedNumberOfFractions = value + + @property + def RTRadiationSetIntent(self) -> Optional[str]: + if "RTRadiationSetIntent" in self._dataset: + return self._dataset.RTRadiationSetIntent + return None + + @RTRadiationSetIntent.setter + def RTRadiationSetIntent(self, value: Optional[str]): + if value is None: + if "RTRadiationSetIntent" in self._dataset: + del self._dataset.RTRadiationSetIntent + else: + self._dataset.RTRadiationSetIntent = value + + @property + def ReferencedRTPhysicianIntentSequence(self) -> Optional[List[ReferencedRTPhysicianIntentSequenceItem]]: + if "ReferencedRTPhysicianIntentSequence" in self._dataset: + if len(self._ReferencedRTPhysicianIntentSequence) == len(self._dataset.ReferencedRTPhysicianIntentSequence): + return self._ReferencedRTPhysicianIntentSequence + else: + return [ReferencedRTPhysicianIntentSequenceItem(x) for x in self._dataset.ReferencedRTPhysicianIntentSequence] + return None + + @ReferencedRTPhysicianIntentSequence.setter + def ReferencedRTPhysicianIntentSequence(self, value: Optional[List[ReferencedRTPhysicianIntentSequenceItem]]): + if value is None: + self._ReferencedRTPhysicianIntentSequence = [] + if "ReferencedRTPhysicianIntentSequence" in self._dataset: + del self._dataset.ReferencedRTPhysicianIntentSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRTPhysicianIntentSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRTPhysicianIntentSequence must be a list of ReferencedRTPhysicianIntentSequenceItem objects" + ) + else: + self._ReferencedRTPhysicianIntentSequence = value + if "ReferencedRTPhysicianIntentSequence" not in self._dataset: + self._dataset.ReferencedRTPhysicianIntentSequence = pydicom.Sequence() + self._dataset.ReferencedRTPhysicianIntentSequence.clear() + self._dataset.ReferencedRTPhysicianIntentSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPhysicianIntent(self, item: ReferencedRTPhysicianIntentSequenceItem): + if not isinstance(item, ReferencedRTPhysicianIntentSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPhysicianIntentSequenceItem") + self._ReferencedRTPhysicianIntentSequence.append(item) + if "ReferencedRTPhysicianIntentSequence" not in self._dataset: + self._dataset.ReferencedRTPhysicianIntentSequence = pydicom.Sequence() + self._dataset.ReferencedRTPhysicianIntentSequence.append(item.to_dataset()) + + @property + def UserContentLabel(self) -> Optional[str]: + if "UserContentLabel" in self._dataset: + return self._dataset.UserContentLabel + return None + + @UserContentLabel.setter + def UserContentLabel(self, value: Optional[str]): + if value is None: + if "UserContentLabel" in self._dataset: + del self._dataset.UserContentLabel + else: + self._dataset.UserContentLabel = value + + @property + def FractionPatternSequence(self) -> Optional[List[FractionPatternSequenceItem]]: + if "FractionPatternSequence" in self._dataset: + if len(self._FractionPatternSequence) == len(self._dataset.FractionPatternSequence): + return self._FractionPatternSequence + else: + return [FractionPatternSequenceItem(x) for x in self._dataset.FractionPatternSequence] + return None + + @FractionPatternSequence.setter + def FractionPatternSequence(self, value: Optional[List[FractionPatternSequenceItem]]): + if value is None: + self._FractionPatternSequence = [] + if "FractionPatternSequence" in self._dataset: + del self._dataset.FractionPatternSequence + elif not isinstance(value, list) or not all(isinstance(item, FractionPatternSequenceItem) for item in value): + raise ValueError("FractionPatternSequence must be a list of FractionPatternSequenceItem objects") + else: + self._FractionPatternSequence = value + if "FractionPatternSequence" not in self._dataset: + self._dataset.FractionPatternSequence = pydicom.Sequence() + self._dataset.FractionPatternSequence.clear() + self._dataset.FractionPatternSequence.extend([item.to_dataset() for item in value]) + + def add_FractionPattern(self, item: FractionPatternSequenceItem): + if not isinstance(item, FractionPatternSequenceItem): + raise ValueError("Item must be an instance of FractionPatternSequenceItem") + self._FractionPatternSequence.append(item) + if "FractionPatternSequence" not in self._dataset: + self._dataset.FractionPatternSequence = pydicom.Sequence() + self._dataset.FractionPatternSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_radiation_set_delivery_instruction.py b/tdwii_plus_examples/domain_model/rt_radiation_set_delivery_instruction.py new file mode 100644 index 0000000..9694f6c --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_set_delivery_instruction.py @@ -0,0 +1,4639 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .omitted_radiation_sequence_item import OmittedRadiationSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_radiation_set_sequence_item import ( + ReferencedRTRadiationSetSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_radiation_task_sequence_item import RTRadiationTaskSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtRadiationSetDeliveryInstruction: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._ReferencedRTRadiationSetSequence: List[ReferencedRTRadiationSetSequenceItem] = [] + self._OmittedRadiationSequence: List[OmittedRadiationSequenceItem] = [] + self._RTRadiationTaskSequence: List[RTRadiationTaskSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSetSequence(self) -> Optional[List[ReferencedRTRadiationSetSequenceItem]]: + if "ReferencedRTRadiationSetSequence" in self._dataset: + if len(self._ReferencedRTRadiationSetSequence) == len(self._dataset.ReferencedRTRadiationSetSequence): + return self._ReferencedRTRadiationSetSequence + else: + return [ReferencedRTRadiationSetSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSetSequence] + return None + + @ReferencedRTRadiationSetSequence.setter + def ReferencedRTRadiationSetSequence(self, value: Optional[List[ReferencedRTRadiationSetSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSetSequence = [] + if "ReferencedRTRadiationSetSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSetSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSetSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSetSequence must be a list of ReferencedRTRadiationSetSequenceItem objects") + else: + self._ReferencedRTRadiationSetSequence = value + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.clear() + self._dataset.ReferencedRTRadiationSetSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiationSet(self, item: ReferencedRTRadiationSetSequenceItem): + if not isinstance(item, ReferencedRTRadiationSetSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSetSequenceItem") + self._ReferencedRTRadiationSetSequence.append(item) + if "ReferencedRTRadiationSetSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSetSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSetSequence.append(item.to_dataset()) + + @property + def RTRadiationSetDeliveryNumber(self) -> Optional[int]: + if "RTRadiationSetDeliveryNumber" in self._dataset: + return self._dataset.RTRadiationSetDeliveryNumber + return None + + @RTRadiationSetDeliveryNumber.setter + def RTRadiationSetDeliveryNumber(self, value: Optional[int]): + if value is None: + if "RTRadiationSetDeliveryNumber" in self._dataset: + del self._dataset.RTRadiationSetDeliveryNumber + else: + self._dataset.RTRadiationSetDeliveryNumber = value + + @property + def ClinicalFractionNumber(self) -> Optional[int]: + if "ClinicalFractionNumber" in self._dataset: + return self._dataset.ClinicalFractionNumber + return None + + @ClinicalFractionNumber.setter + def ClinicalFractionNumber(self, value: Optional[int]): + if value is None: + if "ClinicalFractionNumber" in self._dataset: + del self._dataset.ClinicalFractionNumber + else: + self._dataset.ClinicalFractionNumber = value + + @property + def OmittedRadiationSequence(self) -> Optional[List[OmittedRadiationSequenceItem]]: + if "OmittedRadiationSequence" in self._dataset: + if len(self._OmittedRadiationSequence) == len(self._dataset.OmittedRadiationSequence): + return self._OmittedRadiationSequence + else: + return [OmittedRadiationSequenceItem(x) for x in self._dataset.OmittedRadiationSequence] + return None + + @OmittedRadiationSequence.setter + def OmittedRadiationSequence(self, value: Optional[List[OmittedRadiationSequenceItem]]): + if value is None: + self._OmittedRadiationSequence = [] + if "OmittedRadiationSequence" in self._dataset: + del self._dataset.OmittedRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, OmittedRadiationSequenceItem) for item in value): + raise ValueError("OmittedRadiationSequence must be a list of OmittedRadiationSequenceItem objects") + else: + self._OmittedRadiationSequence = value + if "OmittedRadiationSequence" not in self._dataset: + self._dataset.OmittedRadiationSequence = pydicom.Sequence() + self._dataset.OmittedRadiationSequence.clear() + self._dataset.OmittedRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_OmittedRadiation(self, item: OmittedRadiationSequenceItem): + if not isinstance(item, OmittedRadiationSequenceItem): + raise ValueError("Item must be an instance of OmittedRadiationSequenceItem") + self._OmittedRadiationSequence.append(item) + if "OmittedRadiationSequence" not in self._dataset: + self._dataset.OmittedRadiationSequence = pydicom.Sequence() + self._dataset.OmittedRadiationSequence.append(item.to_dataset()) + + @property + def RTRadiationTaskSequence(self) -> Optional[List[RTRadiationTaskSequenceItem]]: + if "RTRadiationTaskSequence" in self._dataset: + if len(self._RTRadiationTaskSequence) == len(self._dataset.RTRadiationTaskSequence): + return self._RTRadiationTaskSequence + else: + return [RTRadiationTaskSequenceItem(x) for x in self._dataset.RTRadiationTaskSequence] + return None + + @RTRadiationTaskSequence.setter + def RTRadiationTaskSequence(self, value: Optional[List[RTRadiationTaskSequenceItem]]): + if value is None: + self._RTRadiationTaskSequence = [] + if "RTRadiationTaskSequence" in self._dataset: + del self._dataset.RTRadiationTaskSequence + elif not isinstance(value, list) or not all(isinstance(item, RTRadiationTaskSequenceItem) for item in value): + raise ValueError("RTRadiationTaskSequence must be a list of RTRadiationTaskSequenceItem objects") + else: + self._RTRadiationTaskSequence = value + if "RTRadiationTaskSequence" not in self._dataset: + self._dataset.RTRadiationTaskSequence = pydicom.Sequence() + self._dataset.RTRadiationTaskSequence.clear() + self._dataset.RTRadiationTaskSequence.extend([item.to_dataset() for item in value]) + + def add_RTRadiationTask(self, item: RTRadiationTaskSequenceItem): + if not isinstance(item, RTRadiationTaskSequenceItem): + raise ValueError("Item must be an instance of RTRadiationTaskSequenceItem") + self._RTRadiationTaskSequence.append(item) + if "RTRadiationTaskSequence" not in self._dataset: + self._dataset.RTRadiationTaskSequence = pydicom.Sequence() + self._dataset.RTRadiationTaskSequence.append(item.to_dataset()) + + @property + def RTRadiationSetDeliveryUsage(self) -> Optional[str]: + if "RTRadiationSetDeliveryUsage" in self._dataset: + return self._dataset.RTRadiationSetDeliveryUsage + return None + + @RTRadiationSetDeliveryUsage.setter + def RTRadiationSetDeliveryUsage(self, value: Optional[str]): + if value is None: + if "RTRadiationSetDeliveryUsage" in self._dataset: + del self._dataset.RTRadiationSetDeliveryUsage + else: + self._dataset.RTRadiationSetDeliveryUsage = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_radiation_task_sequence_item.py b/tdwii_plus_examples/domain_model/rt_radiation_task_sequence_item.py new file mode 100644 index 0000000..f85536d --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_radiation_task_sequence_item.py @@ -0,0 +1,224 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .device_motion_control_sequence_item import DeviceMotionControlSequenceItem +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem +from .referenced_rt_treatment_preparation_sequence_item import ( + ReferencedRTTreatmentPreparationSequenceItem, +) +from .rt_delivery_start_patient_position_sequence_item import ( + RTDeliveryStartPatientPositionSequenceItem, +) + + +class RTRadiationTaskSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeviceMotionControlSequence: List[DeviceMotionControlSequenceItem] = [] + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + self._RTDeliveryStartPatientPositionSequence: List[RTDeliveryStartPatientPositionSequenceItem] = [] + self._ReferencedRTTreatmentPreparationSequence: List[ReferencedRTTreatmentPreparationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContinuationStartMeterset(self) -> Optional[float]: + if "ContinuationStartMeterset" in self._dataset: + return self._dataset.ContinuationStartMeterset + return None + + @ContinuationStartMeterset.setter + def ContinuationStartMeterset(self, value: Optional[float]): + if value is None: + if "ContinuationStartMeterset" in self._dataset: + del self._dataset.ContinuationStartMeterset + else: + self._dataset.ContinuationStartMeterset = value + + @property + def ContinuationEndMeterset(self) -> Optional[float]: + if "ContinuationEndMeterset" in self._dataset: + return self._dataset.ContinuationEndMeterset + return None + + @ContinuationEndMeterset.setter + def ContinuationEndMeterset(self, value: Optional[float]): + if value is None: + if "ContinuationEndMeterset" in self._dataset: + del self._dataset.ContinuationEndMeterset + else: + self._dataset.ContinuationEndMeterset = value + + @property + def DeviceMotionControlSequence(self) -> Optional[List[DeviceMotionControlSequenceItem]]: + if "DeviceMotionControlSequence" in self._dataset: + if len(self._DeviceMotionControlSequence) == len(self._dataset.DeviceMotionControlSequence): + return self._DeviceMotionControlSequence + else: + return [DeviceMotionControlSequenceItem(x) for x in self._dataset.DeviceMotionControlSequence] + return None + + @DeviceMotionControlSequence.setter + def DeviceMotionControlSequence(self, value: Optional[List[DeviceMotionControlSequenceItem]]): + if value is None: + self._DeviceMotionControlSequence = [] + if "DeviceMotionControlSequence" in self._dataset: + del self._dataset.DeviceMotionControlSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceMotionControlSequenceItem) for item in value): + raise ValueError("DeviceMotionControlSequence must be a list of DeviceMotionControlSequenceItem objects") + else: + self._DeviceMotionControlSequence = value + if "DeviceMotionControlSequence" not in self._dataset: + self._dataset.DeviceMotionControlSequence = pydicom.Sequence() + self._dataset.DeviceMotionControlSequence.clear() + self._dataset.DeviceMotionControlSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceMotionControl(self, item: DeviceMotionControlSequenceItem): + if not isinstance(item, DeviceMotionControlSequenceItem): + raise ValueError("Item must be an instance of DeviceMotionControlSequenceItem") + self._DeviceMotionControlSequence.append(item) + if "DeviceMotionControlSequence" not in self._dataset: + self._dataset.DeviceMotionControlSequence = pydicom.Sequence() + self._dataset.DeviceMotionControlSequence.append(item.to_dataset()) + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) + + @property + def TreatmentDeliveryContinuationFlag(self) -> Optional[str]: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + return self._dataset.TreatmentDeliveryContinuationFlag + return None + + @TreatmentDeliveryContinuationFlag.setter + def TreatmentDeliveryContinuationFlag(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + del self._dataset.TreatmentDeliveryContinuationFlag + else: + self._dataset.TreatmentDeliveryContinuationFlag = value + + @property + def RadiationOrderIndex(self) -> Optional[int]: + if "RadiationOrderIndex" in self._dataset: + return self._dataset.RadiationOrderIndex + return None + + @RadiationOrderIndex.setter + def RadiationOrderIndex(self, value: Optional[int]): + if value is None: + if "RadiationOrderIndex" in self._dataset: + del self._dataset.RadiationOrderIndex + else: + self._dataset.RadiationOrderIndex = value + + @property + def RTDeliveryStartPatientPositionSequence(self) -> Optional[List[RTDeliveryStartPatientPositionSequenceItem]]: + if "RTDeliveryStartPatientPositionSequence" in self._dataset: + if len(self._RTDeliveryStartPatientPositionSequence) == len(self._dataset.RTDeliveryStartPatientPositionSequence): + return self._RTDeliveryStartPatientPositionSequence + else: + return [ + RTDeliveryStartPatientPositionSequenceItem(x) for x in self._dataset.RTDeliveryStartPatientPositionSequence + ] + return None + + @RTDeliveryStartPatientPositionSequence.setter + def RTDeliveryStartPatientPositionSequence(self, value: Optional[List[RTDeliveryStartPatientPositionSequenceItem]]): + if value is None: + self._RTDeliveryStartPatientPositionSequence = [] + if "RTDeliveryStartPatientPositionSequence" in self._dataset: + del self._dataset.RTDeliveryStartPatientPositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTDeliveryStartPatientPositionSequenceItem) for item in value + ): + raise ValueError( + "RTDeliveryStartPatientPositionSequence must be a list of RTDeliveryStartPatientPositionSequenceItem objects" + ) + else: + self._RTDeliveryStartPatientPositionSequence = value + if "RTDeliveryStartPatientPositionSequence" not in self._dataset: + self._dataset.RTDeliveryStartPatientPositionSequence = pydicom.Sequence() + self._dataset.RTDeliveryStartPatientPositionSequence.clear() + self._dataset.RTDeliveryStartPatientPositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeliveryStartPatientPosition(self, item: RTDeliveryStartPatientPositionSequenceItem): + if not isinstance(item, RTDeliveryStartPatientPositionSequenceItem): + raise ValueError("Item must be an instance of RTDeliveryStartPatientPositionSequenceItem") + self._RTDeliveryStartPatientPositionSequence.append(item) + if "RTDeliveryStartPatientPositionSequence" not in self._dataset: + self._dataset.RTDeliveryStartPatientPositionSequence = pydicom.Sequence() + self._dataset.RTDeliveryStartPatientPositionSequence.append(item.to_dataset()) + + @property + def ReferencedRTTreatmentPreparationSequence(self) -> Optional[List[ReferencedRTTreatmentPreparationSequenceItem]]: + if "ReferencedRTTreatmentPreparationSequence" in self._dataset: + if len(self._ReferencedRTTreatmentPreparationSequence) == len( + self._dataset.ReferencedRTTreatmentPreparationSequence + ): + return self._ReferencedRTTreatmentPreparationSequence + else: + return [ + ReferencedRTTreatmentPreparationSequenceItem(x) + for x in self._dataset.ReferencedRTTreatmentPreparationSequence + ] + return None + + @ReferencedRTTreatmentPreparationSequence.setter + def ReferencedRTTreatmentPreparationSequence(self, value: Optional[List[ReferencedRTTreatmentPreparationSequenceItem]]): + if value is None: + self._ReferencedRTTreatmentPreparationSequence = [] + if "ReferencedRTTreatmentPreparationSequence" in self._dataset: + del self._dataset.ReferencedRTTreatmentPreparationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRTTreatmentPreparationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRTTreatmentPreparationSequence must be a list of ReferencedRTTreatmentPreparationSequenceItem" + " objects" + ) + else: + self._ReferencedRTTreatmentPreparationSequence = value + if "ReferencedRTTreatmentPreparationSequence" not in self._dataset: + self._dataset.ReferencedRTTreatmentPreparationSequence = pydicom.Sequence() + self._dataset.ReferencedRTTreatmentPreparationSequence.clear() + self._dataset.ReferencedRTTreatmentPreparationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTTreatmentPreparation(self, item: ReferencedRTTreatmentPreparationSequenceItem): + if not isinstance(item, ReferencedRTTreatmentPreparationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTTreatmentPreparationSequenceItem") + self._ReferencedRTTreatmentPreparationSequence.append(item) + if "ReferencedRTTreatmentPreparationSequence" not in self._dataset: + self._dataset.ReferencedRTTreatmentPreparationSequence = pydicom.Sequence() + self._dataset.ReferencedRTTreatmentPreparationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_referenced_series_sequence_item.py b/tdwii_plus_examples/domain_model/rt_referenced_series_sequence_item.py new file mode 100644 index 0000000..4b9d33f --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_referenced_series_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .contour_image_sequence_item import ContourImageSequenceItem + + +class RTReferencedSeriesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ContourImageSequence: List[ContourImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def ContourImageSequence(self) -> Optional[List[ContourImageSequenceItem]]: + if "ContourImageSequence" in self._dataset: + if len(self._ContourImageSequence) == len(self._dataset.ContourImageSequence): + return self._ContourImageSequence + else: + return [ContourImageSequenceItem(x) for x in self._dataset.ContourImageSequence] + return None + + @ContourImageSequence.setter + def ContourImageSequence(self, value: Optional[List[ContourImageSequenceItem]]): + if value is None: + self._ContourImageSequence = [] + if "ContourImageSequence" in self._dataset: + del self._dataset.ContourImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContourImageSequenceItem) for item in value): + raise ValueError("ContourImageSequence must be a list of ContourImageSequenceItem objects") + else: + self._ContourImageSequence = value + if "ContourImageSequence" not in self._dataset: + self._dataset.ContourImageSequence = pydicom.Sequence() + self._dataset.ContourImageSequence.clear() + self._dataset.ContourImageSequence.extend([item.to_dataset() for item in value]) + + def add_ContourImage(self, item: ContourImageSequenceItem): + if not isinstance(item, ContourImageSequenceItem): + raise ValueError("Item must be an instance of ContourImageSequenceItem") + self._ContourImageSequence.append(item) + if "ContourImageSequence" not in self._dataset: + self._dataset.ContourImageSequence = pydicom.Sequence() + self._dataset.ContourImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_referenced_study_sequence_item.py b/tdwii_plus_examples/domain_model/rt_referenced_study_sequence_item.py new file mode 100644 index 0000000..90d8b34 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_referenced_study_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .rt_referenced_series_sequence_item import RTReferencedSeriesSequenceItem + + +class RTReferencedStudySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._RTReferencedSeriesSequence: List[RTReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def RTReferencedSeriesSequence(self) -> Optional[List[RTReferencedSeriesSequenceItem]]: + if "RTReferencedSeriesSequence" in self._dataset: + if len(self._RTReferencedSeriesSequence) == len(self._dataset.RTReferencedSeriesSequence): + return self._RTReferencedSeriesSequence + else: + return [RTReferencedSeriesSequenceItem(x) for x in self._dataset.RTReferencedSeriesSequence] + return None + + @RTReferencedSeriesSequence.setter + def RTReferencedSeriesSequence(self, value: Optional[List[RTReferencedSeriesSequenceItem]]): + if value is None: + self._RTReferencedSeriesSequence = [] + if "RTReferencedSeriesSequence" in self._dataset: + del self._dataset.RTReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RTReferencedSeriesSequenceItem) for item in value): + raise ValueError("RTReferencedSeriesSequence must be a list of RTReferencedSeriesSequenceItem objects") + else: + self._RTReferencedSeriesSequence = value + if "RTReferencedSeriesSequence" not in self._dataset: + self._dataset.RTReferencedSeriesSequence = pydicom.Sequence() + self._dataset.RTReferencedSeriesSequence.clear() + self._dataset.RTReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RTReferencedSeries(self, item: RTReferencedSeriesSequenceItem): + if not isinstance(item, RTReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of RTReferencedSeriesSequenceItem") + self._RTReferencedSeriesSequence.append(item) + if "RTReferencedSeriesSequence" not in self._dataset: + self._dataset.RTReferencedSeriesSequence = pydicom.Sequence() + self._dataset.RTReferencedSeriesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_related_roi_sequence_item.py b/tdwii_plus_examples/domain_model/rt_related_roi_sequence_item.py new file mode 100644 index 0000000..42871a5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_related_roi_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTRelatedROISequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTROIRelationship(self) -> Optional[str]: + if "RTROIRelationship" in self._dataset: + return self._dataset.RTROIRelationship + return None + + @RTROIRelationship.setter + def RTROIRelationship(self, value: Optional[str]): + if value is None: + if "RTROIRelationship" in self._dataset: + del self._dataset.RTROIRelationship + else: + self._dataset.RTROIRelationship = value + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value diff --git a/tdwii_plus_examples/domain_model/rt_segment_annotation.py b/tdwii_plus_examples/domain_model/rt_segment_annotation.py new file mode 100644 index 0000000..5d7399a --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_segment_annotation.py @@ -0,0 +1,4638 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_spatial_registration_sequence_item import ( + ReferencedSpatialRegistrationSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_segment_annotation_sequence_item import RTSegmentAnnotationSequenceItem +from .segment_reference_sequence_item import SegmentReferenceSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtSegmentAnnotation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedSpatialRegistrationSequence: List[ReferencedSpatialRegistrationSequenceItem] = [] + self._SegmentReferenceSequence: List[SegmentReferenceSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTSegmentAnnotationSequence: List[RTSegmentAnnotationSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ReferencedSpatialRegistrationSequence(self) -> Optional[List[ReferencedSpatialRegistrationSequenceItem]]: + if "ReferencedSpatialRegistrationSequence" in self._dataset: + if len(self._ReferencedSpatialRegistrationSequence) == len(self._dataset.ReferencedSpatialRegistrationSequence): + return self._ReferencedSpatialRegistrationSequence + else: + return [ + ReferencedSpatialRegistrationSequenceItem(x) for x in self._dataset.ReferencedSpatialRegistrationSequence + ] + return None + + @ReferencedSpatialRegistrationSequence.setter + def ReferencedSpatialRegistrationSequence(self, value: Optional[List[ReferencedSpatialRegistrationSequenceItem]]): + if value is None: + self._ReferencedSpatialRegistrationSequence = [] + if "ReferencedSpatialRegistrationSequence" in self._dataset: + del self._dataset.ReferencedSpatialRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedSpatialRegistrationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedSpatialRegistrationSequence must be a list of ReferencedSpatialRegistrationSequenceItem objects" + ) + else: + self._ReferencedSpatialRegistrationSequence = value + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.clear() + self._dataset.ReferencedSpatialRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSpatialRegistration(self, item: ReferencedSpatialRegistrationSequenceItem): + if not isinstance(item, ReferencedSpatialRegistrationSequenceItem): + raise ValueError("Item must be an instance of ReferencedSpatialRegistrationSequenceItem") + self._ReferencedSpatialRegistrationSequence.append(item) + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.append(item.to_dataset()) + + @property + def SegmentReferenceSequence(self) -> Optional[List[SegmentReferenceSequenceItem]]: + if "SegmentReferenceSequence" in self._dataset: + if len(self._SegmentReferenceSequence) == len(self._dataset.SegmentReferenceSequence): + return self._SegmentReferenceSequence + else: + return [SegmentReferenceSequenceItem(x) for x in self._dataset.SegmentReferenceSequence] + return None + + @SegmentReferenceSequence.setter + def SegmentReferenceSequence(self, value: Optional[List[SegmentReferenceSequenceItem]]): + if value is None: + self._SegmentReferenceSequence = [] + if "SegmentReferenceSequence" in self._dataset: + del self._dataset.SegmentReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SegmentReferenceSequenceItem) for item in value): + raise ValueError("SegmentReferenceSequence must be a list of SegmentReferenceSequenceItem objects") + else: + self._SegmentReferenceSequence = value + if "SegmentReferenceSequence" not in self._dataset: + self._dataset.SegmentReferenceSequence = pydicom.Sequence() + self._dataset.SegmentReferenceSequence.clear() + self._dataset.SegmentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentReference(self, item: SegmentReferenceSequenceItem): + if not isinstance(item, SegmentReferenceSequenceItem): + raise ValueError("Item must be an instance of SegmentReferenceSequenceItem") + self._SegmentReferenceSequence.append(item) + if "SegmentReferenceSequence" not in self._dataset: + self._dataset.SegmentReferenceSequence = pydicom.Sequence() + self._dataset.SegmentReferenceSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTSegmentAnnotationSequence(self) -> Optional[List[RTSegmentAnnotationSequenceItem]]: + if "RTSegmentAnnotationSequence" in self._dataset: + if len(self._RTSegmentAnnotationSequence) == len(self._dataset.RTSegmentAnnotationSequence): + return self._RTSegmentAnnotationSequence + else: + return [RTSegmentAnnotationSequenceItem(x) for x in self._dataset.RTSegmentAnnotationSequence] + return None + + @RTSegmentAnnotationSequence.setter + def RTSegmentAnnotationSequence(self, value: Optional[List[RTSegmentAnnotationSequenceItem]]): + if value is None: + self._RTSegmentAnnotationSequence = [] + if "RTSegmentAnnotationSequence" in self._dataset: + del self._dataset.RTSegmentAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, RTSegmentAnnotationSequenceItem) for item in value): + raise ValueError("RTSegmentAnnotationSequence must be a list of RTSegmentAnnotationSequenceItem objects") + else: + self._RTSegmentAnnotationSequence = value + if "RTSegmentAnnotationSequence" not in self._dataset: + self._dataset.RTSegmentAnnotationSequence = pydicom.Sequence() + self._dataset.RTSegmentAnnotationSequence.clear() + self._dataset.RTSegmentAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_RTSegmentAnnotation(self, item: RTSegmentAnnotationSequenceItem): + if not isinstance(item, RTSegmentAnnotationSequenceItem): + raise ValueError("Item must be an instance of RTSegmentAnnotationSequenceItem") + self._RTSegmentAnnotationSequence.append(item) + if "RTSegmentAnnotationSequence" not in self._dataset: + self._dataset.RTSegmentAnnotationSequence = pydicom.Sequence() + self._dataset.RTSegmentAnnotationSequence.append(item.to_dataset()) + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_segment_annotation_sequence_item.py b/tdwii_plus_examples/domain_model/rt_segment_annotation_sequence_item.py new file mode 100644 index 0000000..1ca3eea --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_segment_annotation_sequence_item.py @@ -0,0 +1,293 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .segment_characteristics_sequence_item import SegmentCharacteristicsSequenceItem +from .segmented_rt_accessory_device_sequence_item import ( + SegmentedRTAccessoryDeviceSequenceItem, +) + + +class RTSegmentAnnotationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SegmentedRTAccessoryDeviceSequence: List[SegmentedRTAccessoryDeviceSequenceItem] = [] + self._SegmentCharacteristicsSequence: List[SegmentCharacteristicsSequenceItem] = [] + self._SegmentAnnotationCategoryCodeSequence: List[CodeSequenceItem] = [] + self._SegmentAnnotationTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecommendedDisplayGrayscaleValue(self) -> Optional[int]: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + return self._dataset.RecommendedDisplayGrayscaleValue + return None + + @RecommendedDisplayGrayscaleValue.setter + def RecommendedDisplayGrayscaleValue(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + del self._dataset.RecommendedDisplayGrayscaleValue + else: + self._dataset.RecommendedDisplayGrayscaleValue = value + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def RecommendedPresentationOpacity(self) -> Optional[float]: + if "RecommendedPresentationOpacity" in self._dataset: + return self._dataset.RecommendedPresentationOpacity + return None + + @RecommendedPresentationOpacity.setter + def RecommendedPresentationOpacity(self, value: Optional[float]): + if value is None: + if "RecommendedPresentationOpacity" in self._dataset: + del self._dataset.RecommendedPresentationOpacity + else: + self._dataset.RecommendedPresentationOpacity = value + + @property + def RecommendedPresentationType(self) -> Optional[str]: + if "RecommendedPresentationType" in self._dataset: + return self._dataset.RecommendedPresentationType + return None + + @RecommendedPresentationType.setter + def RecommendedPresentationType(self, value: Optional[str]): + if value is None: + if "RecommendedPresentationType" in self._dataset: + del self._dataset.RecommendedPresentationType + else: + self._dataset.RecommendedPresentationType = value + + @property + def SegmentationCreationTemplateLabel(self) -> Optional[str]: + if "SegmentationCreationTemplateLabel" in self._dataset: + return self._dataset.SegmentationCreationTemplateLabel + return None + + @SegmentationCreationTemplateLabel.setter + def SegmentationCreationTemplateLabel(self, value: Optional[str]): + if value is None: + if "SegmentationCreationTemplateLabel" in self._dataset: + del self._dataset.SegmentationCreationTemplateLabel + else: + self._dataset.SegmentationCreationTemplateLabel = value + + @property + def ReferencedSegmentReferenceIndex(self) -> Optional[int]: + if "ReferencedSegmentReferenceIndex" in self._dataset: + return self._dataset.ReferencedSegmentReferenceIndex + return None + + @ReferencedSegmentReferenceIndex.setter + def ReferencedSegmentReferenceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedSegmentReferenceIndex" in self._dataset: + del self._dataset.ReferencedSegmentReferenceIndex + else: + self._dataset.ReferencedSegmentReferenceIndex = value + + @property + def SegmentedRTAccessoryDeviceSequence(self) -> Optional[List[SegmentedRTAccessoryDeviceSequenceItem]]: + if "SegmentedRTAccessoryDeviceSequence" in self._dataset: + if len(self._SegmentedRTAccessoryDeviceSequence) == len(self._dataset.SegmentedRTAccessoryDeviceSequence): + return self._SegmentedRTAccessoryDeviceSequence + else: + return [SegmentedRTAccessoryDeviceSequenceItem(x) for x in self._dataset.SegmentedRTAccessoryDeviceSequence] + return None + + @SegmentedRTAccessoryDeviceSequence.setter + def SegmentedRTAccessoryDeviceSequence(self, value: Optional[List[SegmentedRTAccessoryDeviceSequenceItem]]): + if value is None: + self._SegmentedRTAccessoryDeviceSequence = [] + if "SegmentedRTAccessoryDeviceSequence" in self._dataset: + del self._dataset.SegmentedRTAccessoryDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, SegmentedRTAccessoryDeviceSequenceItem) for item in value + ): + raise ValueError( + "SegmentedRTAccessoryDeviceSequence must be a list of SegmentedRTAccessoryDeviceSequenceItem objects" + ) + else: + self._SegmentedRTAccessoryDeviceSequence = value + if "SegmentedRTAccessoryDeviceSequence" not in self._dataset: + self._dataset.SegmentedRTAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.SegmentedRTAccessoryDeviceSequence.clear() + self._dataset.SegmentedRTAccessoryDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedRTAccessoryDevice(self, item: SegmentedRTAccessoryDeviceSequenceItem): + if not isinstance(item, SegmentedRTAccessoryDeviceSequenceItem): + raise ValueError("Item must be an instance of SegmentedRTAccessoryDeviceSequenceItem") + self._SegmentedRTAccessoryDeviceSequence.append(item) + if "SegmentedRTAccessoryDeviceSequence" not in self._dataset: + self._dataset.SegmentedRTAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.SegmentedRTAccessoryDeviceSequence.append(item.to_dataset()) + + @property + def SegmentCharacteristicsSequence(self) -> Optional[List[SegmentCharacteristicsSequenceItem]]: + if "SegmentCharacteristicsSequence" in self._dataset: + if len(self._SegmentCharacteristicsSequence) == len(self._dataset.SegmentCharacteristicsSequence): + return self._SegmentCharacteristicsSequence + else: + return [SegmentCharacteristicsSequenceItem(x) for x in self._dataset.SegmentCharacteristicsSequence] + return None + + @SegmentCharacteristicsSequence.setter + def SegmentCharacteristicsSequence(self, value: Optional[List[SegmentCharacteristicsSequenceItem]]): + if value is None: + self._SegmentCharacteristicsSequence = [] + if "SegmentCharacteristicsSequence" in self._dataset: + del self._dataset.SegmentCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, SegmentCharacteristicsSequenceItem) for item in value): + raise ValueError("SegmentCharacteristicsSequence must be a list of SegmentCharacteristicsSequenceItem objects") + else: + self._SegmentCharacteristicsSequence = value + if "SegmentCharacteristicsSequence" not in self._dataset: + self._dataset.SegmentCharacteristicsSequence = pydicom.Sequence() + self._dataset.SegmentCharacteristicsSequence.clear() + self._dataset.SegmentCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentCharacteristics(self, item: SegmentCharacteristicsSequenceItem): + if not isinstance(item, SegmentCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of SegmentCharacteristicsSequenceItem") + self._SegmentCharacteristicsSequence.append(item) + if "SegmentCharacteristicsSequence" not in self._dataset: + self._dataset.SegmentCharacteristicsSequence = pydicom.Sequence() + self._dataset.SegmentCharacteristicsSequence.append(item.to_dataset()) + + @property + def SegmentCharacteristicsPrecedence(self) -> Optional[int]: + if "SegmentCharacteristicsPrecedence" in self._dataset: + return self._dataset.SegmentCharacteristicsPrecedence + return None + + @SegmentCharacteristicsPrecedence.setter + def SegmentCharacteristicsPrecedence(self, value: Optional[int]): + if value is None: + if "SegmentCharacteristicsPrecedence" in self._dataset: + del self._dataset.SegmentCharacteristicsPrecedence + else: + self._dataset.SegmentCharacteristicsPrecedence = value + + @property + def SegmentAnnotationCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentAnnotationCategoryCodeSequence" in self._dataset: + if len(self._SegmentAnnotationCategoryCodeSequence) == len(self._dataset.SegmentAnnotationCategoryCodeSequence): + return self._SegmentAnnotationCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentAnnotationCategoryCodeSequence] + return None + + @SegmentAnnotationCategoryCodeSequence.setter + def SegmentAnnotationCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentAnnotationCategoryCodeSequence = [] + if "SegmentAnnotationCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentAnnotationCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentAnnotationCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentAnnotationCategoryCodeSequence = value + if "SegmentAnnotationCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentAnnotationCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentAnnotationCategoryCodeSequence.clear() + self._dataset.SegmentAnnotationCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentAnnotationCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentAnnotationCategoryCodeSequence.append(item) + if "SegmentAnnotationCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentAnnotationCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentAnnotationCategoryCodeSequence.append(item.to_dataset()) + + @property + def SegmentAnnotationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentAnnotationTypeCodeSequence" in self._dataset: + if len(self._SegmentAnnotationTypeCodeSequence) == len(self._dataset.SegmentAnnotationTypeCodeSequence): + return self._SegmentAnnotationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentAnnotationTypeCodeSequence] + return None + + @SegmentAnnotationTypeCodeSequence.setter + def SegmentAnnotationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentAnnotationTypeCodeSequence = [] + if "SegmentAnnotationTypeCodeSequence" in self._dataset: + del self._dataset.SegmentAnnotationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentAnnotationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentAnnotationTypeCodeSequence = value + if "SegmentAnnotationTypeCodeSequence" not in self._dataset: + self._dataset.SegmentAnnotationTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentAnnotationTypeCodeSequence.clear() + self._dataset.SegmentAnnotationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentAnnotationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentAnnotationTypeCodeSequence.append(item) + if "SegmentAnnotationTypeCodeSequence" not in self._dataset: + self._dataset.SegmentAnnotationTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentAnnotationTypeCodeSequence.append(item.to_dataset()) + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value + + @property + def RTSegmentAnnotationIndex(self) -> Optional[int]: + if "RTSegmentAnnotationIndex" in self._dataset: + return self._dataset.RTSegmentAnnotationIndex + return None + + @RTSegmentAnnotationIndex.setter + def RTSegmentAnnotationIndex(self, value: Optional[int]): + if value is None: + if "RTSegmentAnnotationIndex" in self._dataset: + del self._dataset.RTSegmentAnnotationIndex + else: + self._dataset.RTSegmentAnnotationIndex = value diff --git a/tdwii_plus_examples/domain_model/rt_structure_set.py b/tdwii_plus_examples/domain_model/rt_structure_set.py new file mode 100644 index 0000000..9d0240e --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_structure_set.py @@ -0,0 +1,4333 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_structure_set_sequence_item import PredecessorStructureSetSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_frame_of_reference_sequence_item import ( + ReferencedFrameOfReferenceSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .roi_contour_sequence_item import ROIContourSequenceItem +from .rtroi_observations_sequence_item import RTROIObservationsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .source_series_information_sequence_item import SourceSeriesInformationSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .structure_set_roi_sequence_item import StructureSetROISequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtStructureSet: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedFrameOfReferenceSequence: List[ReferencedFrameOfReferenceSequenceItem] = [] + self._PredecessorStructureSetSequence: List[PredecessorStructureSetSequenceItem] = [] + self._StructureSetROISequence: List[StructureSetROISequenceItem] = [] + self._SourceSeriesInformationSequence: List[SourceSeriesInformationSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ROIContourSequence: List[ROIContourSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._RTROIObservationsSequence: List[RTROIObservationsSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def StructureSetLabel(self) -> Optional[str]: + if "StructureSetLabel" in self._dataset: + return self._dataset.StructureSetLabel + return None + + @StructureSetLabel.setter + def StructureSetLabel(self, value: Optional[str]): + if value is None: + if "StructureSetLabel" in self._dataset: + del self._dataset.StructureSetLabel + else: + self._dataset.StructureSetLabel = value + + @property + def StructureSetName(self) -> Optional[str]: + if "StructureSetName" in self._dataset: + return self._dataset.StructureSetName + return None + + @StructureSetName.setter + def StructureSetName(self, value: Optional[str]): + if value is None: + if "StructureSetName" in self._dataset: + del self._dataset.StructureSetName + else: + self._dataset.StructureSetName = value + + @property + def StructureSetDescription(self) -> Optional[str]: + if "StructureSetDescription" in self._dataset: + return self._dataset.StructureSetDescription + return None + + @StructureSetDescription.setter + def StructureSetDescription(self, value: Optional[str]): + if value is None: + if "StructureSetDescription" in self._dataset: + del self._dataset.StructureSetDescription + else: + self._dataset.StructureSetDescription = value + + @property + def StructureSetDate(self) -> Optional[str]: + if "StructureSetDate" in self._dataset: + return self._dataset.StructureSetDate + return None + + @StructureSetDate.setter + def StructureSetDate(self, value: Optional[str]): + if value is None: + if "StructureSetDate" in self._dataset: + del self._dataset.StructureSetDate + else: + self._dataset.StructureSetDate = value + + @property + def StructureSetTime(self) -> Optional[str]: + if "StructureSetTime" in self._dataset: + return self._dataset.StructureSetTime + return None + + @StructureSetTime.setter + def StructureSetTime(self, value: Optional[str]): + if value is None: + if "StructureSetTime" in self._dataset: + del self._dataset.StructureSetTime + else: + self._dataset.StructureSetTime = value + + @property + def ReferencedFrameOfReferenceSequence(self) -> Optional[List[ReferencedFrameOfReferenceSequenceItem]]: + if "ReferencedFrameOfReferenceSequence" in self._dataset: + if len(self._ReferencedFrameOfReferenceSequence) == len(self._dataset.ReferencedFrameOfReferenceSequence): + return self._ReferencedFrameOfReferenceSequence + else: + return [ReferencedFrameOfReferenceSequenceItem(x) for x in self._dataset.ReferencedFrameOfReferenceSequence] + return None + + @ReferencedFrameOfReferenceSequence.setter + def ReferencedFrameOfReferenceSequence(self, value: Optional[List[ReferencedFrameOfReferenceSequenceItem]]): + if value is None: + self._ReferencedFrameOfReferenceSequence = [] + if "ReferencedFrameOfReferenceSequence" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedFrameOfReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedFrameOfReferenceSequence must be a list of ReferencedFrameOfReferenceSequenceItem objects" + ) + else: + self._ReferencedFrameOfReferenceSequence = value + if "ReferencedFrameOfReferenceSequence" not in self._dataset: + self._dataset.ReferencedFrameOfReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedFrameOfReferenceSequence.clear() + self._dataset.ReferencedFrameOfReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedFrameOfReference(self, item: ReferencedFrameOfReferenceSequenceItem): + if not isinstance(item, ReferencedFrameOfReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedFrameOfReferenceSequenceItem") + self._ReferencedFrameOfReferenceSequence.append(item) + if "ReferencedFrameOfReferenceSequence" not in self._dataset: + self._dataset.ReferencedFrameOfReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedFrameOfReferenceSequence.append(item.to_dataset()) + + @property + def PredecessorStructureSetSequence(self) -> Optional[List[PredecessorStructureSetSequenceItem]]: + if "PredecessorStructureSetSequence" in self._dataset: + if len(self._PredecessorStructureSetSequence) == len(self._dataset.PredecessorStructureSetSequence): + return self._PredecessorStructureSetSequence + else: + return [PredecessorStructureSetSequenceItem(x) for x in self._dataset.PredecessorStructureSetSequence] + return None + + @PredecessorStructureSetSequence.setter + def PredecessorStructureSetSequence(self, value: Optional[List[PredecessorStructureSetSequenceItem]]): + if value is None: + self._PredecessorStructureSetSequence = [] + if "PredecessorStructureSetSequence" in self._dataset: + del self._dataset.PredecessorStructureSetSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorStructureSetSequenceItem) for item in value): + raise ValueError("PredecessorStructureSetSequence must be a list of PredecessorStructureSetSequenceItem objects") + else: + self._PredecessorStructureSetSequence = value + if "PredecessorStructureSetSequence" not in self._dataset: + self._dataset.PredecessorStructureSetSequence = pydicom.Sequence() + self._dataset.PredecessorStructureSetSequence.clear() + self._dataset.PredecessorStructureSetSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorStructureSet(self, item: PredecessorStructureSetSequenceItem): + if not isinstance(item, PredecessorStructureSetSequenceItem): + raise ValueError("Item must be an instance of PredecessorStructureSetSequenceItem") + self._PredecessorStructureSetSequence.append(item) + if "PredecessorStructureSetSequence" not in self._dataset: + self._dataset.PredecessorStructureSetSequence = pydicom.Sequence() + self._dataset.PredecessorStructureSetSequence.append(item.to_dataset()) + + @property + def StructureSetROISequence(self) -> Optional[List[StructureSetROISequenceItem]]: + if "StructureSetROISequence" in self._dataset: + if len(self._StructureSetROISequence) == len(self._dataset.StructureSetROISequence): + return self._StructureSetROISequence + else: + return [StructureSetROISequenceItem(x) for x in self._dataset.StructureSetROISequence] + return None + + @StructureSetROISequence.setter + def StructureSetROISequence(self, value: Optional[List[StructureSetROISequenceItem]]): + if value is None: + self._StructureSetROISequence = [] + if "StructureSetROISequence" in self._dataset: + del self._dataset.StructureSetROISequence + elif not isinstance(value, list) or not all(isinstance(item, StructureSetROISequenceItem) for item in value): + raise ValueError("StructureSetROISequence must be a list of StructureSetROISequenceItem objects") + else: + self._StructureSetROISequence = value + if "StructureSetROISequence" not in self._dataset: + self._dataset.StructureSetROISequence = pydicom.Sequence() + self._dataset.StructureSetROISequence.clear() + self._dataset.StructureSetROISequence.extend([item.to_dataset() for item in value]) + + def add_StructureSetROI(self, item: StructureSetROISequenceItem): + if not isinstance(item, StructureSetROISequenceItem): + raise ValueError("Item must be an instance of StructureSetROISequenceItem") + self._StructureSetROISequence.append(item) + if "StructureSetROISequence" not in self._dataset: + self._dataset.StructureSetROISequence = pydicom.Sequence() + self._dataset.StructureSetROISequence.append(item.to_dataset()) + + @property + def SourceSeriesInformationSequence(self) -> Optional[List[SourceSeriesInformationSequenceItem]]: + if "SourceSeriesInformationSequence" in self._dataset: + if len(self._SourceSeriesInformationSequence) == len(self._dataset.SourceSeriesInformationSequence): + return self._SourceSeriesInformationSequence + else: + return [SourceSeriesInformationSequenceItem(x) for x in self._dataset.SourceSeriesInformationSequence] + return None + + @SourceSeriesInformationSequence.setter + def SourceSeriesInformationSequence(self, value: Optional[List[SourceSeriesInformationSequenceItem]]): + if value is None: + self._SourceSeriesInformationSequence = [] + if "SourceSeriesInformationSequence" in self._dataset: + del self._dataset.SourceSeriesInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceSeriesInformationSequenceItem) for item in value): + raise ValueError("SourceSeriesInformationSequence must be a list of SourceSeriesInformationSequenceItem objects") + else: + self._SourceSeriesInformationSequence = value + if "SourceSeriesInformationSequence" not in self._dataset: + self._dataset.SourceSeriesInformationSequence = pydicom.Sequence() + self._dataset.SourceSeriesInformationSequence.clear() + self._dataset.SourceSeriesInformationSequence.extend([item.to_dataset() for item in value]) + + def add_SourceSeriesInformation(self, item: SourceSeriesInformationSequenceItem): + if not isinstance(item, SourceSeriesInformationSequenceItem): + raise ValueError("Item must be an instance of SourceSeriesInformationSequenceItem") + self._SourceSeriesInformationSequence.append(item) + if "SourceSeriesInformationSequence" not in self._dataset: + self._dataset.SourceSeriesInformationSequence = pydicom.Sequence() + self._dataset.SourceSeriesInformationSequence.append(item.to_dataset()) + + @property + def ApprovalStatus(self) -> Optional[str]: + if "ApprovalStatus" in self._dataset: + return self._dataset.ApprovalStatus + return None + + @ApprovalStatus.setter + def ApprovalStatus(self, value: Optional[str]): + if value is None: + if "ApprovalStatus" in self._dataset: + del self._dataset.ApprovalStatus + else: + self._dataset.ApprovalStatus = value + + @property + def ReviewDate(self) -> Optional[str]: + if "ReviewDate" in self._dataset: + return self._dataset.ReviewDate + return None + + @ReviewDate.setter + def ReviewDate(self, value: Optional[str]): + if value is None: + if "ReviewDate" in self._dataset: + del self._dataset.ReviewDate + else: + self._dataset.ReviewDate = value + + @property + def ReviewTime(self) -> Optional[str]: + if "ReviewTime" in self._dataset: + return self._dataset.ReviewTime + return None + + @ReviewTime.setter + def ReviewTime(self, value: Optional[str]): + if value is None: + if "ReviewTime" in self._dataset: + del self._dataset.ReviewTime + else: + self._dataset.ReviewTime = value + + @property + def ReviewerName(self) -> Optional[str]: + if "ReviewerName" in self._dataset: + return self._dataset.ReviewerName + return None + + @ReviewerName.setter + def ReviewerName(self, value: Optional[str]): + if value is None: + if "ReviewerName" in self._dataset: + del self._dataset.ReviewerName + else: + self._dataset.ReviewerName = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ROIContourSequence(self) -> Optional[List[ROIContourSequenceItem]]: + if "ROIContourSequence" in self._dataset: + if len(self._ROIContourSequence) == len(self._dataset.ROIContourSequence): + return self._ROIContourSequence + else: + return [ROIContourSequenceItem(x) for x in self._dataset.ROIContourSequence] + return None + + @ROIContourSequence.setter + def ROIContourSequence(self, value: Optional[List[ROIContourSequenceItem]]): + if value is None: + self._ROIContourSequence = [] + if "ROIContourSequence" in self._dataset: + del self._dataset.ROIContourSequence + elif not isinstance(value, list) or not all(isinstance(item, ROIContourSequenceItem) for item in value): + raise ValueError("ROIContourSequence must be a list of ROIContourSequenceItem objects") + else: + self._ROIContourSequence = value + if "ROIContourSequence" not in self._dataset: + self._dataset.ROIContourSequence = pydicom.Sequence() + self._dataset.ROIContourSequence.clear() + self._dataset.ROIContourSequence.extend([item.to_dataset() for item in value]) + + def add_ROIContour(self, item: ROIContourSequenceItem): + if not isinstance(item, ROIContourSequenceItem): + raise ValueError("Item must be an instance of ROIContourSequenceItem") + self._ROIContourSequence.append(item) + if "ROIContourSequence" not in self._dataset: + self._dataset.ROIContourSequence = pydicom.Sequence() + self._dataset.ROIContourSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def RTROIObservationsSequence(self) -> Optional[List[RTROIObservationsSequenceItem]]: + if "RTROIObservationsSequence" in self._dataset: + if len(self._RTROIObservationsSequence) == len(self._dataset.RTROIObservationsSequence): + return self._RTROIObservationsSequence + else: + return [RTROIObservationsSequenceItem(x) for x in self._dataset.RTROIObservationsSequence] + return None + + @RTROIObservationsSequence.setter + def RTROIObservationsSequence(self, value: Optional[List[RTROIObservationsSequenceItem]]): + if value is None: + self._RTROIObservationsSequence = [] + if "RTROIObservationsSequence" in self._dataset: + del self._dataset.RTROIObservationsSequence + elif not isinstance(value, list) or not all(isinstance(item, RTROIObservationsSequenceItem) for item in value): + raise ValueError("RTROIObservationsSequence must be a list of RTROIObservationsSequenceItem objects") + else: + self._RTROIObservationsSequence = value + if "RTROIObservationsSequence" not in self._dataset: + self._dataset.RTROIObservationsSequence = pydicom.Sequence() + self._dataset.RTROIObservationsSequence.clear() + self._dataset.RTROIObservationsSequence.extend([item.to_dataset() for item in value]) + + def add_RTROIObservations(self, item: RTROIObservationsSequenceItem): + if not isinstance(item, RTROIObservationsSequenceItem): + raise ValueError("Item must be an instance of RTROIObservationsSequenceItem") + self._RTROIObservationsSequence.append(item) + if "RTROIObservationsSequence" not in self._dataset: + self._dataset.RTROIObservationsSequence = pydicom.Sequence() + self._dataset.RTROIObservationsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_tolerance_set_sequence_item.py b/tdwii_plus_examples/domain_model/rt_tolerance_set_sequence_item.py new file mode 100644 index 0000000..e62cf7d --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_tolerance_set_sequence_item.py @@ -0,0 +1,126 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .attribute_tolerance_values_sequence_item import ( + AttributeToleranceValuesSequenceItem, +) +from .patient_support_position_device_tolerance_sequence_item import ( + PatientSupportPositionDeviceToleranceSequenceItem, +) + + +class RTToleranceSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AttributeToleranceValuesSequence: List[AttributeToleranceValuesSequenceItem] = [] + self._PatientSupportPositionDeviceToleranceSequence: List[PatientSupportPositionDeviceToleranceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTToleranceSetLabel(self) -> Optional[str]: + if "RTToleranceSetLabel" in self._dataset: + return self._dataset.RTToleranceSetLabel + return None + + @RTToleranceSetLabel.setter + def RTToleranceSetLabel(self, value: Optional[str]): + if value is None: + if "RTToleranceSetLabel" in self._dataset: + del self._dataset.RTToleranceSetLabel + else: + self._dataset.RTToleranceSetLabel = value + + @property + def AttributeToleranceValuesSequence(self) -> Optional[List[AttributeToleranceValuesSequenceItem]]: + if "AttributeToleranceValuesSequence" in self._dataset: + if len(self._AttributeToleranceValuesSequence) == len(self._dataset.AttributeToleranceValuesSequence): + return self._AttributeToleranceValuesSequence + else: + return [AttributeToleranceValuesSequenceItem(x) for x in self._dataset.AttributeToleranceValuesSequence] + return None + + @AttributeToleranceValuesSequence.setter + def AttributeToleranceValuesSequence(self, value: Optional[List[AttributeToleranceValuesSequenceItem]]): + if value is None: + self._AttributeToleranceValuesSequence = [] + if "AttributeToleranceValuesSequence" in self._dataset: + del self._dataset.AttributeToleranceValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, AttributeToleranceValuesSequenceItem) for item in value): + raise ValueError("AttributeToleranceValuesSequence must be a list of AttributeToleranceValuesSequenceItem objects") + else: + self._AttributeToleranceValuesSequence = value + if "AttributeToleranceValuesSequence" not in self._dataset: + self._dataset.AttributeToleranceValuesSequence = pydicom.Sequence() + self._dataset.AttributeToleranceValuesSequence.clear() + self._dataset.AttributeToleranceValuesSequence.extend([item.to_dataset() for item in value]) + + def add_AttributeToleranceValues(self, item: AttributeToleranceValuesSequenceItem): + if not isinstance(item, AttributeToleranceValuesSequenceItem): + raise ValueError("Item must be an instance of AttributeToleranceValuesSequenceItem") + self._AttributeToleranceValuesSequence.append(item) + if "AttributeToleranceValuesSequence" not in self._dataset: + self._dataset.AttributeToleranceValuesSequence = pydicom.Sequence() + self._dataset.AttributeToleranceValuesSequence.append(item.to_dataset()) + + @property + def PatientSupportPositionSpecificationMethod(self) -> Optional[str]: + if "PatientSupportPositionSpecificationMethod" in self._dataset: + return self._dataset.PatientSupportPositionSpecificationMethod + return None + + @PatientSupportPositionSpecificationMethod.setter + def PatientSupportPositionSpecificationMethod(self, value: Optional[str]): + if value is None: + if "PatientSupportPositionSpecificationMethod" in self._dataset: + del self._dataset.PatientSupportPositionSpecificationMethod + else: + self._dataset.PatientSupportPositionSpecificationMethod = value + + @property + def PatientSupportPositionDeviceToleranceSequence( + self, + ) -> Optional[List[PatientSupportPositionDeviceToleranceSequenceItem]]: + if "PatientSupportPositionDeviceToleranceSequence" in self._dataset: + if len(self._PatientSupportPositionDeviceToleranceSequence) == len( + self._dataset.PatientSupportPositionDeviceToleranceSequence + ): + return self._PatientSupportPositionDeviceToleranceSequence + else: + return [ + PatientSupportPositionDeviceToleranceSequenceItem(x) + for x in self._dataset.PatientSupportPositionDeviceToleranceSequence + ] + return None + + @PatientSupportPositionDeviceToleranceSequence.setter + def PatientSupportPositionDeviceToleranceSequence( + self, value: Optional[List[PatientSupportPositionDeviceToleranceSequenceItem]] + ): + if value is None: + self._PatientSupportPositionDeviceToleranceSequence = [] + if "PatientSupportPositionDeviceToleranceSequence" in self._dataset: + del self._dataset.PatientSupportPositionDeviceToleranceSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientSupportPositionDeviceToleranceSequenceItem) for item in value + ): + raise ValueError( + "PatientSupportPositionDeviceToleranceSequence must be a list of" + " PatientSupportPositionDeviceToleranceSequenceItem objects" + ) + else: + self._PatientSupportPositionDeviceToleranceSequence = value + if "PatientSupportPositionDeviceToleranceSequence" not in self._dataset: + self._dataset.PatientSupportPositionDeviceToleranceSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionDeviceToleranceSequence.clear() + self._dataset.PatientSupportPositionDeviceToleranceSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPositionDeviceTolerance(self, item: PatientSupportPositionDeviceToleranceSequenceItem): + if not isinstance(item, PatientSupportPositionDeviceToleranceSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionDeviceToleranceSequenceItem") + self._PatientSupportPositionDeviceToleranceSequence.append(item) + if "PatientSupportPositionDeviceToleranceSequence" not in self._dataset: + self._dataset.PatientSupportPositionDeviceToleranceSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionDeviceToleranceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_treatment_phase_interval_sequence_item.py b/tdwii_plus_examples/domain_model/rt_treatment_phase_interval_sequence_item.py new file mode 100644 index 0000000..536783a --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_treatment_phase_interval_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class RTTreatmentPhaseIntervalSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def BasisRTTreatmentPhaseIndex(self) -> Optional[int]: + if "BasisRTTreatmentPhaseIndex" in self._dataset: + return self._dataset.BasisRTTreatmentPhaseIndex + return None + + @BasisRTTreatmentPhaseIndex.setter + def BasisRTTreatmentPhaseIndex(self, value: Optional[int]): + if value is None: + if "BasisRTTreatmentPhaseIndex" in self._dataset: + del self._dataset.BasisRTTreatmentPhaseIndex + else: + self._dataset.BasisRTTreatmentPhaseIndex = value + + @property + def RelatedRTTreatmentPhaseIndex(self) -> Optional[int]: + if "RelatedRTTreatmentPhaseIndex" in self._dataset: + return self._dataset.RelatedRTTreatmentPhaseIndex + return None + + @RelatedRTTreatmentPhaseIndex.setter + def RelatedRTTreatmentPhaseIndex(self, value: Optional[int]): + if value is None: + if "RelatedRTTreatmentPhaseIndex" in self._dataset: + del self._dataset.RelatedRTTreatmentPhaseIndex + else: + self._dataset.RelatedRTTreatmentPhaseIndex = value + + @property + def TemporalRelationshipIntervalAnchor(self) -> Optional[str]: + if "TemporalRelationshipIntervalAnchor" in self._dataset: + return self._dataset.TemporalRelationshipIntervalAnchor + return None + + @TemporalRelationshipIntervalAnchor.setter + def TemporalRelationshipIntervalAnchor(self, value: Optional[str]): + if value is None: + if "TemporalRelationshipIntervalAnchor" in self._dataset: + del self._dataset.TemporalRelationshipIntervalAnchor + else: + self._dataset.TemporalRelationshipIntervalAnchor = value + + @property + def MinimumNumberOfIntervalDays(self) -> Optional[float]: + if "MinimumNumberOfIntervalDays" in self._dataset: + return self._dataset.MinimumNumberOfIntervalDays + return None + + @MinimumNumberOfIntervalDays.setter + def MinimumNumberOfIntervalDays(self, value: Optional[float]): + if value is None: + if "MinimumNumberOfIntervalDays" in self._dataset: + del self._dataset.MinimumNumberOfIntervalDays + else: + self._dataset.MinimumNumberOfIntervalDays = value + + @property + def MaximumNumberOfIntervalDays(self) -> Optional[float]: + if "MaximumNumberOfIntervalDays" in self._dataset: + return self._dataset.MaximumNumberOfIntervalDays + return None + + @MaximumNumberOfIntervalDays.setter + def MaximumNumberOfIntervalDays(self, value: Optional[float]): + if value is None: + if "MaximumNumberOfIntervalDays" in self._dataset: + del self._dataset.MaximumNumberOfIntervalDays + else: + self._dataset.MaximumNumberOfIntervalDays = value diff --git a/tdwii_plus_examples/domain_model/rt_treatment_preparation.py b/tdwii_plus_examples/domain_model/rt_treatment_preparation.py new file mode 100644 index 0000000..2bcae1f --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_treatment_preparation.py @@ -0,0 +1,4700 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_treatment_preparation_procedure_sequence_item import ( + PatientTreatmentPreparationProcedureSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_patient_setup_photo_sequence_item import ( + ReferencedPatientSetupPhotoSequenceItem, +) +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_patient_position_scope_sequence_item import RTPatientPositionScopeSequenceItem +from .rt_treatment_preparation_patient_position_sequence_item import ( + RTTreatmentPreparationPatientPositionSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtTreatmentPreparation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RTPatientPositionScopeSequence: List[RTPatientPositionScopeSequenceItem] = [] + self._RTTreatmentPreparationPatientPositionSequence: List[RTTreatmentPreparationPatientPositionSequenceItem] = [] + self._ReferencedPatientSetupPhotoSequence: List[ReferencedPatientSetupPhotoSequenceItem] = [] + self._PatientTreatmentPreparationMethodCodeSequence: List[CodeSequenceItem] = [] + self._PatientTreatmentPreparationProcedureSequence: List[PatientTreatmentPreparationProcedureSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RTPatientPositionScopeSequence(self) -> Optional[List[RTPatientPositionScopeSequenceItem]]: + if "RTPatientPositionScopeSequence" in self._dataset: + if len(self._RTPatientPositionScopeSequence) == len(self._dataset.RTPatientPositionScopeSequence): + return self._RTPatientPositionScopeSequence + else: + return [RTPatientPositionScopeSequenceItem(x) for x in self._dataset.RTPatientPositionScopeSequence] + return None + + @RTPatientPositionScopeSequence.setter + def RTPatientPositionScopeSequence(self, value: Optional[List[RTPatientPositionScopeSequenceItem]]): + if value is None: + self._RTPatientPositionScopeSequence = [] + if "RTPatientPositionScopeSequence" in self._dataset: + del self._dataset.RTPatientPositionScopeSequence + elif not isinstance(value, list) or not all(isinstance(item, RTPatientPositionScopeSequenceItem) for item in value): + raise ValueError("RTPatientPositionScopeSequence must be a list of RTPatientPositionScopeSequenceItem objects") + else: + self._RTPatientPositionScopeSequence = value + if "RTPatientPositionScopeSequence" not in self._dataset: + self._dataset.RTPatientPositionScopeSequence = pydicom.Sequence() + self._dataset.RTPatientPositionScopeSequence.clear() + self._dataset.RTPatientPositionScopeSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPositionScope(self, item: RTPatientPositionScopeSequenceItem): + if not isinstance(item, RTPatientPositionScopeSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionScopeSequenceItem") + self._RTPatientPositionScopeSequence.append(item) + if "RTPatientPositionScopeSequence" not in self._dataset: + self._dataset.RTPatientPositionScopeSequence = pydicom.Sequence() + self._dataset.RTPatientPositionScopeSequence.append(item.to_dataset()) + + @property + def RTTreatmentPreparationPatientPositionSequence( + self, + ) -> Optional[List[RTTreatmentPreparationPatientPositionSequenceItem]]: + if "RTTreatmentPreparationPatientPositionSequence" in self._dataset: + if len(self._RTTreatmentPreparationPatientPositionSequence) == len( + self._dataset.RTTreatmentPreparationPatientPositionSequence + ): + return self._RTTreatmentPreparationPatientPositionSequence + else: + return [ + RTTreatmentPreparationPatientPositionSequenceItem(x) + for x in self._dataset.RTTreatmentPreparationPatientPositionSequence + ] + return None + + @RTTreatmentPreparationPatientPositionSequence.setter + def RTTreatmentPreparationPatientPositionSequence( + self, value: Optional[List[RTTreatmentPreparationPatientPositionSequenceItem]] + ): + if value is None: + self._RTTreatmentPreparationPatientPositionSequence = [] + if "RTTreatmentPreparationPatientPositionSequence" in self._dataset: + del self._dataset.RTTreatmentPreparationPatientPositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTTreatmentPreparationPatientPositionSequenceItem) for item in value + ): + raise ValueError( + "RTTreatmentPreparationPatientPositionSequence must be a list of" + " RTTreatmentPreparationPatientPositionSequenceItem objects" + ) + else: + self._RTTreatmentPreparationPatientPositionSequence = value + if "RTTreatmentPreparationPatientPositionSequence" not in self._dataset: + self._dataset.RTTreatmentPreparationPatientPositionSequence = pydicom.Sequence() + self._dataset.RTTreatmentPreparationPatientPositionSequence.clear() + self._dataset.RTTreatmentPreparationPatientPositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentPreparationPatientPosition(self, item: RTTreatmentPreparationPatientPositionSequenceItem): + if not isinstance(item, RTTreatmentPreparationPatientPositionSequenceItem): + raise ValueError("Item must be an instance of RTTreatmentPreparationPatientPositionSequenceItem") + self._RTTreatmentPreparationPatientPositionSequence.append(item) + if "RTTreatmentPreparationPatientPositionSequence" not in self._dataset: + self._dataset.RTTreatmentPreparationPatientPositionSequence = pydicom.Sequence() + self._dataset.RTTreatmentPreparationPatientPositionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSetupPhotoSequence(self) -> Optional[List[ReferencedPatientSetupPhotoSequenceItem]]: + if "ReferencedPatientSetupPhotoSequence" in self._dataset: + if len(self._ReferencedPatientSetupPhotoSequence) == len(self._dataset.ReferencedPatientSetupPhotoSequence): + return self._ReferencedPatientSetupPhotoSequence + else: + return [ReferencedPatientSetupPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientSetupPhotoSequence] + return None + + @ReferencedPatientSetupPhotoSequence.setter + def ReferencedPatientSetupPhotoSequence(self, value: Optional[List[ReferencedPatientSetupPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientSetupPhotoSequence = [] + if "ReferencedPatientSetupPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientSetupPhotoSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPatientSetupPhotoSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPatientSetupPhotoSequence must be a list of ReferencedPatientSetupPhotoSequenceItem objects" + ) + else: + self._ReferencedPatientSetupPhotoSequence = value + if "ReferencedPatientSetupPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientSetupPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSetupPhotoSequence.clear() + self._dataset.ReferencedPatientSetupPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientSetupPhoto(self, item: ReferencedPatientSetupPhotoSequenceItem): + if not isinstance(item, ReferencedPatientSetupPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSetupPhotoSequenceItem") + self._ReferencedPatientSetupPhotoSequence.append(item) + if "ReferencedPatientSetupPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientSetupPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSetupPhotoSequence.append(item.to_dataset()) + + @property + def PatientTreatmentPreparationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientTreatmentPreparationMethodCodeSequence" in self._dataset: + if len(self._PatientTreatmentPreparationMethodCodeSequence) == len( + self._dataset.PatientTreatmentPreparationMethodCodeSequence + ): + return self._PatientTreatmentPreparationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientTreatmentPreparationMethodCodeSequence] + return None + + @PatientTreatmentPreparationMethodCodeSequence.setter + def PatientTreatmentPreparationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientTreatmentPreparationMethodCodeSequence = [] + if "PatientTreatmentPreparationMethodCodeSequence" in self._dataset: + del self._dataset.PatientTreatmentPreparationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientTreatmentPreparationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientTreatmentPreparationMethodCodeSequence = value + if "PatientTreatmentPreparationMethodCodeSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationMethodCodeSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationMethodCodeSequence.clear() + self._dataset.PatientTreatmentPreparationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientTreatmentPreparationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientTreatmentPreparationMethodCodeSequence.append(item) + if "PatientTreatmentPreparationMethodCodeSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationMethodCodeSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationMethodCodeSequence.append(item.to_dataset()) + + @property + def PatientTreatmentPreparationProcedureSequence(self) -> Optional[List[PatientTreatmentPreparationProcedureSequenceItem]]: + if "PatientTreatmentPreparationProcedureSequence" in self._dataset: + if len(self._PatientTreatmentPreparationProcedureSequence) == len( + self._dataset.PatientTreatmentPreparationProcedureSequence + ): + return self._PatientTreatmentPreparationProcedureSequence + else: + return [ + PatientTreatmentPreparationProcedureSequenceItem(x) + for x in self._dataset.PatientTreatmentPreparationProcedureSequence + ] + return None + + @PatientTreatmentPreparationProcedureSequence.setter + def PatientTreatmentPreparationProcedureSequence( + self, value: Optional[List[PatientTreatmentPreparationProcedureSequenceItem]] + ): + if value is None: + self._PatientTreatmentPreparationProcedureSequence = [] + if "PatientTreatmentPreparationProcedureSequence" in self._dataset: + del self._dataset.PatientTreatmentPreparationProcedureSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientTreatmentPreparationProcedureSequenceItem) for item in value + ): + raise ValueError( + "PatientTreatmentPreparationProcedureSequence must be a list of" + " PatientTreatmentPreparationProcedureSequenceItem objects" + ) + else: + self._PatientTreatmentPreparationProcedureSequence = value + if "PatientTreatmentPreparationProcedureSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationProcedureSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationProcedureSequence.clear() + self._dataset.PatientTreatmentPreparationProcedureSequence.extend([item.to_dataset() for item in value]) + + def add_PatientTreatmentPreparationProcedure(self, item: PatientTreatmentPreparationProcedureSequenceItem): + if not isinstance(item, PatientTreatmentPreparationProcedureSequenceItem): + raise ValueError("Item must be an instance of PatientTreatmentPreparationProcedureSequenceItem") + self._PatientTreatmentPreparationProcedureSequence.append(item) + if "PatientTreatmentPreparationProcedureSequence" not in self._dataset: + self._dataset.PatientTreatmentPreparationProcedureSequence = pydicom.Sequence() + self._dataset.PatientTreatmentPreparationProcedureSequence.append(item.to_dataset()) + + @property + def PatientTreatmentPreparationMethodDescription(self) -> Optional[str]: + if "PatientTreatmentPreparationMethodDescription" in self._dataset: + return self._dataset.PatientTreatmentPreparationMethodDescription + return None + + @PatientTreatmentPreparationMethodDescription.setter + def PatientTreatmentPreparationMethodDescription(self, value: Optional[str]): + if value is None: + if "PatientTreatmentPreparationMethodDescription" in self._dataset: + del self._dataset.PatientTreatmentPreparationMethodDescription + else: + self._dataset.PatientTreatmentPreparationMethodDescription = value + + @property + def EntityDescription(self) -> Optional[str]: + if "EntityDescription" in self._dataset: + return self._dataset.EntityDescription + return None + + @EntityDescription.setter + def EntityDescription(self, value: Optional[str]): + if value is None: + if "EntityDescription" in self._dataset: + del self._dataset.EntityDescription + else: + self._dataset.EntityDescription = value + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rt_treatment_preparation_patient_position_sequence_item.py b/tdwii_plus_examples/domain_model/rt_treatment_preparation_patient_position_sequence_item.py new file mode 100644 index 0000000..2817032 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_treatment_preparation_patient_position_sequence_item.py @@ -0,0 +1,157 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .rt_patient_position_displacement_sequence_item import ( + RTPatientPositionDisplacementSequenceItem, +) +from .rt_patient_position_sequence_item import RTPatientPositionSequenceItem + + +class RTTreatmentPreparationPatientPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._RTPatientPositionDisplacementSequence: List[RTPatientPositionDisplacementSequenceItem] = [] + self._RTPatientPositionSequence: List[RTPatientPositionSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def RTPatientPositionDisplacementSequence(self) -> Optional[List[RTPatientPositionDisplacementSequenceItem]]: + if "RTPatientPositionDisplacementSequence" in self._dataset: + if len(self._RTPatientPositionDisplacementSequence) == len(self._dataset.RTPatientPositionDisplacementSequence): + return self._RTPatientPositionDisplacementSequence + else: + return [ + RTPatientPositionDisplacementSequenceItem(x) for x in self._dataset.RTPatientPositionDisplacementSequence + ] + return None + + @RTPatientPositionDisplacementSequence.setter + def RTPatientPositionDisplacementSequence(self, value: Optional[List[RTPatientPositionDisplacementSequenceItem]]): + if value is None: + self._RTPatientPositionDisplacementSequence = [] + if "RTPatientPositionDisplacementSequence" in self._dataset: + del self._dataset.RTPatientPositionDisplacementSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTPatientPositionDisplacementSequenceItem) for item in value + ): + raise ValueError( + "RTPatientPositionDisplacementSequence must be a list of RTPatientPositionDisplacementSequenceItem objects" + ) + else: + self._RTPatientPositionDisplacementSequence = value + if "RTPatientPositionDisplacementSequence" not in self._dataset: + self._dataset.RTPatientPositionDisplacementSequence = pydicom.Sequence() + self._dataset.RTPatientPositionDisplacementSequence.clear() + self._dataset.RTPatientPositionDisplacementSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPositionDisplacement(self, item: RTPatientPositionDisplacementSequenceItem): + if not isinstance(item, RTPatientPositionDisplacementSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionDisplacementSequenceItem") + self._RTPatientPositionDisplacementSequence.append(item) + if "RTPatientPositionDisplacementSequence" not in self._dataset: + self._dataset.RTPatientPositionDisplacementSequence = pydicom.Sequence() + self._dataset.RTPatientPositionDisplacementSequence.append(item.to_dataset()) + + @property + def RTPatientPositionSequence(self) -> Optional[List[RTPatientPositionSequenceItem]]: + if "RTPatientPositionSequence" in self._dataset: + if len(self._RTPatientPositionSequence) == len(self._dataset.RTPatientPositionSequence): + return self._RTPatientPositionSequence + else: + return [RTPatientPositionSequenceItem(x) for x in self._dataset.RTPatientPositionSequence] + return None + + @RTPatientPositionSequence.setter + def RTPatientPositionSequence(self, value: Optional[List[RTPatientPositionSequenceItem]]): + if value is None: + self._RTPatientPositionSequence = [] + if "RTPatientPositionSequence" in self._dataset: + del self._dataset.RTPatientPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, RTPatientPositionSequenceItem) for item in value): + raise ValueError("RTPatientPositionSequence must be a list of RTPatientPositionSequenceItem objects") + else: + self._RTPatientPositionSequence = value + if "RTPatientPositionSequence" not in self._dataset: + self._dataset.RTPatientPositionSequence = pydicom.Sequence() + self._dataset.RTPatientPositionSequence.clear() + self._dataset.RTPatientPositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTPatientPosition(self, item: RTPatientPositionSequenceItem): + if not isinstance(item, RTPatientPositionSequenceItem): + raise ValueError("Item must be an instance of RTPatientPositionSequenceItem") + self._RTPatientPositionSequence.append(item) + if "RTPatientPositionSequence" not in self._dataset: + self._dataset.RTPatientPositionSequence = pydicom.Sequence() + self._dataset.RTPatientPositionSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/rt_treatment_summary_record.py b/tdwii_plus_examples/domain_model/rt_treatment_summary_record.py new file mode 100644 index 0000000..d8b6475 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rt_treatment_summary_record.py @@ -0,0 +1,4259 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fraction_group_summary_sequence_item import FractionGroupSummarySequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_plan_sequence_item import ReferencedRTPlanSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_treatment_record_sequence_item import ( + ReferencedTreatmentRecordSequenceItem, +) +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .treatment_summary_calculated_dose_reference_sequence_item import ( + TreatmentSummaryCalculatedDoseReferenceSequenceItem, +) +from .treatment_summary_measured_dose_reference_sequence_item import ( + TreatmentSummaryMeasuredDoseReferenceSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class RtTreatmentSummaryRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedTreatmentRecordSequence: List[ReferencedTreatmentRecordSequenceItem] = [] + self._ReferencedRTPlanSequence: List[ReferencedRTPlanSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentSummaryCalculatedDoseReferenceSequence: List[TreatmentSummaryCalculatedDoseReferenceSequenceItem] = [] + self._TreatmentSummaryMeasuredDoseReferenceSequence: List[TreatmentSummaryMeasuredDoseReferenceSequenceItem] = [] + self._FractionGroupSummarySequence: List[FractionGroupSummarySequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ReferencedTreatmentRecordSequence(self) -> Optional[List[ReferencedTreatmentRecordSequenceItem]]: + if "ReferencedTreatmentRecordSequence" in self._dataset: + if len(self._ReferencedTreatmentRecordSequence) == len(self._dataset.ReferencedTreatmentRecordSequence): + return self._ReferencedTreatmentRecordSequence + else: + return [ReferencedTreatmentRecordSequenceItem(x) for x in self._dataset.ReferencedTreatmentRecordSequence] + return None + + @ReferencedTreatmentRecordSequence.setter + def ReferencedTreatmentRecordSequence(self, value: Optional[List[ReferencedTreatmentRecordSequenceItem]]): + if value is None: + self._ReferencedTreatmentRecordSequence = [] + if "ReferencedTreatmentRecordSequence" in self._dataset: + del self._dataset.ReferencedTreatmentRecordSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedTreatmentRecordSequenceItem) for item in value): + raise ValueError( + "ReferencedTreatmentRecordSequence must be a list of ReferencedTreatmentRecordSequenceItem objects" + ) + else: + self._ReferencedTreatmentRecordSequence = value + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.clear() + self._dataset.ReferencedTreatmentRecordSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedTreatmentRecord(self, item: ReferencedTreatmentRecordSequenceItem): + if not isinstance(item, ReferencedTreatmentRecordSequenceItem): + raise ValueError("Item must be an instance of ReferencedTreatmentRecordSequenceItem") + self._ReferencedTreatmentRecordSequence.append(item) + if "ReferencedTreatmentRecordSequence" not in self._dataset: + self._dataset.ReferencedTreatmentRecordSequence = pydicom.Sequence() + self._dataset.ReferencedTreatmentRecordSequence.append(item.to_dataset()) + + @property + def TreatmentDate(self) -> Optional[str]: + if "TreatmentDate" in self._dataset: + return self._dataset.TreatmentDate + return None + + @TreatmentDate.setter + def TreatmentDate(self, value: Optional[str]): + if value is None: + if "TreatmentDate" in self._dataset: + del self._dataset.TreatmentDate + else: + self._dataset.TreatmentDate = value + + @property + def TreatmentTime(self) -> Optional[str]: + if "TreatmentTime" in self._dataset: + return self._dataset.TreatmentTime + return None + + @TreatmentTime.setter + def TreatmentTime(self, value: Optional[str]): + if value is None: + if "TreatmentTime" in self._dataset: + del self._dataset.TreatmentTime + else: + self._dataset.TreatmentTime = value + + @property + def ReferencedRTPlanSequence(self) -> Optional[List[ReferencedRTPlanSequenceItem]]: + if "ReferencedRTPlanSequence" in self._dataset: + if len(self._ReferencedRTPlanSequence) == len(self._dataset.ReferencedRTPlanSequence): + return self._ReferencedRTPlanSequence + else: + return [ReferencedRTPlanSequenceItem(x) for x in self._dataset.ReferencedRTPlanSequence] + return None + + @ReferencedRTPlanSequence.setter + def ReferencedRTPlanSequence(self, value: Optional[List[ReferencedRTPlanSequenceItem]]): + if value is None: + self._ReferencedRTPlanSequence = [] + if "ReferencedRTPlanSequence" in self._dataset: + del self._dataset.ReferencedRTPlanSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTPlanSequenceItem) for item in value): + raise ValueError("ReferencedRTPlanSequence must be a list of ReferencedRTPlanSequenceItem objects") + else: + self._ReferencedRTPlanSequence = value + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.clear() + self._dataset.ReferencedRTPlanSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTPlan(self, item: ReferencedRTPlanSequenceItem): + if not isinstance(item, ReferencedRTPlanSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTPlanSequenceItem") + self._ReferencedRTPlanSequence.append(item) + if "ReferencedRTPlanSequence" not in self._dataset: + self._dataset.ReferencedRTPlanSequence = pydicom.Sequence() + self._dataset.ReferencedRTPlanSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]]: + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryCalculatedDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ): + return self._TreatmentSummaryCalculatedDoseReferenceSequence + else: + return [ + TreatmentSummaryCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + ] + return None + + @TreatmentSummaryCalculatedDoseReferenceSequence.setter + def TreatmentSummaryCalculatedDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryCalculatedDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryCalculatedDoseReferenceSequence = [] + if "TreatmentSummaryCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryCalculatedDoseReferenceSequence must be a list of" + " TreatmentSummaryCalculatedDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryCalculatedDoseReferenceSequence = value + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryCalculatedDoseReference(self, item: TreatmentSummaryCalculatedDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryCalculatedDoseReferenceSequenceItem") + self._TreatmentSummaryCalculatedDoseReferenceSequence.append(item) + if "TreatmentSummaryCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def FirstTreatmentDate(self) -> Optional[str]: + if "FirstTreatmentDate" in self._dataset: + return self._dataset.FirstTreatmentDate + return None + + @FirstTreatmentDate.setter + def FirstTreatmentDate(self, value: Optional[str]): + if value is None: + if "FirstTreatmentDate" in self._dataset: + del self._dataset.FirstTreatmentDate + else: + self._dataset.FirstTreatmentDate = value + + @property + def MostRecentTreatmentDate(self) -> Optional[str]: + if "MostRecentTreatmentDate" in self._dataset: + return self._dataset.MostRecentTreatmentDate + return None + + @MostRecentTreatmentDate.setter + def MostRecentTreatmentDate(self, value: Optional[str]): + if value is None: + if "MostRecentTreatmentDate" in self._dataset: + del self._dataset.MostRecentTreatmentDate + else: + self._dataset.MostRecentTreatmentDate = value + + @property + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, + ) -> Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]]: + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + if len(self._TreatmentSummaryMeasuredDoseReferenceSequence) == len( + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ): + return self._TreatmentSummaryMeasuredDoseReferenceSequence + else: + return [ + TreatmentSummaryMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + ] + return None + + @TreatmentSummaryMeasuredDoseReferenceSequence.setter + def TreatmentSummaryMeasuredDoseReferenceSequence( + self, value: Optional[List[TreatmentSummaryMeasuredDoseReferenceSequenceItem]] + ): + if value is None: + self._TreatmentSummaryMeasuredDoseReferenceSequence = [] + if "TreatmentSummaryMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "TreatmentSummaryMeasuredDoseReferenceSequence must be a list of" + " TreatmentSummaryMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._TreatmentSummaryMeasuredDoseReferenceSequence = value + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.clear() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentSummaryMeasuredDoseReference(self, item: TreatmentSummaryMeasuredDoseReferenceSequenceItem): + if not isinstance(item, TreatmentSummaryMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of TreatmentSummaryMeasuredDoseReferenceSequenceItem") + self._TreatmentSummaryMeasuredDoseReferenceSequence.append(item) + if "TreatmentSummaryMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.TreatmentSummaryMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def CurrentTreatmentStatus(self) -> Optional[str]: + if "CurrentTreatmentStatus" in self._dataset: + return self._dataset.CurrentTreatmentStatus + return None + + @CurrentTreatmentStatus.setter + def CurrentTreatmentStatus(self, value: Optional[str]): + if value is None: + if "CurrentTreatmentStatus" in self._dataset: + del self._dataset.CurrentTreatmentStatus + else: + self._dataset.CurrentTreatmentStatus = value + + @property + def TreatmentStatusComment(self) -> Optional[str]: + if "TreatmentStatusComment" in self._dataset: + return self._dataset.TreatmentStatusComment + return None + + @TreatmentStatusComment.setter + def TreatmentStatusComment(self, value: Optional[str]): + if value is None: + if "TreatmentStatusComment" in self._dataset: + del self._dataset.TreatmentStatusComment + else: + self._dataset.TreatmentStatusComment = value + + @property + def FractionGroupSummarySequence(self) -> Optional[List[FractionGroupSummarySequenceItem]]: + if "FractionGroupSummarySequence" in self._dataset: + if len(self._FractionGroupSummarySequence) == len(self._dataset.FractionGroupSummarySequence): + return self._FractionGroupSummarySequence + else: + return [FractionGroupSummarySequenceItem(x) for x in self._dataset.FractionGroupSummarySequence] + return None + + @FractionGroupSummarySequence.setter + def FractionGroupSummarySequence(self, value: Optional[List[FractionGroupSummarySequenceItem]]): + if value is None: + self._FractionGroupSummarySequence = [] + if "FractionGroupSummarySequence" in self._dataset: + del self._dataset.FractionGroupSummarySequence + elif not isinstance(value, list) or not all(isinstance(item, FractionGroupSummarySequenceItem) for item in value): + raise ValueError("FractionGroupSummarySequence must be a list of FractionGroupSummarySequenceItem objects") + else: + self._FractionGroupSummarySequence = value + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.clear() + self._dataset.FractionGroupSummarySequence.extend([item.to_dataset() for item in value]) + + def add_FractionGroupSummary(self, item: FractionGroupSummarySequenceItem): + if not isinstance(item, FractionGroupSummarySequenceItem): + raise ValueError("Item must be an instance of FractionGroupSummarySequenceItem") + self._FractionGroupSummarySequence.append(item) + if "FractionGroupSummarySequence" not in self._dataset: + self._dataset.FractionGroupSummarySequence = pydicom.Sequence() + self._dataset.FractionGroupSummarySequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/rtroi_observations_sequence_item.py b/tdwii_plus_examples/domain_model/rtroi_observations_sequence_item.py new file mode 100644 index 0000000..7d35bc8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/rtroi_observations_sequence_item.py @@ -0,0 +1,470 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .code_sequence_item import CodeSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .related_rtroi_observations_sequence_item import ( + RelatedRTROIObservationsSequenceItem, +) +from .roi_interpreter_sequence_item import ROIInterpreterSequenceItem +from .roi_physical_properties_sequence_item import ROIPhysicalPropertiesSequenceItem +from .rt_related_roi_sequence_item import RTRelatedROISequenceItem + + +class RTROIObservationsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._SegmentedPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._RTRelatedROISequence: List[RTRelatedROISequenceItem] = [] + self._ROIInterpreterSequence: List[ROIInterpreterSequenceItem] = [] + self._ROIObservationContextCodeSequence: List[CodeSequenceItem] = [] + self._RTROIIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RelatedRTROIObservationsSequence: List[RelatedRTROIObservationsSequenceItem] = [] + self._ROIPhysicalPropertiesSequence: List[ROIPhysicalPropertiesSequenceItem] = [] + self._TherapeuticRoleCategoryCodeSequence: List[CodeSequenceItem] = [] + self._TherapeuticRoleTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def SegmentedPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + if len(self._SegmentedPropertyCategoryCodeSequence) == len(self._dataset.SegmentedPropertyCategoryCodeSequence): + return self._SegmentedPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyCategoryCodeSequence] + return None + + @SegmentedPropertyCategoryCodeSequence.setter + def SegmentedPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyCategoryCodeSequence = [] + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyCategoryCodeSequence = value + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.clear() + self._dataset.SegmentedPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyCategoryCodeSequence.append(item) + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def ROIObservationDateTime(self) -> Optional[str]: + if "ROIObservationDateTime" in self._dataset: + return self._dataset.ROIObservationDateTime + return None + + @ROIObservationDateTime.setter + def ROIObservationDateTime(self, value: Optional[str]): + if value is None: + if "ROIObservationDateTime" in self._dataset: + del self._dataset.ROIObservationDateTime + else: + self._dataset.ROIObservationDateTime = value + + @property + def RTRelatedROISequence(self) -> Optional[List[RTRelatedROISequenceItem]]: + if "RTRelatedROISequence" in self._dataset: + if len(self._RTRelatedROISequence) == len(self._dataset.RTRelatedROISequence): + return self._RTRelatedROISequence + else: + return [RTRelatedROISequenceItem(x) for x in self._dataset.RTRelatedROISequence] + return None + + @RTRelatedROISequence.setter + def RTRelatedROISequence(self, value: Optional[List[RTRelatedROISequenceItem]]): + if value is None: + self._RTRelatedROISequence = [] + if "RTRelatedROISequence" in self._dataset: + del self._dataset.RTRelatedROISequence + elif not isinstance(value, list) or not all(isinstance(item, RTRelatedROISequenceItem) for item in value): + raise ValueError("RTRelatedROISequence must be a list of RTRelatedROISequenceItem objects") + else: + self._RTRelatedROISequence = value + if "RTRelatedROISequence" not in self._dataset: + self._dataset.RTRelatedROISequence = pydicom.Sequence() + self._dataset.RTRelatedROISequence.clear() + self._dataset.RTRelatedROISequence.extend([item.to_dataset() for item in value]) + + def add_RTRelatedROI(self, item: RTRelatedROISequenceItem): + if not isinstance(item, RTRelatedROISequenceItem): + raise ValueError("Item must be an instance of RTRelatedROISequenceItem") + self._RTRelatedROISequence.append(item) + if "RTRelatedROISequence" not in self._dataset: + self._dataset.RTRelatedROISequence = pydicom.Sequence() + self._dataset.RTRelatedROISequence.append(item.to_dataset()) + + @property + def ROIInterpreterSequence(self) -> Optional[List[ROIInterpreterSequenceItem]]: + if "ROIInterpreterSequence" in self._dataset: + if len(self._ROIInterpreterSequence) == len(self._dataset.ROIInterpreterSequence): + return self._ROIInterpreterSequence + else: + return [ROIInterpreterSequenceItem(x) for x in self._dataset.ROIInterpreterSequence] + return None + + @ROIInterpreterSequence.setter + def ROIInterpreterSequence(self, value: Optional[List[ROIInterpreterSequenceItem]]): + if value is None: + self._ROIInterpreterSequence = [] + if "ROIInterpreterSequence" in self._dataset: + del self._dataset.ROIInterpreterSequence + elif not isinstance(value, list) or not all(isinstance(item, ROIInterpreterSequenceItem) for item in value): + raise ValueError("ROIInterpreterSequence must be a list of ROIInterpreterSequenceItem objects") + else: + self._ROIInterpreterSequence = value + if "ROIInterpreterSequence" not in self._dataset: + self._dataset.ROIInterpreterSequence = pydicom.Sequence() + self._dataset.ROIInterpreterSequence.clear() + self._dataset.ROIInterpreterSequence.extend([item.to_dataset() for item in value]) + + def add_ROIInterpreter(self, item: ROIInterpreterSequenceItem): + if not isinstance(item, ROIInterpreterSequenceItem): + raise ValueError("Item must be an instance of ROIInterpreterSequenceItem") + self._ROIInterpreterSequence.append(item) + if "ROIInterpreterSequence" not in self._dataset: + self._dataset.ROIInterpreterSequence = pydicom.Sequence() + self._dataset.ROIInterpreterSequence.append(item.to_dataset()) + + @property + def ROIObservationContextCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ROIObservationContextCodeSequence" in self._dataset: + if len(self._ROIObservationContextCodeSequence) == len(self._dataset.ROIObservationContextCodeSequence): + return self._ROIObservationContextCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ROIObservationContextCodeSequence] + return None + + @ROIObservationContextCodeSequence.setter + def ROIObservationContextCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ROIObservationContextCodeSequence = [] + if "ROIObservationContextCodeSequence" in self._dataset: + del self._dataset.ROIObservationContextCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ROIObservationContextCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ROIObservationContextCodeSequence = value + if "ROIObservationContextCodeSequence" not in self._dataset: + self._dataset.ROIObservationContextCodeSequence = pydicom.Sequence() + self._dataset.ROIObservationContextCodeSequence.clear() + self._dataset.ROIObservationContextCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ROIObservationContextCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ROIObservationContextCodeSequence.append(item) + if "ROIObservationContextCodeSequence" not in self._dataset: + self._dataset.ROIObservationContextCodeSequence = pydicom.Sequence() + self._dataset.ROIObservationContextCodeSequence.append(item.to_dataset()) + + @property + def ObservationNumber(self) -> Optional[int]: + if "ObservationNumber" in self._dataset: + return self._dataset.ObservationNumber + return None + + @ObservationNumber.setter + def ObservationNumber(self, value: Optional[int]): + if value is None: + if "ObservationNumber" in self._dataset: + del self._dataset.ObservationNumber + else: + self._dataset.ObservationNumber = value + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value + + @property + def RTROIIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTROIIdentificationCodeSequence" in self._dataset: + if len(self._RTROIIdentificationCodeSequence) == len(self._dataset.RTROIIdentificationCodeSequence): + return self._RTROIIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTROIIdentificationCodeSequence] + return None + + @RTROIIdentificationCodeSequence.setter + def RTROIIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTROIIdentificationCodeSequence = [] + if "RTROIIdentificationCodeSequence" in self._dataset: + del self._dataset.RTROIIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTROIIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTROIIdentificationCodeSequence = value + if "RTROIIdentificationCodeSequence" not in self._dataset: + self._dataset.RTROIIdentificationCodeSequence = pydicom.Sequence() + self._dataset.RTROIIdentificationCodeSequence.clear() + self._dataset.RTROIIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTROIIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTROIIdentificationCodeSequence.append(item) + if "RTROIIdentificationCodeSequence" not in self._dataset: + self._dataset.RTROIIdentificationCodeSequence = pydicom.Sequence() + self._dataset.RTROIIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RelatedRTROIObservationsSequence(self) -> Optional[List[RelatedRTROIObservationsSequenceItem]]: + if "RelatedRTROIObservationsSequence" in self._dataset: + if len(self._RelatedRTROIObservationsSequence) == len(self._dataset.RelatedRTROIObservationsSequence): + return self._RelatedRTROIObservationsSequence + else: + return [RelatedRTROIObservationsSequenceItem(x) for x in self._dataset.RelatedRTROIObservationsSequence] + return None + + @RelatedRTROIObservationsSequence.setter + def RelatedRTROIObservationsSequence(self, value: Optional[List[RelatedRTROIObservationsSequenceItem]]): + if value is None: + self._RelatedRTROIObservationsSequence = [] + if "RelatedRTROIObservationsSequence" in self._dataset: + del self._dataset.RelatedRTROIObservationsSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedRTROIObservationsSequenceItem) for item in value): + raise ValueError("RelatedRTROIObservationsSequence must be a list of RelatedRTROIObservationsSequenceItem objects") + else: + self._RelatedRTROIObservationsSequence = value + if "RelatedRTROIObservationsSequence" not in self._dataset: + self._dataset.RelatedRTROIObservationsSequence = pydicom.Sequence() + self._dataset.RelatedRTROIObservationsSequence.clear() + self._dataset.RelatedRTROIObservationsSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedRTROIObservations(self, item: RelatedRTROIObservationsSequenceItem): + if not isinstance(item, RelatedRTROIObservationsSequenceItem): + raise ValueError("Item must be an instance of RelatedRTROIObservationsSequenceItem") + self._RelatedRTROIObservationsSequence.append(item) + if "RelatedRTROIObservationsSequence" not in self._dataset: + self._dataset.RelatedRTROIObservationsSequence = pydicom.Sequence() + self._dataset.RelatedRTROIObservationsSequence.append(item.to_dataset()) + + @property + def RTROIInterpretedType(self) -> Optional[str]: + if "RTROIInterpretedType" in self._dataset: + return self._dataset.RTROIInterpretedType + return None + + @RTROIInterpretedType.setter + def RTROIInterpretedType(self, value: Optional[str]): + if value is None: + if "RTROIInterpretedType" in self._dataset: + del self._dataset.RTROIInterpretedType + else: + self._dataset.RTROIInterpretedType = value + + @property + def ROIInterpreter(self) -> Optional[str]: + if "ROIInterpreter" in self._dataset: + return self._dataset.ROIInterpreter + return None + + @ROIInterpreter.setter + def ROIInterpreter(self, value: Optional[str]): + if value is None: + if "ROIInterpreter" in self._dataset: + del self._dataset.ROIInterpreter + else: + self._dataset.ROIInterpreter = value + + @property + def ROIPhysicalPropertiesSequence(self) -> Optional[List[ROIPhysicalPropertiesSequenceItem]]: + if "ROIPhysicalPropertiesSequence" in self._dataset: + if len(self._ROIPhysicalPropertiesSequence) == len(self._dataset.ROIPhysicalPropertiesSequence): + return self._ROIPhysicalPropertiesSequence + else: + return [ROIPhysicalPropertiesSequenceItem(x) for x in self._dataset.ROIPhysicalPropertiesSequence] + return None + + @ROIPhysicalPropertiesSequence.setter + def ROIPhysicalPropertiesSequence(self, value: Optional[List[ROIPhysicalPropertiesSequenceItem]]): + if value is None: + self._ROIPhysicalPropertiesSequence = [] + if "ROIPhysicalPropertiesSequence" in self._dataset: + del self._dataset.ROIPhysicalPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, ROIPhysicalPropertiesSequenceItem) for item in value): + raise ValueError("ROIPhysicalPropertiesSequence must be a list of ROIPhysicalPropertiesSequenceItem objects") + else: + self._ROIPhysicalPropertiesSequence = value + if "ROIPhysicalPropertiesSequence" not in self._dataset: + self._dataset.ROIPhysicalPropertiesSequence = pydicom.Sequence() + self._dataset.ROIPhysicalPropertiesSequence.clear() + self._dataset.ROIPhysicalPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_ROIPhysicalProperties(self, item: ROIPhysicalPropertiesSequenceItem): + if not isinstance(item, ROIPhysicalPropertiesSequenceItem): + raise ValueError("Item must be an instance of ROIPhysicalPropertiesSequenceItem") + self._ROIPhysicalPropertiesSequence.append(item) + if "ROIPhysicalPropertiesSequence" not in self._dataset: + self._dataset.ROIPhysicalPropertiesSequence = pydicom.Sequence() + self._dataset.ROIPhysicalPropertiesSequence.append(item.to_dataset()) + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def TherapeuticRoleCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TherapeuticRoleCategoryCodeSequence" in self._dataset: + if len(self._TherapeuticRoleCategoryCodeSequence) == len(self._dataset.TherapeuticRoleCategoryCodeSequence): + return self._TherapeuticRoleCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TherapeuticRoleCategoryCodeSequence] + return None + + @TherapeuticRoleCategoryCodeSequence.setter + def TherapeuticRoleCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TherapeuticRoleCategoryCodeSequence = [] + if "TherapeuticRoleCategoryCodeSequence" in self._dataset: + del self._dataset.TherapeuticRoleCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TherapeuticRoleCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TherapeuticRoleCategoryCodeSequence = value + if "TherapeuticRoleCategoryCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleCategoryCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleCategoryCodeSequence.clear() + self._dataset.TherapeuticRoleCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TherapeuticRoleCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TherapeuticRoleCategoryCodeSequence.append(item) + if "TherapeuticRoleCategoryCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleCategoryCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleCategoryCodeSequence.append(item.to_dataset()) + + @property + def TherapeuticRoleTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TherapeuticRoleTypeCodeSequence" in self._dataset: + if len(self._TherapeuticRoleTypeCodeSequence) == len(self._dataset.TherapeuticRoleTypeCodeSequence): + return self._TherapeuticRoleTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TherapeuticRoleTypeCodeSequence] + return None + + @TherapeuticRoleTypeCodeSequence.setter + def TherapeuticRoleTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TherapeuticRoleTypeCodeSequence = [] + if "TherapeuticRoleTypeCodeSequence" in self._dataset: + del self._dataset.TherapeuticRoleTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TherapeuticRoleTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TherapeuticRoleTypeCodeSequence = value + if "TherapeuticRoleTypeCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleTypeCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleTypeCodeSequence.clear() + self._dataset.TherapeuticRoleTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TherapeuticRoleTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TherapeuticRoleTypeCodeSequence.append(item) + if "TherapeuticRoleTypeCodeSequence" not in self._dataset: + self._dataset.TherapeuticRoleTypeCodeSequence = pydicom.Sequence() + self._dataset.TherapeuticRoleTypeCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/scan_start_position_sequence_item.py b/tdwii_plus_examples/domain_model/scan_start_position_sequence_item.py new file mode 100644 index 0000000..746888c --- /dev/null +++ b/tdwii_plus_examples/domain_model/scan_start_position_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .image_receptor_position_sequence_item import ImageReceptorPositionSequenceItem +from .imaging_source_position_sequence_item import ImagingSourcePositionSequenceItem + + +class ScanStartPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ImagingSourcePositionSequence: List[ImagingSourcePositionSequenceItem] = [] + self._ImageReceptorPositionSequence: List[ImageReceptorPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagingSourcePositionSequence(self) -> Optional[List[ImagingSourcePositionSequenceItem]]: + if "ImagingSourcePositionSequence" in self._dataset: + if len(self._ImagingSourcePositionSequence) == len(self._dataset.ImagingSourcePositionSequence): + return self._ImagingSourcePositionSequence + else: + return [ImagingSourcePositionSequenceItem(x) for x in self._dataset.ImagingSourcePositionSequence] + return None + + @ImagingSourcePositionSequence.setter + def ImagingSourcePositionSequence(self, value: Optional[List[ImagingSourcePositionSequenceItem]]): + if value is None: + self._ImagingSourcePositionSequence = [] + if "ImagingSourcePositionSequence" in self._dataset: + del self._dataset.ImagingSourcePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImagingSourcePositionSequenceItem) for item in value): + raise ValueError("ImagingSourcePositionSequence must be a list of ImagingSourcePositionSequenceItem objects") + else: + self._ImagingSourcePositionSequence = value + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.clear() + self._dataset.ImagingSourcePositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingSourcePosition(self, item: ImagingSourcePositionSequenceItem): + if not isinstance(item, ImagingSourcePositionSequenceItem): + raise ValueError("Item must be an instance of ImagingSourcePositionSequenceItem") + self._ImagingSourcePositionSequence.append(item) + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.append(item.to_dataset()) + + @property + def ImageReceptorPositionSequence(self) -> Optional[List[ImageReceptorPositionSequenceItem]]: + if "ImageReceptorPositionSequence" in self._dataset: + if len(self._ImageReceptorPositionSequence) == len(self._dataset.ImageReceptorPositionSequence): + return self._ImageReceptorPositionSequence + else: + return [ImageReceptorPositionSequenceItem(x) for x in self._dataset.ImageReceptorPositionSequence] + return None + + @ImageReceptorPositionSequence.setter + def ImageReceptorPositionSequence(self, value: Optional[List[ImageReceptorPositionSequenceItem]]): + if value is None: + self._ImageReceptorPositionSequence = [] + if "ImageReceptorPositionSequence" in self._dataset: + del self._dataset.ImageReceptorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageReceptorPositionSequenceItem) for item in value): + raise ValueError("ImageReceptorPositionSequence must be a list of ImageReceptorPositionSequenceItem objects") + else: + self._ImageReceptorPositionSequence = value + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.clear() + self._dataset.ImageReceptorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImageReceptorPosition(self, item: ImageReceptorPositionSequenceItem): + if not isinstance(item, ImageReceptorPositionSequenceItem): + raise ValueError("Item must be an instance of ImageReceptorPositionSequenceItem") + self._ImageReceptorPositionSequence.append(item) + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/scan_stop_position_sequence_item.py b/tdwii_plus_examples/domain_model/scan_stop_position_sequence_item.py new file mode 100644 index 0000000..06cc9cb --- /dev/null +++ b/tdwii_plus_examples/domain_model/scan_stop_position_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .image_receptor_position_sequence_item import ImageReceptorPositionSequenceItem +from .imaging_source_position_sequence_item import ImagingSourcePositionSequenceItem + + +class ScanStopPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ImagingSourcePositionSequence: List[ImagingSourcePositionSequenceItem] = [] + self._ImageReceptorPositionSequence: List[ImageReceptorPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImagingSourcePositionSequence(self) -> Optional[List[ImagingSourcePositionSequenceItem]]: + if "ImagingSourcePositionSequence" in self._dataset: + if len(self._ImagingSourcePositionSequence) == len(self._dataset.ImagingSourcePositionSequence): + return self._ImagingSourcePositionSequence + else: + return [ImagingSourcePositionSequenceItem(x) for x in self._dataset.ImagingSourcePositionSequence] + return None + + @ImagingSourcePositionSequence.setter + def ImagingSourcePositionSequence(self, value: Optional[List[ImagingSourcePositionSequenceItem]]): + if value is None: + self._ImagingSourcePositionSequence = [] + if "ImagingSourcePositionSequence" in self._dataset: + del self._dataset.ImagingSourcePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImagingSourcePositionSequenceItem) for item in value): + raise ValueError("ImagingSourcePositionSequence must be a list of ImagingSourcePositionSequenceItem objects") + else: + self._ImagingSourcePositionSequence = value + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.clear() + self._dataset.ImagingSourcePositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImagingSourcePosition(self, item: ImagingSourcePositionSequenceItem): + if not isinstance(item, ImagingSourcePositionSequenceItem): + raise ValueError("Item must be an instance of ImagingSourcePositionSequenceItem") + self._ImagingSourcePositionSequence.append(item) + if "ImagingSourcePositionSequence" not in self._dataset: + self._dataset.ImagingSourcePositionSequence = pydicom.Sequence() + self._dataset.ImagingSourcePositionSequence.append(item.to_dataset()) + + @property + def ImageReceptorPositionSequence(self) -> Optional[List[ImageReceptorPositionSequenceItem]]: + if "ImageReceptorPositionSequence" in self._dataset: + if len(self._ImageReceptorPositionSequence) == len(self._dataset.ImageReceptorPositionSequence): + return self._ImageReceptorPositionSequence + else: + return [ImageReceptorPositionSequenceItem(x) for x in self._dataset.ImageReceptorPositionSequence] + return None + + @ImageReceptorPositionSequence.setter + def ImageReceptorPositionSequence(self, value: Optional[List[ImageReceptorPositionSequenceItem]]): + if value is None: + self._ImageReceptorPositionSequence = [] + if "ImageReceptorPositionSequence" in self._dataset: + del self._dataset.ImageReceptorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageReceptorPositionSequenceItem) for item in value): + raise ValueError("ImageReceptorPositionSequence must be a list of ImageReceptorPositionSequenceItem objects") + else: + self._ImageReceptorPositionSequence = value + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.clear() + self._dataset.ImageReceptorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_ImageReceptorPosition(self, item: ImageReceptorPositionSequenceItem): + if not isinstance(item, ImageReceptorPositionSequenceItem): + raise ValueError("Item must be an instance of ImageReceptorPositionSequenceItem") + self._ImageReceptorPositionSequence.append(item) + if "ImageReceptorPositionSequence" not in self._dataset: + self._dataset.ImageReceptorPositionSequence = pydicom.Sequence() + self._dataset.ImageReceptorPositionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/scanning_sequence_item.py b/tdwii_plus_examples/domain_model/scanning_sequence_item.py new file mode 100644 index 0000000..4ffdc59 --- /dev/null +++ b/tdwii_plus_examples/domain_model/scanning_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ScanningSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/screening_baseline_measured_sequence_item.py b/tdwii_plus_examples/domain_model/screening_baseline_measured_sequence_item.py new file mode 100644 index 0000000..4b663c0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/screening_baseline_measured_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ScreeningBaselineMeasuredSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ScreeningBaselineType(self) -> Optional[str]: + if "ScreeningBaselineType" in self._dataset: + return self._dataset.ScreeningBaselineType + return None + + @ScreeningBaselineType.setter + def ScreeningBaselineType(self, value: Optional[str]): + if value is None: + if "ScreeningBaselineType" in self._dataset: + del self._dataset.ScreeningBaselineType + else: + self._dataset.ScreeningBaselineType = value + + @property + def ScreeningBaselineValue(self) -> Optional[float]: + if "ScreeningBaselineValue" in self._dataset: + return self._dataset.ScreeningBaselineValue + return None + + @ScreeningBaselineValue.setter + def ScreeningBaselineValue(self, value: Optional[float]): + if value is None: + if "ScreeningBaselineValue" in self._dataset: + del self._dataset.ScreeningBaselineValue + else: + self._dataset.ScreeningBaselineValue = value diff --git a/tdwii_plus_examples/domain_model/secondary_capture_image.py b/tdwii_plus_examples/domain_model/secondary_capture_image.py new file mode 100644 index 0000000..ea886bf --- /dev/null +++ b/tdwii_plus_examples/domain_model/secondary_capture_image.py @@ -0,0 +1,6066 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class SecondaryCaptureImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._DocumentClassCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SliceThickness(self) -> Optional[Decimal]: + if "SliceThickness" in self._dataset: + return self._dataset.SliceThickness + return None + + @SliceThickness.setter + def SliceThickness(self, value: Optional[Decimal]): + if value is None: + if "SliceThickness" in self._dataset: + del self._dataset.SliceThickness + else: + self._dataset.SliceThickness = value + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def SliceLocation(self) -> Optional[Decimal]: + if "SliceLocation" in self._dataset: + return self._dataset.SliceLocation + return None + + @SliceLocation.setter + def SliceLocation(self, value: Optional[Decimal]): + if value is None: + if "SliceLocation" in self._dataset: + del self._dataset.SliceLocation + else: + self._dataset.SliceLocation = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def DateOfSecondaryCapture(self) -> Optional[str]: + if "DateOfSecondaryCapture" in self._dataset: + return self._dataset.DateOfSecondaryCapture + return None + + @DateOfSecondaryCapture.setter + def DateOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "DateOfSecondaryCapture" in self._dataset: + del self._dataset.DateOfSecondaryCapture + else: + self._dataset.DateOfSecondaryCapture = value + + @property + def TimeOfSecondaryCapture(self) -> Optional[str]: + if "TimeOfSecondaryCapture" in self._dataset: + return self._dataset.TimeOfSecondaryCapture + return None + + @TimeOfSecondaryCapture.setter + def TimeOfSecondaryCapture(self, value: Optional[str]): + if value is None: + if "TimeOfSecondaryCapture" in self._dataset: + del self._dataset.TimeOfSecondaryCapture + else: + self._dataset.TimeOfSecondaryCapture = value + + @property + def NominalScannedPixelSpacing(self) -> Optional[List[Decimal]]: + if "NominalScannedPixelSpacing" in self._dataset: + return self._dataset.NominalScannedPixelSpacing + return None + + @NominalScannedPixelSpacing.setter + def NominalScannedPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "NominalScannedPixelSpacing" in self._dataset: + del self._dataset.NominalScannedPixelSpacing + else: + self._dataset.NominalScannedPixelSpacing = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def DocumentClassCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DocumentClassCodeSequence" in self._dataset: + if len(self._DocumentClassCodeSequence) == len(self._dataset.DocumentClassCodeSequence): + return self._DocumentClassCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DocumentClassCodeSequence] + return None + + @DocumentClassCodeSequence.setter + def DocumentClassCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DocumentClassCodeSequence = [] + if "DocumentClassCodeSequence" in self._dataset: + del self._dataset.DocumentClassCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DocumentClassCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DocumentClassCodeSequence = value + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.clear() + self._dataset.DocumentClassCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DocumentClassCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DocumentClassCodeSequence.append(item) + if "DocumentClassCodeSequence" not in self._dataset: + self._dataset.DocumentClassCodeSequence = pydicom.Sequence() + self._dataset.DocumentClassCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ConversionType(self) -> Optional[str]: + if "ConversionType" in self._dataset: + return self._dataset.ConversionType + return None + + @ConversionType.setter + def ConversionType(self, value: Optional[str]): + if value is None: + if "ConversionType" in self._dataset: + del self._dataset.ConversionType + else: + self._dataset.ConversionType = value + + @property + def SecondaryCaptureDeviceID(self) -> Optional[str]: + if "SecondaryCaptureDeviceID" in self._dataset: + return self._dataset.SecondaryCaptureDeviceID + return None + + @SecondaryCaptureDeviceID.setter + def SecondaryCaptureDeviceID(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceID" in self._dataset: + del self._dataset.SecondaryCaptureDeviceID + else: + self._dataset.SecondaryCaptureDeviceID = value + + @property + def SecondaryCaptureDeviceManufacturer(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturer + return None + + @SecondaryCaptureDeviceManufacturer.setter + def SecondaryCaptureDeviceManufacturer(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturer" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturer + else: + self._dataset.SecondaryCaptureDeviceManufacturer = value + + @property + def SecondaryCaptureDeviceManufacturerModelName(self) -> Optional[str]: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + return self._dataset.SecondaryCaptureDeviceManufacturerModelName + return None + + @SecondaryCaptureDeviceManufacturerModelName.setter + def SecondaryCaptureDeviceManufacturerModelName(self, value: Optional[str]): + if value is None: + if "SecondaryCaptureDeviceManufacturerModelName" in self._dataset: + del self._dataset.SecondaryCaptureDeviceManufacturerModelName + else: + self._dataset.SecondaryCaptureDeviceManufacturerModelName = value + + @property + def SecondaryCaptureDeviceSoftwareVersions(self) -> Optional[List[str]]: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + return self._dataset.SecondaryCaptureDeviceSoftwareVersions + return None + + @SecondaryCaptureDeviceSoftwareVersions.setter + def SecondaryCaptureDeviceSoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SecondaryCaptureDeviceSoftwareVersions" in self._dataset: + del self._dataset.SecondaryCaptureDeviceSoftwareVersions + else: + self._dataset.SecondaryCaptureDeviceSoftwareVersions = value + + @property + def VideoImageFormatAcquired(self) -> Optional[str]: + if "VideoImageFormatAcquired" in self._dataset: + return self._dataset.VideoImageFormatAcquired + return None + + @VideoImageFormatAcquired.setter + def VideoImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "VideoImageFormatAcquired" in self._dataset: + del self._dataset.VideoImageFormatAcquired + else: + self._dataset.VideoImageFormatAcquired = value + + @property + def DigitalImageFormatAcquired(self) -> Optional[str]: + if "DigitalImageFormatAcquired" in self._dataset: + return self._dataset.DigitalImageFormatAcquired + return None + + @DigitalImageFormatAcquired.setter + def DigitalImageFormatAcquired(self, value: Optional[str]): + if value is None: + if "DigitalImageFormatAcquired" in self._dataset: + del self._dataset.DigitalImageFormatAcquired + else: + self._dataset.DigitalImageFormatAcquired = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/segment_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/segment_characteristics_sequence_item.py new file mode 100644 index 0000000..fac7822 --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_characteristics_sequence_item.py @@ -0,0 +1,363 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .content_item_modifier_sequence_item import ContentItemModifierSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class SegmentCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ContentItemModifierSequence: List[ContentItemModifierSequenceItem] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ContentItemModifierSequence(self) -> Optional[List[ContentItemModifierSequenceItem]]: + if "ContentItemModifierSequence" in self._dataset: + if len(self._ContentItemModifierSequence) == len(self._dataset.ContentItemModifierSequence): + return self._ContentItemModifierSequence + else: + return [ContentItemModifierSequenceItem(x) for x in self._dataset.ContentItemModifierSequence] + return None + + @ContentItemModifierSequence.setter + def ContentItemModifierSequence(self, value: Optional[List[ContentItemModifierSequenceItem]]): + if value is None: + self._ContentItemModifierSequence = [] + if "ContentItemModifierSequence" in self._dataset: + del self._dataset.ContentItemModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentItemModifierSequenceItem) for item in value): + raise ValueError("ContentItemModifierSequence must be a list of ContentItemModifierSequenceItem objects") + else: + self._ContentItemModifierSequence = value + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.clear() + self._dataset.ContentItemModifierSequence.extend([item.to_dataset() for item in value]) + + def add_ContentItemModifier(self, item: ContentItemModifierSequenceItem): + if not isinstance(item, ContentItemModifierSequenceItem): + raise ValueError("Item must be an instance of ContentItemModifierSequenceItem") + self._ContentItemModifierSequence.append(item) + if "ContentItemModifierSequence" not in self._dataset: + self._dataset.ContentItemModifierSequence = pydicom.Sequence() + self._dataset.ContentItemModifierSequence.append(item.to_dataset()) + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ObservationStartDateTime(self) -> Optional[str]: + if "ObservationStartDateTime" in self._dataset: + return self._dataset.ObservationStartDateTime + return None + + @ObservationStartDateTime.setter + def ObservationStartDateTime(self, value: Optional[str]): + if value is None: + if "ObservationStartDateTime" in self._dataset: + del self._dataset.ObservationStartDateTime + else: + self._dataset.ObservationStartDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def RationalNumeratorValue(self) -> Optional[List[int]]: + if "RationalNumeratorValue" in self._dataset: + return self._dataset.RationalNumeratorValue + return None + + @RationalNumeratorValue.setter + def RationalNumeratorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalNumeratorValue" in self._dataset: + del self._dataset.RationalNumeratorValue + else: + self._dataset.RationalNumeratorValue = value + + @property + def RationalDenominatorValue(self) -> Optional[List[int]]: + if "RationalDenominatorValue" in self._dataset: + return self._dataset.RationalDenominatorValue + return None + + @RationalDenominatorValue.setter + def RationalDenominatorValue(self, value: Optional[List[int]]): + if value is None: + if "RationalDenominatorValue" in self._dataset: + del self._dataset.RationalDenominatorValue + else: + self._dataset.RationalDenominatorValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value diff --git a/tdwii_plus_examples/domain_model/segment_identification_sequence_item.py b/tdwii_plus_examples/domain_model/segment_identification_sequence_item.py new file mode 100644 index 0000000..9f9209a --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_identification_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SegmentIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/segment_reference_sequence_item.py b/tdwii_plus_examples/domain_model/segment_reference_sequence_item.py new file mode 100644 index 0000000..d7006dd --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_reference_sequence_item.py @@ -0,0 +1,100 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .combination_segment_reference_sequence_item import ( + CombinationSegmentReferenceSequenceItem, +) +from .direct_segment_reference_sequence_item import DirectSegmentReferenceSequenceItem + + +class SegmentReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DirectSegmentReferenceSequence: List[DirectSegmentReferenceSequenceItem] = [] + self._CombinationSegmentReferenceSequence: List[CombinationSegmentReferenceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SegmentReferenceIndex(self) -> Optional[int]: + if "SegmentReferenceIndex" in self._dataset: + return self._dataset.SegmentReferenceIndex + return None + + @SegmentReferenceIndex.setter + def SegmentReferenceIndex(self, value: Optional[int]): + if value is None: + if "SegmentReferenceIndex" in self._dataset: + del self._dataset.SegmentReferenceIndex + else: + self._dataset.SegmentReferenceIndex = value + + @property + def DirectSegmentReferenceSequence(self) -> Optional[List[DirectSegmentReferenceSequenceItem]]: + if "DirectSegmentReferenceSequence" in self._dataset: + if len(self._DirectSegmentReferenceSequence) == len(self._dataset.DirectSegmentReferenceSequence): + return self._DirectSegmentReferenceSequence + else: + return [DirectSegmentReferenceSequenceItem(x) for x in self._dataset.DirectSegmentReferenceSequence] + return None + + @DirectSegmentReferenceSequence.setter + def DirectSegmentReferenceSequence(self, value: Optional[List[DirectSegmentReferenceSequenceItem]]): + if value is None: + self._DirectSegmentReferenceSequence = [] + if "DirectSegmentReferenceSequence" in self._dataset: + del self._dataset.DirectSegmentReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, DirectSegmentReferenceSequenceItem) for item in value): + raise ValueError("DirectSegmentReferenceSequence must be a list of DirectSegmentReferenceSequenceItem objects") + else: + self._DirectSegmentReferenceSequence = value + if "DirectSegmentReferenceSequence" not in self._dataset: + self._dataset.DirectSegmentReferenceSequence = pydicom.Sequence() + self._dataset.DirectSegmentReferenceSequence.clear() + self._dataset.DirectSegmentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_DirectSegmentReference(self, item: DirectSegmentReferenceSequenceItem): + if not isinstance(item, DirectSegmentReferenceSequenceItem): + raise ValueError("Item must be an instance of DirectSegmentReferenceSequenceItem") + self._DirectSegmentReferenceSequence.append(item) + if "DirectSegmentReferenceSequence" not in self._dataset: + self._dataset.DirectSegmentReferenceSequence = pydicom.Sequence() + self._dataset.DirectSegmentReferenceSequence.append(item.to_dataset()) + + @property + def CombinationSegmentReferenceSequence(self) -> Optional[List[CombinationSegmentReferenceSequenceItem]]: + if "CombinationSegmentReferenceSequence" in self._dataset: + if len(self._CombinationSegmentReferenceSequence) == len(self._dataset.CombinationSegmentReferenceSequence): + return self._CombinationSegmentReferenceSequence + else: + return [CombinationSegmentReferenceSequenceItem(x) for x in self._dataset.CombinationSegmentReferenceSequence] + return None + + @CombinationSegmentReferenceSequence.setter + def CombinationSegmentReferenceSequence(self, value: Optional[List[CombinationSegmentReferenceSequenceItem]]): + if value is None: + self._CombinationSegmentReferenceSequence = [] + if "CombinationSegmentReferenceSequence" in self._dataset: + del self._dataset.CombinationSegmentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CombinationSegmentReferenceSequenceItem) for item in value + ): + raise ValueError( + "CombinationSegmentReferenceSequence must be a list of CombinationSegmentReferenceSequenceItem objects" + ) + else: + self._CombinationSegmentReferenceSequence = value + if "CombinationSegmentReferenceSequence" not in self._dataset: + self._dataset.CombinationSegmentReferenceSequence = pydicom.Sequence() + self._dataset.CombinationSegmentReferenceSequence.clear() + self._dataset.CombinationSegmentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_CombinationSegmentReference(self, item: CombinationSegmentReferenceSequenceItem): + if not isinstance(item, CombinationSegmentReferenceSequenceItem): + raise ValueError("Item must be an instance of CombinationSegmentReferenceSequenceItem") + self._CombinationSegmentReferenceSequence.append(item) + if "CombinationSegmentReferenceSequence" not in self._dataset: + self._dataset.CombinationSegmentReferenceSequence = pydicom.Sequence() + self._dataset.CombinationSegmentReferenceSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/segment_sequence_item.py b/tdwii_plus_examples/domain_model/segment_sequence_item.py new file mode 100644 index 0000000..e21f815 --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_sequence_item.py @@ -0,0 +1,364 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .code_sequence_item import CodeSequenceItem +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .referenced_surface_sequence_item import ReferencedSurfaceSequenceItem + + +class SegmentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._SegmentedPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._SegmentedPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSurfaceSequence: List[ReferencedSurfaceSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def SegmentedPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + if len(self._SegmentedPropertyCategoryCodeSequence) == len(self._dataset.SegmentedPropertyCategoryCodeSequence): + return self._SegmentedPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyCategoryCodeSequence] + return None + + @SegmentedPropertyCategoryCodeSequence.setter + def SegmentedPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyCategoryCodeSequence = [] + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyCategoryCodeSequence = value + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.clear() + self._dataset.SegmentedPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyCategoryCodeSequence.append(item) + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def SegmentNumber(self) -> Optional[int]: + if "SegmentNumber" in self._dataset: + return self._dataset.SegmentNumber + return None + + @SegmentNumber.setter + def SegmentNumber(self, value: Optional[int]): + if value is None: + if "SegmentNumber" in self._dataset: + del self._dataset.SegmentNumber + else: + self._dataset.SegmentNumber = value + + @property + def SegmentLabel(self) -> Optional[str]: + if "SegmentLabel" in self._dataset: + return self._dataset.SegmentLabel + return None + + @SegmentLabel.setter + def SegmentLabel(self, value: Optional[str]): + if value is None: + if "SegmentLabel" in self._dataset: + del self._dataset.SegmentLabel + else: + self._dataset.SegmentLabel = value + + @property + def SegmentDescription(self) -> Optional[str]: + if "SegmentDescription" in self._dataset: + return self._dataset.SegmentDescription + return None + + @SegmentDescription.setter + def SegmentDescription(self, value: Optional[str]): + if value is None: + if "SegmentDescription" in self._dataset: + del self._dataset.SegmentDescription + else: + self._dataset.SegmentDescription = value + + @property + def SegmentAlgorithmType(self) -> Optional[str]: + if "SegmentAlgorithmType" in self._dataset: + return self._dataset.SegmentAlgorithmType + return None + + @SegmentAlgorithmType.setter + def SegmentAlgorithmType(self, value: Optional[str]): + if value is None: + if "SegmentAlgorithmType" in self._dataset: + del self._dataset.SegmentAlgorithmType + else: + self._dataset.SegmentAlgorithmType = value + + @property + def SegmentedPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + if len(self._SegmentedPropertyTypeCodeSequence) == len(self._dataset.SegmentedPropertyTypeCodeSequence): + return self._SegmentedPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyTypeCodeSequence] + return None + + @SegmentedPropertyTypeCodeSequence.setter + def SegmentedPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyTypeCodeSequence = [] + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyTypeCodeSequence = value + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.clear() + self._dataset.SegmentedPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyTypeCodeSequence.append(item) + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def SurfaceCount(self) -> Optional[int]: + if "SurfaceCount" in self._dataset: + return self._dataset.SurfaceCount + return None + + @SurfaceCount.setter + def SurfaceCount(self, value: Optional[int]): + if value is None: + if "SurfaceCount" in self._dataset: + del self._dataset.SurfaceCount + else: + self._dataset.SurfaceCount = value + + @property + def ReferencedSurfaceSequence(self) -> Optional[List[ReferencedSurfaceSequenceItem]]: + if "ReferencedSurfaceSequence" in self._dataset: + if len(self._ReferencedSurfaceSequence) == len(self._dataset.ReferencedSurfaceSequence): + return self._ReferencedSurfaceSequence + else: + return [ReferencedSurfaceSequenceItem(x) for x in self._dataset.ReferencedSurfaceSequence] + return None + + @ReferencedSurfaceSequence.setter + def ReferencedSurfaceSequence(self, value: Optional[List[ReferencedSurfaceSequenceItem]]): + if value is None: + self._ReferencedSurfaceSequence = [] + if "ReferencedSurfaceSequence" in self._dataset: + del self._dataset.ReferencedSurfaceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSurfaceSequenceItem) for item in value): + raise ValueError("ReferencedSurfaceSequence must be a list of ReferencedSurfaceSequenceItem objects") + else: + self._ReferencedSurfaceSequence = value + if "ReferencedSurfaceSequence" not in self._dataset: + self._dataset.ReferencedSurfaceSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceSequence.clear() + self._dataset.ReferencedSurfaceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSurface(self, item: ReferencedSurfaceSequenceItem): + if not isinstance(item, ReferencedSurfaceSequenceItem): + raise ValueError("Item must be an instance of ReferencedSurfaceSequenceItem") + self._ReferencedSurfaceSequence.append(item) + if "ReferencedSurfaceSequence" not in self._dataset: + self._dataset.ReferencedSurfaceSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceSequence.append(item.to_dataset()) + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/segment_sequence_item_1.py b/tdwii_plus_examples/domain_model/segment_sequence_item_1.py new file mode 100644 index 0000000..9dd216f --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_sequence_item_1.py @@ -0,0 +1,406 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .code_sequence_item import CodeSequenceItem +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .segmentation_algorithm_identification_sequence_item import ( + SegmentationAlgorithmIdentificationSequenceItem, +) + + +class SegmentSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._SegmentedPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._SegmentationAlgorithmIdentificationSequence: List[SegmentationAlgorithmIdentificationSequenceItem] = [] + self._SegmentedPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def SegmentedPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + if len(self._SegmentedPropertyCategoryCodeSequence) == len(self._dataset.SegmentedPropertyCategoryCodeSequence): + return self._SegmentedPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyCategoryCodeSequence] + return None + + @SegmentedPropertyCategoryCodeSequence.setter + def SegmentedPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyCategoryCodeSequence = [] + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyCategoryCodeSequence = value + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.clear() + self._dataset.SegmentedPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyCategoryCodeSequence.append(item) + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def SegmentNumber(self) -> Optional[int]: + if "SegmentNumber" in self._dataset: + return self._dataset.SegmentNumber + return None + + @SegmentNumber.setter + def SegmentNumber(self, value: Optional[int]): + if value is None: + if "SegmentNumber" in self._dataset: + del self._dataset.SegmentNumber + else: + self._dataset.SegmentNumber = value + + @property + def SegmentLabel(self) -> Optional[str]: + if "SegmentLabel" in self._dataset: + return self._dataset.SegmentLabel + return None + + @SegmentLabel.setter + def SegmentLabel(self, value: Optional[str]): + if value is None: + if "SegmentLabel" in self._dataset: + del self._dataset.SegmentLabel + else: + self._dataset.SegmentLabel = value + + @property + def SegmentDescription(self) -> Optional[str]: + if "SegmentDescription" in self._dataset: + return self._dataset.SegmentDescription + return None + + @SegmentDescription.setter + def SegmentDescription(self, value: Optional[str]): + if value is None: + if "SegmentDescription" in self._dataset: + del self._dataset.SegmentDescription + else: + self._dataset.SegmentDescription = value + + @property + def SegmentationAlgorithmIdentificationSequence(self) -> Optional[List[SegmentationAlgorithmIdentificationSequenceItem]]: + if "SegmentationAlgorithmIdentificationSequence" in self._dataset: + if len(self._SegmentationAlgorithmIdentificationSequence) == len( + self._dataset.SegmentationAlgorithmIdentificationSequence + ): + return self._SegmentationAlgorithmIdentificationSequence + else: + return [ + SegmentationAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.SegmentationAlgorithmIdentificationSequence + ] + return None + + @SegmentationAlgorithmIdentificationSequence.setter + def SegmentationAlgorithmIdentificationSequence( + self, value: Optional[List[SegmentationAlgorithmIdentificationSequenceItem]] + ): + if value is None: + self._SegmentationAlgorithmIdentificationSequence = [] + if "SegmentationAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.SegmentationAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SegmentationAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SegmentationAlgorithmIdentificationSequence must be a list of SegmentationAlgorithmIdentificationSequenceItem" + " objects" + ) + else: + self._SegmentationAlgorithmIdentificationSequence = value + if "SegmentationAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.SegmentationAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentationAlgorithmIdentificationSequence.clear() + self._dataset.SegmentationAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentationAlgorithmIdentification(self, item: SegmentationAlgorithmIdentificationSequenceItem): + if not isinstance(item, SegmentationAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of SegmentationAlgorithmIdentificationSequenceItem") + self._SegmentationAlgorithmIdentificationSequence.append(item) + if "SegmentationAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.SegmentationAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentationAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def SegmentAlgorithmType(self) -> Optional[str]: + if "SegmentAlgorithmType" in self._dataset: + return self._dataset.SegmentAlgorithmType + return None + + @SegmentAlgorithmType.setter + def SegmentAlgorithmType(self, value: Optional[str]): + if value is None: + if "SegmentAlgorithmType" in self._dataset: + del self._dataset.SegmentAlgorithmType + else: + self._dataset.SegmentAlgorithmType = value + + @property + def SegmentAlgorithmName(self) -> Optional[List[str]]: + if "SegmentAlgorithmName" in self._dataset: + return self._dataset.SegmentAlgorithmName + return None + + @SegmentAlgorithmName.setter + def SegmentAlgorithmName(self, value: Optional[List[str]]): + if value is None: + if "SegmentAlgorithmName" in self._dataset: + del self._dataset.SegmentAlgorithmName + else: + self._dataset.SegmentAlgorithmName = value + + @property + def RecommendedDisplayGrayscaleValue(self) -> Optional[int]: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + return self._dataset.RecommendedDisplayGrayscaleValue + return None + + @RecommendedDisplayGrayscaleValue.setter + def RecommendedDisplayGrayscaleValue(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + del self._dataset.RecommendedDisplayGrayscaleValue + else: + self._dataset.RecommendedDisplayGrayscaleValue = value + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def SegmentedPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + if len(self._SegmentedPropertyTypeCodeSequence) == len(self._dataset.SegmentedPropertyTypeCodeSequence): + return self._SegmentedPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyTypeCodeSequence] + return None + + @SegmentedPropertyTypeCodeSequence.setter + def SegmentedPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyTypeCodeSequence = [] + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyTypeCodeSequence = value + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.clear() + self._dataset.SegmentedPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyTypeCodeSequence.append(item) + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/segment_surface_generation_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/segment_surface_generation_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..d12b211 --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_surface_generation_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SegmentSurfaceGenerationAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/segment_surface_source_instance_sequence_item.py b/tdwii_plus_examples/domain_model/segment_surface_source_instance_sequence_item.py new file mode 100644 index 0000000..76fd32c --- /dev/null +++ b/tdwii_plus_examples/domain_model/segment_surface_source_instance_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SegmentSurfaceSourceInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/segmentation.py b/tdwii_plus_examples/domain_model/segmentation.py new file mode 100644 index 0000000..f59b892 --- /dev/null +++ b/tdwii_plus_examples/domain_model/segmentation.py @@ -0,0 +1,6182 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .segment_sequence_item import SegmentSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .total_pixel_matrix_origin_sequence_item import TotalPixelMatrixOriginSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class Segmentation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TotalPixelMatrixOriginSequence: List[TotalPixelMatrixOriginSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._SegmentSequence: List[SegmentSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def TotalPixelMatrixColumns(self) -> Optional[int]: + if "TotalPixelMatrixColumns" in self._dataset: + return self._dataset.TotalPixelMatrixColumns + return None + + @TotalPixelMatrixColumns.setter + def TotalPixelMatrixColumns(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixColumns" in self._dataset: + del self._dataset.TotalPixelMatrixColumns + else: + self._dataset.TotalPixelMatrixColumns = value + + @property + def TotalPixelMatrixRows(self) -> Optional[int]: + if "TotalPixelMatrixRows" in self._dataset: + return self._dataset.TotalPixelMatrixRows + return None + + @TotalPixelMatrixRows.setter + def TotalPixelMatrixRows(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixRows" in self._dataset: + del self._dataset.TotalPixelMatrixRows + else: + self._dataset.TotalPixelMatrixRows = value + + @property + def TotalPixelMatrixOriginSequence(self) -> Optional[List[TotalPixelMatrixOriginSequenceItem]]: + if "TotalPixelMatrixOriginSequence" in self._dataset: + if len(self._TotalPixelMatrixOriginSequence) == len(self._dataset.TotalPixelMatrixOriginSequence): + return self._TotalPixelMatrixOriginSequence + else: + return [TotalPixelMatrixOriginSequenceItem(x) for x in self._dataset.TotalPixelMatrixOriginSequence] + return None + + @TotalPixelMatrixOriginSequence.setter + def TotalPixelMatrixOriginSequence(self, value: Optional[List[TotalPixelMatrixOriginSequenceItem]]): + if value is None: + self._TotalPixelMatrixOriginSequence = [] + if "TotalPixelMatrixOriginSequence" in self._dataset: + del self._dataset.TotalPixelMatrixOriginSequence + elif not isinstance(value, list) or not all(isinstance(item, TotalPixelMatrixOriginSequenceItem) for item in value): + raise ValueError("TotalPixelMatrixOriginSequence must be a list of TotalPixelMatrixOriginSequenceItem objects") + else: + self._TotalPixelMatrixOriginSequence = value + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.clear() + self._dataset.TotalPixelMatrixOriginSequence.extend([item.to_dataset() for item in value]) + + def add_TotalPixelMatrixOrigin(self, item: TotalPixelMatrixOriginSequenceItem): + if not isinstance(item, TotalPixelMatrixOriginSequenceItem): + raise ValueError("Item must be an instance of TotalPixelMatrixOriginSequenceItem") + self._TotalPixelMatrixOriginSequence.append(item) + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.append(item.to_dataset()) + + @property + def ImageOrientationSlide(self) -> Optional[List[Decimal]]: + if "ImageOrientationSlide" in self._dataset: + return self._dataset.ImageOrientationSlide + return None + + @ImageOrientationSlide.setter + def ImageOrientationSlide(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationSlide" in self._dataset: + del self._dataset.ImageOrientationSlide + else: + self._dataset.ImageOrientationSlide = value + + @property + def TotalPixelMatrixFocalPlanes(self) -> Optional[int]: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + return self._dataset.TotalPixelMatrixFocalPlanes + return None + + @TotalPixelMatrixFocalPlanes.setter + def TotalPixelMatrixFocalPlanes(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + del self._dataset.TotalPixelMatrixFocalPlanes + else: + self._dataset.TotalPixelMatrixFocalPlanes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def SegmentationType(self) -> Optional[str]: + if "SegmentationType" in self._dataset: + return self._dataset.SegmentationType + return None + + @SegmentationType.setter + def SegmentationType(self, value: Optional[str]): + if value is None: + if "SegmentationType" in self._dataset: + del self._dataset.SegmentationType + else: + self._dataset.SegmentationType = value + + @property + def SegmentSequence(self) -> Optional[List[SegmentSequenceItem]]: + if "SegmentSequence" in self._dataset: + if len(self._SegmentSequence) == len(self._dataset.SegmentSequence): + return self._SegmentSequence + else: + return [SegmentSequenceItem(x) for x in self._dataset.SegmentSequence] + return None + + @SegmentSequence.setter + def SegmentSequence(self, value: Optional[List[SegmentSequenceItem]]): + if value is None: + self._SegmentSequence = [] + if "SegmentSequence" in self._dataset: + del self._dataset.SegmentSequence + elif not isinstance(value, list) or not all(isinstance(item, SegmentSequenceItem) for item in value): + raise ValueError("SegmentSequence must be a list of SegmentSequenceItem objects") + else: + self._SegmentSequence = value + if "SegmentSequence" not in self._dataset: + self._dataset.SegmentSequence = pydicom.Sequence() + self._dataset.SegmentSequence.clear() + self._dataset.SegmentSequence.extend([item.to_dataset() for item in value]) + + def add_Segment(self, item: SegmentSequenceItem): + if not isinstance(item, SegmentSequenceItem): + raise ValueError("Item must be an instance of SegmentSequenceItem") + self._SegmentSequence.append(item) + if "SegmentSequence" not in self._dataset: + self._dataset.SegmentSequence = pydicom.Sequence() + self._dataset.SegmentSequence.append(item.to_dataset()) + + @property + def MaximumFractionalValue(self) -> Optional[int]: + if "MaximumFractionalValue" in self._dataset: + return self._dataset.MaximumFractionalValue + return None + + @MaximumFractionalValue.setter + def MaximumFractionalValue(self, value: Optional[int]): + if value is None: + if "MaximumFractionalValue" in self._dataset: + del self._dataset.MaximumFractionalValue + else: + self._dataset.MaximumFractionalValue = value + + @property + def SegmentationFractionalType(self) -> Optional[str]: + if "SegmentationFractionalType" in self._dataset: + return self._dataset.SegmentationFractionalType + return None + + @SegmentationFractionalType.setter + def SegmentationFractionalType(self, value: Optional[str]): + if value is None: + if "SegmentationFractionalType" in self._dataset: + del self._dataset.SegmentationFractionalType + else: + self._dataset.SegmentationFractionalType = value + + @property + def SegmentsOverlap(self) -> Optional[str]: + if "SegmentsOverlap" in self._dataset: + return self._dataset.SegmentsOverlap + return None + + @SegmentsOverlap.setter + def SegmentsOverlap(self, value: Optional[str]): + if value is None: + if "SegmentsOverlap" in self._dataset: + del self._dataset.SegmentsOverlap + else: + self._dataset.SegmentsOverlap = value + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def PyramidUID(self) -> Optional[str]: + if "PyramidUID" in self._dataset: + return self._dataset.PyramidUID + return None + + @PyramidUID.setter + def PyramidUID(self, value: Optional[str]): + if value is None: + if "PyramidUID" in self._dataset: + del self._dataset.PyramidUID + else: + self._dataset.PyramidUID = value + + @property + def PyramidDescription(self) -> Optional[str]: + if "PyramidDescription" in self._dataset: + return self._dataset.PyramidDescription + return None + + @PyramidDescription.setter + def PyramidDescription(self, value: Optional[str]): + if value is None: + if "PyramidDescription" in self._dataset: + del self._dataset.PyramidDescription + else: + self._dataset.PyramidDescription = value + + @property + def PyramidLabel(self) -> Optional[str]: + if "PyramidLabel" in self._dataset: + return self._dataset.PyramidLabel + return None + + @PyramidLabel.setter + def PyramidLabel(self, value: Optional[str]): + if value is None: + if "PyramidLabel" in self._dataset: + del self._dataset.PyramidLabel + else: + self._dataset.PyramidLabel = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/segmentation_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/segmentation_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..3bbe29b --- /dev/null +++ b/tdwii_plus_examples/domain_model/segmentation_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SegmentationAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/segmented_rt_accessory_device_sequence_item.py b/tdwii_plus_examples/domain_model/segmented_rt_accessory_device_sequence_item.py new file mode 100644 index 0000000..ad3b935 --- /dev/null +++ b/tdwii_plus_examples/domain_model/segmented_rt_accessory_device_sequence_item.py @@ -0,0 +1,276 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class SegmentedRTAccessoryDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/selected_frame_functional_groups_sequence_item.py b/tdwii_plus_examples/domain_model/selected_frame_functional_groups_sequence_item.py new file mode 100644 index 0000000..872b64a --- /dev/null +++ b/tdwii_plus_examples/domain_model/selected_frame_functional_groups_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SelectedFrameFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectedFrameNumber(self) -> Optional[int]: + if "SelectedFrameNumber" in self._dataset: + return self._dataset.SelectedFrameNumber + return None + + @SelectedFrameNumber.setter + def SelectedFrameNumber(self, value: Optional[int]): + if value is None: + if "SelectedFrameNumber" in self._dataset: + del self._dataset.SelectedFrameNumber + else: + self._dataset.SelectedFrameNumber = value diff --git a/tdwii_plus_examples/domain_model/selected_segmental_ophthalmic_axial_length_sequence_item.py b/tdwii_plus_examples/domain_model/selected_segmental_ophthalmic_axial_length_sequence_item.py new file mode 100644 index 0000000..e29a387 --- /dev/null +++ b/tdwii_plus_examples/domain_model/selected_segmental_ophthalmic_axial_length_sequence_item.py @@ -0,0 +1,66 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SelectedSegmentalOphthalmicAxialLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" in self._dataset: + if len(self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence) == len( + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence + ): + return self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence] + return None + + @OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.setter + def OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = [] + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError( + "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence must be a list of CodeSequenceItem objects" + ) + else: + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = value + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.clear() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_OphthalmicAxialLengthMeasurementsSegmentNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.append(item) + if "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/selected_total_ophthalmic_axial_length_sequence_item.py b/tdwii_plus_examples/domain_model/selected_total_ophthalmic_axial_length_sequence_item.py new file mode 100644 index 0000000..cbb6d1f --- /dev/null +++ b/tdwii_plus_examples/domain_model/selected_total_ophthalmic_axial_length_sequence_item.py @@ -0,0 +1,130 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .ophthalmic_axial_length_quality_metric_sequence_item import ( + OphthalmicAxialLengthQualityMetricSequenceItem, +) +from .referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item import ( + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem, +) + + +class SelectedTotalOphthalmicAxialLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthQualityMetricSequence: List[OphthalmicAxialLengthQualityMetricSequenceItem] = [] + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence: List[ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthQualityMetricSequence(self) -> Optional[List[OphthalmicAxialLengthQualityMetricSequenceItem]]: + if "OphthalmicAxialLengthQualityMetricSequence" in self._dataset: + if len(self._OphthalmicAxialLengthQualityMetricSequence) == len( + self._dataset.OphthalmicAxialLengthQualityMetricSequence + ): + return self._OphthalmicAxialLengthQualityMetricSequence + else: + return [ + OphthalmicAxialLengthQualityMetricSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthQualityMetricSequence + ] + return None + + @OphthalmicAxialLengthQualityMetricSequence.setter + def OphthalmicAxialLengthQualityMetricSequence( + self, value: Optional[List[OphthalmicAxialLengthQualityMetricSequenceItem]] + ): + if value is None: + self._OphthalmicAxialLengthQualityMetricSequence = [] + if "OphthalmicAxialLengthQualityMetricSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthQualityMetricSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthQualityMetricSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthQualityMetricSequence must be a list of OphthalmicAxialLengthQualityMetricSequenceItem" + " objects" + ) + else: + self._OphthalmicAxialLengthQualityMetricSequence = value + if "OphthalmicAxialLengthQualityMetricSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthQualityMetricSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthQualityMetricSequence.clear() + self._dataset.OphthalmicAxialLengthQualityMetricSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthQualityMetric(self, item: OphthalmicAxialLengthQualityMetricSequenceItem): + if not isinstance(item, OphthalmicAxialLengthQualityMetricSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthQualityMetricSequenceItem") + self._OphthalmicAxialLengthQualityMetricSequence.append(item) + if "OphthalmicAxialLengthQualityMetricSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthQualityMetricSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthQualityMetricSequence.append(item.to_dataset()) + + @property + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, + ) -> Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]]: + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + if len(self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence) == len( + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ): + return self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + else: + return [ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem(x) + for x in self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ] + return None + + @ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.setter + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, value: Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]] + ): + if value is None: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = [] + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + del self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence must be a list of" + " ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem objects" + ) + else: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = value + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.clear() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ReferencedOphthalmicAxialLengthMeasurementQCImage( + self, item: ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ): + if not isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem") + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item) + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/setup_device_sequence_item.py b/tdwii_plus_examples/domain_model/setup_device_sequence_item.py new file mode 100644 index 0000000..5071bb5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/setup_device_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class SetupDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def SetupDeviceType(self) -> Optional[str]: + if "SetupDeviceType" in self._dataset: + return self._dataset.SetupDeviceType + return None + + @SetupDeviceType.setter + def SetupDeviceType(self, value: Optional[str]): + if value is None: + if "SetupDeviceType" in self._dataset: + del self._dataset.SetupDeviceType + else: + self._dataset.SetupDeviceType = value + + @property + def SetupDeviceLabel(self) -> Optional[str]: + if "SetupDeviceLabel" in self._dataset: + return self._dataset.SetupDeviceLabel + return None + + @SetupDeviceLabel.setter + def SetupDeviceLabel(self, value: Optional[str]): + if value is None: + if "SetupDeviceLabel" in self._dataset: + del self._dataset.SetupDeviceLabel + else: + self._dataset.SetupDeviceLabel = value + + @property + def SetupDeviceDescription(self) -> Optional[str]: + if "SetupDeviceDescription" in self._dataset: + return self._dataset.SetupDeviceDescription + return None + + @SetupDeviceDescription.setter + def SetupDeviceDescription(self, value: Optional[str]): + if value is None: + if "SetupDeviceDescription" in self._dataset: + del self._dataset.SetupDeviceDescription + else: + self._dataset.SetupDeviceDescription = value + + @property + def SetupDeviceParameter(self) -> Optional[Decimal]: + if "SetupDeviceParameter" in self._dataset: + return self._dataset.SetupDeviceParameter + return None + + @SetupDeviceParameter.setter + def SetupDeviceParameter(self, value: Optional[Decimal]): + if value is None: + if "SetupDeviceParameter" in self._dataset: + del self._dataset.SetupDeviceParameter + else: + self._dataset.SetupDeviceParameter = value + + @property + def SetupReferenceDescription(self) -> Optional[str]: + if "SetupReferenceDescription" in self._dataset: + return self._dataset.SetupReferenceDescription + return None + + @SetupReferenceDescription.setter + def SetupReferenceDescription(self, value: Optional[str]): + if value is None: + if "SetupReferenceDescription" in self._dataset: + del self._dataset.SetupReferenceDescription + else: + self._dataset.SetupReferenceDescription = value diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item.py new file mode 100644 index 0000000..aa44784 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item.py @@ -0,0 +1,496 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .x_ray3_d_frame_type_sequence_item import XRay3DFrameTypeSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._XRay3DFrameTypeSequence: List[XRay3DFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def XRay3DFrameTypeSequence(self) -> Optional[List[XRay3DFrameTypeSequenceItem]]: + if "XRay3DFrameTypeSequence" in self._dataset: + if len(self._XRay3DFrameTypeSequence) == len(self._dataset.XRay3DFrameTypeSequence): + return self._XRay3DFrameTypeSequence + else: + return [XRay3DFrameTypeSequenceItem(x) for x in self._dataset.XRay3DFrameTypeSequence] + return None + + @XRay3DFrameTypeSequence.setter + def XRay3DFrameTypeSequence(self, value: Optional[List[XRay3DFrameTypeSequenceItem]]): + if value is None: + self._XRay3DFrameTypeSequence = [] + if "XRay3DFrameTypeSequence" in self._dataset: + del self._dataset.XRay3DFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DFrameTypeSequenceItem) for item in value): + raise ValueError("XRay3DFrameTypeSequence must be a list of XRay3DFrameTypeSequenceItem objects") + else: + self._XRay3DFrameTypeSequence = value + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.clear() + self._dataset.XRay3DFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DFrameType(self, item: XRay3DFrameTypeSequenceItem): + if not isinstance(item, XRay3DFrameTypeSequenceItem): + raise ValueError("Item must be an instance of XRay3DFrameTypeSequenceItem") + self._XRay3DFrameTypeSequence.append(item) + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_1.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_1.py new file mode 100644 index 0000000..53e5850 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_1.py @@ -0,0 +1,422 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .x_ray3_d_frame_type_sequence_item import XRay3DFrameTypeSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._XRay3DFrameTypeSequence: List[XRay3DFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def XRay3DFrameTypeSequence(self) -> Optional[List[XRay3DFrameTypeSequenceItem]]: + if "XRay3DFrameTypeSequence" in self._dataset: + if len(self._XRay3DFrameTypeSequence) == len(self._dataset.XRay3DFrameTypeSequence): + return self._XRay3DFrameTypeSequence + else: + return [XRay3DFrameTypeSequenceItem(x) for x in self._dataset.XRay3DFrameTypeSequence] + return None + + @XRay3DFrameTypeSequence.setter + def XRay3DFrameTypeSequence(self, value: Optional[List[XRay3DFrameTypeSequenceItem]]): + if value is None: + self._XRay3DFrameTypeSequence = [] + if "XRay3DFrameTypeSequence" in self._dataset: + del self._dataset.XRay3DFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DFrameTypeSequenceItem) for item in value): + raise ValueError("XRay3DFrameTypeSequence must be a list of XRay3DFrameTypeSequenceItem objects") + else: + self._XRay3DFrameTypeSequence = value + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.clear() + self._dataset.XRay3DFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DFrameType(self, item: XRay3DFrameTypeSequenceItem): + if not isinstance(item, XRay3DFrameTypeSequenceItem): + raise ValueError("Item must be an instance of XRay3DFrameTypeSequenceItem") + self._XRay3DFrameTypeSequence.append(item) + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_10.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_10.py new file mode 100644 index 0000000..674b898 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_10.py @@ -0,0 +1,318 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_11.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_11.py new file mode 100644 index 0000000..2968754 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_11.py @@ -0,0 +1,376 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .intravascular_frame_content_sequence_item import ( + IntravascularFrameContentSequenceItem, +) +from .intravascular_oct_frame_content_sequence_item import ( + IntravascularOCTFrameContentSequenceItem, +) +from .intravascular_oct_frame_type_sequence_item import ( + IntravascularOCTFrameTypeSequenceItem, +) +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._IntravascularOCTFrameTypeSequence: List[IntravascularOCTFrameTypeSequenceItem] = [] + self._IntravascularFrameContentSequence: List[IntravascularFrameContentSequenceItem] = [] + self._IntravascularOCTFrameContentSequence: List[IntravascularOCTFrameContentSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def IntravascularOCTFrameTypeSequence(self) -> Optional[List[IntravascularOCTFrameTypeSequenceItem]]: + if "IntravascularOCTFrameTypeSequence" in self._dataset: + if len(self._IntravascularOCTFrameTypeSequence) == len(self._dataset.IntravascularOCTFrameTypeSequence): + return self._IntravascularOCTFrameTypeSequence + else: + return [IntravascularOCTFrameTypeSequenceItem(x) for x in self._dataset.IntravascularOCTFrameTypeSequence] + return None + + @IntravascularOCTFrameTypeSequence.setter + def IntravascularOCTFrameTypeSequence(self, value: Optional[List[IntravascularOCTFrameTypeSequenceItem]]): + if value is None: + self._IntravascularOCTFrameTypeSequence = [] + if "IntravascularOCTFrameTypeSequence" in self._dataset: + del self._dataset.IntravascularOCTFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, IntravascularOCTFrameTypeSequenceItem) for item in value): + raise ValueError( + "IntravascularOCTFrameTypeSequence must be a list of IntravascularOCTFrameTypeSequenceItem objects" + ) + else: + self._IntravascularOCTFrameTypeSequence = value + if "IntravascularOCTFrameTypeSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameTypeSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameTypeSequence.clear() + self._dataset.IntravascularOCTFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_IntravascularOCTFrameType(self, item: IntravascularOCTFrameTypeSequenceItem): + if not isinstance(item, IntravascularOCTFrameTypeSequenceItem): + raise ValueError("Item must be an instance of IntravascularOCTFrameTypeSequenceItem") + self._IntravascularOCTFrameTypeSequence.append(item) + if "IntravascularOCTFrameTypeSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameTypeSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameTypeSequence.append(item.to_dataset()) + + @property + def IntravascularFrameContentSequence(self) -> Optional[List[IntravascularFrameContentSequenceItem]]: + if "IntravascularFrameContentSequence" in self._dataset: + if len(self._IntravascularFrameContentSequence) == len(self._dataset.IntravascularFrameContentSequence): + return self._IntravascularFrameContentSequence + else: + return [IntravascularFrameContentSequenceItem(x) for x in self._dataset.IntravascularFrameContentSequence] + return None + + @IntravascularFrameContentSequence.setter + def IntravascularFrameContentSequence(self, value: Optional[List[IntravascularFrameContentSequenceItem]]): + if value is None: + self._IntravascularFrameContentSequence = [] + if "IntravascularFrameContentSequence" in self._dataset: + del self._dataset.IntravascularFrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, IntravascularFrameContentSequenceItem) for item in value): + raise ValueError( + "IntravascularFrameContentSequence must be a list of IntravascularFrameContentSequenceItem objects" + ) + else: + self._IntravascularFrameContentSequence = value + if "IntravascularFrameContentSequence" not in self._dataset: + self._dataset.IntravascularFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularFrameContentSequence.clear() + self._dataset.IntravascularFrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_IntravascularFrameContent(self, item: IntravascularFrameContentSequenceItem): + if not isinstance(item, IntravascularFrameContentSequenceItem): + raise ValueError("Item must be an instance of IntravascularFrameContentSequenceItem") + self._IntravascularFrameContentSequence.append(item) + if "IntravascularFrameContentSequence" not in self._dataset: + self._dataset.IntravascularFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularFrameContentSequence.append(item.to_dataset()) + + @property + def IntravascularOCTFrameContentSequence(self) -> Optional[List[IntravascularOCTFrameContentSequenceItem]]: + if "IntravascularOCTFrameContentSequence" in self._dataset: + if len(self._IntravascularOCTFrameContentSequence) == len(self._dataset.IntravascularOCTFrameContentSequence): + return self._IntravascularOCTFrameContentSequence + else: + return [ + IntravascularOCTFrameContentSequenceItem(x) for x in self._dataset.IntravascularOCTFrameContentSequence + ] + return None + + @IntravascularOCTFrameContentSequence.setter + def IntravascularOCTFrameContentSequence(self, value: Optional[List[IntravascularOCTFrameContentSequenceItem]]): + if value is None: + self._IntravascularOCTFrameContentSequence = [] + if "IntravascularOCTFrameContentSequence" in self._dataset: + del self._dataset.IntravascularOCTFrameContentSequence + elif not isinstance(value, list) or not all( + isinstance(item, IntravascularOCTFrameContentSequenceItem) for item in value + ): + raise ValueError( + "IntravascularOCTFrameContentSequence must be a list of IntravascularOCTFrameContentSequenceItem objects" + ) + else: + self._IntravascularOCTFrameContentSequence = value + if "IntravascularOCTFrameContentSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameContentSequence.clear() + self._dataset.IntravascularOCTFrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_IntravascularOCTFrameContent(self, item: IntravascularOCTFrameContentSequenceItem): + if not isinstance(item, IntravascularOCTFrameContentSequenceItem): + raise ValueError("Item must be an instance of IntravascularOCTFrameContentSequenceItem") + self._IntravascularOCTFrameContentSequence.append(item) + if "IntravascularOCTFrameContentSequence" not in self._dataset: + self._dataset.IntravascularOCTFrameContentSequence = pydicom.Sequence() + self._dataset.IntravascularOCTFrameContentSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_12.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_12.py new file mode 100644 index 0000000..ed6cf5e --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_12.py @@ -0,0 +1,902 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_sequence_item import CalibrationSequenceItem +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .collimator_shape_sequence_item import CollimatorShapeSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .exposure_control_sensing_regions_sequence_item import ( + ExposureControlSensingRegionsSequenceItem, +) +from .field_of_view_sequence_item import FieldOfViewSequenceItem +from .frame_acquisition_sequence_item import FrameAcquisitionSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_detector_parameters_sequence_item import FrameDetectorParametersSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_pixel_data_properties_sequence_item import ( + FramePixelDataPropertiesSequenceItem, +) +from .frame_pixel_shift_sequence_item import FramePixelShiftSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .object_thickness_sequence_item import ObjectThicknessSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .positioner_position_sequence_item import PositionerPositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .table_position_sequence_item import TablePositionSequenceItem +from .x_ray_geometry_sequence_item import XRayGeometrySequenceItem +from .xaxrf_frame_characteristics_sequence_item import ( + XAXRFFrameCharacteristicsSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._PositionerPositionSequence: List[PositionerPositionSequenceItem] = [] + self._TablePositionSequence: List[TablePositionSequenceItem] = [] + self._CollimatorShapeSequence: List[CollimatorShapeSequenceItem] = [] + self._XAXRFFrameCharacteristicsSequence: List[XAXRFFrameCharacteristicsSequenceItem] = [] + self._FrameAcquisitionSequence: List[FrameAcquisitionSequenceItem] = [] + self._FieldOfViewSequence: List[FieldOfViewSequenceItem] = [] + self._ExposureControlSensingRegionsSequence: List[ExposureControlSensingRegionsSequenceItem] = [] + self._FrameDetectorParametersSequence: List[FrameDetectorParametersSequenceItem] = [] + self._CalibrationSequence: List[CalibrationSequenceItem] = [] + self._ObjectThicknessSequence: List[ObjectThicknessSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._XRayGeometrySequence: List[XRayGeometrySequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._FramePixelShiftSequence: List[FramePixelShiftSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._FramePixelDataPropertiesSequence: List[FramePixelDataPropertiesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def PositionerPositionSequence(self) -> Optional[List[PositionerPositionSequenceItem]]: + if "PositionerPositionSequence" in self._dataset: + if len(self._PositionerPositionSequence) == len(self._dataset.PositionerPositionSequence): + return self._PositionerPositionSequence + else: + return [PositionerPositionSequenceItem(x) for x in self._dataset.PositionerPositionSequence] + return None + + @PositionerPositionSequence.setter + def PositionerPositionSequence(self, value: Optional[List[PositionerPositionSequenceItem]]): + if value is None: + self._PositionerPositionSequence = [] + if "PositionerPositionSequence" in self._dataset: + del self._dataset.PositionerPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PositionerPositionSequenceItem) for item in value): + raise ValueError("PositionerPositionSequence must be a list of PositionerPositionSequenceItem objects") + else: + self._PositionerPositionSequence = value + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.clear() + self._dataset.PositionerPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PositionerPosition(self, item: PositionerPositionSequenceItem): + if not isinstance(item, PositionerPositionSequenceItem): + raise ValueError("Item must be an instance of PositionerPositionSequenceItem") + self._PositionerPositionSequence.append(item) + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.append(item.to_dataset()) + + @property + def TablePositionSequence(self) -> Optional[List[TablePositionSequenceItem]]: + if "TablePositionSequence" in self._dataset: + if len(self._TablePositionSequence) == len(self._dataset.TablePositionSequence): + return self._TablePositionSequence + else: + return [TablePositionSequenceItem(x) for x in self._dataset.TablePositionSequence] + return None + + @TablePositionSequence.setter + def TablePositionSequence(self, value: Optional[List[TablePositionSequenceItem]]): + if value is None: + self._TablePositionSequence = [] + if "TablePositionSequence" in self._dataset: + del self._dataset.TablePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TablePositionSequenceItem) for item in value): + raise ValueError("TablePositionSequence must be a list of TablePositionSequenceItem objects") + else: + self._TablePositionSequence = value + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.clear() + self._dataset.TablePositionSequence.extend([item.to_dataset() for item in value]) + + def add_TablePosition(self, item: TablePositionSequenceItem): + if not isinstance(item, TablePositionSequenceItem): + raise ValueError("Item must be an instance of TablePositionSequenceItem") + self._TablePositionSequence.append(item) + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.append(item.to_dataset()) + + @property + def CollimatorShapeSequence(self) -> Optional[List[CollimatorShapeSequenceItem]]: + if "CollimatorShapeSequence" in self._dataset: + if len(self._CollimatorShapeSequence) == len(self._dataset.CollimatorShapeSequence): + return self._CollimatorShapeSequence + else: + return [CollimatorShapeSequenceItem(x) for x in self._dataset.CollimatorShapeSequence] + return None + + @CollimatorShapeSequence.setter + def CollimatorShapeSequence(self, value: Optional[List[CollimatorShapeSequenceItem]]): + if value is None: + self._CollimatorShapeSequence = [] + if "CollimatorShapeSequence" in self._dataset: + del self._dataset.CollimatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CollimatorShapeSequenceItem) for item in value): + raise ValueError("CollimatorShapeSequence must be a list of CollimatorShapeSequenceItem objects") + else: + self._CollimatorShapeSequence = value + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.clear() + self._dataset.CollimatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CollimatorShape(self, item: CollimatorShapeSequenceItem): + if not isinstance(item, CollimatorShapeSequenceItem): + raise ValueError("Item must be an instance of CollimatorShapeSequenceItem") + self._CollimatorShapeSequence.append(item) + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.append(item.to_dataset()) + + @property + def XAXRFFrameCharacteristicsSequence(self) -> Optional[List[XAXRFFrameCharacteristicsSequenceItem]]: + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + if len(self._XAXRFFrameCharacteristicsSequence) == len(self._dataset.XAXRFFrameCharacteristicsSequence): + return self._XAXRFFrameCharacteristicsSequence + else: + return [XAXRFFrameCharacteristicsSequenceItem(x) for x in self._dataset.XAXRFFrameCharacteristicsSequence] + return None + + @XAXRFFrameCharacteristicsSequence.setter + def XAXRFFrameCharacteristicsSequence(self, value: Optional[List[XAXRFFrameCharacteristicsSequenceItem]]): + if value is None: + self._XAXRFFrameCharacteristicsSequence = [] + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + del self._dataset.XAXRFFrameCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAXRFFrameCharacteristicsSequenceItem) for item in value): + raise ValueError( + "XAXRFFrameCharacteristicsSequence must be a list of XAXRFFrameCharacteristicsSequenceItem objects" + ) + else: + self._XAXRFFrameCharacteristicsSequence = value + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.clear() + self._dataset.XAXRFFrameCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_XAXRFFrameCharacteristics(self, item: XAXRFFrameCharacteristicsSequenceItem): + if not isinstance(item, XAXRFFrameCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of XAXRFFrameCharacteristicsSequenceItem") + self._XAXRFFrameCharacteristicsSequence.append(item) + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.append(item.to_dataset()) + + @property + def FrameAcquisitionSequence(self) -> Optional[List[FrameAcquisitionSequenceItem]]: + if "FrameAcquisitionSequence" in self._dataset: + if len(self._FrameAcquisitionSequence) == len(self._dataset.FrameAcquisitionSequence): + return self._FrameAcquisitionSequence + else: + return [FrameAcquisitionSequenceItem(x) for x in self._dataset.FrameAcquisitionSequence] + return None + + @FrameAcquisitionSequence.setter + def FrameAcquisitionSequence(self, value: Optional[List[FrameAcquisitionSequenceItem]]): + if value is None: + self._FrameAcquisitionSequence = [] + if "FrameAcquisitionSequence" in self._dataset: + del self._dataset.FrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAcquisitionSequenceItem) for item in value): + raise ValueError("FrameAcquisitionSequence must be a list of FrameAcquisitionSequenceItem objects") + else: + self._FrameAcquisitionSequence = value + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.clear() + self._dataset.FrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameAcquisition(self, item: FrameAcquisitionSequenceItem): + if not isinstance(item, FrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of FrameAcquisitionSequenceItem") + self._FrameAcquisitionSequence.append(item) + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.append(item.to_dataset()) + + @property + def FieldOfViewSequence(self) -> Optional[List[FieldOfViewSequenceItem]]: + if "FieldOfViewSequence" in self._dataset: + if len(self._FieldOfViewSequence) == len(self._dataset.FieldOfViewSequence): + return self._FieldOfViewSequence + else: + return [FieldOfViewSequenceItem(x) for x in self._dataset.FieldOfViewSequence] + return None + + @FieldOfViewSequence.setter + def FieldOfViewSequence(self, value: Optional[List[FieldOfViewSequenceItem]]): + if value is None: + self._FieldOfViewSequence = [] + if "FieldOfViewSequence" in self._dataset: + del self._dataset.FieldOfViewSequence + elif not isinstance(value, list) or not all(isinstance(item, FieldOfViewSequenceItem) for item in value): + raise ValueError("FieldOfViewSequence must be a list of FieldOfViewSequenceItem objects") + else: + self._FieldOfViewSequence = value + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.clear() + self._dataset.FieldOfViewSequence.extend([item.to_dataset() for item in value]) + + def add_FieldOfView(self, item: FieldOfViewSequenceItem): + if not isinstance(item, FieldOfViewSequenceItem): + raise ValueError("Item must be an instance of FieldOfViewSequenceItem") + self._FieldOfViewSequence.append(item) + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.append(item.to_dataset()) + + @property + def ExposureControlSensingRegionsSequence(self) -> Optional[List[ExposureControlSensingRegionsSequenceItem]]: + if "ExposureControlSensingRegionsSequence" in self._dataset: + if len(self._ExposureControlSensingRegionsSequence) == len(self._dataset.ExposureControlSensingRegionsSequence): + return self._ExposureControlSensingRegionsSequence + else: + return [ + ExposureControlSensingRegionsSequenceItem(x) for x in self._dataset.ExposureControlSensingRegionsSequence + ] + return None + + @ExposureControlSensingRegionsSequence.setter + def ExposureControlSensingRegionsSequence(self, value: Optional[List[ExposureControlSensingRegionsSequenceItem]]): + if value is None: + self._ExposureControlSensingRegionsSequence = [] + if "ExposureControlSensingRegionsSequence" in self._dataset: + del self._dataset.ExposureControlSensingRegionsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ExposureControlSensingRegionsSequenceItem) for item in value + ): + raise ValueError( + "ExposureControlSensingRegionsSequence must be a list of ExposureControlSensingRegionsSequenceItem objects" + ) + else: + self._ExposureControlSensingRegionsSequence = value + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.clear() + self._dataset.ExposureControlSensingRegionsSequence.extend([item.to_dataset() for item in value]) + + def add_ExposureControlSensingRegions(self, item: ExposureControlSensingRegionsSequenceItem): + if not isinstance(item, ExposureControlSensingRegionsSequenceItem): + raise ValueError("Item must be an instance of ExposureControlSensingRegionsSequenceItem") + self._ExposureControlSensingRegionsSequence.append(item) + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.append(item.to_dataset()) + + @property + def FrameDetectorParametersSequence(self) -> Optional[List[FrameDetectorParametersSequenceItem]]: + if "FrameDetectorParametersSequence" in self._dataset: + if len(self._FrameDetectorParametersSequence) == len(self._dataset.FrameDetectorParametersSequence): + return self._FrameDetectorParametersSequence + else: + return [FrameDetectorParametersSequenceItem(x) for x in self._dataset.FrameDetectorParametersSequence] + return None + + @FrameDetectorParametersSequence.setter + def FrameDetectorParametersSequence(self, value: Optional[List[FrameDetectorParametersSequenceItem]]): + if value is None: + self._FrameDetectorParametersSequence = [] + if "FrameDetectorParametersSequence" in self._dataset: + del self._dataset.FrameDetectorParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDetectorParametersSequenceItem) for item in value): + raise ValueError("FrameDetectorParametersSequence must be a list of FrameDetectorParametersSequenceItem objects") + else: + self._FrameDetectorParametersSequence = value + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.clear() + self._dataset.FrameDetectorParametersSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDetectorParameters(self, item: FrameDetectorParametersSequenceItem): + if not isinstance(item, FrameDetectorParametersSequenceItem): + raise ValueError("Item must be an instance of FrameDetectorParametersSequenceItem") + self._FrameDetectorParametersSequence.append(item) + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.append(item.to_dataset()) + + @property + def CalibrationSequence(self) -> Optional[List[CalibrationSequenceItem]]: + if "CalibrationSequence" in self._dataset: + if len(self._CalibrationSequence) == len(self._dataset.CalibrationSequence): + return self._CalibrationSequence + else: + return [CalibrationSequenceItem(x) for x in self._dataset.CalibrationSequence] + return None + + @CalibrationSequence.setter + def CalibrationSequence(self, value: Optional[List[CalibrationSequenceItem]]): + if value is None: + self._CalibrationSequence = [] + if "CalibrationSequence" in self._dataset: + del self._dataset.CalibrationSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationSequenceItem) for item in value): + raise ValueError("CalibrationSequence must be a list of CalibrationSequenceItem objects") + else: + self._CalibrationSequence = value + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.clear() + self._dataset.CalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_Calibration(self, item: CalibrationSequenceItem): + if not isinstance(item, CalibrationSequenceItem): + raise ValueError("Item must be an instance of CalibrationSequenceItem") + self._CalibrationSequence.append(item) + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.append(item.to_dataset()) + + @property + def ObjectThicknessSequence(self) -> Optional[List[ObjectThicknessSequenceItem]]: + if "ObjectThicknessSequence" in self._dataset: + if len(self._ObjectThicknessSequence) == len(self._dataset.ObjectThicknessSequence): + return self._ObjectThicknessSequence + else: + return [ObjectThicknessSequenceItem(x) for x in self._dataset.ObjectThicknessSequence] + return None + + @ObjectThicknessSequence.setter + def ObjectThicknessSequence(self, value: Optional[List[ObjectThicknessSequenceItem]]): + if value is None: + self._ObjectThicknessSequence = [] + if "ObjectThicknessSequence" in self._dataset: + del self._dataset.ObjectThicknessSequence + elif not isinstance(value, list) or not all(isinstance(item, ObjectThicknessSequenceItem) for item in value): + raise ValueError("ObjectThicknessSequence must be a list of ObjectThicknessSequenceItem objects") + else: + self._ObjectThicknessSequence = value + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.clear() + self._dataset.ObjectThicknessSequence.extend([item.to_dataset() for item in value]) + + def add_ObjectThickness(self, item: ObjectThicknessSequenceItem): + if not isinstance(item, ObjectThicknessSequenceItem): + raise ValueError("Item must be an instance of ObjectThicknessSequenceItem") + self._ObjectThicknessSequence.append(item) + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def XRayGeometrySequence(self) -> Optional[List[XRayGeometrySequenceItem]]: + if "XRayGeometrySequence" in self._dataset: + if len(self._XRayGeometrySequence) == len(self._dataset.XRayGeometrySequence): + return self._XRayGeometrySequence + else: + return [XRayGeometrySequenceItem(x) for x in self._dataset.XRayGeometrySequence] + return None + + @XRayGeometrySequence.setter + def XRayGeometrySequence(self, value: Optional[List[XRayGeometrySequenceItem]]): + if value is None: + self._XRayGeometrySequence = [] + if "XRayGeometrySequence" in self._dataset: + del self._dataset.XRayGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGeometrySequenceItem) for item in value): + raise ValueError("XRayGeometrySequence must be a list of XRayGeometrySequenceItem objects") + else: + self._XRayGeometrySequence = value + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.clear() + self._dataset.XRayGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_XRayGeometry(self, item: XRayGeometrySequenceItem): + if not isinstance(item, XRayGeometrySequenceItem): + raise ValueError("Item must be an instance of XRayGeometrySequenceItem") + self._XRayGeometrySequence.append(item) + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def FramePixelShiftSequence(self) -> Optional[List[FramePixelShiftSequenceItem]]: + if "FramePixelShiftSequence" in self._dataset: + if len(self._FramePixelShiftSequence) == len(self._dataset.FramePixelShiftSequence): + return self._FramePixelShiftSequence + else: + return [FramePixelShiftSequenceItem(x) for x in self._dataset.FramePixelShiftSequence] + return None + + @FramePixelShiftSequence.setter + def FramePixelShiftSequence(self, value: Optional[List[FramePixelShiftSequenceItem]]): + if value is None: + self._FramePixelShiftSequence = [] + if "FramePixelShiftSequence" in self._dataset: + del self._dataset.FramePixelShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelShiftSequenceItem) for item in value): + raise ValueError("FramePixelShiftSequence must be a list of FramePixelShiftSequenceItem objects") + else: + self._FramePixelShiftSequence = value + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.clear() + self._dataset.FramePixelShiftSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelShift(self, item: FramePixelShiftSequenceItem): + if not isinstance(item, FramePixelShiftSequenceItem): + raise ValueError("Item must be an instance of FramePixelShiftSequenceItem") + self._FramePixelShiftSequence.append(item) + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.append(item.to_dataset()) + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def FramePixelDataPropertiesSequence(self) -> Optional[List[FramePixelDataPropertiesSequenceItem]]: + if "FramePixelDataPropertiesSequence" in self._dataset: + if len(self._FramePixelDataPropertiesSequence) == len(self._dataset.FramePixelDataPropertiesSequence): + return self._FramePixelDataPropertiesSequence + else: + return [FramePixelDataPropertiesSequenceItem(x) for x in self._dataset.FramePixelDataPropertiesSequence] + return None + + @FramePixelDataPropertiesSequence.setter + def FramePixelDataPropertiesSequence(self, value: Optional[List[FramePixelDataPropertiesSequenceItem]]): + if value is None: + self._FramePixelDataPropertiesSequence = [] + if "FramePixelDataPropertiesSequence" in self._dataset: + del self._dataset.FramePixelDataPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelDataPropertiesSequenceItem) for item in value): + raise ValueError("FramePixelDataPropertiesSequence must be a list of FramePixelDataPropertiesSequenceItem objects") + else: + self._FramePixelDataPropertiesSequence = value + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.clear() + self._dataset.FramePixelDataPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelDataProperties(self, item: FramePixelDataPropertiesSequenceItem): + if not isinstance(item, FramePixelDataPropertiesSequenceItem): + raise ValueError("Item must be an instance of FramePixelDataPropertiesSequenceItem") + self._FramePixelDataPropertiesSequence.append(item) + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_13.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_13.py new file mode 100644 index 0000000..0682f43 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_13.py @@ -0,0 +1,334 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .confocal_microscopy_image_frame_type_sequence_item import ( + ConfocalMicroscopyImageFrameTypeSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .optical_path_identification_sequence_item import ( + OpticalPathIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._ConfocalMicroscopyImageFrameTypeSequence: List[ConfocalMicroscopyImageFrameTypeSequenceItem] = [] + self._OpticalPathIdentificationSequence: List[OpticalPathIdentificationSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def ConfocalMicroscopyImageFrameTypeSequence(self) -> Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]: + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + if len(self._ConfocalMicroscopyImageFrameTypeSequence) == len( + self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ): + return self._ConfocalMicroscopyImageFrameTypeSequence + else: + return [ + ConfocalMicroscopyImageFrameTypeSequenceItem(x) + for x in self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ] + return None + + @ConfocalMicroscopyImageFrameTypeSequence.setter + def ConfocalMicroscopyImageFrameTypeSequence(self, value: Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]): + if value is None: + self._ConfocalMicroscopyImageFrameTypeSequence = [] + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + del self._dataset.ConfocalMicroscopyImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "ConfocalMicroscopyImageFrameTypeSequence must be a list of ConfocalMicroscopyImageFrameTypeSequenceItem" + " objects" + ) + else: + self._ConfocalMicroscopyImageFrameTypeSequence = value + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.clear() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ConfocalMicroscopyImageFrameType(self, item: ConfocalMicroscopyImageFrameTypeSequenceItem): + if not isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of ConfocalMicroscopyImageFrameTypeSequenceItem") + self._ConfocalMicroscopyImageFrameTypeSequence.append(item) + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentificationSequence(self) -> Optional[List[OpticalPathIdentificationSequenceItem]]: + if "OpticalPathIdentificationSequence" in self._dataset: + if len(self._OpticalPathIdentificationSequence) == len(self._dataset.OpticalPathIdentificationSequence): + return self._OpticalPathIdentificationSequence + else: + return [OpticalPathIdentificationSequenceItem(x) for x in self._dataset.OpticalPathIdentificationSequence] + return None + + @OpticalPathIdentificationSequence.setter + def OpticalPathIdentificationSequence(self, value: Optional[List[OpticalPathIdentificationSequenceItem]]): + if value is None: + self._OpticalPathIdentificationSequence = [] + if "OpticalPathIdentificationSequence" in self._dataset: + del self._dataset.OpticalPathIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathIdentificationSequenceItem) for item in value): + raise ValueError( + "OpticalPathIdentificationSequence must be a list of OpticalPathIdentificationSequenceItem objects" + ) + else: + self._OpticalPathIdentificationSequence = value + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.clear() + self._dataset.OpticalPathIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPathIdentification(self, item: OpticalPathIdentificationSequenceItem): + if not isinstance(item, OpticalPathIdentificationSequenceItem): + raise ValueError("Item must be an instance of OpticalPathIdentificationSequenceItem") + self._OpticalPathIdentificationSequence.append(item) + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_16.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_16.py new file mode 100644 index 0000000..d8ca6ff --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_16.py @@ -0,0 +1,676 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .ct_image_frame_type_sequence_item import CTImageFrameTypeSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._CTImageFrameTypeSequence: List[CTImageFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def CTImageFrameTypeSequence(self) -> Optional[List[CTImageFrameTypeSequenceItem]]: + if "CTImageFrameTypeSequence" in self._dataset: + if len(self._CTImageFrameTypeSequence) == len(self._dataset.CTImageFrameTypeSequence): + return self._CTImageFrameTypeSequence + else: + return [CTImageFrameTypeSequenceItem(x) for x in self._dataset.CTImageFrameTypeSequence] + return None + + @CTImageFrameTypeSequence.setter + def CTImageFrameTypeSequence(self, value: Optional[List[CTImageFrameTypeSequenceItem]]): + if value is None: + self._CTImageFrameTypeSequence = [] + if "CTImageFrameTypeSequence" in self._dataset: + del self._dataset.CTImageFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, CTImageFrameTypeSequenceItem) for item in value): + raise ValueError("CTImageFrameTypeSequence must be a list of CTImageFrameTypeSequenceItem objects") + else: + self._CTImageFrameTypeSequence = value + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.clear() + self._dataset.CTImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_CTImageFrameType(self, item: CTImageFrameTypeSequenceItem): + if not isinstance(item, CTImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of CTImageFrameTypeSequenceItem") + self._CTImageFrameTypeSequence.append(item) + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_17.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_17.py new file mode 100644 index 0000000..d437dfb --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_17.py @@ -0,0 +1,925 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_sequence_item import CalibrationSequenceItem +from .collimator_shape_sequence_item import CollimatorShapeSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .detector_position_sequence_item import DetectorPositionSequenceItem +from .field_of_view_sequence_item import FieldOfViewSequenceItem +from .frame_acquisition_sequence_item import FrameAcquisitionSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_detector_parameters_sequence_item import FrameDetectorParametersSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_pixel_data_properties_sequence_item import ( + FramePixelDataPropertiesSequenceItem, +) +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .isocenter_reference_system_sequence_item import ( + IsocenterReferenceSystemSequenceItem, +) +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .positioner_position_sequence_item import PositionerPositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .x_ray_acquisition_dose_sequence_item import XRayAcquisitionDoseSequenceItem +from .x_ray_filter_sequence_item import XRayFilterSequenceItem +from .x_ray_geometry_sequence_item import XRayGeometrySequenceItem +from .x_ray_grid_sequence_item import XRayGridSequenceItem +from .xaxrf_frame_characteristics_sequence_item import ( + XAXRFFrameCharacteristicsSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._PositionerPositionSequence: List[PositionerPositionSequenceItem] = [] + self._CollimatorShapeSequence: List[CollimatorShapeSequenceItem] = [] + self._XAXRFFrameCharacteristicsSequence: List[XAXRFFrameCharacteristicsSequenceItem] = [] + self._FrameAcquisitionSequence: List[FrameAcquisitionSequenceItem] = [] + self._FieldOfViewSequence: List[FieldOfViewSequenceItem] = [] + self._FrameDetectorParametersSequence: List[FrameDetectorParametersSequenceItem] = [] + self._CalibrationSequence: List[CalibrationSequenceItem] = [] + self._IsocenterReferenceSystemSequence: List[IsocenterReferenceSystemSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._XRayGeometrySequence: List[XRayGeometrySequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._DetectorPositionSequence: List[DetectorPositionSequenceItem] = [] + self._XRayAcquisitionDoseSequence: List[XRayAcquisitionDoseSequenceItem] = [] + self._XRayGridSequence: List[XRayGridSequenceItem] = [] + self._XRayFilterSequence: List[XRayFilterSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._FramePixelDataPropertiesSequence: List[FramePixelDataPropertiesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def PositionerPositionSequence(self) -> Optional[List[PositionerPositionSequenceItem]]: + if "PositionerPositionSequence" in self._dataset: + if len(self._PositionerPositionSequence) == len(self._dataset.PositionerPositionSequence): + return self._PositionerPositionSequence + else: + return [PositionerPositionSequenceItem(x) for x in self._dataset.PositionerPositionSequence] + return None + + @PositionerPositionSequence.setter + def PositionerPositionSequence(self, value: Optional[List[PositionerPositionSequenceItem]]): + if value is None: + self._PositionerPositionSequence = [] + if "PositionerPositionSequence" in self._dataset: + del self._dataset.PositionerPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PositionerPositionSequenceItem) for item in value): + raise ValueError("PositionerPositionSequence must be a list of PositionerPositionSequenceItem objects") + else: + self._PositionerPositionSequence = value + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.clear() + self._dataset.PositionerPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PositionerPosition(self, item: PositionerPositionSequenceItem): + if not isinstance(item, PositionerPositionSequenceItem): + raise ValueError("Item must be an instance of PositionerPositionSequenceItem") + self._PositionerPositionSequence.append(item) + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.append(item.to_dataset()) + + @property + def CollimatorShapeSequence(self) -> Optional[List[CollimatorShapeSequenceItem]]: + if "CollimatorShapeSequence" in self._dataset: + if len(self._CollimatorShapeSequence) == len(self._dataset.CollimatorShapeSequence): + return self._CollimatorShapeSequence + else: + return [CollimatorShapeSequenceItem(x) for x in self._dataset.CollimatorShapeSequence] + return None + + @CollimatorShapeSequence.setter + def CollimatorShapeSequence(self, value: Optional[List[CollimatorShapeSequenceItem]]): + if value is None: + self._CollimatorShapeSequence = [] + if "CollimatorShapeSequence" in self._dataset: + del self._dataset.CollimatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CollimatorShapeSequenceItem) for item in value): + raise ValueError("CollimatorShapeSequence must be a list of CollimatorShapeSequenceItem objects") + else: + self._CollimatorShapeSequence = value + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.clear() + self._dataset.CollimatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CollimatorShape(self, item: CollimatorShapeSequenceItem): + if not isinstance(item, CollimatorShapeSequenceItem): + raise ValueError("Item must be an instance of CollimatorShapeSequenceItem") + self._CollimatorShapeSequence.append(item) + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.append(item.to_dataset()) + + @property + def XAXRFFrameCharacteristicsSequence(self) -> Optional[List[XAXRFFrameCharacteristicsSequenceItem]]: + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + if len(self._XAXRFFrameCharacteristicsSequence) == len(self._dataset.XAXRFFrameCharacteristicsSequence): + return self._XAXRFFrameCharacteristicsSequence + else: + return [XAXRFFrameCharacteristicsSequenceItem(x) for x in self._dataset.XAXRFFrameCharacteristicsSequence] + return None + + @XAXRFFrameCharacteristicsSequence.setter + def XAXRFFrameCharacteristicsSequence(self, value: Optional[List[XAXRFFrameCharacteristicsSequenceItem]]): + if value is None: + self._XAXRFFrameCharacteristicsSequence = [] + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + del self._dataset.XAXRFFrameCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAXRFFrameCharacteristicsSequenceItem) for item in value): + raise ValueError( + "XAXRFFrameCharacteristicsSequence must be a list of XAXRFFrameCharacteristicsSequenceItem objects" + ) + else: + self._XAXRFFrameCharacteristicsSequence = value + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.clear() + self._dataset.XAXRFFrameCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_XAXRFFrameCharacteristics(self, item: XAXRFFrameCharacteristicsSequenceItem): + if not isinstance(item, XAXRFFrameCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of XAXRFFrameCharacteristicsSequenceItem") + self._XAXRFFrameCharacteristicsSequence.append(item) + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.append(item.to_dataset()) + + @property + def FrameAcquisitionSequence(self) -> Optional[List[FrameAcquisitionSequenceItem]]: + if "FrameAcquisitionSequence" in self._dataset: + if len(self._FrameAcquisitionSequence) == len(self._dataset.FrameAcquisitionSequence): + return self._FrameAcquisitionSequence + else: + return [FrameAcquisitionSequenceItem(x) for x in self._dataset.FrameAcquisitionSequence] + return None + + @FrameAcquisitionSequence.setter + def FrameAcquisitionSequence(self, value: Optional[List[FrameAcquisitionSequenceItem]]): + if value is None: + self._FrameAcquisitionSequence = [] + if "FrameAcquisitionSequence" in self._dataset: + del self._dataset.FrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAcquisitionSequenceItem) for item in value): + raise ValueError("FrameAcquisitionSequence must be a list of FrameAcquisitionSequenceItem objects") + else: + self._FrameAcquisitionSequence = value + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.clear() + self._dataset.FrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameAcquisition(self, item: FrameAcquisitionSequenceItem): + if not isinstance(item, FrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of FrameAcquisitionSequenceItem") + self._FrameAcquisitionSequence.append(item) + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.append(item.to_dataset()) + + @property + def FieldOfViewSequence(self) -> Optional[List[FieldOfViewSequenceItem]]: + if "FieldOfViewSequence" in self._dataset: + if len(self._FieldOfViewSequence) == len(self._dataset.FieldOfViewSequence): + return self._FieldOfViewSequence + else: + return [FieldOfViewSequenceItem(x) for x in self._dataset.FieldOfViewSequence] + return None + + @FieldOfViewSequence.setter + def FieldOfViewSequence(self, value: Optional[List[FieldOfViewSequenceItem]]): + if value is None: + self._FieldOfViewSequence = [] + if "FieldOfViewSequence" in self._dataset: + del self._dataset.FieldOfViewSequence + elif not isinstance(value, list) or not all(isinstance(item, FieldOfViewSequenceItem) for item in value): + raise ValueError("FieldOfViewSequence must be a list of FieldOfViewSequenceItem objects") + else: + self._FieldOfViewSequence = value + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.clear() + self._dataset.FieldOfViewSequence.extend([item.to_dataset() for item in value]) + + def add_FieldOfView(self, item: FieldOfViewSequenceItem): + if not isinstance(item, FieldOfViewSequenceItem): + raise ValueError("Item must be an instance of FieldOfViewSequenceItem") + self._FieldOfViewSequence.append(item) + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.append(item.to_dataset()) + + @property + def FrameDetectorParametersSequence(self) -> Optional[List[FrameDetectorParametersSequenceItem]]: + if "FrameDetectorParametersSequence" in self._dataset: + if len(self._FrameDetectorParametersSequence) == len(self._dataset.FrameDetectorParametersSequence): + return self._FrameDetectorParametersSequence + else: + return [FrameDetectorParametersSequenceItem(x) for x in self._dataset.FrameDetectorParametersSequence] + return None + + @FrameDetectorParametersSequence.setter + def FrameDetectorParametersSequence(self, value: Optional[List[FrameDetectorParametersSequenceItem]]): + if value is None: + self._FrameDetectorParametersSequence = [] + if "FrameDetectorParametersSequence" in self._dataset: + del self._dataset.FrameDetectorParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDetectorParametersSequenceItem) for item in value): + raise ValueError("FrameDetectorParametersSequence must be a list of FrameDetectorParametersSequenceItem objects") + else: + self._FrameDetectorParametersSequence = value + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.clear() + self._dataset.FrameDetectorParametersSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDetectorParameters(self, item: FrameDetectorParametersSequenceItem): + if not isinstance(item, FrameDetectorParametersSequenceItem): + raise ValueError("Item must be an instance of FrameDetectorParametersSequenceItem") + self._FrameDetectorParametersSequence.append(item) + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.append(item.to_dataset()) + + @property + def CalibrationSequence(self) -> Optional[List[CalibrationSequenceItem]]: + if "CalibrationSequence" in self._dataset: + if len(self._CalibrationSequence) == len(self._dataset.CalibrationSequence): + return self._CalibrationSequence + else: + return [CalibrationSequenceItem(x) for x in self._dataset.CalibrationSequence] + return None + + @CalibrationSequence.setter + def CalibrationSequence(self, value: Optional[List[CalibrationSequenceItem]]): + if value is None: + self._CalibrationSequence = [] + if "CalibrationSequence" in self._dataset: + del self._dataset.CalibrationSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationSequenceItem) for item in value): + raise ValueError("CalibrationSequence must be a list of CalibrationSequenceItem objects") + else: + self._CalibrationSequence = value + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.clear() + self._dataset.CalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_Calibration(self, item: CalibrationSequenceItem): + if not isinstance(item, CalibrationSequenceItem): + raise ValueError("Item must be an instance of CalibrationSequenceItem") + self._CalibrationSequence.append(item) + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.append(item.to_dataset()) + + @property + def IsocenterReferenceSystemSequence(self) -> Optional[List[IsocenterReferenceSystemSequenceItem]]: + if "IsocenterReferenceSystemSequence" in self._dataset: + if len(self._IsocenterReferenceSystemSequence) == len(self._dataset.IsocenterReferenceSystemSequence): + return self._IsocenterReferenceSystemSequence + else: + return [IsocenterReferenceSystemSequenceItem(x) for x in self._dataset.IsocenterReferenceSystemSequence] + return None + + @IsocenterReferenceSystemSequence.setter + def IsocenterReferenceSystemSequence(self, value: Optional[List[IsocenterReferenceSystemSequenceItem]]): + if value is None: + self._IsocenterReferenceSystemSequence = [] + if "IsocenterReferenceSystemSequence" in self._dataset: + del self._dataset.IsocenterReferenceSystemSequence + elif not isinstance(value, list) or not all(isinstance(item, IsocenterReferenceSystemSequenceItem) for item in value): + raise ValueError("IsocenterReferenceSystemSequence must be a list of IsocenterReferenceSystemSequenceItem objects") + else: + self._IsocenterReferenceSystemSequence = value + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.clear() + self._dataset.IsocenterReferenceSystemSequence.extend([item.to_dataset() for item in value]) + + def add_IsocenterReferenceSystem(self, item: IsocenterReferenceSystemSequenceItem): + if not isinstance(item, IsocenterReferenceSystemSequenceItem): + raise ValueError("Item must be an instance of IsocenterReferenceSystemSequenceItem") + self._IsocenterReferenceSystemSequence.append(item) + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def XRayGeometrySequence(self) -> Optional[List[XRayGeometrySequenceItem]]: + if "XRayGeometrySequence" in self._dataset: + if len(self._XRayGeometrySequence) == len(self._dataset.XRayGeometrySequence): + return self._XRayGeometrySequence + else: + return [XRayGeometrySequenceItem(x) for x in self._dataset.XRayGeometrySequence] + return None + + @XRayGeometrySequence.setter + def XRayGeometrySequence(self, value: Optional[List[XRayGeometrySequenceItem]]): + if value is None: + self._XRayGeometrySequence = [] + if "XRayGeometrySequence" in self._dataset: + del self._dataset.XRayGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGeometrySequenceItem) for item in value): + raise ValueError("XRayGeometrySequence must be a list of XRayGeometrySequenceItem objects") + else: + self._XRayGeometrySequence = value + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.clear() + self._dataset.XRayGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_XRayGeometry(self, item: XRayGeometrySequenceItem): + if not isinstance(item, XRayGeometrySequenceItem): + raise ValueError("Item must be an instance of XRayGeometrySequenceItem") + self._XRayGeometrySequence.append(item) + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def DetectorPositionSequence(self) -> Optional[List[DetectorPositionSequenceItem]]: + if "DetectorPositionSequence" in self._dataset: + if len(self._DetectorPositionSequence) == len(self._dataset.DetectorPositionSequence): + return self._DetectorPositionSequence + else: + return [DetectorPositionSequenceItem(x) for x in self._dataset.DetectorPositionSequence] + return None + + @DetectorPositionSequence.setter + def DetectorPositionSequence(self, value: Optional[List[DetectorPositionSequenceItem]]): + if value is None: + self._DetectorPositionSequence = [] + if "DetectorPositionSequence" in self._dataset: + del self._dataset.DetectorPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, DetectorPositionSequenceItem) for item in value): + raise ValueError("DetectorPositionSequence must be a list of DetectorPositionSequenceItem objects") + else: + self._DetectorPositionSequence = value + if "DetectorPositionSequence" not in self._dataset: + self._dataset.DetectorPositionSequence = pydicom.Sequence() + self._dataset.DetectorPositionSequence.clear() + self._dataset.DetectorPositionSequence.extend([item.to_dataset() for item in value]) + + def add_DetectorPosition(self, item: DetectorPositionSequenceItem): + if not isinstance(item, DetectorPositionSequenceItem): + raise ValueError("Item must be an instance of DetectorPositionSequenceItem") + self._DetectorPositionSequence.append(item) + if "DetectorPositionSequence" not in self._dataset: + self._dataset.DetectorPositionSequence = pydicom.Sequence() + self._dataset.DetectorPositionSequence.append(item.to_dataset()) + + @property + def XRayAcquisitionDoseSequence(self) -> Optional[List[XRayAcquisitionDoseSequenceItem]]: + if "XRayAcquisitionDoseSequence" in self._dataset: + if len(self._XRayAcquisitionDoseSequence) == len(self._dataset.XRayAcquisitionDoseSequence): + return self._XRayAcquisitionDoseSequence + else: + return [XRayAcquisitionDoseSequenceItem(x) for x in self._dataset.XRayAcquisitionDoseSequence] + return None + + @XRayAcquisitionDoseSequence.setter + def XRayAcquisitionDoseSequence(self, value: Optional[List[XRayAcquisitionDoseSequenceItem]]): + if value is None: + self._XRayAcquisitionDoseSequence = [] + if "XRayAcquisitionDoseSequence" in self._dataset: + del self._dataset.XRayAcquisitionDoseSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayAcquisitionDoseSequenceItem) for item in value): + raise ValueError("XRayAcquisitionDoseSequence must be a list of XRayAcquisitionDoseSequenceItem objects") + else: + self._XRayAcquisitionDoseSequence = value + if "XRayAcquisitionDoseSequence" not in self._dataset: + self._dataset.XRayAcquisitionDoseSequence = pydicom.Sequence() + self._dataset.XRayAcquisitionDoseSequence.clear() + self._dataset.XRayAcquisitionDoseSequence.extend([item.to_dataset() for item in value]) + + def add_XRayAcquisitionDose(self, item: XRayAcquisitionDoseSequenceItem): + if not isinstance(item, XRayAcquisitionDoseSequenceItem): + raise ValueError("Item must be an instance of XRayAcquisitionDoseSequenceItem") + self._XRayAcquisitionDoseSequence.append(item) + if "XRayAcquisitionDoseSequence" not in self._dataset: + self._dataset.XRayAcquisitionDoseSequence = pydicom.Sequence() + self._dataset.XRayAcquisitionDoseSequence.append(item.to_dataset()) + + @property + def XRayGridSequence(self) -> Optional[List[XRayGridSequenceItem]]: + if "XRayGridSequence" in self._dataset: + if len(self._XRayGridSequence) == len(self._dataset.XRayGridSequence): + return self._XRayGridSequence + else: + return [XRayGridSequenceItem(x) for x in self._dataset.XRayGridSequence] + return None + + @XRayGridSequence.setter + def XRayGridSequence(self, value: Optional[List[XRayGridSequenceItem]]): + if value is None: + self._XRayGridSequence = [] + if "XRayGridSequence" in self._dataset: + del self._dataset.XRayGridSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGridSequenceItem) for item in value): + raise ValueError("XRayGridSequence must be a list of XRayGridSequenceItem objects") + else: + self._XRayGridSequence = value + if "XRayGridSequence" not in self._dataset: + self._dataset.XRayGridSequence = pydicom.Sequence() + self._dataset.XRayGridSequence.clear() + self._dataset.XRayGridSequence.extend([item.to_dataset() for item in value]) + + def add_XRayGrid(self, item: XRayGridSequenceItem): + if not isinstance(item, XRayGridSequenceItem): + raise ValueError("Item must be an instance of XRayGridSequenceItem") + self._XRayGridSequence.append(item) + if "XRayGridSequence" not in self._dataset: + self._dataset.XRayGridSequence = pydicom.Sequence() + self._dataset.XRayGridSequence.append(item.to_dataset()) + + @property + def XRayFilterSequence(self) -> Optional[List[XRayFilterSequenceItem]]: + if "XRayFilterSequence" in self._dataset: + if len(self._XRayFilterSequence) == len(self._dataset.XRayFilterSequence): + return self._XRayFilterSequence + else: + return [XRayFilterSequenceItem(x) for x in self._dataset.XRayFilterSequence] + return None + + @XRayFilterSequence.setter + def XRayFilterSequence(self, value: Optional[List[XRayFilterSequenceItem]]): + if value is None: + self._XRayFilterSequence = [] + if "XRayFilterSequence" in self._dataset: + del self._dataset.XRayFilterSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayFilterSequenceItem) for item in value): + raise ValueError("XRayFilterSequence must be a list of XRayFilterSequenceItem objects") + else: + self._XRayFilterSequence = value + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.clear() + self._dataset.XRayFilterSequence.extend([item.to_dataset() for item in value]) + + def add_XRayFilter(self, item: XRayFilterSequenceItem): + if not isinstance(item, XRayFilterSequenceItem): + raise ValueError("Item must be an instance of XRayFilterSequenceItem") + self._XRayFilterSequence.append(item) + if "XRayFilterSequence" not in self._dataset: + self._dataset.XRayFilterSequence = pydicom.Sequence() + self._dataset.XRayFilterSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def FramePixelDataPropertiesSequence(self) -> Optional[List[FramePixelDataPropertiesSequenceItem]]: + if "FramePixelDataPropertiesSequence" in self._dataset: + if len(self._FramePixelDataPropertiesSequence) == len(self._dataset.FramePixelDataPropertiesSequence): + return self._FramePixelDataPropertiesSequence + else: + return [FramePixelDataPropertiesSequenceItem(x) for x in self._dataset.FramePixelDataPropertiesSequence] + return None + + @FramePixelDataPropertiesSequence.setter + def FramePixelDataPropertiesSequence(self, value: Optional[List[FramePixelDataPropertiesSequenceItem]]): + if value is None: + self._FramePixelDataPropertiesSequence = [] + if "FramePixelDataPropertiesSequence" in self._dataset: + del self._dataset.FramePixelDataPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelDataPropertiesSequenceItem) for item in value): + raise ValueError("FramePixelDataPropertiesSequence must be a list of FramePixelDataPropertiesSequenceItem objects") + else: + self._FramePixelDataPropertiesSequence = value + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.clear() + self._dataset.FramePixelDataPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelDataProperties(self, item: FramePixelDataPropertiesSequenceItem): + if not isinstance(item, FramePixelDataPropertiesSequenceItem): + raise ValueError("Item must be an instance of FramePixelDataPropertiesSequenceItem") + self._FramePixelDataPropertiesSequence.append(item) + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_18.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_18.py new file mode 100644 index 0000000..4eadb13 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_18.py @@ -0,0 +1,978 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .calibration_sequence_item import CalibrationSequenceItem +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .collimator_shape_sequence_item import CollimatorShapeSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .exposure_control_sensing_regions_sequence_item import ( + ExposureControlSensingRegionsSequenceItem, +) +from .field_of_view_sequence_item import FieldOfViewSequenceItem +from .frame_acquisition_sequence_item import FrameAcquisitionSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_detector_parameters_sequence_item import FrameDetectorParametersSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_pixel_data_properties_sequence_item import ( + FramePixelDataPropertiesSequenceItem, +) +from .frame_pixel_shift_sequence_item import FramePixelShiftSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .isocenter_reference_system_sequence_item import ( + IsocenterReferenceSystemSequenceItem, +) +from .object_thickness_sequence_item import ObjectThicknessSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .pixel_intensity_relationship_lut_sequence_item import ( + PixelIntensityRelationshipLUTSequenceItem, +) +from .positioner_position_sequence_item import PositionerPositionSequenceItem +from .projection_pixel_calibration_sequence_item import ( + ProjectionPixelCalibrationSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .table_position_sequence_item import TablePositionSequenceItem +from .x_ray_geometry_sequence_item import XRayGeometrySequenceItem +from .xaxrf_frame_characteristics_sequence_item import ( + XAXRFFrameCharacteristicsSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._ProjectionPixelCalibrationSequence: List[ProjectionPixelCalibrationSequenceItem] = [] + self._PositionerPositionSequence: List[PositionerPositionSequenceItem] = [] + self._TablePositionSequence: List[TablePositionSequenceItem] = [] + self._CollimatorShapeSequence: List[CollimatorShapeSequenceItem] = [] + self._XAXRFFrameCharacteristicsSequence: List[XAXRFFrameCharacteristicsSequenceItem] = [] + self._FrameAcquisitionSequence: List[FrameAcquisitionSequenceItem] = [] + self._FieldOfViewSequence: List[FieldOfViewSequenceItem] = [] + self._ExposureControlSensingRegionsSequence: List[ExposureControlSensingRegionsSequenceItem] = [] + self._FrameDetectorParametersSequence: List[FrameDetectorParametersSequenceItem] = [] + self._CalibrationSequence: List[CalibrationSequenceItem] = [] + self._ObjectThicknessSequence: List[ObjectThicknessSequenceItem] = [] + self._IsocenterReferenceSystemSequence: List[IsocenterReferenceSystemSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._XRayGeometrySequence: List[XRayGeometrySequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._FramePixelShiftSequence: List[FramePixelShiftSequenceItem] = [] + self._PixelIntensityRelationshipLUTSequence: List[PixelIntensityRelationshipLUTSequenceItem] = [] + self._FramePixelDataPropertiesSequence: List[FramePixelDataPropertiesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def ProjectionPixelCalibrationSequence(self) -> Optional[List[ProjectionPixelCalibrationSequenceItem]]: + if "ProjectionPixelCalibrationSequence" in self._dataset: + if len(self._ProjectionPixelCalibrationSequence) == len(self._dataset.ProjectionPixelCalibrationSequence): + return self._ProjectionPixelCalibrationSequence + else: + return [ProjectionPixelCalibrationSequenceItem(x) for x in self._dataset.ProjectionPixelCalibrationSequence] + return None + + @ProjectionPixelCalibrationSequence.setter + def ProjectionPixelCalibrationSequence(self, value: Optional[List[ProjectionPixelCalibrationSequenceItem]]): + if value is None: + self._ProjectionPixelCalibrationSequence = [] + if "ProjectionPixelCalibrationSequence" in self._dataset: + del self._dataset.ProjectionPixelCalibrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ProjectionPixelCalibrationSequenceItem) for item in value + ): + raise ValueError( + "ProjectionPixelCalibrationSequence must be a list of ProjectionPixelCalibrationSequenceItem objects" + ) + else: + self._ProjectionPixelCalibrationSequence = value + if "ProjectionPixelCalibrationSequence" not in self._dataset: + self._dataset.ProjectionPixelCalibrationSequence = pydicom.Sequence() + self._dataset.ProjectionPixelCalibrationSequence.clear() + self._dataset.ProjectionPixelCalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_ProjectionPixelCalibration(self, item: ProjectionPixelCalibrationSequenceItem): + if not isinstance(item, ProjectionPixelCalibrationSequenceItem): + raise ValueError("Item must be an instance of ProjectionPixelCalibrationSequenceItem") + self._ProjectionPixelCalibrationSequence.append(item) + if "ProjectionPixelCalibrationSequence" not in self._dataset: + self._dataset.ProjectionPixelCalibrationSequence = pydicom.Sequence() + self._dataset.ProjectionPixelCalibrationSequence.append(item.to_dataset()) + + @property + def PositionerPositionSequence(self) -> Optional[List[PositionerPositionSequenceItem]]: + if "PositionerPositionSequence" in self._dataset: + if len(self._PositionerPositionSequence) == len(self._dataset.PositionerPositionSequence): + return self._PositionerPositionSequence + else: + return [PositionerPositionSequenceItem(x) for x in self._dataset.PositionerPositionSequence] + return None + + @PositionerPositionSequence.setter + def PositionerPositionSequence(self, value: Optional[List[PositionerPositionSequenceItem]]): + if value is None: + self._PositionerPositionSequence = [] + if "PositionerPositionSequence" in self._dataset: + del self._dataset.PositionerPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PositionerPositionSequenceItem) for item in value): + raise ValueError("PositionerPositionSequence must be a list of PositionerPositionSequenceItem objects") + else: + self._PositionerPositionSequence = value + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.clear() + self._dataset.PositionerPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PositionerPosition(self, item: PositionerPositionSequenceItem): + if not isinstance(item, PositionerPositionSequenceItem): + raise ValueError("Item must be an instance of PositionerPositionSequenceItem") + self._PositionerPositionSequence.append(item) + if "PositionerPositionSequence" not in self._dataset: + self._dataset.PositionerPositionSequence = pydicom.Sequence() + self._dataset.PositionerPositionSequence.append(item.to_dataset()) + + @property + def TablePositionSequence(self) -> Optional[List[TablePositionSequenceItem]]: + if "TablePositionSequence" in self._dataset: + if len(self._TablePositionSequence) == len(self._dataset.TablePositionSequence): + return self._TablePositionSequence + else: + return [TablePositionSequenceItem(x) for x in self._dataset.TablePositionSequence] + return None + + @TablePositionSequence.setter + def TablePositionSequence(self, value: Optional[List[TablePositionSequenceItem]]): + if value is None: + self._TablePositionSequence = [] + if "TablePositionSequence" in self._dataset: + del self._dataset.TablePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TablePositionSequenceItem) for item in value): + raise ValueError("TablePositionSequence must be a list of TablePositionSequenceItem objects") + else: + self._TablePositionSequence = value + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.clear() + self._dataset.TablePositionSequence.extend([item.to_dataset() for item in value]) + + def add_TablePosition(self, item: TablePositionSequenceItem): + if not isinstance(item, TablePositionSequenceItem): + raise ValueError("Item must be an instance of TablePositionSequenceItem") + self._TablePositionSequence.append(item) + if "TablePositionSequence" not in self._dataset: + self._dataset.TablePositionSequence = pydicom.Sequence() + self._dataset.TablePositionSequence.append(item.to_dataset()) + + @property + def CollimatorShapeSequence(self) -> Optional[List[CollimatorShapeSequenceItem]]: + if "CollimatorShapeSequence" in self._dataset: + if len(self._CollimatorShapeSequence) == len(self._dataset.CollimatorShapeSequence): + return self._CollimatorShapeSequence + else: + return [CollimatorShapeSequenceItem(x) for x in self._dataset.CollimatorShapeSequence] + return None + + @CollimatorShapeSequence.setter + def CollimatorShapeSequence(self, value: Optional[List[CollimatorShapeSequenceItem]]): + if value is None: + self._CollimatorShapeSequence = [] + if "CollimatorShapeSequence" in self._dataset: + del self._dataset.CollimatorShapeSequence + elif not isinstance(value, list) or not all(isinstance(item, CollimatorShapeSequenceItem) for item in value): + raise ValueError("CollimatorShapeSequence must be a list of CollimatorShapeSequenceItem objects") + else: + self._CollimatorShapeSequence = value + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.clear() + self._dataset.CollimatorShapeSequence.extend([item.to_dataset() for item in value]) + + def add_CollimatorShape(self, item: CollimatorShapeSequenceItem): + if not isinstance(item, CollimatorShapeSequenceItem): + raise ValueError("Item must be an instance of CollimatorShapeSequenceItem") + self._CollimatorShapeSequence.append(item) + if "CollimatorShapeSequence" not in self._dataset: + self._dataset.CollimatorShapeSequence = pydicom.Sequence() + self._dataset.CollimatorShapeSequence.append(item.to_dataset()) + + @property + def XAXRFFrameCharacteristicsSequence(self) -> Optional[List[XAXRFFrameCharacteristicsSequenceItem]]: + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + if len(self._XAXRFFrameCharacteristicsSequence) == len(self._dataset.XAXRFFrameCharacteristicsSequence): + return self._XAXRFFrameCharacteristicsSequence + else: + return [XAXRFFrameCharacteristicsSequenceItem(x) for x in self._dataset.XAXRFFrameCharacteristicsSequence] + return None + + @XAXRFFrameCharacteristicsSequence.setter + def XAXRFFrameCharacteristicsSequence(self, value: Optional[List[XAXRFFrameCharacteristicsSequenceItem]]): + if value is None: + self._XAXRFFrameCharacteristicsSequence = [] + if "XAXRFFrameCharacteristicsSequence" in self._dataset: + del self._dataset.XAXRFFrameCharacteristicsSequence + elif not isinstance(value, list) or not all(isinstance(item, XAXRFFrameCharacteristicsSequenceItem) for item in value): + raise ValueError( + "XAXRFFrameCharacteristicsSequence must be a list of XAXRFFrameCharacteristicsSequenceItem objects" + ) + else: + self._XAXRFFrameCharacteristicsSequence = value + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.clear() + self._dataset.XAXRFFrameCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_XAXRFFrameCharacteristics(self, item: XAXRFFrameCharacteristicsSequenceItem): + if not isinstance(item, XAXRFFrameCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of XAXRFFrameCharacteristicsSequenceItem") + self._XAXRFFrameCharacteristicsSequence.append(item) + if "XAXRFFrameCharacteristicsSequence" not in self._dataset: + self._dataset.XAXRFFrameCharacteristicsSequence = pydicom.Sequence() + self._dataset.XAXRFFrameCharacteristicsSequence.append(item.to_dataset()) + + @property + def FrameAcquisitionSequence(self) -> Optional[List[FrameAcquisitionSequenceItem]]: + if "FrameAcquisitionSequence" in self._dataset: + if len(self._FrameAcquisitionSequence) == len(self._dataset.FrameAcquisitionSequence): + return self._FrameAcquisitionSequence + else: + return [FrameAcquisitionSequenceItem(x) for x in self._dataset.FrameAcquisitionSequence] + return None + + @FrameAcquisitionSequence.setter + def FrameAcquisitionSequence(self, value: Optional[List[FrameAcquisitionSequenceItem]]): + if value is None: + self._FrameAcquisitionSequence = [] + if "FrameAcquisitionSequence" in self._dataset: + del self._dataset.FrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAcquisitionSequenceItem) for item in value): + raise ValueError("FrameAcquisitionSequence must be a list of FrameAcquisitionSequenceItem objects") + else: + self._FrameAcquisitionSequence = value + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.clear() + self._dataset.FrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameAcquisition(self, item: FrameAcquisitionSequenceItem): + if not isinstance(item, FrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of FrameAcquisitionSequenceItem") + self._FrameAcquisitionSequence.append(item) + if "FrameAcquisitionSequence" not in self._dataset: + self._dataset.FrameAcquisitionSequence = pydicom.Sequence() + self._dataset.FrameAcquisitionSequence.append(item.to_dataset()) + + @property + def FieldOfViewSequence(self) -> Optional[List[FieldOfViewSequenceItem]]: + if "FieldOfViewSequence" in self._dataset: + if len(self._FieldOfViewSequence) == len(self._dataset.FieldOfViewSequence): + return self._FieldOfViewSequence + else: + return [FieldOfViewSequenceItem(x) for x in self._dataset.FieldOfViewSequence] + return None + + @FieldOfViewSequence.setter + def FieldOfViewSequence(self, value: Optional[List[FieldOfViewSequenceItem]]): + if value is None: + self._FieldOfViewSequence = [] + if "FieldOfViewSequence" in self._dataset: + del self._dataset.FieldOfViewSequence + elif not isinstance(value, list) or not all(isinstance(item, FieldOfViewSequenceItem) for item in value): + raise ValueError("FieldOfViewSequence must be a list of FieldOfViewSequenceItem objects") + else: + self._FieldOfViewSequence = value + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.clear() + self._dataset.FieldOfViewSequence.extend([item.to_dataset() for item in value]) + + def add_FieldOfView(self, item: FieldOfViewSequenceItem): + if not isinstance(item, FieldOfViewSequenceItem): + raise ValueError("Item must be an instance of FieldOfViewSequenceItem") + self._FieldOfViewSequence.append(item) + if "FieldOfViewSequence" not in self._dataset: + self._dataset.FieldOfViewSequence = pydicom.Sequence() + self._dataset.FieldOfViewSequence.append(item.to_dataset()) + + @property + def ExposureControlSensingRegionsSequence(self) -> Optional[List[ExposureControlSensingRegionsSequenceItem]]: + if "ExposureControlSensingRegionsSequence" in self._dataset: + if len(self._ExposureControlSensingRegionsSequence) == len(self._dataset.ExposureControlSensingRegionsSequence): + return self._ExposureControlSensingRegionsSequence + else: + return [ + ExposureControlSensingRegionsSequenceItem(x) for x in self._dataset.ExposureControlSensingRegionsSequence + ] + return None + + @ExposureControlSensingRegionsSequence.setter + def ExposureControlSensingRegionsSequence(self, value: Optional[List[ExposureControlSensingRegionsSequenceItem]]): + if value is None: + self._ExposureControlSensingRegionsSequence = [] + if "ExposureControlSensingRegionsSequence" in self._dataset: + del self._dataset.ExposureControlSensingRegionsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ExposureControlSensingRegionsSequenceItem) for item in value + ): + raise ValueError( + "ExposureControlSensingRegionsSequence must be a list of ExposureControlSensingRegionsSequenceItem objects" + ) + else: + self._ExposureControlSensingRegionsSequence = value + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.clear() + self._dataset.ExposureControlSensingRegionsSequence.extend([item.to_dataset() for item in value]) + + def add_ExposureControlSensingRegions(self, item: ExposureControlSensingRegionsSequenceItem): + if not isinstance(item, ExposureControlSensingRegionsSequenceItem): + raise ValueError("Item must be an instance of ExposureControlSensingRegionsSequenceItem") + self._ExposureControlSensingRegionsSequence.append(item) + if "ExposureControlSensingRegionsSequence" not in self._dataset: + self._dataset.ExposureControlSensingRegionsSequence = pydicom.Sequence() + self._dataset.ExposureControlSensingRegionsSequence.append(item.to_dataset()) + + @property + def FrameDetectorParametersSequence(self) -> Optional[List[FrameDetectorParametersSequenceItem]]: + if "FrameDetectorParametersSequence" in self._dataset: + if len(self._FrameDetectorParametersSequence) == len(self._dataset.FrameDetectorParametersSequence): + return self._FrameDetectorParametersSequence + else: + return [FrameDetectorParametersSequenceItem(x) for x in self._dataset.FrameDetectorParametersSequence] + return None + + @FrameDetectorParametersSequence.setter + def FrameDetectorParametersSequence(self, value: Optional[List[FrameDetectorParametersSequenceItem]]): + if value is None: + self._FrameDetectorParametersSequence = [] + if "FrameDetectorParametersSequence" in self._dataset: + del self._dataset.FrameDetectorParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDetectorParametersSequenceItem) for item in value): + raise ValueError("FrameDetectorParametersSequence must be a list of FrameDetectorParametersSequenceItem objects") + else: + self._FrameDetectorParametersSequence = value + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.clear() + self._dataset.FrameDetectorParametersSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDetectorParameters(self, item: FrameDetectorParametersSequenceItem): + if not isinstance(item, FrameDetectorParametersSequenceItem): + raise ValueError("Item must be an instance of FrameDetectorParametersSequenceItem") + self._FrameDetectorParametersSequence.append(item) + if "FrameDetectorParametersSequence" not in self._dataset: + self._dataset.FrameDetectorParametersSequence = pydicom.Sequence() + self._dataset.FrameDetectorParametersSequence.append(item.to_dataset()) + + @property + def CalibrationSequence(self) -> Optional[List[CalibrationSequenceItem]]: + if "CalibrationSequence" in self._dataset: + if len(self._CalibrationSequence) == len(self._dataset.CalibrationSequence): + return self._CalibrationSequence + else: + return [CalibrationSequenceItem(x) for x in self._dataset.CalibrationSequence] + return None + + @CalibrationSequence.setter + def CalibrationSequence(self, value: Optional[List[CalibrationSequenceItem]]): + if value is None: + self._CalibrationSequence = [] + if "CalibrationSequence" in self._dataset: + del self._dataset.CalibrationSequence + elif not isinstance(value, list) or not all(isinstance(item, CalibrationSequenceItem) for item in value): + raise ValueError("CalibrationSequence must be a list of CalibrationSequenceItem objects") + else: + self._CalibrationSequence = value + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.clear() + self._dataset.CalibrationSequence.extend([item.to_dataset() for item in value]) + + def add_Calibration(self, item: CalibrationSequenceItem): + if not isinstance(item, CalibrationSequenceItem): + raise ValueError("Item must be an instance of CalibrationSequenceItem") + self._CalibrationSequence.append(item) + if "CalibrationSequence" not in self._dataset: + self._dataset.CalibrationSequence = pydicom.Sequence() + self._dataset.CalibrationSequence.append(item.to_dataset()) + + @property + def ObjectThicknessSequence(self) -> Optional[List[ObjectThicknessSequenceItem]]: + if "ObjectThicknessSequence" in self._dataset: + if len(self._ObjectThicknessSequence) == len(self._dataset.ObjectThicknessSequence): + return self._ObjectThicknessSequence + else: + return [ObjectThicknessSequenceItem(x) for x in self._dataset.ObjectThicknessSequence] + return None + + @ObjectThicknessSequence.setter + def ObjectThicknessSequence(self, value: Optional[List[ObjectThicknessSequenceItem]]): + if value is None: + self._ObjectThicknessSequence = [] + if "ObjectThicknessSequence" in self._dataset: + del self._dataset.ObjectThicknessSequence + elif not isinstance(value, list) or not all(isinstance(item, ObjectThicknessSequenceItem) for item in value): + raise ValueError("ObjectThicknessSequence must be a list of ObjectThicknessSequenceItem objects") + else: + self._ObjectThicknessSequence = value + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.clear() + self._dataset.ObjectThicknessSequence.extend([item.to_dataset() for item in value]) + + def add_ObjectThickness(self, item: ObjectThicknessSequenceItem): + if not isinstance(item, ObjectThicknessSequenceItem): + raise ValueError("Item must be an instance of ObjectThicknessSequenceItem") + self._ObjectThicknessSequence.append(item) + if "ObjectThicknessSequence" not in self._dataset: + self._dataset.ObjectThicknessSequence = pydicom.Sequence() + self._dataset.ObjectThicknessSequence.append(item.to_dataset()) + + @property + def IsocenterReferenceSystemSequence(self) -> Optional[List[IsocenterReferenceSystemSequenceItem]]: + if "IsocenterReferenceSystemSequence" in self._dataset: + if len(self._IsocenterReferenceSystemSequence) == len(self._dataset.IsocenterReferenceSystemSequence): + return self._IsocenterReferenceSystemSequence + else: + return [IsocenterReferenceSystemSequenceItem(x) for x in self._dataset.IsocenterReferenceSystemSequence] + return None + + @IsocenterReferenceSystemSequence.setter + def IsocenterReferenceSystemSequence(self, value: Optional[List[IsocenterReferenceSystemSequenceItem]]): + if value is None: + self._IsocenterReferenceSystemSequence = [] + if "IsocenterReferenceSystemSequence" in self._dataset: + del self._dataset.IsocenterReferenceSystemSequence + elif not isinstance(value, list) or not all(isinstance(item, IsocenterReferenceSystemSequenceItem) for item in value): + raise ValueError("IsocenterReferenceSystemSequence must be a list of IsocenterReferenceSystemSequenceItem objects") + else: + self._IsocenterReferenceSystemSequence = value + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.clear() + self._dataset.IsocenterReferenceSystemSequence.extend([item.to_dataset() for item in value]) + + def add_IsocenterReferenceSystem(self, item: IsocenterReferenceSystemSequenceItem): + if not isinstance(item, IsocenterReferenceSystemSequenceItem): + raise ValueError("Item must be an instance of IsocenterReferenceSystemSequenceItem") + self._IsocenterReferenceSystemSequence.append(item) + if "IsocenterReferenceSystemSequence" not in self._dataset: + self._dataset.IsocenterReferenceSystemSequence = pydicom.Sequence() + self._dataset.IsocenterReferenceSystemSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def XRayGeometrySequence(self) -> Optional[List[XRayGeometrySequenceItem]]: + if "XRayGeometrySequence" in self._dataset: + if len(self._XRayGeometrySequence) == len(self._dataset.XRayGeometrySequence): + return self._XRayGeometrySequence + else: + return [XRayGeometrySequenceItem(x) for x in self._dataset.XRayGeometrySequence] + return None + + @XRayGeometrySequence.setter + def XRayGeometrySequence(self, value: Optional[List[XRayGeometrySequenceItem]]): + if value is None: + self._XRayGeometrySequence = [] + if "XRayGeometrySequence" in self._dataset: + del self._dataset.XRayGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, XRayGeometrySequenceItem) for item in value): + raise ValueError("XRayGeometrySequence must be a list of XRayGeometrySequenceItem objects") + else: + self._XRayGeometrySequence = value + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.clear() + self._dataset.XRayGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_XRayGeometry(self, item: XRayGeometrySequenceItem): + if not isinstance(item, XRayGeometrySequenceItem): + raise ValueError("Item must be an instance of XRayGeometrySequenceItem") + self._XRayGeometrySequence.append(item) + if "XRayGeometrySequence" not in self._dataset: + self._dataset.XRayGeometrySequence = pydicom.Sequence() + self._dataset.XRayGeometrySequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def FramePixelShiftSequence(self) -> Optional[List[FramePixelShiftSequenceItem]]: + if "FramePixelShiftSequence" in self._dataset: + if len(self._FramePixelShiftSequence) == len(self._dataset.FramePixelShiftSequence): + return self._FramePixelShiftSequence + else: + return [FramePixelShiftSequenceItem(x) for x in self._dataset.FramePixelShiftSequence] + return None + + @FramePixelShiftSequence.setter + def FramePixelShiftSequence(self, value: Optional[List[FramePixelShiftSequenceItem]]): + if value is None: + self._FramePixelShiftSequence = [] + if "FramePixelShiftSequence" in self._dataset: + del self._dataset.FramePixelShiftSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelShiftSequenceItem) for item in value): + raise ValueError("FramePixelShiftSequence must be a list of FramePixelShiftSequenceItem objects") + else: + self._FramePixelShiftSequence = value + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.clear() + self._dataset.FramePixelShiftSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelShift(self, item: FramePixelShiftSequenceItem): + if not isinstance(item, FramePixelShiftSequenceItem): + raise ValueError("Item must be an instance of FramePixelShiftSequenceItem") + self._FramePixelShiftSequence.append(item) + if "FramePixelShiftSequence" not in self._dataset: + self._dataset.FramePixelShiftSequence = pydicom.Sequence() + self._dataset.FramePixelShiftSequence.append(item.to_dataset()) + + @property + def PixelIntensityRelationshipLUTSequence(self) -> Optional[List[PixelIntensityRelationshipLUTSequenceItem]]: + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + if len(self._PixelIntensityRelationshipLUTSequence) == len(self._dataset.PixelIntensityRelationshipLUTSequence): + return self._PixelIntensityRelationshipLUTSequence + else: + return [ + PixelIntensityRelationshipLUTSequenceItem(x) for x in self._dataset.PixelIntensityRelationshipLUTSequence + ] + return None + + @PixelIntensityRelationshipLUTSequence.setter + def PixelIntensityRelationshipLUTSequence(self, value: Optional[List[PixelIntensityRelationshipLUTSequenceItem]]): + if value is None: + self._PixelIntensityRelationshipLUTSequence = [] + if "PixelIntensityRelationshipLUTSequence" in self._dataset: + del self._dataset.PixelIntensityRelationshipLUTSequence + elif not isinstance(value, list) or not all( + isinstance(item, PixelIntensityRelationshipLUTSequenceItem) for item in value + ): + raise ValueError( + "PixelIntensityRelationshipLUTSequence must be a list of PixelIntensityRelationshipLUTSequenceItem objects" + ) + else: + self._PixelIntensityRelationshipLUTSequence = value + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.clear() + self._dataset.PixelIntensityRelationshipLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PixelIntensityRelationshipLUT(self, item: PixelIntensityRelationshipLUTSequenceItem): + if not isinstance(item, PixelIntensityRelationshipLUTSequenceItem): + raise ValueError("Item must be an instance of PixelIntensityRelationshipLUTSequenceItem") + self._PixelIntensityRelationshipLUTSequence.append(item) + if "PixelIntensityRelationshipLUTSequence" not in self._dataset: + self._dataset.PixelIntensityRelationshipLUTSequence = pydicom.Sequence() + self._dataset.PixelIntensityRelationshipLUTSequence.append(item.to_dataset()) + + @property + def FramePixelDataPropertiesSequence(self) -> Optional[List[FramePixelDataPropertiesSequenceItem]]: + if "FramePixelDataPropertiesSequence" in self._dataset: + if len(self._FramePixelDataPropertiesSequence) == len(self._dataset.FramePixelDataPropertiesSequence): + return self._FramePixelDataPropertiesSequence + else: + return [FramePixelDataPropertiesSequenceItem(x) for x in self._dataset.FramePixelDataPropertiesSequence] + return None + + @FramePixelDataPropertiesSequence.setter + def FramePixelDataPropertiesSequence(self, value: Optional[List[FramePixelDataPropertiesSequenceItem]]): + if value is None: + self._FramePixelDataPropertiesSequence = [] + if "FramePixelDataPropertiesSequence" in self._dataset: + del self._dataset.FramePixelDataPropertiesSequence + elif not isinstance(value, list) or not all(isinstance(item, FramePixelDataPropertiesSequenceItem) for item in value): + raise ValueError("FramePixelDataPropertiesSequence must be a list of FramePixelDataPropertiesSequenceItem objects") + else: + self._FramePixelDataPropertiesSequence = value + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.clear() + self._dataset.FramePixelDataPropertiesSequence.extend([item.to_dataset() for item in value]) + + def add_FramePixelDataProperties(self, item: FramePixelDataPropertiesSequenceItem): + if not isinstance(item, FramePixelDataPropertiesSequenceItem): + raise ValueError("Item must be an instance of FramePixelDataPropertiesSequenceItem") + self._FramePixelDataPropertiesSequence.append(item) + if "FramePixelDataPropertiesSequence" not in self._dataset: + self._dataset.FramePixelDataPropertiesSequence = pydicom.Sequence() + self._dataset.FramePixelDataPropertiesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_19.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_19.py new file mode 100644 index 0000000..9b7f0fb --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_19.py @@ -0,0 +1,668 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .mr_image_frame_type_sequence_item import MRImageFrameTypeSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._MRImageFrameTypeSequence: List[MRImageFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def MRImageFrameTypeSequence(self) -> Optional[List[MRImageFrameTypeSequenceItem]]: + if "MRImageFrameTypeSequence" in self._dataset: + if len(self._MRImageFrameTypeSequence) == len(self._dataset.MRImageFrameTypeSequence): + return self._MRImageFrameTypeSequence + else: + return [MRImageFrameTypeSequenceItem(x) for x in self._dataset.MRImageFrameTypeSequence] + return None + + @MRImageFrameTypeSequence.setter + def MRImageFrameTypeSequence(self, value: Optional[List[MRImageFrameTypeSequenceItem]]): + if value is None: + self._MRImageFrameTypeSequence = [] + if "MRImageFrameTypeSequence" in self._dataset: + del self._dataset.MRImageFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, MRImageFrameTypeSequenceItem) for item in value): + raise ValueError("MRImageFrameTypeSequence must be a list of MRImageFrameTypeSequenceItem objects") + else: + self._MRImageFrameTypeSequence = value + if "MRImageFrameTypeSequence" not in self._dataset: + self._dataset.MRImageFrameTypeSequence = pydicom.Sequence() + self._dataset.MRImageFrameTypeSequence.clear() + self._dataset.MRImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_MRImageFrameType(self, item: MRImageFrameTypeSequenceItem): + if not isinstance(item, MRImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of MRImageFrameTypeSequenceItem") + self._MRImageFrameTypeSequence.append(item) + if "MRImageFrameTypeSequence" not in self._dataset: + self._dataset.MRImageFrameTypeSequence = pydicom.Sequence() + self._dataset.MRImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_21.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_21.py new file mode 100644 index 0000000..e330b79 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_21.py @@ -0,0 +1,954 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .ct_acquisition_details_sequence_item import CTAcquisitionDetailsSequenceItem +from .ct_acquisition_type_sequence_item import CTAcquisitionTypeSequenceItem +from .ct_additional_x_ray_source_sequence_item import CTAdditionalXRaySourceSequenceItem +from .ct_exposure_sequence_item import CTExposureSequenceItem +from .ct_geometry_sequence_item import CTGeometrySequenceItem +from .ct_image_frame_type_sequence_item import CTImageFrameTypeSequenceItem +from .ct_position_sequence_item import CTPositionSequenceItem +from .ct_reconstruction_sequence_item import CTReconstructionSequenceItem +from .ct_table_dynamics_sequence_item import CTTableDynamicsSequenceItem +from .ctx_ray_details_sequence_item import CTXRayDetailsSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .multienergy_ct_characteristics_sequence_item import ( + MultienergyCTCharacteristicsSequenceItem, +) +from .multienergy_ct_processing_sequence_item import MultienergyCTProcessingSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._CTAcquisitionTypeSequence: List[CTAcquisitionTypeSequenceItem] = [] + self._CTAcquisitionDetailsSequence: List[CTAcquisitionDetailsSequenceItem] = [] + self._CTTableDynamicsSequence: List[CTTableDynamicsSequenceItem] = [] + self._CTGeometrySequence: List[CTGeometrySequenceItem] = [] + self._CTReconstructionSequence: List[CTReconstructionSequenceItem] = [] + self._CTExposureSequence: List[CTExposureSequenceItem] = [] + self._CTXRayDetailsSequence: List[CTXRayDetailsSequenceItem] = [] + self._CTPositionSequence: List[CTPositionSequenceItem] = [] + self._CTImageFrameTypeSequence: List[CTImageFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._CTAdditionalXRaySourceSequence: List[CTAdditionalXRaySourceSequenceItem] = [] + self._MultienergyCTProcessingSequence: List[MultienergyCTProcessingSequenceItem] = [] + self._MultienergyCTCharacteristicsSequence: List[MultienergyCTCharacteristicsSequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def CTAcquisitionTypeSequence(self) -> Optional[List[CTAcquisitionTypeSequenceItem]]: + if "CTAcquisitionTypeSequence" in self._dataset: + if len(self._CTAcquisitionTypeSequence) == len(self._dataset.CTAcquisitionTypeSequence): + return self._CTAcquisitionTypeSequence + else: + return [CTAcquisitionTypeSequenceItem(x) for x in self._dataset.CTAcquisitionTypeSequence] + return None + + @CTAcquisitionTypeSequence.setter + def CTAcquisitionTypeSequence(self, value: Optional[List[CTAcquisitionTypeSequenceItem]]): + if value is None: + self._CTAcquisitionTypeSequence = [] + if "CTAcquisitionTypeSequence" in self._dataset: + del self._dataset.CTAcquisitionTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAcquisitionTypeSequenceItem) for item in value): + raise ValueError("CTAcquisitionTypeSequence must be a list of CTAcquisitionTypeSequenceItem objects") + else: + self._CTAcquisitionTypeSequence = value + if "CTAcquisitionTypeSequence" not in self._dataset: + self._dataset.CTAcquisitionTypeSequence = pydicom.Sequence() + self._dataset.CTAcquisitionTypeSequence.clear() + self._dataset.CTAcquisitionTypeSequence.extend([item.to_dataset() for item in value]) + + def add_CTAcquisitionType(self, item: CTAcquisitionTypeSequenceItem): + if not isinstance(item, CTAcquisitionTypeSequenceItem): + raise ValueError("Item must be an instance of CTAcquisitionTypeSequenceItem") + self._CTAcquisitionTypeSequence.append(item) + if "CTAcquisitionTypeSequence" not in self._dataset: + self._dataset.CTAcquisitionTypeSequence = pydicom.Sequence() + self._dataset.CTAcquisitionTypeSequence.append(item.to_dataset()) + + @property + def CTAcquisitionDetailsSequence(self) -> Optional[List[CTAcquisitionDetailsSequenceItem]]: + if "CTAcquisitionDetailsSequence" in self._dataset: + if len(self._CTAcquisitionDetailsSequence) == len(self._dataset.CTAcquisitionDetailsSequence): + return self._CTAcquisitionDetailsSequence + else: + return [CTAcquisitionDetailsSequenceItem(x) for x in self._dataset.CTAcquisitionDetailsSequence] + return None + + @CTAcquisitionDetailsSequence.setter + def CTAcquisitionDetailsSequence(self, value: Optional[List[CTAcquisitionDetailsSequenceItem]]): + if value is None: + self._CTAcquisitionDetailsSequence = [] + if "CTAcquisitionDetailsSequence" in self._dataset: + del self._dataset.CTAcquisitionDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAcquisitionDetailsSequenceItem) for item in value): + raise ValueError("CTAcquisitionDetailsSequence must be a list of CTAcquisitionDetailsSequenceItem objects") + else: + self._CTAcquisitionDetailsSequence = value + if "CTAcquisitionDetailsSequence" not in self._dataset: + self._dataset.CTAcquisitionDetailsSequence = pydicom.Sequence() + self._dataset.CTAcquisitionDetailsSequence.clear() + self._dataset.CTAcquisitionDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTAcquisitionDetails(self, item: CTAcquisitionDetailsSequenceItem): + if not isinstance(item, CTAcquisitionDetailsSequenceItem): + raise ValueError("Item must be an instance of CTAcquisitionDetailsSequenceItem") + self._CTAcquisitionDetailsSequence.append(item) + if "CTAcquisitionDetailsSequence" not in self._dataset: + self._dataset.CTAcquisitionDetailsSequence = pydicom.Sequence() + self._dataset.CTAcquisitionDetailsSequence.append(item.to_dataset()) + + @property + def CTTableDynamicsSequence(self) -> Optional[List[CTTableDynamicsSequenceItem]]: + if "CTTableDynamicsSequence" in self._dataset: + if len(self._CTTableDynamicsSequence) == len(self._dataset.CTTableDynamicsSequence): + return self._CTTableDynamicsSequence + else: + return [CTTableDynamicsSequenceItem(x) for x in self._dataset.CTTableDynamicsSequence] + return None + + @CTTableDynamicsSequence.setter + def CTTableDynamicsSequence(self, value: Optional[List[CTTableDynamicsSequenceItem]]): + if value is None: + self._CTTableDynamicsSequence = [] + if "CTTableDynamicsSequence" in self._dataset: + del self._dataset.CTTableDynamicsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTTableDynamicsSequenceItem) for item in value): + raise ValueError("CTTableDynamicsSequence must be a list of CTTableDynamicsSequenceItem objects") + else: + self._CTTableDynamicsSequence = value + if "CTTableDynamicsSequence" not in self._dataset: + self._dataset.CTTableDynamicsSequence = pydicom.Sequence() + self._dataset.CTTableDynamicsSequence.clear() + self._dataset.CTTableDynamicsSequence.extend([item.to_dataset() for item in value]) + + def add_CTTableDynamics(self, item: CTTableDynamicsSequenceItem): + if not isinstance(item, CTTableDynamicsSequenceItem): + raise ValueError("Item must be an instance of CTTableDynamicsSequenceItem") + self._CTTableDynamicsSequence.append(item) + if "CTTableDynamicsSequence" not in self._dataset: + self._dataset.CTTableDynamicsSequence = pydicom.Sequence() + self._dataset.CTTableDynamicsSequence.append(item.to_dataset()) + + @property + def CTGeometrySequence(self) -> Optional[List[CTGeometrySequenceItem]]: + if "CTGeometrySequence" in self._dataset: + if len(self._CTGeometrySequence) == len(self._dataset.CTGeometrySequence): + return self._CTGeometrySequence + else: + return [CTGeometrySequenceItem(x) for x in self._dataset.CTGeometrySequence] + return None + + @CTGeometrySequence.setter + def CTGeometrySequence(self, value: Optional[List[CTGeometrySequenceItem]]): + if value is None: + self._CTGeometrySequence = [] + if "CTGeometrySequence" in self._dataset: + del self._dataset.CTGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, CTGeometrySequenceItem) for item in value): + raise ValueError("CTGeometrySequence must be a list of CTGeometrySequenceItem objects") + else: + self._CTGeometrySequence = value + if "CTGeometrySequence" not in self._dataset: + self._dataset.CTGeometrySequence = pydicom.Sequence() + self._dataset.CTGeometrySequence.clear() + self._dataset.CTGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_CTGeometry(self, item: CTGeometrySequenceItem): + if not isinstance(item, CTGeometrySequenceItem): + raise ValueError("Item must be an instance of CTGeometrySequenceItem") + self._CTGeometrySequence.append(item) + if "CTGeometrySequence" not in self._dataset: + self._dataset.CTGeometrySequence = pydicom.Sequence() + self._dataset.CTGeometrySequence.append(item.to_dataset()) + + @property + def CTReconstructionSequence(self) -> Optional[List[CTReconstructionSequenceItem]]: + if "CTReconstructionSequence" in self._dataset: + if len(self._CTReconstructionSequence) == len(self._dataset.CTReconstructionSequence): + return self._CTReconstructionSequence + else: + return [CTReconstructionSequenceItem(x) for x in self._dataset.CTReconstructionSequence] + return None + + @CTReconstructionSequence.setter + def CTReconstructionSequence(self, value: Optional[List[CTReconstructionSequenceItem]]): + if value is None: + self._CTReconstructionSequence = [] + if "CTReconstructionSequence" in self._dataset: + del self._dataset.CTReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, CTReconstructionSequenceItem) for item in value): + raise ValueError("CTReconstructionSequence must be a list of CTReconstructionSequenceItem objects") + else: + self._CTReconstructionSequence = value + if "CTReconstructionSequence" not in self._dataset: + self._dataset.CTReconstructionSequence = pydicom.Sequence() + self._dataset.CTReconstructionSequence.clear() + self._dataset.CTReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_CTReconstruction(self, item: CTReconstructionSequenceItem): + if not isinstance(item, CTReconstructionSequenceItem): + raise ValueError("Item must be an instance of CTReconstructionSequenceItem") + self._CTReconstructionSequence.append(item) + if "CTReconstructionSequence" not in self._dataset: + self._dataset.CTReconstructionSequence = pydicom.Sequence() + self._dataset.CTReconstructionSequence.append(item.to_dataset()) + + @property + def CTExposureSequence(self) -> Optional[List[CTExposureSequenceItem]]: + if "CTExposureSequence" in self._dataset: + if len(self._CTExposureSequence) == len(self._dataset.CTExposureSequence): + return self._CTExposureSequence + else: + return [CTExposureSequenceItem(x) for x in self._dataset.CTExposureSequence] + return None + + @CTExposureSequence.setter + def CTExposureSequence(self, value: Optional[List[CTExposureSequenceItem]]): + if value is None: + self._CTExposureSequence = [] + if "CTExposureSequence" in self._dataset: + del self._dataset.CTExposureSequence + elif not isinstance(value, list) or not all(isinstance(item, CTExposureSequenceItem) for item in value): + raise ValueError("CTExposureSequence must be a list of CTExposureSequenceItem objects") + else: + self._CTExposureSequence = value + if "CTExposureSequence" not in self._dataset: + self._dataset.CTExposureSequence = pydicom.Sequence() + self._dataset.CTExposureSequence.clear() + self._dataset.CTExposureSequence.extend([item.to_dataset() for item in value]) + + def add_CTExposure(self, item: CTExposureSequenceItem): + if not isinstance(item, CTExposureSequenceItem): + raise ValueError("Item must be an instance of CTExposureSequenceItem") + self._CTExposureSequence.append(item) + if "CTExposureSequence" not in self._dataset: + self._dataset.CTExposureSequence = pydicom.Sequence() + self._dataset.CTExposureSequence.append(item.to_dataset()) + + @property + def CTXRayDetailsSequence(self) -> Optional[List[CTXRayDetailsSequenceItem]]: + if "CTXRayDetailsSequence" in self._dataset: + if len(self._CTXRayDetailsSequence) == len(self._dataset.CTXRayDetailsSequence): + return self._CTXRayDetailsSequence + else: + return [CTXRayDetailsSequenceItem(x) for x in self._dataset.CTXRayDetailsSequence] + return None + + @CTXRayDetailsSequence.setter + def CTXRayDetailsSequence(self, value: Optional[List[CTXRayDetailsSequenceItem]]): + if value is None: + self._CTXRayDetailsSequence = [] + if "CTXRayDetailsSequence" in self._dataset: + del self._dataset.CTXRayDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, CTXRayDetailsSequenceItem) for item in value): + raise ValueError("CTXRayDetailsSequence must be a list of CTXRayDetailsSequenceItem objects") + else: + self._CTXRayDetailsSequence = value + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.clear() + self._dataset.CTXRayDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_CTXRayDetails(self, item: CTXRayDetailsSequenceItem): + if not isinstance(item, CTXRayDetailsSequenceItem): + raise ValueError("Item must be an instance of CTXRayDetailsSequenceItem") + self._CTXRayDetailsSequence.append(item) + if "CTXRayDetailsSequence" not in self._dataset: + self._dataset.CTXRayDetailsSequence = pydicom.Sequence() + self._dataset.CTXRayDetailsSequence.append(item.to_dataset()) + + @property + def CTPositionSequence(self) -> Optional[List[CTPositionSequenceItem]]: + if "CTPositionSequence" in self._dataset: + if len(self._CTPositionSequence) == len(self._dataset.CTPositionSequence): + return self._CTPositionSequence + else: + return [CTPositionSequenceItem(x) for x in self._dataset.CTPositionSequence] + return None + + @CTPositionSequence.setter + def CTPositionSequence(self, value: Optional[List[CTPositionSequenceItem]]): + if value is None: + self._CTPositionSequence = [] + if "CTPositionSequence" in self._dataset: + del self._dataset.CTPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, CTPositionSequenceItem) for item in value): + raise ValueError("CTPositionSequence must be a list of CTPositionSequenceItem objects") + else: + self._CTPositionSequence = value + if "CTPositionSequence" not in self._dataset: + self._dataset.CTPositionSequence = pydicom.Sequence() + self._dataset.CTPositionSequence.clear() + self._dataset.CTPositionSequence.extend([item.to_dataset() for item in value]) + + def add_CTPosition(self, item: CTPositionSequenceItem): + if not isinstance(item, CTPositionSequenceItem): + raise ValueError("Item must be an instance of CTPositionSequenceItem") + self._CTPositionSequence.append(item) + if "CTPositionSequence" not in self._dataset: + self._dataset.CTPositionSequence = pydicom.Sequence() + self._dataset.CTPositionSequence.append(item.to_dataset()) + + @property + def CTImageFrameTypeSequence(self) -> Optional[List[CTImageFrameTypeSequenceItem]]: + if "CTImageFrameTypeSequence" in self._dataset: + if len(self._CTImageFrameTypeSequence) == len(self._dataset.CTImageFrameTypeSequence): + return self._CTImageFrameTypeSequence + else: + return [CTImageFrameTypeSequenceItem(x) for x in self._dataset.CTImageFrameTypeSequence] + return None + + @CTImageFrameTypeSequence.setter + def CTImageFrameTypeSequence(self, value: Optional[List[CTImageFrameTypeSequenceItem]]): + if value is None: + self._CTImageFrameTypeSequence = [] + if "CTImageFrameTypeSequence" in self._dataset: + del self._dataset.CTImageFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, CTImageFrameTypeSequenceItem) for item in value): + raise ValueError("CTImageFrameTypeSequence must be a list of CTImageFrameTypeSequenceItem objects") + else: + self._CTImageFrameTypeSequence = value + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.clear() + self._dataset.CTImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_CTImageFrameType(self, item: CTImageFrameTypeSequenceItem): + if not isinstance(item, CTImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of CTImageFrameTypeSequenceItem") + self._CTImageFrameTypeSequence.append(item) + if "CTImageFrameTypeSequence" not in self._dataset: + self._dataset.CTImageFrameTypeSequence = pydicom.Sequence() + self._dataset.CTImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def CTAdditionalXRaySourceSequence(self) -> Optional[List[CTAdditionalXRaySourceSequenceItem]]: + if "CTAdditionalXRaySourceSequence" in self._dataset: + if len(self._CTAdditionalXRaySourceSequence) == len(self._dataset.CTAdditionalXRaySourceSequence): + return self._CTAdditionalXRaySourceSequence + else: + return [CTAdditionalXRaySourceSequenceItem(x) for x in self._dataset.CTAdditionalXRaySourceSequence] + return None + + @CTAdditionalXRaySourceSequence.setter + def CTAdditionalXRaySourceSequence(self, value: Optional[List[CTAdditionalXRaySourceSequenceItem]]): + if value is None: + self._CTAdditionalXRaySourceSequence = [] + if "CTAdditionalXRaySourceSequence" in self._dataset: + del self._dataset.CTAdditionalXRaySourceSequence + elif not isinstance(value, list) or not all(isinstance(item, CTAdditionalXRaySourceSequenceItem) for item in value): + raise ValueError("CTAdditionalXRaySourceSequence must be a list of CTAdditionalXRaySourceSequenceItem objects") + else: + self._CTAdditionalXRaySourceSequence = value + if "CTAdditionalXRaySourceSequence" not in self._dataset: + self._dataset.CTAdditionalXRaySourceSequence = pydicom.Sequence() + self._dataset.CTAdditionalXRaySourceSequence.clear() + self._dataset.CTAdditionalXRaySourceSequence.extend([item.to_dataset() for item in value]) + + def add_CTAdditionalXRaySource(self, item: CTAdditionalXRaySourceSequenceItem): + if not isinstance(item, CTAdditionalXRaySourceSequenceItem): + raise ValueError("Item must be an instance of CTAdditionalXRaySourceSequenceItem") + self._CTAdditionalXRaySourceSequence.append(item) + if "CTAdditionalXRaySourceSequence" not in self._dataset: + self._dataset.CTAdditionalXRaySourceSequence = pydicom.Sequence() + self._dataset.CTAdditionalXRaySourceSequence.append(item.to_dataset()) + + @property + def MultienergyCTProcessingSequence(self) -> Optional[List[MultienergyCTProcessingSequenceItem]]: + if "MultienergyCTProcessingSequence" in self._dataset: + if len(self._MultienergyCTProcessingSequence) == len(self._dataset.MultienergyCTProcessingSequence): + return self._MultienergyCTProcessingSequence + else: + return [MultienergyCTProcessingSequenceItem(x) for x in self._dataset.MultienergyCTProcessingSequence] + return None + + @MultienergyCTProcessingSequence.setter + def MultienergyCTProcessingSequence(self, value: Optional[List[MultienergyCTProcessingSequenceItem]]): + if value is None: + self._MultienergyCTProcessingSequence = [] + if "MultienergyCTProcessingSequence" in self._dataset: + del self._dataset.MultienergyCTProcessingSequence + elif not isinstance(value, list) or not all(isinstance(item, MultienergyCTProcessingSequenceItem) for item in value): + raise ValueError("MultienergyCTProcessingSequence must be a list of MultienergyCTProcessingSequenceItem objects") + else: + self._MultienergyCTProcessingSequence = value + if "MultienergyCTProcessingSequence" not in self._dataset: + self._dataset.MultienergyCTProcessingSequence = pydicom.Sequence() + self._dataset.MultienergyCTProcessingSequence.clear() + self._dataset.MultienergyCTProcessingSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTProcessing(self, item: MultienergyCTProcessingSequenceItem): + if not isinstance(item, MultienergyCTProcessingSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTProcessingSequenceItem") + self._MultienergyCTProcessingSequence.append(item) + if "MultienergyCTProcessingSequence" not in self._dataset: + self._dataset.MultienergyCTProcessingSequence = pydicom.Sequence() + self._dataset.MultienergyCTProcessingSequence.append(item.to_dataset()) + + @property + def MultienergyCTCharacteristicsSequence(self) -> Optional[List[MultienergyCTCharacteristicsSequenceItem]]: + if "MultienergyCTCharacteristicsSequence" in self._dataset: + if len(self._MultienergyCTCharacteristicsSequence) == len(self._dataset.MultienergyCTCharacteristicsSequence): + return self._MultienergyCTCharacteristicsSequence + else: + return [ + MultienergyCTCharacteristicsSequenceItem(x) for x in self._dataset.MultienergyCTCharacteristicsSequence + ] + return None + + @MultienergyCTCharacteristicsSequence.setter + def MultienergyCTCharacteristicsSequence(self, value: Optional[List[MultienergyCTCharacteristicsSequenceItem]]): + if value is None: + self._MultienergyCTCharacteristicsSequence = [] + if "MultienergyCTCharacteristicsSequence" in self._dataset: + del self._dataset.MultienergyCTCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, MultienergyCTCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "MultienergyCTCharacteristicsSequence must be a list of MultienergyCTCharacteristicsSequenceItem objects" + ) + else: + self._MultienergyCTCharacteristicsSequence = value + if "MultienergyCTCharacteristicsSequence" not in self._dataset: + self._dataset.MultienergyCTCharacteristicsSequence = pydicom.Sequence() + self._dataset.MultienergyCTCharacteristicsSequence.clear() + self._dataset.MultienergyCTCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_MultienergyCTCharacteristics(self, item: MultienergyCTCharacteristicsSequenceItem): + if not isinstance(item, MultienergyCTCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of MultienergyCTCharacteristicsSequenceItem") + self._MultienergyCTCharacteristicsSequence.append(item) + if "MultienergyCTCharacteristicsSequence" not in self._dataset: + self._dataset.MultienergyCTCharacteristicsSequence = pydicom.Sequence() + self._dataset.MultienergyCTCharacteristicsSequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_22.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_22.py new file mode 100644 index 0000000..124188d --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_22.py @@ -0,0 +1,352 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .ophthalmic_frame_location_sequence_item import OphthalmicFrameLocationSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._OphthalmicFrameLocationSequence: List[OphthalmicFrameLocationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def OphthalmicFrameLocationSequence(self) -> Optional[List[OphthalmicFrameLocationSequenceItem]]: + if "OphthalmicFrameLocationSequence" in self._dataset: + if len(self._OphthalmicFrameLocationSequence) == len(self._dataset.OphthalmicFrameLocationSequence): + return self._OphthalmicFrameLocationSequence + else: + return [OphthalmicFrameLocationSequenceItem(x) for x in self._dataset.OphthalmicFrameLocationSequence] + return None + + @OphthalmicFrameLocationSequence.setter + def OphthalmicFrameLocationSequence(self, value: Optional[List[OphthalmicFrameLocationSequenceItem]]): + if value is None: + self._OphthalmicFrameLocationSequence = [] + if "OphthalmicFrameLocationSequence" in self._dataset: + del self._dataset.OphthalmicFrameLocationSequence + elif not isinstance(value, list) or not all(isinstance(item, OphthalmicFrameLocationSequenceItem) for item in value): + raise ValueError("OphthalmicFrameLocationSequence must be a list of OphthalmicFrameLocationSequenceItem objects") + else: + self._OphthalmicFrameLocationSequence = value + if "OphthalmicFrameLocationSequence" not in self._dataset: + self._dataset.OphthalmicFrameLocationSequence = pydicom.Sequence() + self._dataset.OphthalmicFrameLocationSequence.clear() + self._dataset.OphthalmicFrameLocationSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicFrameLocation(self, item: OphthalmicFrameLocationSequenceItem): + if not isinstance(item, OphthalmicFrameLocationSequenceItem): + raise ValueError("Item must be an instance of OphthalmicFrameLocationSequenceItem") + self._OphthalmicFrameLocationSequence.append(item) + if "OphthalmicFrameLocationSequence" not in self._dataset: + self._dataset.OphthalmicFrameLocationSequence = pydicom.Sequence() + self._dataset.OphthalmicFrameLocationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_24.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_24.py new file mode 100644 index 0000000..62f9bf4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_24.py @@ -0,0 +1,650 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .image_data_type_sequence_item import ImageDataTypeSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .photoacoustic_excitation_characteristics_sequence_item import ( + PhotoacousticExcitationCharacteristicsSequenceItem, +) +from .photoacoustic_image_frame_type_sequence_item import ( + PhotoacousticImageFrameTypeSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_orientation_volume_sequence_item import PlaneOrientationVolumeSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_volume_sequence_item import PlanePositionVolumeSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .reconstruction_algorithm_sequence_item import ReconstructionAlgorithmSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .temporal_position_sequence_item import TemporalPositionSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._ImageDataTypeSequence: List[ImageDataTypeSequenceItem] = [] + self._PhotoacousticExcitationCharacteristicsSequence: List[PhotoacousticExcitationCharacteristicsSequenceItem] = [] + self._PhotoacousticImageFrameTypeSequence: List[PhotoacousticImageFrameTypeSequenceItem] = [] + self._ReconstructionAlgorithmSequence: List[ReconstructionAlgorithmSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PlanePositionVolumeSequence: List[PlanePositionVolumeSequenceItem] = [] + self._PlaneOrientationVolumeSequence: List[PlaneOrientationVolumeSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def ImageDataTypeSequence(self) -> Optional[List[ImageDataTypeSequenceItem]]: + if "ImageDataTypeSequence" in self._dataset: + if len(self._ImageDataTypeSequence) == len(self._dataset.ImageDataTypeSequence): + return self._ImageDataTypeSequence + else: + return [ImageDataTypeSequenceItem(x) for x in self._dataset.ImageDataTypeSequence] + return None + + @ImageDataTypeSequence.setter + def ImageDataTypeSequence(self, value: Optional[List[ImageDataTypeSequenceItem]]): + if value is None: + self._ImageDataTypeSequence = [] + if "ImageDataTypeSequence" in self._dataset: + del self._dataset.ImageDataTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageDataTypeSequenceItem) for item in value): + raise ValueError("ImageDataTypeSequence must be a list of ImageDataTypeSequenceItem objects") + else: + self._ImageDataTypeSequence = value + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.clear() + self._dataset.ImageDataTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ImageDataType(self, item: ImageDataTypeSequenceItem): + if not isinstance(item, ImageDataTypeSequenceItem): + raise ValueError("Item must be an instance of ImageDataTypeSequenceItem") + self._ImageDataTypeSequence.append(item) + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.append(item.to_dataset()) + + @property + def PhotoacousticExcitationCharacteristicsSequence( + self, + ) -> Optional[List[PhotoacousticExcitationCharacteristicsSequenceItem]]: + if "PhotoacousticExcitationCharacteristicsSequence" in self._dataset: + if len(self._PhotoacousticExcitationCharacteristicsSequence) == len( + self._dataset.PhotoacousticExcitationCharacteristicsSequence + ): + return self._PhotoacousticExcitationCharacteristicsSequence + else: + return [ + PhotoacousticExcitationCharacteristicsSequenceItem(x) + for x in self._dataset.PhotoacousticExcitationCharacteristicsSequence + ] + return None + + @PhotoacousticExcitationCharacteristicsSequence.setter + def PhotoacousticExcitationCharacteristicsSequence( + self, value: Optional[List[PhotoacousticExcitationCharacteristicsSequenceItem]] + ): + if value is None: + self._PhotoacousticExcitationCharacteristicsSequence = [] + if "PhotoacousticExcitationCharacteristicsSequence" in self._dataset: + del self._dataset.PhotoacousticExcitationCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhotoacousticExcitationCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PhotoacousticExcitationCharacteristicsSequence must be a list of" + " PhotoacousticExcitationCharacteristicsSequenceItem objects" + ) + else: + self._PhotoacousticExcitationCharacteristicsSequence = value + if "PhotoacousticExcitationCharacteristicsSequence" not in self._dataset: + self._dataset.PhotoacousticExcitationCharacteristicsSequence = pydicom.Sequence() + self._dataset.PhotoacousticExcitationCharacteristicsSequence.clear() + self._dataset.PhotoacousticExcitationCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PhotoacousticExcitationCharacteristics(self, item: PhotoacousticExcitationCharacteristicsSequenceItem): + if not isinstance(item, PhotoacousticExcitationCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PhotoacousticExcitationCharacteristicsSequenceItem") + self._PhotoacousticExcitationCharacteristicsSequence.append(item) + if "PhotoacousticExcitationCharacteristicsSequence" not in self._dataset: + self._dataset.PhotoacousticExcitationCharacteristicsSequence = pydicom.Sequence() + self._dataset.PhotoacousticExcitationCharacteristicsSequence.append(item.to_dataset()) + + @property + def PhotoacousticImageFrameTypeSequence(self) -> Optional[List[PhotoacousticImageFrameTypeSequenceItem]]: + if "PhotoacousticImageFrameTypeSequence" in self._dataset: + if len(self._PhotoacousticImageFrameTypeSequence) == len(self._dataset.PhotoacousticImageFrameTypeSequence): + return self._PhotoacousticImageFrameTypeSequence + else: + return [PhotoacousticImageFrameTypeSequenceItem(x) for x in self._dataset.PhotoacousticImageFrameTypeSequence] + return None + + @PhotoacousticImageFrameTypeSequence.setter + def PhotoacousticImageFrameTypeSequence(self, value: Optional[List[PhotoacousticImageFrameTypeSequenceItem]]): + if value is None: + self._PhotoacousticImageFrameTypeSequence = [] + if "PhotoacousticImageFrameTypeSequence" in self._dataset: + del self._dataset.PhotoacousticImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhotoacousticImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "PhotoacousticImageFrameTypeSequence must be a list of PhotoacousticImageFrameTypeSequenceItem objects" + ) + else: + self._PhotoacousticImageFrameTypeSequence = value + if "PhotoacousticImageFrameTypeSequence" not in self._dataset: + self._dataset.PhotoacousticImageFrameTypeSequence = pydicom.Sequence() + self._dataset.PhotoacousticImageFrameTypeSequence.clear() + self._dataset.PhotoacousticImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_PhotoacousticImageFrameType(self, item: PhotoacousticImageFrameTypeSequenceItem): + if not isinstance(item, PhotoacousticImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of PhotoacousticImageFrameTypeSequenceItem") + self._PhotoacousticImageFrameTypeSequence.append(item) + if "PhotoacousticImageFrameTypeSequence" not in self._dataset: + self._dataset.PhotoacousticImageFrameTypeSequence = pydicom.Sequence() + self._dataset.PhotoacousticImageFrameTypeSequence.append(item.to_dataset()) + + @property + def ReconstructionAlgorithmSequence(self) -> Optional[List[ReconstructionAlgorithmSequenceItem]]: + if "ReconstructionAlgorithmSequence" in self._dataset: + if len(self._ReconstructionAlgorithmSequence) == len(self._dataset.ReconstructionAlgorithmSequence): + return self._ReconstructionAlgorithmSequence + else: + return [ReconstructionAlgorithmSequenceItem(x) for x in self._dataset.ReconstructionAlgorithmSequence] + return None + + @ReconstructionAlgorithmSequence.setter + def ReconstructionAlgorithmSequence(self, value: Optional[List[ReconstructionAlgorithmSequenceItem]]): + if value is None: + self._ReconstructionAlgorithmSequence = [] + if "ReconstructionAlgorithmSequence" in self._dataset: + del self._dataset.ReconstructionAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, ReconstructionAlgorithmSequenceItem) for item in value): + raise ValueError("ReconstructionAlgorithmSequence must be a list of ReconstructionAlgorithmSequenceItem objects") + else: + self._ReconstructionAlgorithmSequence = value + if "ReconstructionAlgorithmSequence" not in self._dataset: + self._dataset.ReconstructionAlgorithmSequence = pydicom.Sequence() + self._dataset.ReconstructionAlgorithmSequence.clear() + self._dataset.ReconstructionAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionAlgorithm(self, item: ReconstructionAlgorithmSequenceItem): + if not isinstance(item, ReconstructionAlgorithmSequenceItem): + raise ValueError("Item must be an instance of ReconstructionAlgorithmSequenceItem") + self._ReconstructionAlgorithmSequence.append(item) + if "ReconstructionAlgorithmSequence" not in self._dataset: + self._dataset.ReconstructionAlgorithmSequence = pydicom.Sequence() + self._dataset.ReconstructionAlgorithmSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PlanePositionVolumeSequence(self) -> Optional[List[PlanePositionVolumeSequenceItem]]: + if "PlanePositionVolumeSequence" in self._dataset: + if len(self._PlanePositionVolumeSequence) == len(self._dataset.PlanePositionVolumeSequence): + return self._PlanePositionVolumeSequence + else: + return [PlanePositionVolumeSequenceItem(x) for x in self._dataset.PlanePositionVolumeSequence] + return None + + @PlanePositionVolumeSequence.setter + def PlanePositionVolumeSequence(self, value: Optional[List[PlanePositionVolumeSequenceItem]]): + if value is None: + self._PlanePositionVolumeSequence = [] + if "PlanePositionVolumeSequence" in self._dataset: + del self._dataset.PlanePositionVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionVolumeSequenceItem) for item in value): + raise ValueError("PlanePositionVolumeSequence must be a list of PlanePositionVolumeSequenceItem objects") + else: + self._PlanePositionVolumeSequence = value + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.clear() + self._dataset.PlanePositionVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionVolume(self, item: PlanePositionVolumeSequenceItem): + if not isinstance(item, PlanePositionVolumeSequenceItem): + raise ValueError("Item must be an instance of PlanePositionVolumeSequenceItem") + self._PlanePositionVolumeSequence.append(item) + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.append(item.to_dataset()) + + @property + def PlaneOrientationVolumeSequence(self) -> Optional[List[PlaneOrientationVolumeSequenceItem]]: + if "PlaneOrientationVolumeSequence" in self._dataset: + if len(self._PlaneOrientationVolumeSequence) == len(self._dataset.PlaneOrientationVolumeSequence): + return self._PlaneOrientationVolumeSequence + else: + return [PlaneOrientationVolumeSequenceItem(x) for x in self._dataset.PlaneOrientationVolumeSequence] + return None + + @PlaneOrientationVolumeSequence.setter + def PlaneOrientationVolumeSequence(self, value: Optional[List[PlaneOrientationVolumeSequenceItem]]): + if value is None: + self._PlaneOrientationVolumeSequence = [] + if "PlaneOrientationVolumeSequence" in self._dataset: + del self._dataset.PlaneOrientationVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationVolumeSequenceItem) for item in value): + raise ValueError("PlaneOrientationVolumeSequence must be a list of PlaneOrientationVolumeSequenceItem objects") + else: + self._PlaneOrientationVolumeSequence = value + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.clear() + self._dataset.PlaneOrientationVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientationVolume(self, item: PlaneOrientationVolumeSequenceItem): + if not isinstance(item, PlaneOrientationVolumeSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationVolumeSequenceItem") + self._PlaneOrientationVolumeSequence.append(item) + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_26.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_26.py new file mode 100644 index 0000000..b127c50 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_26.py @@ -0,0 +1,250 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .segment_identification_sequence_item import SegmentIdentificationSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + self._SegmentIdentificationSequence: List[SegmentIdentificationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) + + @property + def SegmentIdentificationSequence(self) -> Optional[List[SegmentIdentificationSequenceItem]]: + if "SegmentIdentificationSequence" in self._dataset: + if len(self._SegmentIdentificationSequence) == len(self._dataset.SegmentIdentificationSequence): + return self._SegmentIdentificationSequence + else: + return [SegmentIdentificationSequenceItem(x) for x in self._dataset.SegmentIdentificationSequence] + return None + + @SegmentIdentificationSequence.setter + def SegmentIdentificationSequence(self, value: Optional[List[SegmentIdentificationSequenceItem]]): + if value is None: + self._SegmentIdentificationSequence = [] + if "SegmentIdentificationSequence" in self._dataset: + del self._dataset.SegmentIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, SegmentIdentificationSequenceItem) for item in value): + raise ValueError("SegmentIdentificationSequence must be a list of SegmentIdentificationSequenceItem objects") + else: + self._SegmentIdentificationSequence = value + if "SegmentIdentificationSequence" not in self._dataset: + self._dataset.SegmentIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentIdentificationSequence.clear() + self._dataset.SegmentIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentIdentification(self, item: SegmentIdentificationSequenceItem): + if not isinstance(item, SegmentIdentificationSequenceItem): + raise ValueError("Item must be an instance of SegmentIdentificationSequenceItem") + self._SegmentIdentificationSequence.append(item) + if "SegmentIdentificationSequence" not in self._dataset: + self._dataset.SegmentIdentificationSequence = pydicom.Sequence() + self._dataset.SegmentIdentificationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_27.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_27.py new file mode 100644 index 0000000..60dc1f2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_27.py @@ -0,0 +1,780 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .mr_averages_sequence_item import MRAveragesSequenceItem +from .mr_diffusion_sequence_item import MRDiffusionSequenceItem +from .mr_echo_sequence_item import MREchoSequenceItem +from .mr_modifier_sequence_item import MRModifierSequenceItem +from .mr_receive_coil_sequence_item import MRReceiveCoilSequenceItem +from .mr_spatial_saturation_sequence_item import MRSpatialSaturationSequenceItem +from .mr_spectroscopy_fov_geometry_sequence_item import ( + MRSpectroscopyFOVGeometrySequenceItem, +) +from .mr_spectroscopy_frame_type_sequence_item import ( + MRSpectroscopyFrameTypeSequenceItem, +) +from .mr_timing_and_related_parameters_sequence_item import ( + MRTimingAndRelatedParametersSequenceItem, +) +from .mr_transmit_coil_sequence_item import MRTransmitCoilSequenceItem +from .mr_velocity_encoding_sequence_item import MRVelocityEncodingSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._MRReceiveCoilSequence: List[MRReceiveCoilSequenceItem] = [] + self._MRTransmitCoilSequence: List[MRTransmitCoilSequenceItem] = [] + self._MRSpectroscopyFOVGeometrySequence: List[MRSpectroscopyFOVGeometrySequenceItem] = [] + self._MRSpatialSaturationSequence: List[MRSpatialSaturationSequenceItem] = [] + self._MRTimingAndRelatedParametersSequence: List[MRTimingAndRelatedParametersSequenceItem] = [] + self._MREchoSequence: List[MREchoSequenceItem] = [] + self._MRModifierSequence: List[MRModifierSequenceItem] = [] + self._MRDiffusionSequence: List[MRDiffusionSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._MRAveragesSequence: List[MRAveragesSequenceItem] = [] + self._MRVelocityEncodingSequence: List[MRVelocityEncodingSequenceItem] = [] + self._MRSpectroscopyFrameTypeSequence: List[MRSpectroscopyFrameTypeSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def MRReceiveCoilSequence(self) -> Optional[List[MRReceiveCoilSequenceItem]]: + if "MRReceiveCoilSequence" in self._dataset: + if len(self._MRReceiveCoilSequence) == len(self._dataset.MRReceiveCoilSequence): + return self._MRReceiveCoilSequence + else: + return [MRReceiveCoilSequenceItem(x) for x in self._dataset.MRReceiveCoilSequence] + return None + + @MRReceiveCoilSequence.setter + def MRReceiveCoilSequence(self, value: Optional[List[MRReceiveCoilSequenceItem]]): + if value is None: + self._MRReceiveCoilSequence = [] + if "MRReceiveCoilSequence" in self._dataset: + del self._dataset.MRReceiveCoilSequence + elif not isinstance(value, list) or not all(isinstance(item, MRReceiveCoilSequenceItem) for item in value): + raise ValueError("MRReceiveCoilSequence must be a list of MRReceiveCoilSequenceItem objects") + else: + self._MRReceiveCoilSequence = value + if "MRReceiveCoilSequence" not in self._dataset: + self._dataset.MRReceiveCoilSequence = pydicom.Sequence() + self._dataset.MRReceiveCoilSequence.clear() + self._dataset.MRReceiveCoilSequence.extend([item.to_dataset() for item in value]) + + def add_MRReceiveCoil(self, item: MRReceiveCoilSequenceItem): + if not isinstance(item, MRReceiveCoilSequenceItem): + raise ValueError("Item must be an instance of MRReceiveCoilSequenceItem") + self._MRReceiveCoilSequence.append(item) + if "MRReceiveCoilSequence" not in self._dataset: + self._dataset.MRReceiveCoilSequence = pydicom.Sequence() + self._dataset.MRReceiveCoilSequence.append(item.to_dataset()) + + @property + def MRTransmitCoilSequence(self) -> Optional[List[MRTransmitCoilSequenceItem]]: + if "MRTransmitCoilSequence" in self._dataset: + if len(self._MRTransmitCoilSequence) == len(self._dataset.MRTransmitCoilSequence): + return self._MRTransmitCoilSequence + else: + return [MRTransmitCoilSequenceItem(x) for x in self._dataset.MRTransmitCoilSequence] + return None + + @MRTransmitCoilSequence.setter + def MRTransmitCoilSequence(self, value: Optional[List[MRTransmitCoilSequenceItem]]): + if value is None: + self._MRTransmitCoilSequence = [] + if "MRTransmitCoilSequence" in self._dataset: + del self._dataset.MRTransmitCoilSequence + elif not isinstance(value, list) or not all(isinstance(item, MRTransmitCoilSequenceItem) for item in value): + raise ValueError("MRTransmitCoilSequence must be a list of MRTransmitCoilSequenceItem objects") + else: + self._MRTransmitCoilSequence = value + if "MRTransmitCoilSequence" not in self._dataset: + self._dataset.MRTransmitCoilSequence = pydicom.Sequence() + self._dataset.MRTransmitCoilSequence.clear() + self._dataset.MRTransmitCoilSequence.extend([item.to_dataset() for item in value]) + + def add_MRTransmitCoil(self, item: MRTransmitCoilSequenceItem): + if not isinstance(item, MRTransmitCoilSequenceItem): + raise ValueError("Item must be an instance of MRTransmitCoilSequenceItem") + self._MRTransmitCoilSequence.append(item) + if "MRTransmitCoilSequence" not in self._dataset: + self._dataset.MRTransmitCoilSequence = pydicom.Sequence() + self._dataset.MRTransmitCoilSequence.append(item.to_dataset()) + + @property + def MRSpectroscopyFOVGeometrySequence(self) -> Optional[List[MRSpectroscopyFOVGeometrySequenceItem]]: + if "MRSpectroscopyFOVGeometrySequence" in self._dataset: + if len(self._MRSpectroscopyFOVGeometrySequence) == len(self._dataset.MRSpectroscopyFOVGeometrySequence): + return self._MRSpectroscopyFOVGeometrySequence + else: + return [MRSpectroscopyFOVGeometrySequenceItem(x) for x in self._dataset.MRSpectroscopyFOVGeometrySequence] + return None + + @MRSpectroscopyFOVGeometrySequence.setter + def MRSpectroscopyFOVGeometrySequence(self, value: Optional[List[MRSpectroscopyFOVGeometrySequenceItem]]): + if value is None: + self._MRSpectroscopyFOVGeometrySequence = [] + if "MRSpectroscopyFOVGeometrySequence" in self._dataset: + del self._dataset.MRSpectroscopyFOVGeometrySequence + elif not isinstance(value, list) or not all(isinstance(item, MRSpectroscopyFOVGeometrySequenceItem) for item in value): + raise ValueError( + "MRSpectroscopyFOVGeometrySequence must be a list of MRSpectroscopyFOVGeometrySequenceItem objects" + ) + else: + self._MRSpectroscopyFOVGeometrySequence = value + if "MRSpectroscopyFOVGeometrySequence" not in self._dataset: + self._dataset.MRSpectroscopyFOVGeometrySequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFOVGeometrySequence.clear() + self._dataset.MRSpectroscopyFOVGeometrySequence.extend([item.to_dataset() for item in value]) + + def add_MRSpectroscopyFOVGeometry(self, item: MRSpectroscopyFOVGeometrySequenceItem): + if not isinstance(item, MRSpectroscopyFOVGeometrySequenceItem): + raise ValueError("Item must be an instance of MRSpectroscopyFOVGeometrySequenceItem") + self._MRSpectroscopyFOVGeometrySequence.append(item) + if "MRSpectroscopyFOVGeometrySequence" not in self._dataset: + self._dataset.MRSpectroscopyFOVGeometrySequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFOVGeometrySequence.append(item.to_dataset()) + + @property + def MRSpatialSaturationSequence(self) -> Optional[List[MRSpatialSaturationSequenceItem]]: + if "MRSpatialSaturationSequence" in self._dataset: + if len(self._MRSpatialSaturationSequence) == len(self._dataset.MRSpatialSaturationSequence): + return self._MRSpatialSaturationSequence + else: + return [MRSpatialSaturationSequenceItem(x) for x in self._dataset.MRSpatialSaturationSequence] + return None + + @MRSpatialSaturationSequence.setter + def MRSpatialSaturationSequence(self, value: Optional[List[MRSpatialSaturationSequenceItem]]): + if value is None: + self._MRSpatialSaturationSequence = [] + if "MRSpatialSaturationSequence" in self._dataset: + del self._dataset.MRSpatialSaturationSequence + elif not isinstance(value, list) or not all(isinstance(item, MRSpatialSaturationSequenceItem) for item in value): + raise ValueError("MRSpatialSaturationSequence must be a list of MRSpatialSaturationSequenceItem objects") + else: + self._MRSpatialSaturationSequence = value + if "MRSpatialSaturationSequence" not in self._dataset: + self._dataset.MRSpatialSaturationSequence = pydicom.Sequence() + self._dataset.MRSpatialSaturationSequence.clear() + self._dataset.MRSpatialSaturationSequence.extend([item.to_dataset() for item in value]) + + def add_MRSpatialSaturation(self, item: MRSpatialSaturationSequenceItem): + if not isinstance(item, MRSpatialSaturationSequenceItem): + raise ValueError("Item must be an instance of MRSpatialSaturationSequenceItem") + self._MRSpatialSaturationSequence.append(item) + if "MRSpatialSaturationSequence" not in self._dataset: + self._dataset.MRSpatialSaturationSequence = pydicom.Sequence() + self._dataset.MRSpatialSaturationSequence.append(item.to_dataset()) + + @property + def MRTimingAndRelatedParametersSequence(self) -> Optional[List[MRTimingAndRelatedParametersSequenceItem]]: + if "MRTimingAndRelatedParametersSequence" in self._dataset: + if len(self._MRTimingAndRelatedParametersSequence) == len(self._dataset.MRTimingAndRelatedParametersSequence): + return self._MRTimingAndRelatedParametersSequence + else: + return [ + MRTimingAndRelatedParametersSequenceItem(x) for x in self._dataset.MRTimingAndRelatedParametersSequence + ] + return None + + @MRTimingAndRelatedParametersSequence.setter + def MRTimingAndRelatedParametersSequence(self, value: Optional[List[MRTimingAndRelatedParametersSequenceItem]]): + if value is None: + self._MRTimingAndRelatedParametersSequence = [] + if "MRTimingAndRelatedParametersSequence" in self._dataset: + del self._dataset.MRTimingAndRelatedParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, MRTimingAndRelatedParametersSequenceItem) for item in value + ): + raise ValueError( + "MRTimingAndRelatedParametersSequence must be a list of MRTimingAndRelatedParametersSequenceItem objects" + ) + else: + self._MRTimingAndRelatedParametersSequence = value + if "MRTimingAndRelatedParametersSequence" not in self._dataset: + self._dataset.MRTimingAndRelatedParametersSequence = pydicom.Sequence() + self._dataset.MRTimingAndRelatedParametersSequence.clear() + self._dataset.MRTimingAndRelatedParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MRTimingAndRelatedParameters(self, item: MRTimingAndRelatedParametersSequenceItem): + if not isinstance(item, MRTimingAndRelatedParametersSequenceItem): + raise ValueError("Item must be an instance of MRTimingAndRelatedParametersSequenceItem") + self._MRTimingAndRelatedParametersSequence.append(item) + if "MRTimingAndRelatedParametersSequence" not in self._dataset: + self._dataset.MRTimingAndRelatedParametersSequence = pydicom.Sequence() + self._dataset.MRTimingAndRelatedParametersSequence.append(item.to_dataset()) + + @property + def MREchoSequence(self) -> Optional[List[MREchoSequenceItem]]: + if "MREchoSequence" in self._dataset: + if len(self._MREchoSequence) == len(self._dataset.MREchoSequence): + return self._MREchoSequence + else: + return [MREchoSequenceItem(x) for x in self._dataset.MREchoSequence] + return None + + @MREchoSequence.setter + def MREchoSequence(self, value: Optional[List[MREchoSequenceItem]]): + if value is None: + self._MREchoSequence = [] + if "MREchoSequence" in self._dataset: + del self._dataset.MREchoSequence + elif not isinstance(value, list) or not all(isinstance(item, MREchoSequenceItem) for item in value): + raise ValueError("MREchoSequence must be a list of MREchoSequenceItem objects") + else: + self._MREchoSequence = value + if "MREchoSequence" not in self._dataset: + self._dataset.MREchoSequence = pydicom.Sequence() + self._dataset.MREchoSequence.clear() + self._dataset.MREchoSequence.extend([item.to_dataset() for item in value]) + + def add_MREcho(self, item: MREchoSequenceItem): + if not isinstance(item, MREchoSequenceItem): + raise ValueError("Item must be an instance of MREchoSequenceItem") + self._MREchoSequence.append(item) + if "MREchoSequence" not in self._dataset: + self._dataset.MREchoSequence = pydicom.Sequence() + self._dataset.MREchoSequence.append(item.to_dataset()) + + @property + def MRModifierSequence(self) -> Optional[List[MRModifierSequenceItem]]: + if "MRModifierSequence" in self._dataset: + if len(self._MRModifierSequence) == len(self._dataset.MRModifierSequence): + return self._MRModifierSequence + else: + return [MRModifierSequenceItem(x) for x in self._dataset.MRModifierSequence] + return None + + @MRModifierSequence.setter + def MRModifierSequence(self, value: Optional[List[MRModifierSequenceItem]]): + if value is None: + self._MRModifierSequence = [] + if "MRModifierSequence" in self._dataset: + del self._dataset.MRModifierSequence + elif not isinstance(value, list) or not all(isinstance(item, MRModifierSequenceItem) for item in value): + raise ValueError("MRModifierSequence must be a list of MRModifierSequenceItem objects") + else: + self._MRModifierSequence = value + if "MRModifierSequence" not in self._dataset: + self._dataset.MRModifierSequence = pydicom.Sequence() + self._dataset.MRModifierSequence.clear() + self._dataset.MRModifierSequence.extend([item.to_dataset() for item in value]) + + def add_MRModifier(self, item: MRModifierSequenceItem): + if not isinstance(item, MRModifierSequenceItem): + raise ValueError("Item must be an instance of MRModifierSequenceItem") + self._MRModifierSequence.append(item) + if "MRModifierSequence" not in self._dataset: + self._dataset.MRModifierSequence = pydicom.Sequence() + self._dataset.MRModifierSequence.append(item.to_dataset()) + + @property + def MRDiffusionSequence(self) -> Optional[List[MRDiffusionSequenceItem]]: + if "MRDiffusionSequence" in self._dataset: + if len(self._MRDiffusionSequence) == len(self._dataset.MRDiffusionSequence): + return self._MRDiffusionSequence + else: + return [MRDiffusionSequenceItem(x) for x in self._dataset.MRDiffusionSequence] + return None + + @MRDiffusionSequence.setter + def MRDiffusionSequence(self, value: Optional[List[MRDiffusionSequenceItem]]): + if value is None: + self._MRDiffusionSequence = [] + if "MRDiffusionSequence" in self._dataset: + del self._dataset.MRDiffusionSequence + elif not isinstance(value, list) or not all(isinstance(item, MRDiffusionSequenceItem) for item in value): + raise ValueError("MRDiffusionSequence must be a list of MRDiffusionSequenceItem objects") + else: + self._MRDiffusionSequence = value + if "MRDiffusionSequence" not in self._dataset: + self._dataset.MRDiffusionSequence = pydicom.Sequence() + self._dataset.MRDiffusionSequence.clear() + self._dataset.MRDiffusionSequence.extend([item.to_dataset() for item in value]) + + def add_MRDiffusion(self, item: MRDiffusionSequenceItem): + if not isinstance(item, MRDiffusionSequenceItem): + raise ValueError("Item must be an instance of MRDiffusionSequenceItem") + self._MRDiffusionSequence.append(item) + if "MRDiffusionSequence" not in self._dataset: + self._dataset.MRDiffusionSequence = pydicom.Sequence() + self._dataset.MRDiffusionSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def MRAveragesSequence(self) -> Optional[List[MRAveragesSequenceItem]]: + if "MRAveragesSequence" in self._dataset: + if len(self._MRAveragesSequence) == len(self._dataset.MRAveragesSequence): + return self._MRAveragesSequence + else: + return [MRAveragesSequenceItem(x) for x in self._dataset.MRAveragesSequence] + return None + + @MRAveragesSequence.setter + def MRAveragesSequence(self, value: Optional[List[MRAveragesSequenceItem]]): + if value is None: + self._MRAveragesSequence = [] + if "MRAveragesSequence" in self._dataset: + del self._dataset.MRAveragesSequence + elif not isinstance(value, list) or not all(isinstance(item, MRAveragesSequenceItem) for item in value): + raise ValueError("MRAveragesSequence must be a list of MRAveragesSequenceItem objects") + else: + self._MRAveragesSequence = value + if "MRAveragesSequence" not in self._dataset: + self._dataset.MRAveragesSequence = pydicom.Sequence() + self._dataset.MRAveragesSequence.clear() + self._dataset.MRAveragesSequence.extend([item.to_dataset() for item in value]) + + def add_MRAverages(self, item: MRAveragesSequenceItem): + if not isinstance(item, MRAveragesSequenceItem): + raise ValueError("Item must be an instance of MRAveragesSequenceItem") + self._MRAveragesSequence.append(item) + if "MRAveragesSequence" not in self._dataset: + self._dataset.MRAveragesSequence = pydicom.Sequence() + self._dataset.MRAveragesSequence.append(item.to_dataset()) + + @property + def MRVelocityEncodingSequence(self) -> Optional[List[MRVelocityEncodingSequenceItem]]: + if "MRVelocityEncodingSequence" in self._dataset: + if len(self._MRVelocityEncodingSequence) == len(self._dataset.MRVelocityEncodingSequence): + return self._MRVelocityEncodingSequence + else: + return [MRVelocityEncodingSequenceItem(x) for x in self._dataset.MRVelocityEncodingSequence] + return None + + @MRVelocityEncodingSequence.setter + def MRVelocityEncodingSequence(self, value: Optional[List[MRVelocityEncodingSequenceItem]]): + if value is None: + self._MRVelocityEncodingSequence = [] + if "MRVelocityEncodingSequence" in self._dataset: + del self._dataset.MRVelocityEncodingSequence + elif not isinstance(value, list) or not all(isinstance(item, MRVelocityEncodingSequenceItem) for item in value): + raise ValueError("MRVelocityEncodingSequence must be a list of MRVelocityEncodingSequenceItem objects") + else: + self._MRVelocityEncodingSequence = value + if "MRVelocityEncodingSequence" not in self._dataset: + self._dataset.MRVelocityEncodingSequence = pydicom.Sequence() + self._dataset.MRVelocityEncodingSequence.clear() + self._dataset.MRVelocityEncodingSequence.extend([item.to_dataset() for item in value]) + + def add_MRVelocityEncoding(self, item: MRVelocityEncodingSequenceItem): + if not isinstance(item, MRVelocityEncodingSequenceItem): + raise ValueError("Item must be an instance of MRVelocityEncodingSequenceItem") + self._MRVelocityEncodingSequence.append(item) + if "MRVelocityEncodingSequence" not in self._dataset: + self._dataset.MRVelocityEncodingSequence = pydicom.Sequence() + self._dataset.MRVelocityEncodingSequence.append(item.to_dataset()) + + @property + def MRSpectroscopyFrameTypeSequence(self) -> Optional[List[MRSpectroscopyFrameTypeSequenceItem]]: + if "MRSpectroscopyFrameTypeSequence" in self._dataset: + if len(self._MRSpectroscopyFrameTypeSequence) == len(self._dataset.MRSpectroscopyFrameTypeSequence): + return self._MRSpectroscopyFrameTypeSequence + else: + return [MRSpectroscopyFrameTypeSequenceItem(x) for x in self._dataset.MRSpectroscopyFrameTypeSequence] + return None + + @MRSpectroscopyFrameTypeSequence.setter + def MRSpectroscopyFrameTypeSequence(self, value: Optional[List[MRSpectroscopyFrameTypeSequenceItem]]): + if value is None: + self._MRSpectroscopyFrameTypeSequence = [] + if "MRSpectroscopyFrameTypeSequence" in self._dataset: + del self._dataset.MRSpectroscopyFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, MRSpectroscopyFrameTypeSequenceItem) for item in value): + raise ValueError("MRSpectroscopyFrameTypeSequence must be a list of MRSpectroscopyFrameTypeSequenceItem objects") + else: + self._MRSpectroscopyFrameTypeSequence = value + if "MRSpectroscopyFrameTypeSequence" not in self._dataset: + self._dataset.MRSpectroscopyFrameTypeSequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFrameTypeSequence.clear() + self._dataset.MRSpectroscopyFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_MRSpectroscopyFrameType(self, item: MRSpectroscopyFrameTypeSequenceItem): + if not isinstance(item, MRSpectroscopyFrameTypeSequenceItem): + raise ValueError("Item must be an instance of MRSpectroscopyFrameTypeSequenceItem") + self._MRSpectroscopyFrameTypeSequence.append(item) + if "MRSpectroscopyFrameTypeSequence" not in self._dataset: + self._dataset.MRSpectroscopyFrameTypeSequence = pydicom.Sequence() + self._dataset.MRSpectroscopyFrameTypeSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_28.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_28.py new file mode 100644 index 0000000..190803b --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_28.py @@ -0,0 +1,598 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .rt_beam_limiting_device_opening_sequence_item import ( + RTBeamLimitingDeviceOpeningSequenceItem, +) +from .rt_image_frame_context_sequence_item import RTImageFrameContextSequenceItem +from .rt_image_frame_general_content_sequence_item import ( + RTImageFrameGeneralContentSequenceItem, +) +from .rt_image_frame_imaging_device_position_sequence_item import ( + RTImageFrameImagingDevicePositionSequenceItem, +) +from .rt_image_frame_radiation_acquisition_sequence_item import ( + RTImageFrameRadiationAcquisitionSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._RTImageFrameGeneralContentSequence: List[RTImageFrameGeneralContentSequenceItem] = [] + self._RTImageFrameContextSequence: List[RTImageFrameContextSequenceItem] = [] + self._RTImageFrameImagingDevicePositionSequence: List[RTImageFrameImagingDevicePositionSequenceItem] = [] + self._RTImageFrameRadiationAcquisitionSequence: List[RTImageFrameRadiationAcquisitionSequenceItem] = [] + self._RTBeamLimitingDeviceOpeningSequence: List[RTBeamLimitingDeviceOpeningSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def RTImageFrameGeneralContentSequence(self) -> Optional[List[RTImageFrameGeneralContentSequenceItem]]: + if "RTImageFrameGeneralContentSequence" in self._dataset: + if len(self._RTImageFrameGeneralContentSequence) == len(self._dataset.RTImageFrameGeneralContentSequence): + return self._RTImageFrameGeneralContentSequence + else: + return [RTImageFrameGeneralContentSequenceItem(x) for x in self._dataset.RTImageFrameGeneralContentSequence] + return None + + @RTImageFrameGeneralContentSequence.setter + def RTImageFrameGeneralContentSequence(self, value: Optional[List[RTImageFrameGeneralContentSequenceItem]]): + if value is None: + self._RTImageFrameGeneralContentSequence = [] + if "RTImageFrameGeneralContentSequence" in self._dataset: + del self._dataset.RTImageFrameGeneralContentSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameGeneralContentSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameGeneralContentSequence must be a list of RTImageFrameGeneralContentSequenceItem objects" + ) + else: + self._RTImageFrameGeneralContentSequence = value + if "RTImageFrameGeneralContentSequence" not in self._dataset: + self._dataset.RTImageFrameGeneralContentSequence = pydicom.Sequence() + self._dataset.RTImageFrameGeneralContentSequence.clear() + self._dataset.RTImageFrameGeneralContentSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameGeneralContent(self, item: RTImageFrameGeneralContentSequenceItem): + if not isinstance(item, RTImageFrameGeneralContentSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameGeneralContentSequenceItem") + self._RTImageFrameGeneralContentSequence.append(item) + if "RTImageFrameGeneralContentSequence" not in self._dataset: + self._dataset.RTImageFrameGeneralContentSequence = pydicom.Sequence() + self._dataset.RTImageFrameGeneralContentSequence.append(item.to_dataset()) + + @property + def RTImageFrameContextSequence(self) -> Optional[List[RTImageFrameContextSequenceItem]]: + if "RTImageFrameContextSequence" in self._dataset: + if len(self._RTImageFrameContextSequence) == len(self._dataset.RTImageFrameContextSequence): + return self._RTImageFrameContextSequence + else: + return [RTImageFrameContextSequenceItem(x) for x in self._dataset.RTImageFrameContextSequence] + return None + + @RTImageFrameContextSequence.setter + def RTImageFrameContextSequence(self, value: Optional[List[RTImageFrameContextSequenceItem]]): + if value is None: + self._RTImageFrameContextSequence = [] + if "RTImageFrameContextSequence" in self._dataset: + del self._dataset.RTImageFrameContextSequence + elif not isinstance(value, list) or not all(isinstance(item, RTImageFrameContextSequenceItem) for item in value): + raise ValueError("RTImageFrameContextSequence must be a list of RTImageFrameContextSequenceItem objects") + else: + self._RTImageFrameContextSequence = value + if "RTImageFrameContextSequence" not in self._dataset: + self._dataset.RTImageFrameContextSequence = pydicom.Sequence() + self._dataset.RTImageFrameContextSequence.clear() + self._dataset.RTImageFrameContextSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameContext(self, item: RTImageFrameContextSequenceItem): + if not isinstance(item, RTImageFrameContextSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameContextSequenceItem") + self._RTImageFrameContextSequence.append(item) + if "RTImageFrameContextSequence" not in self._dataset: + self._dataset.RTImageFrameContextSequence = pydicom.Sequence() + self._dataset.RTImageFrameContextSequence.append(item.to_dataset()) + + @property + def RTImageFrameImagingDevicePositionSequence(self) -> Optional[List[RTImageFrameImagingDevicePositionSequenceItem]]: + if "RTImageFrameImagingDevicePositionSequence" in self._dataset: + if len(self._RTImageFrameImagingDevicePositionSequence) == len( + self._dataset.RTImageFrameImagingDevicePositionSequence + ): + return self._RTImageFrameImagingDevicePositionSequence + else: + return [ + RTImageFrameImagingDevicePositionSequenceItem(x) + for x in self._dataset.RTImageFrameImagingDevicePositionSequence + ] + return None + + @RTImageFrameImagingDevicePositionSequence.setter + def RTImageFrameImagingDevicePositionSequence(self, value: Optional[List[RTImageFrameImagingDevicePositionSequenceItem]]): + if value is None: + self._RTImageFrameImagingDevicePositionSequence = [] + if "RTImageFrameImagingDevicePositionSequence" in self._dataset: + del self._dataset.RTImageFrameImagingDevicePositionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameImagingDevicePositionSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameImagingDevicePositionSequence must be a list of RTImageFrameImagingDevicePositionSequenceItem" + " objects" + ) + else: + self._RTImageFrameImagingDevicePositionSequence = value + if "RTImageFrameImagingDevicePositionSequence" not in self._dataset: + self._dataset.RTImageFrameImagingDevicePositionSequence = pydicom.Sequence() + self._dataset.RTImageFrameImagingDevicePositionSequence.clear() + self._dataset.RTImageFrameImagingDevicePositionSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameImagingDevicePosition(self, item: RTImageFrameImagingDevicePositionSequenceItem): + if not isinstance(item, RTImageFrameImagingDevicePositionSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameImagingDevicePositionSequenceItem") + self._RTImageFrameImagingDevicePositionSequence.append(item) + if "RTImageFrameImagingDevicePositionSequence" not in self._dataset: + self._dataset.RTImageFrameImagingDevicePositionSequence = pydicom.Sequence() + self._dataset.RTImageFrameImagingDevicePositionSequence.append(item.to_dataset()) + + @property + def RTImageFrameRadiationAcquisitionSequence(self) -> Optional[List[RTImageFrameRadiationAcquisitionSequenceItem]]: + if "RTImageFrameRadiationAcquisitionSequence" in self._dataset: + if len(self._RTImageFrameRadiationAcquisitionSequence) == len( + self._dataset.RTImageFrameRadiationAcquisitionSequence + ): + return self._RTImageFrameRadiationAcquisitionSequence + else: + return [ + RTImageFrameRadiationAcquisitionSequenceItem(x) + for x in self._dataset.RTImageFrameRadiationAcquisitionSequence + ] + return None + + @RTImageFrameRadiationAcquisitionSequence.setter + def RTImageFrameRadiationAcquisitionSequence(self, value: Optional[List[RTImageFrameRadiationAcquisitionSequenceItem]]): + if value is None: + self._RTImageFrameRadiationAcquisitionSequence = [] + if "RTImageFrameRadiationAcquisitionSequence" in self._dataset: + del self._dataset.RTImageFrameRadiationAcquisitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTImageFrameRadiationAcquisitionSequenceItem) for item in value + ): + raise ValueError( + "RTImageFrameRadiationAcquisitionSequence must be a list of RTImageFrameRadiationAcquisitionSequenceItem" + " objects" + ) + else: + self._RTImageFrameRadiationAcquisitionSequence = value + if "RTImageFrameRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFrameRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFrameRadiationAcquisitionSequence.clear() + self._dataset.RTImageFrameRadiationAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTImageFrameRadiationAcquisition(self, item: RTImageFrameRadiationAcquisitionSequenceItem): + if not isinstance(item, RTImageFrameRadiationAcquisitionSequenceItem): + raise ValueError("Item must be an instance of RTImageFrameRadiationAcquisitionSequenceItem") + self._RTImageFrameRadiationAcquisitionSequence.append(item) + if "RTImageFrameRadiationAcquisitionSequence" not in self._dataset: + self._dataset.RTImageFrameRadiationAcquisitionSequence = pydicom.Sequence() + self._dataset.RTImageFrameRadiationAcquisitionSequence.append(item.to_dataset()) + + @property + def RTBeamLimitingDeviceOpeningSequence(self) -> Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]: + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceOpeningSequence) == len(self._dataset.RTBeamLimitingDeviceOpeningSequence): + return self._RTBeamLimitingDeviceOpeningSequence + else: + return [RTBeamLimitingDeviceOpeningSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceOpeningSequence] + return None + + @RTBeamLimitingDeviceOpeningSequence.setter + def RTBeamLimitingDeviceOpeningSequence(self, value: Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceOpeningSequence = [] + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceOpeningSequence must be a list of RTBeamLimitingDeviceOpeningSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceOpeningSequence = value + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.clear() + self._dataset.RTBeamLimitingDeviceOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceOpening(self, item: RTBeamLimitingDeviceOpeningSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceOpeningSequenceItem") + self._RTBeamLimitingDeviceOpeningSequence.append(item) + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_3.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_3.py new file mode 100644 index 0000000..d39a6d2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_3.py @@ -0,0 +1,456 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .biopsy_target_sequence_item import BiopsyTargetSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .x_ray3_d_frame_type_sequence_item import XRay3DFrameTypeSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._BiopsyTargetSequence: List[BiopsyTargetSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._XRay3DFrameTypeSequence: List[XRay3DFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def BiopsyTargetSequence(self) -> Optional[List[BiopsyTargetSequenceItem]]: + if "BiopsyTargetSequence" in self._dataset: + if len(self._BiopsyTargetSequence) == len(self._dataset.BiopsyTargetSequence): + return self._BiopsyTargetSequence + else: + return [BiopsyTargetSequenceItem(x) for x in self._dataset.BiopsyTargetSequence] + return None + + @BiopsyTargetSequence.setter + def BiopsyTargetSequence(self, value: Optional[List[BiopsyTargetSequenceItem]]): + if value is None: + self._BiopsyTargetSequence = [] + if "BiopsyTargetSequence" in self._dataset: + del self._dataset.BiopsyTargetSequence + elif not isinstance(value, list) or not all(isinstance(item, BiopsyTargetSequenceItem) for item in value): + raise ValueError("BiopsyTargetSequence must be a list of BiopsyTargetSequenceItem objects") + else: + self._BiopsyTargetSequence = value + if "BiopsyTargetSequence" not in self._dataset: + self._dataset.BiopsyTargetSequence = pydicom.Sequence() + self._dataset.BiopsyTargetSequence.clear() + self._dataset.BiopsyTargetSequence.extend([item.to_dataset() for item in value]) + + def add_BiopsyTarget(self, item: BiopsyTargetSequenceItem): + if not isinstance(item, BiopsyTargetSequenceItem): + raise ValueError("Item must be an instance of BiopsyTargetSequenceItem") + self._BiopsyTargetSequence.append(item) + if "BiopsyTargetSequence" not in self._dataset: + self._dataset.BiopsyTargetSequence = pydicom.Sequence() + self._dataset.BiopsyTargetSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def XRay3DFrameTypeSequence(self) -> Optional[List[XRay3DFrameTypeSequenceItem]]: + if "XRay3DFrameTypeSequence" in self._dataset: + if len(self._XRay3DFrameTypeSequence) == len(self._dataset.XRay3DFrameTypeSequence): + return self._XRay3DFrameTypeSequence + else: + return [XRay3DFrameTypeSequenceItem(x) for x in self._dataset.XRay3DFrameTypeSequence] + return None + + @XRay3DFrameTypeSequence.setter + def XRay3DFrameTypeSequence(self, value: Optional[List[XRay3DFrameTypeSequenceItem]]): + if value is None: + self._XRay3DFrameTypeSequence = [] + if "XRay3DFrameTypeSequence" in self._dataset: + del self._dataset.XRay3DFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DFrameTypeSequenceItem) for item in value): + raise ValueError("XRay3DFrameTypeSequence must be a list of XRay3DFrameTypeSequenceItem objects") + else: + self._XRay3DFrameTypeSequence = value + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.clear() + self._dataset.XRay3DFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DFrameType(self, item: XRay3DFrameTypeSequenceItem): + if not isinstance(item, XRay3DFrameTypeSequenceItem): + raise ValueError("Item must be an instance of XRay3DFrameTypeSequenceItem") + self._XRay3DFrameTypeSequence.append(item) + if "XRay3DFrameTypeSequence" not in self._dataset: + self._dataset.XRay3DFrameTypeSequence = pydicom.Sequence() + self._dataset.XRay3DFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_30.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_30.py new file mode 100644 index 0000000..5584fa6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_30.py @@ -0,0 +1,676 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .irradiation_event_identification_sequence_item import ( + IrradiationEventIdentificationSequenceItem, +) +from .pet_frame_type_sequence_item import PETFrameTypeSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._IrradiationEventIdentificationSequence: List[IrradiationEventIdentificationSequenceItem] = [] + self._PETFrameTypeSequence: List[PETFrameTypeSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def IrradiationEventIdentificationSequence(self) -> Optional[List[IrradiationEventIdentificationSequenceItem]]: + if "IrradiationEventIdentificationSequence" in self._dataset: + if len(self._IrradiationEventIdentificationSequence) == len(self._dataset.IrradiationEventIdentificationSequence): + return self._IrradiationEventIdentificationSequence + else: + return [ + IrradiationEventIdentificationSequenceItem(x) for x in self._dataset.IrradiationEventIdentificationSequence + ] + return None + + @IrradiationEventIdentificationSequence.setter + def IrradiationEventIdentificationSequence(self, value: Optional[List[IrradiationEventIdentificationSequenceItem]]): + if value is None: + self._IrradiationEventIdentificationSequence = [] + if "IrradiationEventIdentificationSequence" in self._dataset: + del self._dataset.IrradiationEventIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, IrradiationEventIdentificationSequenceItem) for item in value + ): + raise ValueError( + "IrradiationEventIdentificationSequence must be a list of IrradiationEventIdentificationSequenceItem objects" + ) + else: + self._IrradiationEventIdentificationSequence = value + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.clear() + self._dataset.IrradiationEventIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_IrradiationEventIdentification(self, item: IrradiationEventIdentificationSequenceItem): + if not isinstance(item, IrradiationEventIdentificationSequenceItem): + raise ValueError("Item must be an instance of IrradiationEventIdentificationSequenceItem") + self._IrradiationEventIdentificationSequence.append(item) + if "IrradiationEventIdentificationSequence" not in self._dataset: + self._dataset.IrradiationEventIdentificationSequence = pydicom.Sequence() + self._dataset.IrradiationEventIdentificationSequence.append(item.to_dataset()) + + @property + def PETFrameTypeSequence(self) -> Optional[List[PETFrameTypeSequenceItem]]: + if "PETFrameTypeSequence" in self._dataset: + if len(self._PETFrameTypeSequence) == len(self._dataset.PETFrameTypeSequence): + return self._PETFrameTypeSequence + else: + return [PETFrameTypeSequenceItem(x) for x in self._dataset.PETFrameTypeSequence] + return None + + @PETFrameTypeSequence.setter + def PETFrameTypeSequence(self, value: Optional[List[PETFrameTypeSequenceItem]]): + if value is None: + self._PETFrameTypeSequence = [] + if "PETFrameTypeSequence" in self._dataset: + del self._dataset.PETFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameTypeSequenceItem) for item in value): + raise ValueError("PETFrameTypeSequence must be a list of PETFrameTypeSequenceItem objects") + else: + self._PETFrameTypeSequence = value + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.clear() + self._dataset.PETFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameType(self, item: PETFrameTypeSequenceItem): + if not isinstance(item, PETFrameTypeSequenceItem): + raise ValueError("Item must be an instance of PETFrameTypeSequenceItem") + self._PETFrameTypeSequence.append(item) + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_4.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_4.py new file mode 100644 index 0000000..973f70b --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_4.py @@ -0,0 +1,368 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .confocal_microscopy_image_frame_type_sequence_item import ( + ConfocalMicroscopyImageFrameTypeSequenceItem, +) +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .optical_path_identification_sequence_item import ( + OpticalPathIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .specimen_reference_sequence_item import SpecimenReferenceSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._SpecimenReferenceSequence: List[SpecimenReferenceSequenceItem] = [] + self._ConfocalMicroscopyImageFrameTypeSequence: List[ConfocalMicroscopyImageFrameTypeSequenceItem] = [] + self._OpticalPathIdentificationSequence: List[OpticalPathIdentificationSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def SpecimenReferenceSequence(self) -> Optional[List[SpecimenReferenceSequenceItem]]: + if "SpecimenReferenceSequence" in self._dataset: + if len(self._SpecimenReferenceSequence) == len(self._dataset.SpecimenReferenceSequence): + return self._SpecimenReferenceSequence + else: + return [SpecimenReferenceSequenceItem(x) for x in self._dataset.SpecimenReferenceSequence] + return None + + @SpecimenReferenceSequence.setter + def SpecimenReferenceSequence(self, value: Optional[List[SpecimenReferenceSequenceItem]]): + if value is None: + self._SpecimenReferenceSequence = [] + if "SpecimenReferenceSequence" in self._dataset: + del self._dataset.SpecimenReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenReferenceSequenceItem) for item in value): + raise ValueError("SpecimenReferenceSequence must be a list of SpecimenReferenceSequenceItem objects") + else: + self._SpecimenReferenceSequence = value + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.clear() + self._dataset.SpecimenReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenReference(self, item: SpecimenReferenceSequenceItem): + if not isinstance(item, SpecimenReferenceSequenceItem): + raise ValueError("Item must be an instance of SpecimenReferenceSequenceItem") + self._SpecimenReferenceSequence.append(item) + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.append(item.to_dataset()) + + @property + def ConfocalMicroscopyImageFrameTypeSequence(self) -> Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]: + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + if len(self._ConfocalMicroscopyImageFrameTypeSequence) == len( + self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ): + return self._ConfocalMicroscopyImageFrameTypeSequence + else: + return [ + ConfocalMicroscopyImageFrameTypeSequenceItem(x) + for x in self._dataset.ConfocalMicroscopyImageFrameTypeSequence + ] + return None + + @ConfocalMicroscopyImageFrameTypeSequence.setter + def ConfocalMicroscopyImageFrameTypeSequence(self, value: Optional[List[ConfocalMicroscopyImageFrameTypeSequenceItem]]): + if value is None: + self._ConfocalMicroscopyImageFrameTypeSequence = [] + if "ConfocalMicroscopyImageFrameTypeSequence" in self._dataset: + del self._dataset.ConfocalMicroscopyImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "ConfocalMicroscopyImageFrameTypeSequence must be a list of ConfocalMicroscopyImageFrameTypeSequenceItem" + " objects" + ) + else: + self._ConfocalMicroscopyImageFrameTypeSequence = value + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.clear() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ConfocalMicroscopyImageFrameType(self, item: ConfocalMicroscopyImageFrameTypeSequenceItem): + if not isinstance(item, ConfocalMicroscopyImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of ConfocalMicroscopyImageFrameTypeSequenceItem") + self._ConfocalMicroscopyImageFrameTypeSequence.append(item) + if "ConfocalMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.ConfocalMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.ConfocalMicroscopyImageFrameTypeSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentificationSequence(self) -> Optional[List[OpticalPathIdentificationSequenceItem]]: + if "OpticalPathIdentificationSequence" in self._dataset: + if len(self._OpticalPathIdentificationSequence) == len(self._dataset.OpticalPathIdentificationSequence): + return self._OpticalPathIdentificationSequence + else: + return [OpticalPathIdentificationSequenceItem(x) for x in self._dataset.OpticalPathIdentificationSequence] + return None + + @OpticalPathIdentificationSequence.setter + def OpticalPathIdentificationSequence(self, value: Optional[List[OpticalPathIdentificationSequenceItem]]): + if value is None: + self._OpticalPathIdentificationSequence = [] + if "OpticalPathIdentificationSequence" in self._dataset: + del self._dataset.OpticalPathIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathIdentificationSequenceItem) for item in value): + raise ValueError( + "OpticalPathIdentificationSequence must be a list of OpticalPathIdentificationSequenceItem objects" + ) + else: + self._OpticalPathIdentificationSequence = value + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.clear() + self._dataset.OpticalPathIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPathIdentification(self, item: OpticalPathIdentificationSequenceItem): + if not isinstance(item, OpticalPathIdentificationSequenceItem): + raise ValueError("Item must be an instance of OpticalPathIdentificationSequenceItem") + self._OpticalPathIdentificationSequence.append(item) + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_5.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_5.py new file mode 100644 index 0000000..d80715b --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_5.py @@ -0,0 +1,336 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .optical_path_identification_sequence_item import ( + OpticalPathIdentificationSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .specimen_reference_sequence_item import SpecimenReferenceSequenceItem +from .whole_slide_microscopy_image_frame_type_sequence_item import ( + WholeSlideMicroscopyImageFrameTypeSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._WholeSlideMicroscopyImageFrameTypeSequence: List[WholeSlideMicroscopyImageFrameTypeSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._SpecimenReferenceSequence: List[SpecimenReferenceSequenceItem] = [] + self._OpticalPathIdentificationSequence: List[OpticalPathIdentificationSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def WholeSlideMicroscopyImageFrameTypeSequence(self) -> Optional[List[WholeSlideMicroscopyImageFrameTypeSequenceItem]]: + if "WholeSlideMicroscopyImageFrameTypeSequence" in self._dataset: + if len(self._WholeSlideMicroscopyImageFrameTypeSequence) == len( + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence + ): + return self._WholeSlideMicroscopyImageFrameTypeSequence + else: + return [ + WholeSlideMicroscopyImageFrameTypeSequenceItem(x) + for x in self._dataset.WholeSlideMicroscopyImageFrameTypeSequence + ] + return None + + @WholeSlideMicroscopyImageFrameTypeSequence.setter + def WholeSlideMicroscopyImageFrameTypeSequence( + self, value: Optional[List[WholeSlideMicroscopyImageFrameTypeSequenceItem]] + ): + if value is None: + self._WholeSlideMicroscopyImageFrameTypeSequence = [] + if "WholeSlideMicroscopyImageFrameTypeSequence" in self._dataset: + del self._dataset.WholeSlideMicroscopyImageFrameTypeSequence + elif not isinstance(value, list) or not all( + isinstance(item, WholeSlideMicroscopyImageFrameTypeSequenceItem) for item in value + ): + raise ValueError( + "WholeSlideMicroscopyImageFrameTypeSequence must be a list of WholeSlideMicroscopyImageFrameTypeSequenceItem" + " objects" + ) + else: + self._WholeSlideMicroscopyImageFrameTypeSequence = value + if "WholeSlideMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence.clear() + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_WholeSlideMicroscopyImageFrameType(self, item: WholeSlideMicroscopyImageFrameTypeSequenceItem): + if not isinstance(item, WholeSlideMicroscopyImageFrameTypeSequenceItem): + raise ValueError("Item must be an instance of WholeSlideMicroscopyImageFrameTypeSequenceItem") + self._WholeSlideMicroscopyImageFrameTypeSequence.append(item) + if "WholeSlideMicroscopyImageFrameTypeSequence" not in self._dataset: + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence = pydicom.Sequence() + self._dataset.WholeSlideMicroscopyImageFrameTypeSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def SpecimenReferenceSequence(self) -> Optional[List[SpecimenReferenceSequenceItem]]: + if "SpecimenReferenceSequence" in self._dataset: + if len(self._SpecimenReferenceSequence) == len(self._dataset.SpecimenReferenceSequence): + return self._SpecimenReferenceSequence + else: + return [SpecimenReferenceSequenceItem(x) for x in self._dataset.SpecimenReferenceSequence] + return None + + @SpecimenReferenceSequence.setter + def SpecimenReferenceSequence(self, value: Optional[List[SpecimenReferenceSequenceItem]]): + if value is None: + self._SpecimenReferenceSequence = [] + if "SpecimenReferenceSequence" in self._dataset: + del self._dataset.SpecimenReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenReferenceSequenceItem) for item in value): + raise ValueError("SpecimenReferenceSequence must be a list of SpecimenReferenceSequenceItem objects") + else: + self._SpecimenReferenceSequence = value + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.clear() + self._dataset.SpecimenReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenReference(self, item: SpecimenReferenceSequenceItem): + if not isinstance(item, SpecimenReferenceSequenceItem): + raise ValueError("Item must be an instance of SpecimenReferenceSequenceItem") + self._SpecimenReferenceSequence.append(item) + if "SpecimenReferenceSequence" not in self._dataset: + self._dataset.SpecimenReferenceSequence = pydicom.Sequence() + self._dataset.SpecimenReferenceSequence.append(item.to_dataset()) + + @property + def OpticalPathIdentificationSequence(self) -> Optional[List[OpticalPathIdentificationSequenceItem]]: + if "OpticalPathIdentificationSequence" in self._dataset: + if len(self._OpticalPathIdentificationSequence) == len(self._dataset.OpticalPathIdentificationSequence): + return self._OpticalPathIdentificationSequence + else: + return [OpticalPathIdentificationSequenceItem(x) for x in self._dataset.OpticalPathIdentificationSequence] + return None + + @OpticalPathIdentificationSequence.setter + def OpticalPathIdentificationSequence(self, value: Optional[List[OpticalPathIdentificationSequenceItem]]): + if value is None: + self._OpticalPathIdentificationSequence = [] + if "OpticalPathIdentificationSequence" in self._dataset: + del self._dataset.OpticalPathIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathIdentificationSequenceItem) for item in value): + raise ValueError( + "OpticalPathIdentificationSequence must be a list of OpticalPathIdentificationSequenceItem objects" + ) + else: + self._OpticalPathIdentificationSequence = value + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.clear() + self._dataset.OpticalPathIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPathIdentification(self, item: OpticalPathIdentificationSequenceItem): + if not isinstance(item, OpticalPathIdentificationSequenceItem): + raise ValueError("Item must be an instance of OpticalPathIdentificationSequenceItem") + self._OpticalPathIdentificationSequence.append(item) + if "OpticalPathIdentificationSequence" not in self._dataset: + self._dataset.OpticalPathIdentificationSequence = pydicom.Sequence() + self._dataset.OpticalPathIdentificationSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_6.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_6.py new file mode 100644 index 0000000..7bdb696 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_6.py @@ -0,0 +1,662 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .parametric_map_frame_type_sequence_item import ParametricMapFrameTypeSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_slide_sequence_item import PlanePositionSlideSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .stored_value_color_range_sequence_item import StoredValueColorRangeSequenceItem +from .unassigned_per_frame_converted_attributes_sequence_item import ( + UnassignedPerFrameConvertedAttributesSequenceItem, +) +from .unassigned_shared_converted_attributes_sequence_item import ( + UnassignedSharedConvertedAttributesSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._UnassignedSharedConvertedAttributesSequence: List[UnassignedSharedConvertedAttributesSequenceItem] = [] + self._UnassignedPerFrameConvertedAttributesSequence: List[UnassignedPerFrameConvertedAttributesSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._StoredValueColorRangeSequence: List[StoredValueColorRangeSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._ParametricMapFrameTypeSequence: List[ParametricMapFrameTypeSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._PlanePositionSlideSequence: List[PlanePositionSlideSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def UnassignedSharedConvertedAttributesSequence(self) -> Optional[List[UnassignedSharedConvertedAttributesSequenceItem]]: + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedSharedConvertedAttributesSequence) == len( + self._dataset.UnassignedSharedConvertedAttributesSequence + ): + return self._UnassignedSharedConvertedAttributesSequence + else: + return [ + UnassignedSharedConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedSharedConvertedAttributesSequence + ] + return None + + @UnassignedSharedConvertedAttributesSequence.setter + def UnassignedSharedConvertedAttributesSequence( + self, value: Optional[List[UnassignedSharedConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedSharedConvertedAttributesSequence = [] + if "UnassignedSharedConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedSharedConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedSharedConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedSharedConvertedAttributesSequence must be a list of UnassignedSharedConvertedAttributesSequenceItem" + " objects" + ) + else: + self._UnassignedSharedConvertedAttributesSequence = value + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.clear() + self._dataset.UnassignedSharedConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedSharedConvertedAttributes(self, item: UnassignedSharedConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedSharedConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedSharedConvertedAttributesSequenceItem") + self._UnassignedSharedConvertedAttributesSequence.append(item) + if "UnassignedSharedConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedSharedConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedSharedConvertedAttributesSequence.append(item.to_dataset()) + + @property + def UnassignedPerFrameConvertedAttributesSequence( + self, + ) -> Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]]: + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + if len(self._UnassignedPerFrameConvertedAttributesSequence) == len( + self._dataset.UnassignedPerFrameConvertedAttributesSequence + ): + return self._UnassignedPerFrameConvertedAttributesSequence + else: + return [ + UnassignedPerFrameConvertedAttributesSequenceItem(x) + for x in self._dataset.UnassignedPerFrameConvertedAttributesSequence + ] + return None + + @UnassignedPerFrameConvertedAttributesSequence.setter + def UnassignedPerFrameConvertedAttributesSequence( + self, value: Optional[List[UnassignedPerFrameConvertedAttributesSequenceItem]] + ): + if value is None: + self._UnassignedPerFrameConvertedAttributesSequence = [] + if "UnassignedPerFrameConvertedAttributesSequence" in self._dataset: + del self._dataset.UnassignedPerFrameConvertedAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem) for item in value + ): + raise ValueError( + "UnassignedPerFrameConvertedAttributesSequence must be a list of" + " UnassignedPerFrameConvertedAttributesSequenceItem objects" + ) + else: + self._UnassignedPerFrameConvertedAttributesSequence = value + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.clear() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_UnassignedPerFrameConvertedAttributes(self, item: UnassignedPerFrameConvertedAttributesSequenceItem): + if not isinstance(item, UnassignedPerFrameConvertedAttributesSequenceItem): + raise ValueError("Item must be an instance of UnassignedPerFrameConvertedAttributesSequenceItem") + self._UnassignedPerFrameConvertedAttributesSequence.append(item) + if "UnassignedPerFrameConvertedAttributesSequence" not in self._dataset: + self._dataset.UnassignedPerFrameConvertedAttributesSequence = pydicom.Sequence() + self._dataset.UnassignedPerFrameConvertedAttributesSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def StoredValueColorRangeSequence(self) -> Optional[List[StoredValueColorRangeSequenceItem]]: + if "StoredValueColorRangeSequence" in self._dataset: + if len(self._StoredValueColorRangeSequence) == len(self._dataset.StoredValueColorRangeSequence): + return self._StoredValueColorRangeSequence + else: + return [StoredValueColorRangeSequenceItem(x) for x in self._dataset.StoredValueColorRangeSequence] + return None + + @StoredValueColorRangeSequence.setter + def StoredValueColorRangeSequence(self, value: Optional[List[StoredValueColorRangeSequenceItem]]): + if value is None: + self._StoredValueColorRangeSequence = [] + if "StoredValueColorRangeSequence" in self._dataset: + del self._dataset.StoredValueColorRangeSequence + elif not isinstance(value, list) or not all(isinstance(item, StoredValueColorRangeSequenceItem) for item in value): + raise ValueError("StoredValueColorRangeSequence must be a list of StoredValueColorRangeSequenceItem objects") + else: + self._StoredValueColorRangeSequence = value + if "StoredValueColorRangeSequence" not in self._dataset: + self._dataset.StoredValueColorRangeSequence = pydicom.Sequence() + self._dataset.StoredValueColorRangeSequence.clear() + self._dataset.StoredValueColorRangeSequence.extend([item.to_dataset() for item in value]) + + def add_StoredValueColorRange(self, item: StoredValueColorRangeSequenceItem): + if not isinstance(item, StoredValueColorRangeSequenceItem): + raise ValueError("Item must be an instance of StoredValueColorRangeSequenceItem") + self._StoredValueColorRangeSequence.append(item) + if "StoredValueColorRangeSequence" not in self._dataset: + self._dataset.StoredValueColorRangeSequence = pydicom.Sequence() + self._dataset.StoredValueColorRangeSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def ParametricMapFrameTypeSequence(self) -> Optional[List[ParametricMapFrameTypeSequenceItem]]: + if "ParametricMapFrameTypeSequence" in self._dataset: + if len(self._ParametricMapFrameTypeSequence) == len(self._dataset.ParametricMapFrameTypeSequence): + return self._ParametricMapFrameTypeSequence + else: + return [ParametricMapFrameTypeSequenceItem(x) for x in self._dataset.ParametricMapFrameTypeSequence] + return None + + @ParametricMapFrameTypeSequence.setter + def ParametricMapFrameTypeSequence(self, value: Optional[List[ParametricMapFrameTypeSequenceItem]]): + if value is None: + self._ParametricMapFrameTypeSequence = [] + if "ParametricMapFrameTypeSequence" in self._dataset: + del self._dataset.ParametricMapFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, ParametricMapFrameTypeSequenceItem) for item in value): + raise ValueError("ParametricMapFrameTypeSequence must be a list of ParametricMapFrameTypeSequenceItem objects") + else: + self._ParametricMapFrameTypeSequence = value + if "ParametricMapFrameTypeSequence" not in self._dataset: + self._dataset.ParametricMapFrameTypeSequence = pydicom.Sequence() + self._dataset.ParametricMapFrameTypeSequence.clear() + self._dataset.ParametricMapFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ParametricMapFrameType(self, item: ParametricMapFrameTypeSequenceItem): + if not isinstance(item, ParametricMapFrameTypeSequenceItem): + raise ValueError("Item must be an instance of ParametricMapFrameTypeSequenceItem") + self._ParametricMapFrameTypeSequence.append(item) + if "ParametricMapFrameTypeSequence" not in self._dataset: + self._dataset.ParametricMapFrameTypeSequence = pydicom.Sequence() + self._dataset.ParametricMapFrameTypeSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def PlanePositionSlideSequence(self) -> Optional[List[PlanePositionSlideSequenceItem]]: + if "PlanePositionSlideSequence" in self._dataset: + if len(self._PlanePositionSlideSequence) == len(self._dataset.PlanePositionSlideSequence): + return self._PlanePositionSlideSequence + else: + return [PlanePositionSlideSequenceItem(x) for x in self._dataset.PlanePositionSlideSequence] + return None + + @PlanePositionSlideSequence.setter + def PlanePositionSlideSequence(self, value: Optional[List[PlanePositionSlideSequenceItem]]): + if value is None: + self._PlanePositionSlideSequence = [] + if "PlanePositionSlideSequence" in self._dataset: + del self._dataset.PlanePositionSlideSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSlideSequenceItem) for item in value): + raise ValueError("PlanePositionSlideSequence must be a list of PlanePositionSlideSequenceItem objects") + else: + self._PlanePositionSlideSequence = value + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.clear() + self._dataset.PlanePositionSlideSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionSlide(self, item: PlanePositionSlideSequenceItem): + if not isinstance(item, PlanePositionSlideSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSlideSequenceItem") + self._PlanePositionSlideSequence.append(item) + if "PlanePositionSlideSequence" not in self._dataset: + self._dataset.PlanePositionSlideSequence = pydicom.Sequence() + self._dataset.PlanePositionSlideSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_8.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_8.py new file mode 100644 index 0000000..6e92560 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_8.py @@ -0,0 +1,746 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_anatomy_sequence_item import FrameAnatomySequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .patient_physiological_state_sequence_item import ( + PatientPhysiologicalStateSequenceItem, +) +from .pet_detector_motion_details_sequence_item import ( + PETDetectorMotionDetailsSequenceItem, +) +from .pet_frame_acquisition_sequence_item import PETFrameAcquisitionSequenceItem +from .pet_frame_correction_factors_sequence_item import ( + PETFrameCorrectionFactorsSequenceItem, +) +from .pet_frame_type_sequence_item import PETFrameTypeSequenceItem +from .pet_position_sequence_item import PETPositionSequenceItem +from .pet_reconstruction_sequence_item import PETReconstructionSequenceItem +from .pet_table_dynamics_sequence_item import PETTableDynamicsSequenceItem +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .pixel_value_transformation_sequence_item import ( + PixelValueTransformationSequenceItem, +) +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .radiopharmaceutical_usage_sequence_item import ( + RadiopharmaceuticalUsageSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._PETFrameAcquisitionSequence: List[PETFrameAcquisitionSequenceItem] = [] + self._PETDetectorMotionDetailsSequence: List[PETDetectorMotionDetailsSequenceItem] = [] + self._PETTableDynamicsSequence: List[PETTableDynamicsSequenceItem] = [] + self._PETPositionSequence: List[PETPositionSequenceItem] = [] + self._PETFrameCorrectionFactorsSequence: List[PETFrameCorrectionFactorsSequenceItem] = [] + self._RadiopharmaceuticalUsageSequence: List[RadiopharmaceuticalUsageSequenceItem] = [] + self._PETReconstructionSequence: List[PETReconstructionSequenceItem] = [] + self._PETFrameTypeSequence: List[PETFrameTypeSequenceItem] = [] + self._PatientPhysiologicalStateSequence: List[PatientPhysiologicalStateSequenceItem] = [] + self._FrameAnatomySequence: List[FrameAnatomySequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._PixelValueTransformationSequence: List[PixelValueTransformationSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def PETFrameAcquisitionSequence(self) -> Optional[List[PETFrameAcquisitionSequenceItem]]: + if "PETFrameAcquisitionSequence" in self._dataset: + if len(self._PETFrameAcquisitionSequence) == len(self._dataset.PETFrameAcquisitionSequence): + return self._PETFrameAcquisitionSequence + else: + return [PETFrameAcquisitionSequenceItem(x) for x in self._dataset.PETFrameAcquisitionSequence] + return None + + @PETFrameAcquisitionSequence.setter + def PETFrameAcquisitionSequence(self, value: Optional[List[PETFrameAcquisitionSequenceItem]]): + if value is None: + self._PETFrameAcquisitionSequence = [] + if "PETFrameAcquisitionSequence" in self._dataset: + del self._dataset.PETFrameAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameAcquisitionSequenceItem) for item in value): + raise ValueError("PETFrameAcquisitionSequence must be a list of PETFrameAcquisitionSequenceItem objects") + else: + self._PETFrameAcquisitionSequence = value + if "PETFrameAcquisitionSequence" not in self._dataset: + self._dataset.PETFrameAcquisitionSequence = pydicom.Sequence() + self._dataset.PETFrameAcquisitionSequence.clear() + self._dataset.PETFrameAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameAcquisition(self, item: PETFrameAcquisitionSequenceItem): + if not isinstance(item, PETFrameAcquisitionSequenceItem): + raise ValueError("Item must be an instance of PETFrameAcquisitionSequenceItem") + self._PETFrameAcquisitionSequence.append(item) + if "PETFrameAcquisitionSequence" not in self._dataset: + self._dataset.PETFrameAcquisitionSequence = pydicom.Sequence() + self._dataset.PETFrameAcquisitionSequence.append(item.to_dataset()) + + @property + def PETDetectorMotionDetailsSequence(self) -> Optional[List[PETDetectorMotionDetailsSequenceItem]]: + if "PETDetectorMotionDetailsSequence" in self._dataset: + if len(self._PETDetectorMotionDetailsSequence) == len(self._dataset.PETDetectorMotionDetailsSequence): + return self._PETDetectorMotionDetailsSequence + else: + return [PETDetectorMotionDetailsSequenceItem(x) for x in self._dataset.PETDetectorMotionDetailsSequence] + return None + + @PETDetectorMotionDetailsSequence.setter + def PETDetectorMotionDetailsSequence(self, value: Optional[List[PETDetectorMotionDetailsSequenceItem]]): + if value is None: + self._PETDetectorMotionDetailsSequence = [] + if "PETDetectorMotionDetailsSequence" in self._dataset: + del self._dataset.PETDetectorMotionDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, PETDetectorMotionDetailsSequenceItem) for item in value): + raise ValueError("PETDetectorMotionDetailsSequence must be a list of PETDetectorMotionDetailsSequenceItem objects") + else: + self._PETDetectorMotionDetailsSequence = value + if "PETDetectorMotionDetailsSequence" not in self._dataset: + self._dataset.PETDetectorMotionDetailsSequence = pydicom.Sequence() + self._dataset.PETDetectorMotionDetailsSequence.clear() + self._dataset.PETDetectorMotionDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_PETDetectorMotionDetails(self, item: PETDetectorMotionDetailsSequenceItem): + if not isinstance(item, PETDetectorMotionDetailsSequenceItem): + raise ValueError("Item must be an instance of PETDetectorMotionDetailsSequenceItem") + self._PETDetectorMotionDetailsSequence.append(item) + if "PETDetectorMotionDetailsSequence" not in self._dataset: + self._dataset.PETDetectorMotionDetailsSequence = pydicom.Sequence() + self._dataset.PETDetectorMotionDetailsSequence.append(item.to_dataset()) + + @property + def PETTableDynamicsSequence(self) -> Optional[List[PETTableDynamicsSequenceItem]]: + if "PETTableDynamicsSequence" in self._dataset: + if len(self._PETTableDynamicsSequence) == len(self._dataset.PETTableDynamicsSequence): + return self._PETTableDynamicsSequence + else: + return [PETTableDynamicsSequenceItem(x) for x in self._dataset.PETTableDynamicsSequence] + return None + + @PETTableDynamicsSequence.setter + def PETTableDynamicsSequence(self, value: Optional[List[PETTableDynamicsSequenceItem]]): + if value is None: + self._PETTableDynamicsSequence = [] + if "PETTableDynamicsSequence" in self._dataset: + del self._dataset.PETTableDynamicsSequence + elif not isinstance(value, list) or not all(isinstance(item, PETTableDynamicsSequenceItem) for item in value): + raise ValueError("PETTableDynamicsSequence must be a list of PETTableDynamicsSequenceItem objects") + else: + self._PETTableDynamicsSequence = value + if "PETTableDynamicsSequence" not in self._dataset: + self._dataset.PETTableDynamicsSequence = pydicom.Sequence() + self._dataset.PETTableDynamicsSequence.clear() + self._dataset.PETTableDynamicsSequence.extend([item.to_dataset() for item in value]) + + def add_PETTableDynamics(self, item: PETTableDynamicsSequenceItem): + if not isinstance(item, PETTableDynamicsSequenceItem): + raise ValueError("Item must be an instance of PETTableDynamicsSequenceItem") + self._PETTableDynamicsSequence.append(item) + if "PETTableDynamicsSequence" not in self._dataset: + self._dataset.PETTableDynamicsSequence = pydicom.Sequence() + self._dataset.PETTableDynamicsSequence.append(item.to_dataset()) + + @property + def PETPositionSequence(self) -> Optional[List[PETPositionSequenceItem]]: + if "PETPositionSequence" in self._dataset: + if len(self._PETPositionSequence) == len(self._dataset.PETPositionSequence): + return self._PETPositionSequence + else: + return [PETPositionSequenceItem(x) for x in self._dataset.PETPositionSequence] + return None + + @PETPositionSequence.setter + def PETPositionSequence(self, value: Optional[List[PETPositionSequenceItem]]): + if value is None: + self._PETPositionSequence = [] + if "PETPositionSequence" in self._dataset: + del self._dataset.PETPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PETPositionSequenceItem) for item in value): + raise ValueError("PETPositionSequence must be a list of PETPositionSequenceItem objects") + else: + self._PETPositionSequence = value + if "PETPositionSequence" not in self._dataset: + self._dataset.PETPositionSequence = pydicom.Sequence() + self._dataset.PETPositionSequence.clear() + self._dataset.PETPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PETPosition(self, item: PETPositionSequenceItem): + if not isinstance(item, PETPositionSequenceItem): + raise ValueError("Item must be an instance of PETPositionSequenceItem") + self._PETPositionSequence.append(item) + if "PETPositionSequence" not in self._dataset: + self._dataset.PETPositionSequence = pydicom.Sequence() + self._dataset.PETPositionSequence.append(item.to_dataset()) + + @property + def PETFrameCorrectionFactorsSequence(self) -> Optional[List[PETFrameCorrectionFactorsSequenceItem]]: + if "PETFrameCorrectionFactorsSequence" in self._dataset: + if len(self._PETFrameCorrectionFactorsSequence) == len(self._dataset.PETFrameCorrectionFactorsSequence): + return self._PETFrameCorrectionFactorsSequence + else: + return [PETFrameCorrectionFactorsSequenceItem(x) for x in self._dataset.PETFrameCorrectionFactorsSequence] + return None + + @PETFrameCorrectionFactorsSequence.setter + def PETFrameCorrectionFactorsSequence(self, value: Optional[List[PETFrameCorrectionFactorsSequenceItem]]): + if value is None: + self._PETFrameCorrectionFactorsSequence = [] + if "PETFrameCorrectionFactorsSequence" in self._dataset: + del self._dataset.PETFrameCorrectionFactorsSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameCorrectionFactorsSequenceItem) for item in value): + raise ValueError( + "PETFrameCorrectionFactorsSequence must be a list of PETFrameCorrectionFactorsSequenceItem objects" + ) + else: + self._PETFrameCorrectionFactorsSequence = value + if "PETFrameCorrectionFactorsSequence" not in self._dataset: + self._dataset.PETFrameCorrectionFactorsSequence = pydicom.Sequence() + self._dataset.PETFrameCorrectionFactorsSequence.clear() + self._dataset.PETFrameCorrectionFactorsSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameCorrectionFactors(self, item: PETFrameCorrectionFactorsSequenceItem): + if not isinstance(item, PETFrameCorrectionFactorsSequenceItem): + raise ValueError("Item must be an instance of PETFrameCorrectionFactorsSequenceItem") + self._PETFrameCorrectionFactorsSequence.append(item) + if "PETFrameCorrectionFactorsSequence" not in self._dataset: + self._dataset.PETFrameCorrectionFactorsSequence = pydicom.Sequence() + self._dataset.PETFrameCorrectionFactorsSequence.append(item.to_dataset()) + + @property + def RadiopharmaceuticalUsageSequence(self) -> Optional[List[RadiopharmaceuticalUsageSequenceItem]]: + if "RadiopharmaceuticalUsageSequence" in self._dataset: + if len(self._RadiopharmaceuticalUsageSequence) == len(self._dataset.RadiopharmaceuticalUsageSequence): + return self._RadiopharmaceuticalUsageSequence + else: + return [RadiopharmaceuticalUsageSequenceItem(x) for x in self._dataset.RadiopharmaceuticalUsageSequence] + return None + + @RadiopharmaceuticalUsageSequence.setter + def RadiopharmaceuticalUsageSequence(self, value: Optional[List[RadiopharmaceuticalUsageSequenceItem]]): + if value is None: + self._RadiopharmaceuticalUsageSequence = [] + if "RadiopharmaceuticalUsageSequence" in self._dataset: + del self._dataset.RadiopharmaceuticalUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiopharmaceuticalUsageSequenceItem) for item in value): + raise ValueError("RadiopharmaceuticalUsageSequence must be a list of RadiopharmaceuticalUsageSequenceItem objects") + else: + self._RadiopharmaceuticalUsageSequence = value + if "RadiopharmaceuticalUsageSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalUsageSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalUsageSequence.clear() + self._dataset.RadiopharmaceuticalUsageSequence.extend([item.to_dataset() for item in value]) + + def add_RadiopharmaceuticalUsage(self, item: RadiopharmaceuticalUsageSequenceItem): + if not isinstance(item, RadiopharmaceuticalUsageSequenceItem): + raise ValueError("Item must be an instance of RadiopharmaceuticalUsageSequenceItem") + self._RadiopharmaceuticalUsageSequence.append(item) + if "RadiopharmaceuticalUsageSequence" not in self._dataset: + self._dataset.RadiopharmaceuticalUsageSequence = pydicom.Sequence() + self._dataset.RadiopharmaceuticalUsageSequence.append(item.to_dataset()) + + @property + def PETReconstructionSequence(self) -> Optional[List[PETReconstructionSequenceItem]]: + if "PETReconstructionSequence" in self._dataset: + if len(self._PETReconstructionSequence) == len(self._dataset.PETReconstructionSequence): + return self._PETReconstructionSequence + else: + return [PETReconstructionSequenceItem(x) for x in self._dataset.PETReconstructionSequence] + return None + + @PETReconstructionSequence.setter + def PETReconstructionSequence(self, value: Optional[List[PETReconstructionSequenceItem]]): + if value is None: + self._PETReconstructionSequence = [] + if "PETReconstructionSequence" in self._dataset: + del self._dataset.PETReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, PETReconstructionSequenceItem) for item in value): + raise ValueError("PETReconstructionSequence must be a list of PETReconstructionSequenceItem objects") + else: + self._PETReconstructionSequence = value + if "PETReconstructionSequence" not in self._dataset: + self._dataset.PETReconstructionSequence = pydicom.Sequence() + self._dataset.PETReconstructionSequence.clear() + self._dataset.PETReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_PETReconstruction(self, item: PETReconstructionSequenceItem): + if not isinstance(item, PETReconstructionSequenceItem): + raise ValueError("Item must be an instance of PETReconstructionSequenceItem") + self._PETReconstructionSequence.append(item) + if "PETReconstructionSequence" not in self._dataset: + self._dataset.PETReconstructionSequence = pydicom.Sequence() + self._dataset.PETReconstructionSequence.append(item.to_dataset()) + + @property + def PETFrameTypeSequence(self) -> Optional[List[PETFrameTypeSequenceItem]]: + if "PETFrameTypeSequence" in self._dataset: + if len(self._PETFrameTypeSequence) == len(self._dataset.PETFrameTypeSequence): + return self._PETFrameTypeSequence + else: + return [PETFrameTypeSequenceItem(x) for x in self._dataset.PETFrameTypeSequence] + return None + + @PETFrameTypeSequence.setter + def PETFrameTypeSequence(self, value: Optional[List[PETFrameTypeSequenceItem]]): + if value is None: + self._PETFrameTypeSequence = [] + if "PETFrameTypeSequence" in self._dataset: + del self._dataset.PETFrameTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, PETFrameTypeSequenceItem) for item in value): + raise ValueError("PETFrameTypeSequence must be a list of PETFrameTypeSequenceItem objects") + else: + self._PETFrameTypeSequence = value + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.clear() + self._dataset.PETFrameTypeSequence.extend([item.to_dataset() for item in value]) + + def add_PETFrameType(self, item: PETFrameTypeSequenceItem): + if not isinstance(item, PETFrameTypeSequenceItem): + raise ValueError("Item must be an instance of PETFrameTypeSequenceItem") + self._PETFrameTypeSequence.append(item) + if "PETFrameTypeSequence" not in self._dataset: + self._dataset.PETFrameTypeSequence = pydicom.Sequence() + self._dataset.PETFrameTypeSequence.append(item.to_dataset()) + + @property + def PatientPhysiologicalStateSequence(self) -> Optional[List[PatientPhysiologicalStateSequenceItem]]: + if "PatientPhysiologicalStateSequence" in self._dataset: + if len(self._PatientPhysiologicalStateSequence) == len(self._dataset.PatientPhysiologicalStateSequence): + return self._PatientPhysiologicalStateSequence + else: + return [PatientPhysiologicalStateSequenceItem(x) for x in self._dataset.PatientPhysiologicalStateSequence] + return None + + @PatientPhysiologicalStateSequence.setter + def PatientPhysiologicalStateSequence(self, value: Optional[List[PatientPhysiologicalStateSequenceItem]]): + if value is None: + self._PatientPhysiologicalStateSequence = [] + if "PatientPhysiologicalStateSequence" in self._dataset: + del self._dataset.PatientPhysiologicalStateSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientPhysiologicalStateSequenceItem) for item in value): + raise ValueError( + "PatientPhysiologicalStateSequence must be a list of PatientPhysiologicalStateSequenceItem objects" + ) + else: + self._PatientPhysiologicalStateSequence = value + if "PatientPhysiologicalStateSequence" not in self._dataset: + self._dataset.PatientPhysiologicalStateSequence = pydicom.Sequence() + self._dataset.PatientPhysiologicalStateSequence.clear() + self._dataset.PatientPhysiologicalStateSequence.extend([item.to_dataset() for item in value]) + + def add_PatientPhysiologicalState(self, item: PatientPhysiologicalStateSequenceItem): + if not isinstance(item, PatientPhysiologicalStateSequenceItem): + raise ValueError("Item must be an instance of PatientPhysiologicalStateSequenceItem") + self._PatientPhysiologicalStateSequence.append(item) + if "PatientPhysiologicalStateSequence" not in self._dataset: + self._dataset.PatientPhysiologicalStateSequence = pydicom.Sequence() + self._dataset.PatientPhysiologicalStateSequence.append(item.to_dataset()) + + @property + def FrameAnatomySequence(self) -> Optional[List[FrameAnatomySequenceItem]]: + if "FrameAnatomySequence" in self._dataset: + if len(self._FrameAnatomySequence) == len(self._dataset.FrameAnatomySequence): + return self._FrameAnatomySequence + else: + return [FrameAnatomySequenceItem(x) for x in self._dataset.FrameAnatomySequence] + return None + + @FrameAnatomySequence.setter + def FrameAnatomySequence(self, value: Optional[List[FrameAnatomySequenceItem]]): + if value is None: + self._FrameAnatomySequence = [] + if "FrameAnatomySequence" in self._dataset: + del self._dataset.FrameAnatomySequence + elif not isinstance(value, list) or not all(isinstance(item, FrameAnatomySequenceItem) for item in value): + raise ValueError("FrameAnatomySequence must be a list of FrameAnatomySequenceItem objects") + else: + self._FrameAnatomySequence = value + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.clear() + self._dataset.FrameAnatomySequence.extend([item.to_dataset() for item in value]) + + def add_FrameAnatomy(self, item: FrameAnatomySequenceItem): + if not isinstance(item, FrameAnatomySequenceItem): + raise ValueError("Item must be an instance of FrameAnatomySequenceItem") + self._FrameAnatomySequence.append(item) + if "FrameAnatomySequence" not in self._dataset: + self._dataset.FrameAnatomySequence = pydicom.Sequence() + self._dataset.FrameAnatomySequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def PixelValueTransformationSequence(self) -> Optional[List[PixelValueTransformationSequenceItem]]: + if "PixelValueTransformationSequence" in self._dataset: + if len(self._PixelValueTransformationSequence) == len(self._dataset.PixelValueTransformationSequence): + return self._PixelValueTransformationSequence + else: + return [PixelValueTransformationSequenceItem(x) for x in self._dataset.PixelValueTransformationSequence] + return None + + @PixelValueTransformationSequence.setter + def PixelValueTransformationSequence(self, value: Optional[List[PixelValueTransformationSequenceItem]]): + if value is None: + self._PixelValueTransformationSequence = [] + if "PixelValueTransformationSequence" in self._dataset: + del self._dataset.PixelValueTransformationSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelValueTransformationSequenceItem) for item in value): + raise ValueError("PixelValueTransformationSequence must be a list of PixelValueTransformationSequenceItem objects") + else: + self._PixelValueTransformationSequence = value + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.clear() + self._dataset.PixelValueTransformationSequence.extend([item.to_dataset() for item in value]) + + def add_PixelValueTransformation(self, item: PixelValueTransformationSequenceItem): + if not isinstance(item, PixelValueTransformationSequenceItem): + raise ValueError("Item must be an instance of PixelValueTransformationSequenceItem") + self._PixelValueTransformationSequence.append(item) + if "PixelValueTransformationSequence" not in self._dataset: + self._dataset.PixelValueTransformationSequence = pydicom.Sequence() + self._dataset.PixelValueTransformationSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_9.py b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_9.py new file mode 100644 index 0000000..f169369 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shared_functional_groups_sequence_item_9.py @@ -0,0 +1,634 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cardiac_synchronization_sequence_item import CardiacSynchronizationSequenceItem +from .contrast_bolus_usage_sequence_item import ContrastBolusUsageSequenceItem +from .derivation_image_sequence_item import DerivationImageSequenceItem +from .frame_content_sequence_item import FrameContentSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .frame_voilut_sequence_item import FrameVOILUTSequenceItem +from .image_data_type_sequence_item import ImageDataTypeSequenceItem +from .patient_orientation_in_frame_sequence_item import ( + PatientOrientationInFrameSequenceItem, +) +from .pixel_measures_sequence_item import PixelMeasuresSequenceItem +from .plane_orientation_sequence_item import PlaneOrientationSequenceItem +from .plane_orientation_volume_sequence_item import PlaneOrientationVolumeSequenceItem +from .plane_position_sequence_item import PlanePositionSequenceItem +from .plane_position_volume_sequence_item import PlanePositionVolumeSequenceItem +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .respiratory_synchronization_sequence_item import ( + RespiratorySynchronizationSequenceItem, +) +from .temporal_position_sequence_item import TemporalPositionSequenceItem +from .us_image_description_sequence_item import USImageDescriptionSequenceItem + + +class SharedFunctionalGroupsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._DerivationImageSequence: List[DerivationImageSequenceItem] = [] + self._CardiacSynchronizationSequence: List[CardiacSynchronizationSequenceItem] = [] + self._ContrastBolusUsageSequence: List[ContrastBolusUsageSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + self._USImageDescriptionSequence: List[USImageDescriptionSequenceItem] = [] + self._ImageDataTypeSequence: List[ImageDataTypeSequenceItem] = [] + self._FrameContentSequence: List[FrameContentSequenceItem] = [] + self._PlanePositionSequence: List[PlanePositionSequenceItem] = [] + self._PlaneOrientationSequence: List[PlaneOrientationSequenceItem] = [] + self._RespiratorySynchronizationSequence: List[RespiratorySynchronizationSequenceItem] = [] + self._PlanePositionVolumeSequence: List[PlanePositionVolumeSequenceItem] = [] + self._PlaneOrientationVolumeSequence: List[PlaneOrientationVolumeSequenceItem] = [] + self._TemporalPositionSequence: List[TemporalPositionSequenceItem] = [] + self._PatientOrientationInFrameSequence: List[PatientOrientationInFrameSequenceItem] = [] + self._PixelMeasuresSequence: List[PixelMeasuresSequenceItem] = [] + self._FrameVOILUTSequence: List[FrameVOILUTSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def DerivationImageSequence(self) -> Optional[List[DerivationImageSequenceItem]]: + if "DerivationImageSequence" in self._dataset: + if len(self._DerivationImageSequence) == len(self._dataset.DerivationImageSequence): + return self._DerivationImageSequence + else: + return [DerivationImageSequenceItem(x) for x in self._dataset.DerivationImageSequence] + return None + + @DerivationImageSequence.setter + def DerivationImageSequence(self, value: Optional[List[DerivationImageSequenceItem]]): + if value is None: + self._DerivationImageSequence = [] + if "DerivationImageSequence" in self._dataset: + del self._dataset.DerivationImageSequence + elif not isinstance(value, list) or not all(isinstance(item, DerivationImageSequenceItem) for item in value): + raise ValueError("DerivationImageSequence must be a list of DerivationImageSequenceItem objects") + else: + self._DerivationImageSequence = value + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.clear() + self._dataset.DerivationImageSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationImage(self, item: DerivationImageSequenceItem): + if not isinstance(item, DerivationImageSequenceItem): + raise ValueError("Item must be an instance of DerivationImageSequenceItem") + self._DerivationImageSequence.append(item) + if "DerivationImageSequence" not in self._dataset: + self._dataset.DerivationImageSequence = pydicom.Sequence() + self._dataset.DerivationImageSequence.append(item.to_dataset()) + + @property + def CardiacSynchronizationSequence(self) -> Optional[List[CardiacSynchronizationSequenceItem]]: + if "CardiacSynchronizationSequence" in self._dataset: + if len(self._CardiacSynchronizationSequence) == len(self._dataset.CardiacSynchronizationSequence): + return self._CardiacSynchronizationSequence + else: + return [CardiacSynchronizationSequenceItem(x) for x in self._dataset.CardiacSynchronizationSequence] + return None + + @CardiacSynchronizationSequence.setter + def CardiacSynchronizationSequence(self, value: Optional[List[CardiacSynchronizationSequenceItem]]): + if value is None: + self._CardiacSynchronizationSequence = [] + if "CardiacSynchronizationSequence" in self._dataset: + del self._dataset.CardiacSynchronizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CardiacSynchronizationSequenceItem) for item in value): + raise ValueError("CardiacSynchronizationSequence must be a list of CardiacSynchronizationSequenceItem objects") + else: + self._CardiacSynchronizationSequence = value + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.clear() + self._dataset.CardiacSynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_CardiacSynchronization(self, item: CardiacSynchronizationSequenceItem): + if not isinstance(item, CardiacSynchronizationSequenceItem): + raise ValueError("Item must be an instance of CardiacSynchronizationSequenceItem") + self._CardiacSynchronizationSequence.append(item) + if "CardiacSynchronizationSequence" not in self._dataset: + self._dataset.CardiacSynchronizationSequence = pydicom.Sequence() + self._dataset.CardiacSynchronizationSequence.append(item.to_dataset()) + + @property + def ContrastBolusUsageSequence(self) -> Optional[List[ContrastBolusUsageSequenceItem]]: + if "ContrastBolusUsageSequence" in self._dataset: + if len(self._ContrastBolusUsageSequence) == len(self._dataset.ContrastBolusUsageSequence): + return self._ContrastBolusUsageSequence + else: + return [ContrastBolusUsageSequenceItem(x) for x in self._dataset.ContrastBolusUsageSequence] + return None + + @ContrastBolusUsageSequence.setter + def ContrastBolusUsageSequence(self, value: Optional[List[ContrastBolusUsageSequenceItem]]): + if value is None: + self._ContrastBolusUsageSequence = [] + if "ContrastBolusUsageSequence" in self._dataset: + del self._dataset.ContrastBolusUsageSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusUsageSequenceItem) for item in value): + raise ValueError("ContrastBolusUsageSequence must be a list of ContrastBolusUsageSequenceItem objects") + else: + self._ContrastBolusUsageSequence = value + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.clear() + self._dataset.ContrastBolusUsageSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusUsage(self, item: ContrastBolusUsageSequenceItem): + if not isinstance(item, ContrastBolusUsageSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusUsageSequenceItem") + self._ContrastBolusUsageSequence.append(item) + if "ContrastBolusUsageSequence" not in self._dataset: + self._dataset.ContrastBolusUsageSequence = pydicom.Sequence() + self._dataset.ContrastBolusUsageSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) + + @property + def USImageDescriptionSequence(self) -> Optional[List[USImageDescriptionSequenceItem]]: + if "USImageDescriptionSequence" in self._dataset: + if len(self._USImageDescriptionSequence) == len(self._dataset.USImageDescriptionSequence): + return self._USImageDescriptionSequence + else: + return [USImageDescriptionSequenceItem(x) for x in self._dataset.USImageDescriptionSequence] + return None + + @USImageDescriptionSequence.setter + def USImageDescriptionSequence(self, value: Optional[List[USImageDescriptionSequenceItem]]): + if value is None: + self._USImageDescriptionSequence = [] + if "USImageDescriptionSequence" in self._dataset: + del self._dataset.USImageDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, USImageDescriptionSequenceItem) for item in value): + raise ValueError("USImageDescriptionSequence must be a list of USImageDescriptionSequenceItem objects") + else: + self._USImageDescriptionSequence = value + if "USImageDescriptionSequence" not in self._dataset: + self._dataset.USImageDescriptionSequence = pydicom.Sequence() + self._dataset.USImageDescriptionSequence.clear() + self._dataset.USImageDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_USImageDescription(self, item: USImageDescriptionSequenceItem): + if not isinstance(item, USImageDescriptionSequenceItem): + raise ValueError("Item must be an instance of USImageDescriptionSequenceItem") + self._USImageDescriptionSequence.append(item) + if "USImageDescriptionSequence" not in self._dataset: + self._dataset.USImageDescriptionSequence = pydicom.Sequence() + self._dataset.USImageDescriptionSequence.append(item.to_dataset()) + + @property + def ImageDataTypeSequence(self) -> Optional[List[ImageDataTypeSequenceItem]]: + if "ImageDataTypeSequence" in self._dataset: + if len(self._ImageDataTypeSequence) == len(self._dataset.ImageDataTypeSequence): + return self._ImageDataTypeSequence + else: + return [ImageDataTypeSequenceItem(x) for x in self._dataset.ImageDataTypeSequence] + return None + + @ImageDataTypeSequence.setter + def ImageDataTypeSequence(self, value: Optional[List[ImageDataTypeSequenceItem]]): + if value is None: + self._ImageDataTypeSequence = [] + if "ImageDataTypeSequence" in self._dataset: + del self._dataset.ImageDataTypeSequence + elif not isinstance(value, list) or not all(isinstance(item, ImageDataTypeSequenceItem) for item in value): + raise ValueError("ImageDataTypeSequence must be a list of ImageDataTypeSequenceItem objects") + else: + self._ImageDataTypeSequence = value + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.clear() + self._dataset.ImageDataTypeSequence.extend([item.to_dataset() for item in value]) + + def add_ImageDataType(self, item: ImageDataTypeSequenceItem): + if not isinstance(item, ImageDataTypeSequenceItem): + raise ValueError("Item must be an instance of ImageDataTypeSequenceItem") + self._ImageDataTypeSequence.append(item) + if "ImageDataTypeSequence" not in self._dataset: + self._dataset.ImageDataTypeSequence = pydicom.Sequence() + self._dataset.ImageDataTypeSequence.append(item.to_dataset()) + + @property + def FrameContentSequence(self) -> Optional[List[FrameContentSequenceItem]]: + if "FrameContentSequence" in self._dataset: + if len(self._FrameContentSequence) == len(self._dataset.FrameContentSequence): + return self._FrameContentSequence + else: + return [FrameContentSequenceItem(x) for x in self._dataset.FrameContentSequence] + return None + + @FrameContentSequence.setter + def FrameContentSequence(self, value: Optional[List[FrameContentSequenceItem]]): + if value is None: + self._FrameContentSequence = [] + if "FrameContentSequence" in self._dataset: + del self._dataset.FrameContentSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameContentSequenceItem) for item in value): + raise ValueError("FrameContentSequence must be a list of FrameContentSequenceItem objects") + else: + self._FrameContentSequence = value + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.clear() + self._dataset.FrameContentSequence.extend([item.to_dataset() for item in value]) + + def add_FrameContent(self, item: FrameContentSequenceItem): + if not isinstance(item, FrameContentSequenceItem): + raise ValueError("Item must be an instance of FrameContentSequenceItem") + self._FrameContentSequence.append(item) + if "FrameContentSequence" not in self._dataset: + self._dataset.FrameContentSequence = pydicom.Sequence() + self._dataset.FrameContentSequence.append(item.to_dataset()) + + @property + def PlanePositionSequence(self) -> Optional[List[PlanePositionSequenceItem]]: + if "PlanePositionSequence" in self._dataset: + if len(self._PlanePositionSequence) == len(self._dataset.PlanePositionSequence): + return self._PlanePositionSequence + else: + return [PlanePositionSequenceItem(x) for x in self._dataset.PlanePositionSequence] + return None + + @PlanePositionSequence.setter + def PlanePositionSequence(self, value: Optional[List[PlanePositionSequenceItem]]): + if value is None: + self._PlanePositionSequence = [] + if "PlanePositionSequence" in self._dataset: + del self._dataset.PlanePositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionSequenceItem) for item in value): + raise ValueError("PlanePositionSequence must be a list of PlanePositionSequenceItem objects") + else: + self._PlanePositionSequence = value + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.clear() + self._dataset.PlanePositionSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePosition(self, item: PlanePositionSequenceItem): + if not isinstance(item, PlanePositionSequenceItem): + raise ValueError("Item must be an instance of PlanePositionSequenceItem") + self._PlanePositionSequence.append(item) + if "PlanePositionSequence" not in self._dataset: + self._dataset.PlanePositionSequence = pydicom.Sequence() + self._dataset.PlanePositionSequence.append(item.to_dataset()) + + @property + def PlaneOrientationSequence(self) -> Optional[List[PlaneOrientationSequenceItem]]: + if "PlaneOrientationSequence" in self._dataset: + if len(self._PlaneOrientationSequence) == len(self._dataset.PlaneOrientationSequence): + return self._PlaneOrientationSequence + else: + return [PlaneOrientationSequenceItem(x) for x in self._dataset.PlaneOrientationSequence] + return None + + @PlaneOrientationSequence.setter + def PlaneOrientationSequence(self, value: Optional[List[PlaneOrientationSequenceItem]]): + if value is None: + self._PlaneOrientationSequence = [] + if "PlaneOrientationSequence" in self._dataset: + del self._dataset.PlaneOrientationSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationSequenceItem) for item in value): + raise ValueError("PlaneOrientationSequence must be a list of PlaneOrientationSequenceItem objects") + else: + self._PlaneOrientationSequence = value + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.clear() + self._dataset.PlaneOrientationSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientation(self, item: PlaneOrientationSequenceItem): + if not isinstance(item, PlaneOrientationSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationSequenceItem") + self._PlaneOrientationSequence.append(item) + if "PlaneOrientationSequence" not in self._dataset: + self._dataset.PlaneOrientationSequence = pydicom.Sequence() + self._dataset.PlaneOrientationSequence.append(item.to_dataset()) + + @property + def RespiratorySynchronizationSequence(self) -> Optional[List[RespiratorySynchronizationSequenceItem]]: + if "RespiratorySynchronizationSequence" in self._dataset: + if len(self._RespiratorySynchronizationSequence) == len(self._dataset.RespiratorySynchronizationSequence): + return self._RespiratorySynchronizationSequence + else: + return [RespiratorySynchronizationSequenceItem(x) for x in self._dataset.RespiratorySynchronizationSequence] + return None + + @RespiratorySynchronizationSequence.setter + def RespiratorySynchronizationSequence(self, value: Optional[List[RespiratorySynchronizationSequenceItem]]): + if value is None: + self._RespiratorySynchronizationSequence = [] + if "RespiratorySynchronizationSequence" in self._dataset: + del self._dataset.RespiratorySynchronizationSequence + elif not isinstance(value, list) or not all( + isinstance(item, RespiratorySynchronizationSequenceItem) for item in value + ): + raise ValueError( + "RespiratorySynchronizationSequence must be a list of RespiratorySynchronizationSequenceItem objects" + ) + else: + self._RespiratorySynchronizationSequence = value + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.clear() + self._dataset.RespiratorySynchronizationSequence.extend([item.to_dataset() for item in value]) + + def add_RespiratorySynchronization(self, item: RespiratorySynchronizationSequenceItem): + if not isinstance(item, RespiratorySynchronizationSequenceItem): + raise ValueError("Item must be an instance of RespiratorySynchronizationSequenceItem") + self._RespiratorySynchronizationSequence.append(item) + if "RespiratorySynchronizationSequence" not in self._dataset: + self._dataset.RespiratorySynchronizationSequence = pydicom.Sequence() + self._dataset.RespiratorySynchronizationSequence.append(item.to_dataset()) + + @property + def PlanePositionVolumeSequence(self) -> Optional[List[PlanePositionVolumeSequenceItem]]: + if "PlanePositionVolumeSequence" in self._dataset: + if len(self._PlanePositionVolumeSequence) == len(self._dataset.PlanePositionVolumeSequence): + return self._PlanePositionVolumeSequence + else: + return [PlanePositionVolumeSequenceItem(x) for x in self._dataset.PlanePositionVolumeSequence] + return None + + @PlanePositionVolumeSequence.setter + def PlanePositionVolumeSequence(self, value: Optional[List[PlanePositionVolumeSequenceItem]]): + if value is None: + self._PlanePositionVolumeSequence = [] + if "PlanePositionVolumeSequence" in self._dataset: + del self._dataset.PlanePositionVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlanePositionVolumeSequenceItem) for item in value): + raise ValueError("PlanePositionVolumeSequence must be a list of PlanePositionVolumeSequenceItem objects") + else: + self._PlanePositionVolumeSequence = value + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.clear() + self._dataset.PlanePositionVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlanePositionVolume(self, item: PlanePositionVolumeSequenceItem): + if not isinstance(item, PlanePositionVolumeSequenceItem): + raise ValueError("Item must be an instance of PlanePositionVolumeSequenceItem") + self._PlanePositionVolumeSequence.append(item) + if "PlanePositionVolumeSequence" not in self._dataset: + self._dataset.PlanePositionVolumeSequence = pydicom.Sequence() + self._dataset.PlanePositionVolumeSequence.append(item.to_dataset()) + + @property + def PlaneOrientationVolumeSequence(self) -> Optional[List[PlaneOrientationVolumeSequenceItem]]: + if "PlaneOrientationVolumeSequence" in self._dataset: + if len(self._PlaneOrientationVolumeSequence) == len(self._dataset.PlaneOrientationVolumeSequence): + return self._PlaneOrientationVolumeSequence + else: + return [PlaneOrientationVolumeSequenceItem(x) for x in self._dataset.PlaneOrientationVolumeSequence] + return None + + @PlaneOrientationVolumeSequence.setter + def PlaneOrientationVolumeSequence(self, value: Optional[List[PlaneOrientationVolumeSequenceItem]]): + if value is None: + self._PlaneOrientationVolumeSequence = [] + if "PlaneOrientationVolumeSequence" in self._dataset: + del self._dataset.PlaneOrientationVolumeSequence + elif not isinstance(value, list) or not all(isinstance(item, PlaneOrientationVolumeSequenceItem) for item in value): + raise ValueError("PlaneOrientationVolumeSequence must be a list of PlaneOrientationVolumeSequenceItem objects") + else: + self._PlaneOrientationVolumeSequence = value + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.clear() + self._dataset.PlaneOrientationVolumeSequence.extend([item.to_dataset() for item in value]) + + def add_PlaneOrientationVolume(self, item: PlaneOrientationVolumeSequenceItem): + if not isinstance(item, PlaneOrientationVolumeSequenceItem): + raise ValueError("Item must be an instance of PlaneOrientationVolumeSequenceItem") + self._PlaneOrientationVolumeSequence.append(item) + if "PlaneOrientationVolumeSequence" not in self._dataset: + self._dataset.PlaneOrientationVolumeSequence = pydicom.Sequence() + self._dataset.PlaneOrientationVolumeSequence.append(item.to_dataset()) + + @property + def TemporalPositionSequence(self) -> Optional[List[TemporalPositionSequenceItem]]: + if "TemporalPositionSequence" in self._dataset: + if len(self._TemporalPositionSequence) == len(self._dataset.TemporalPositionSequence): + return self._TemporalPositionSequence + else: + return [TemporalPositionSequenceItem(x) for x in self._dataset.TemporalPositionSequence] + return None + + @TemporalPositionSequence.setter + def TemporalPositionSequence(self, value: Optional[List[TemporalPositionSequenceItem]]): + if value is None: + self._TemporalPositionSequence = [] + if "TemporalPositionSequence" in self._dataset: + del self._dataset.TemporalPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TemporalPositionSequenceItem) for item in value): + raise ValueError("TemporalPositionSequence must be a list of TemporalPositionSequenceItem objects") + else: + self._TemporalPositionSequence = value + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.clear() + self._dataset.TemporalPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TemporalPosition(self, item: TemporalPositionSequenceItem): + if not isinstance(item, TemporalPositionSequenceItem): + raise ValueError("Item must be an instance of TemporalPositionSequenceItem") + self._TemporalPositionSequence.append(item) + if "TemporalPositionSequence" not in self._dataset: + self._dataset.TemporalPositionSequence = pydicom.Sequence() + self._dataset.TemporalPositionSequence.append(item.to_dataset()) + + @property + def PatientOrientationInFrameSequence(self) -> Optional[List[PatientOrientationInFrameSequenceItem]]: + if "PatientOrientationInFrameSequence" in self._dataset: + if len(self._PatientOrientationInFrameSequence) == len(self._dataset.PatientOrientationInFrameSequence): + return self._PatientOrientationInFrameSequence + else: + return [PatientOrientationInFrameSequenceItem(x) for x in self._dataset.PatientOrientationInFrameSequence] + return None + + @PatientOrientationInFrameSequence.setter + def PatientOrientationInFrameSequence(self, value: Optional[List[PatientOrientationInFrameSequenceItem]]): + if value is None: + self._PatientOrientationInFrameSequence = [] + if "PatientOrientationInFrameSequence" in self._dataset: + del self._dataset.PatientOrientationInFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientOrientationInFrameSequenceItem) for item in value): + raise ValueError( + "PatientOrientationInFrameSequence must be a list of PatientOrientationInFrameSequenceItem objects" + ) + else: + self._PatientOrientationInFrameSequence = value + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.clear() + self._dataset.PatientOrientationInFrameSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationInFrame(self, item: PatientOrientationInFrameSequenceItem): + if not isinstance(item, PatientOrientationInFrameSequenceItem): + raise ValueError("Item must be an instance of PatientOrientationInFrameSequenceItem") + self._PatientOrientationInFrameSequence.append(item) + if "PatientOrientationInFrameSequence" not in self._dataset: + self._dataset.PatientOrientationInFrameSequence = pydicom.Sequence() + self._dataset.PatientOrientationInFrameSequence.append(item.to_dataset()) + + @property + def PixelMeasuresSequence(self) -> Optional[List[PixelMeasuresSequenceItem]]: + if "PixelMeasuresSequence" in self._dataset: + if len(self._PixelMeasuresSequence) == len(self._dataset.PixelMeasuresSequence): + return self._PixelMeasuresSequence + else: + return [PixelMeasuresSequenceItem(x) for x in self._dataset.PixelMeasuresSequence] + return None + + @PixelMeasuresSequence.setter + def PixelMeasuresSequence(self, value: Optional[List[PixelMeasuresSequenceItem]]): + if value is None: + self._PixelMeasuresSequence = [] + if "PixelMeasuresSequence" in self._dataset: + del self._dataset.PixelMeasuresSequence + elif not isinstance(value, list) or not all(isinstance(item, PixelMeasuresSequenceItem) for item in value): + raise ValueError("PixelMeasuresSequence must be a list of PixelMeasuresSequenceItem objects") + else: + self._PixelMeasuresSequence = value + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.clear() + self._dataset.PixelMeasuresSequence.extend([item.to_dataset() for item in value]) + + def add_PixelMeasures(self, item: PixelMeasuresSequenceItem): + if not isinstance(item, PixelMeasuresSequenceItem): + raise ValueError("Item must be an instance of PixelMeasuresSequenceItem") + self._PixelMeasuresSequence.append(item) + if "PixelMeasuresSequence" not in self._dataset: + self._dataset.PixelMeasuresSequence = pydicom.Sequence() + self._dataset.PixelMeasuresSequence.append(item.to_dataset()) + + @property + def FrameVOILUTSequence(self) -> Optional[List[FrameVOILUTSequenceItem]]: + if "FrameVOILUTSequence" in self._dataset: + if len(self._FrameVOILUTSequence) == len(self._dataset.FrameVOILUTSequence): + return self._FrameVOILUTSequence + else: + return [FrameVOILUTSequenceItem(x) for x in self._dataset.FrameVOILUTSequence] + return None + + @FrameVOILUTSequence.setter + def FrameVOILUTSequence(self, value: Optional[List[FrameVOILUTSequenceItem]]): + if value is None: + self._FrameVOILUTSequence = [] + if "FrameVOILUTSequence" in self._dataset: + del self._dataset.FrameVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameVOILUTSequenceItem) for item in value): + raise ValueError("FrameVOILUTSequence must be a list of FrameVOILUTSequenceItem objects") + else: + self._FrameVOILUTSequence = value + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.clear() + self._dataset.FrameVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_FrameVOILUT(self, item: FrameVOILUTSequenceItem): + if not isinstance(item, FrameVOILUTSequenceItem): + raise ValueError("Item must be an instance of FrameVOILUTSequenceItem") + self._FrameVOILUTSequence.append(item) + if "FrameVOILUTSequence" not in self._dataset: + self._dataset.FrameVOILUTSequence = pydicom.Sequence() + self._dataset.FrameVOILUTSequence.append(item.to_dataset()) + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/shielding_device_sequence_item.py b/tdwii_plus_examples/domain_model/shielding_device_sequence_item.py new file mode 100644 index 0000000..b888fa0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/shielding_device_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ShieldingDeviceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def ShieldingDeviceType(self) -> Optional[str]: + if "ShieldingDeviceType" in self._dataset: + return self._dataset.ShieldingDeviceType + return None + + @ShieldingDeviceType.setter + def ShieldingDeviceType(self, value: Optional[str]): + if value is None: + if "ShieldingDeviceType" in self._dataset: + del self._dataset.ShieldingDeviceType + else: + self._dataset.ShieldingDeviceType = value + + @property + def ShieldingDeviceLabel(self) -> Optional[str]: + if "ShieldingDeviceLabel" in self._dataset: + return self._dataset.ShieldingDeviceLabel + return None + + @ShieldingDeviceLabel.setter + def ShieldingDeviceLabel(self, value: Optional[str]): + if value is None: + if "ShieldingDeviceLabel" in self._dataset: + del self._dataset.ShieldingDeviceLabel + else: + self._dataset.ShieldingDeviceLabel = value + + @property + def ShieldingDeviceDescription(self) -> Optional[str]: + if "ShieldingDeviceDescription" in self._dataset: + return self._dataset.ShieldingDeviceDescription + return None + + @ShieldingDeviceDescription.setter + def ShieldingDeviceDescription(self, value: Optional[str]): + if value is None: + if "ShieldingDeviceDescription" in self._dataset: + del self._dataset.ShieldingDeviceDescription + else: + self._dataset.ShieldingDeviceDescription = value + + @property + def ShieldingDevicePosition(self) -> Optional[str]: + if "ShieldingDevicePosition" in self._dataset: + return self._dataset.ShieldingDevicePosition + return None + + @ShieldingDevicePosition.setter + def ShieldingDevicePosition(self, value: Optional[str]): + if value is None: + if "ShieldingDevicePosition" in self._dataset: + del self._dataset.ShieldingDevicePosition + else: + self._dataset.ShieldingDevicePosition = value diff --git a/tdwii_plus_examples/domain_model/simplified_adult_echo_sr.py b/tdwii_plus_examples/domain_model/simplified_adult_echo_sr.py new file mode 100644 index 0000000..85e73e3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/simplified_adult_echo_sr.py @@ -0,0 +1,4687 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class SimplifiedAdultEchoSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/simulated_keratometric_cylinder_sequence_item.py b/tdwii_plus_examples/domain_model/simulated_keratometric_cylinder_sequence_item.py new file mode 100644 index 0000000..38f40da --- /dev/null +++ b/tdwii_plus_examples/domain_model/simulated_keratometric_cylinder_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SimulatedKeratometricCylinderSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KeratometricPower(self) -> Optional[float]: + if "KeratometricPower" in self._dataset: + return self._dataset.KeratometricPower + return None + + @KeratometricPower.setter + def KeratometricPower(self, value: Optional[float]): + if value is None: + if "KeratometricPower" in self._dataset: + del self._dataset.KeratometricPower + else: + self._dataset.KeratometricPower = value + + @property + def KeratometricAxis(self) -> Optional[float]: + if "KeratometricAxis" in self._dataset: + return self._dataset.KeratometricAxis + return None + + @KeratometricAxis.setter + def KeratometricAxis(self, value: Optional[float]): + if value is None: + if "KeratometricAxis" in self._dataset: + del self._dataset.KeratometricAxis + else: + self._dataset.KeratometricAxis = value diff --git a/tdwii_plus_examples/domain_model/sleep_electroencephalogram.py b/tdwii_plus_examples/domain_model/sleep_electroencephalogram.py new file mode 100644 index 0000000..d1314ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/sleep_electroencephalogram.py @@ -0,0 +1,4318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .waveform_annotation_sequence_item import WaveformAnnotationSequenceItem +from .waveform_presentation_group_sequence_item import ( + WaveformPresentationGroupSequenceItem, +) +from .waveform_sequence_item import WaveformSequenceItem + + +class SleepElectroencephalogram: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._WaveformPresentationGroupSequence: List[WaveformPresentationGroupSequenceItem] = [] + self._WaveformSequence: List[WaveformSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._WaveformAnnotationSequence: List[WaveformAnnotationSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def WaveformDataDisplayScale(self) -> Optional[float]: + if "WaveformDataDisplayScale" in self._dataset: + return self._dataset.WaveformDataDisplayScale + return None + + @WaveformDataDisplayScale.setter + def WaveformDataDisplayScale(self, value: Optional[float]): + if value is None: + if "WaveformDataDisplayScale" in self._dataset: + del self._dataset.WaveformDataDisplayScale + else: + self._dataset.WaveformDataDisplayScale = value + + @property + def WaveformDisplayBackgroundCIELabValue(self) -> Optional[List[int]]: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + return self._dataset.WaveformDisplayBackgroundCIELabValue + return None + + @WaveformDisplayBackgroundCIELabValue.setter + def WaveformDisplayBackgroundCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "WaveformDisplayBackgroundCIELabValue" in self._dataset: + del self._dataset.WaveformDisplayBackgroundCIELabValue + else: + self._dataset.WaveformDisplayBackgroundCIELabValue = value + + @property + def WaveformPresentationGroupSequence(self) -> Optional[List[WaveformPresentationGroupSequenceItem]]: + if "WaveformPresentationGroupSequence" in self._dataset: + if len(self._WaveformPresentationGroupSequence) == len(self._dataset.WaveformPresentationGroupSequence): + return self._WaveformPresentationGroupSequence + else: + return [WaveformPresentationGroupSequenceItem(x) for x in self._dataset.WaveformPresentationGroupSequence] + return None + + @WaveformPresentationGroupSequence.setter + def WaveformPresentationGroupSequence(self, value: Optional[List[WaveformPresentationGroupSequenceItem]]): + if value is None: + self._WaveformPresentationGroupSequence = [] + if "WaveformPresentationGroupSequence" in self._dataset: + del self._dataset.WaveformPresentationGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformPresentationGroupSequenceItem) for item in value): + raise ValueError( + "WaveformPresentationGroupSequence must be a list of WaveformPresentationGroupSequenceItem objects" + ) + else: + self._WaveformPresentationGroupSequence = value + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.clear() + self._dataset.WaveformPresentationGroupSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformPresentationGroup(self, item: WaveformPresentationGroupSequenceItem): + if not isinstance(item, WaveformPresentationGroupSequenceItem): + raise ValueError("Item must be an instance of WaveformPresentationGroupSequenceItem") + self._WaveformPresentationGroupSequence.append(item) + if "WaveformPresentationGroupSequence" not in self._dataset: + self._dataset.WaveformPresentationGroupSequence = pydicom.Sequence() + self._dataset.WaveformPresentationGroupSequence.append(item.to_dataset()) + + @property + def WaveformSequence(self) -> Optional[List[WaveformSequenceItem]]: + if "WaveformSequence" in self._dataset: + if len(self._WaveformSequence) == len(self._dataset.WaveformSequence): + return self._WaveformSequence + else: + return [WaveformSequenceItem(x) for x in self._dataset.WaveformSequence] + return None + + @WaveformSequence.setter + def WaveformSequence(self, value: Optional[List[WaveformSequenceItem]]): + if value is None: + self._WaveformSequence = [] + if "WaveformSequence" in self._dataset: + del self._dataset.WaveformSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformSequenceItem) for item in value): + raise ValueError("WaveformSequence must be a list of WaveformSequenceItem objects") + else: + self._WaveformSequence = value + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.clear() + self._dataset.WaveformSequence.extend([item.to_dataset() for item in value]) + + def add_Waveform(self, item: WaveformSequenceItem): + if not isinstance(item, WaveformSequenceItem): + raise ValueError("Item must be an instance of WaveformSequenceItem") + self._WaveformSequence.append(item) + if "WaveformSequence" not in self._dataset: + self._dataset.WaveformSequence = pydicom.Sequence() + self._dataset.WaveformSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WaveformAnnotationSequence(self) -> Optional[List[WaveformAnnotationSequenceItem]]: + if "WaveformAnnotationSequence" in self._dataset: + if len(self._WaveformAnnotationSequence) == len(self._dataset.WaveformAnnotationSequence): + return self._WaveformAnnotationSequence + else: + return [WaveformAnnotationSequenceItem(x) for x in self._dataset.WaveformAnnotationSequence] + return None + + @WaveformAnnotationSequence.setter + def WaveformAnnotationSequence(self, value: Optional[List[WaveformAnnotationSequenceItem]]): + if value is None: + self._WaveformAnnotationSequence = [] + if "WaveformAnnotationSequence" in self._dataset: + del self._dataset.WaveformAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, WaveformAnnotationSequenceItem) for item in value): + raise ValueError("WaveformAnnotationSequence must be a list of WaveformAnnotationSequenceItem objects") + else: + self._WaveformAnnotationSequence = value + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.clear() + self._dataset.WaveformAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_WaveformAnnotation(self, item: WaveformAnnotationSequenceItem): + if not isinstance(item, WaveformAnnotationSequenceItem): + raise ValueError("Item must be an instance of WaveformAnnotationSequenceItem") + self._WaveformAnnotationSequence.append(item) + if "WaveformAnnotationSequence" not in self._dataset: + self._dataset.WaveformAnnotationSequence = pydicom.Sequence() + self._dataset.WaveformAnnotationSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/snout_sequence_item.py b/tdwii_plus_examples/domain_model/snout_sequence_item.py new file mode 100644 index 0000000..d5bee46 --- /dev/null +++ b/tdwii_plus_examples/domain_model/snout_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SnoutSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value + + @property + def SnoutID(self) -> Optional[str]: + if "SnoutID" in self._dataset: + return self._dataset.SnoutID + return None + + @SnoutID.setter + def SnoutID(self, value: Optional[str]): + if value is None: + if "SnoutID" in self._dataset: + del self._dataset.SnoutID + else: + self._dataset.SnoutID = value diff --git a/tdwii_plus_examples/domain_model/softcopy_voilut_sequence_item.py b/tdwii_plus_examples/domain_model/softcopy_voilut_sequence_item.py new file mode 100644 index 0000000..44f6ebc --- /dev/null +++ b/tdwii_plus_examples/domain_model/softcopy_voilut_sequence_item.py @@ -0,0 +1,137 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class SoftcopyVOILUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/source_conceptual_volume_sequence_item.py b/tdwii_plus_examples/domain_model/source_conceptual_volume_sequence_item.py new file mode 100644 index 0000000..e6f304e --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_conceptual_volume_sequence_item.py @@ -0,0 +1,96 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .conceptual_volume_constituent_segmentation_reference_sequence_item import ( + ConceptualVolumeConstituentSegmentationReferenceSequenceItem, +) + + +class SourceConceptualVolumeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptualVolumeConstituentSegmentationReferenceSequence: List[ + ConceptualVolumeConstituentSegmentationReferenceSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ConceptualVolumeConstituentIndex(self) -> Optional[int]: + if "ConceptualVolumeConstituentIndex" in self._dataset: + return self._dataset.ConceptualVolumeConstituentIndex + return None + + @ConceptualVolumeConstituentIndex.setter + def ConceptualVolumeConstituentIndex(self, value: Optional[int]): + if value is None: + if "ConceptualVolumeConstituentIndex" in self._dataset: + del self._dataset.ConceptualVolumeConstituentIndex + else: + self._dataset.ConceptualVolumeConstituentIndex = value + + @property + def ConceptualVolumeConstituentSegmentationReferenceSequence( + self, + ) -> Optional[List[ConceptualVolumeConstituentSegmentationReferenceSequenceItem]]: + if "ConceptualVolumeConstituentSegmentationReferenceSequence" in self._dataset: + if len(self._ConceptualVolumeConstituentSegmentationReferenceSequence) == len( + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence + ): + return self._ConceptualVolumeConstituentSegmentationReferenceSequence + else: + return [ + ConceptualVolumeConstituentSegmentationReferenceSequenceItem(x) + for x in self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence + ] + return None + + @ConceptualVolumeConstituentSegmentationReferenceSequence.setter + def ConceptualVolumeConstituentSegmentationReferenceSequence( + self, value: Optional[List[ConceptualVolumeConstituentSegmentationReferenceSequenceItem]] + ): + if value is None: + self._ConceptualVolumeConstituentSegmentationReferenceSequence = [] + if "ConceptualVolumeConstituentSegmentationReferenceSequence" in self._dataset: + del self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeConstituentSegmentationReferenceSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeConstituentSegmentationReferenceSequence must be a list of" + " ConceptualVolumeConstituentSegmentationReferenceSequenceItem objects" + ) + else: + self._ConceptualVolumeConstituentSegmentationReferenceSequence = value + if "ConceptualVolumeConstituentSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence.clear() + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ConceptualVolumeConstituentSegmentationReference( + self, item: ConceptualVolumeConstituentSegmentationReferenceSequenceItem + ): + if not isinstance(item, ConceptualVolumeConstituentSegmentationReferenceSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeConstituentSegmentationReferenceSequenceItem") + self._ConceptualVolumeConstituentSegmentationReferenceSequence.append(item) + if "ConceptualVolumeConstituentSegmentationReferenceSequence" not in self._dataset: + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeConstituentSegmentationReferenceSequence.append(item.to_dataset()) + + @property + def SourceConceptualVolumeUID(self) -> Optional[str]: + if "SourceConceptualVolumeUID" in self._dataset: + return self._dataset.SourceConceptualVolumeUID + return None + + @SourceConceptualVolumeUID.setter + def SourceConceptualVolumeUID(self, value: Optional[str]): + if value is None: + if "SourceConceptualVolumeUID" in self._dataset: + del self._dataset.SourceConceptualVolumeUID + else: + self._dataset.SourceConceptualVolumeUID = value diff --git a/tdwii_plus_examples/domain_model/source_image_corneal_processed_data_sequence_item.py b/tdwii_plus_examples/domain_model/source_image_corneal_processed_data_sequence_item.py new file mode 100644 index 0000000..4a604c5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_image_corneal_processed_data_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourceImageCornealProcessedDataSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CornealPointLocation(self) -> Optional[List[float]]: + if "CornealPointLocation" in self._dataset: + return self._dataset.CornealPointLocation + return None + + @CornealPointLocation.setter + def CornealPointLocation(self, value: Optional[List[float]]): + if value is None: + if "CornealPointLocation" in self._dataset: + del self._dataset.CornealPointLocation + else: + self._dataset.CornealPointLocation = value + + @property + def CornealPointEstimated(self) -> Optional[str]: + if "CornealPointEstimated" in self._dataset: + return self._dataset.CornealPointEstimated + return None + + @CornealPointEstimated.setter + def CornealPointEstimated(self, value: Optional[str]): + if value is None: + if "CornealPointEstimated" in self._dataset: + del self._dataset.CornealPointEstimated + else: + self._dataset.CornealPointEstimated = value + + @property + def AxialPower(self) -> Optional[float]: + if "AxialPower" in self._dataset: + return self._dataset.AxialPower + return None + + @AxialPower.setter + def AxialPower(self, value: Optional[float]): + if value is None: + if "AxialPower" in self._dataset: + del self._dataset.AxialPower + else: + self._dataset.AxialPower = value + + @property + def TangentialPower(self) -> Optional[float]: + if "TangentialPower" in self._dataset: + return self._dataset.TangentialPower + return None + + @TangentialPower.setter + def TangentialPower(self, value: Optional[float]): + if value is None: + if "TangentialPower" in self._dataset: + del self._dataset.TangentialPower + else: + self._dataset.TangentialPower = value + + @property + def RefractivePower(self) -> Optional[float]: + if "RefractivePower" in self._dataset: + return self._dataset.RefractivePower + return None + + @RefractivePower.setter + def RefractivePower(self, value: Optional[float]): + if value is None: + if "RefractivePower" in self._dataset: + del self._dataset.RefractivePower + else: + self._dataset.RefractivePower = value + + @property + def RelativeElevation(self) -> Optional[float]: + if "RelativeElevation" in self._dataset: + return self._dataset.RelativeElevation + return None + + @RelativeElevation.setter + def RelativeElevation(self, value: Optional[float]): + if value is None: + if "RelativeElevation" in self._dataset: + del self._dataset.RelativeElevation + else: + self._dataset.RelativeElevation = value + + @property + def CornealWavefront(self) -> Optional[float]: + if "CornealWavefront" in self._dataset: + return self._dataset.CornealWavefront + return None + + @CornealWavefront.setter + def CornealWavefront(self, value: Optional[float]): + if value is None: + if "CornealWavefront" in self._dataset: + del self._dataset.CornealWavefront + else: + self._dataset.CornealWavefront = value diff --git a/tdwii_plus_examples/domain_model/source_image_evidence_sequence_item.py b/tdwii_plus_examples/domain_model/source_image_evidence_sequence_item.py new file mode 100644 index 0000000..55532ba --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_image_evidence_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class SourceImageEvidenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/source_image_sequence_item.py b/tdwii_plus_examples/domain_model/source_image_sequence_item.py new file mode 100644 index 0000000..f64f2f2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_image_sequence_item.py @@ -0,0 +1,130 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SourceImageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def SpatialLocationsPreserved(self) -> Optional[str]: + if "SpatialLocationsPreserved" in self._dataset: + return self._dataset.SpatialLocationsPreserved + return None + + @SpatialLocationsPreserved.setter + def SpatialLocationsPreserved(self, value: Optional[str]): + if value is None: + if "SpatialLocationsPreserved" in self._dataset: + del self._dataset.SpatialLocationsPreserved + else: + self._dataset.SpatialLocationsPreserved = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/source_instance_sequence_item.py b/tdwii_plus_examples/domain_model/source_instance_sequence_item.py new file mode 100644 index 0000000..84633ac --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_instance_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SourceInstanceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PurposeOfReferenceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def PurposeOfReferenceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PurposeOfReferenceCodeSequence" in self._dataset: + if len(self._PurposeOfReferenceCodeSequence) == len(self._dataset.PurposeOfReferenceCodeSequence): + return self._PurposeOfReferenceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PurposeOfReferenceCodeSequence] + return None + + @PurposeOfReferenceCodeSequence.setter + def PurposeOfReferenceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PurposeOfReferenceCodeSequence = [] + if "PurposeOfReferenceCodeSequence" in self._dataset: + del self._dataset.PurposeOfReferenceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PurposeOfReferenceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PurposeOfReferenceCodeSequence = value + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.clear() + self._dataset.PurposeOfReferenceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PurposeOfReferenceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PurposeOfReferenceCodeSequence.append(item) + if "PurposeOfReferenceCodeSequence" not in self._dataset: + self._dataset.PurposeOfReferenceCodeSequence = pydicom.Sequence() + self._dataset.PurposeOfReferenceCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/source_irradiation_event_sequence_item.py b/tdwii_plus_examples/domain_model/source_irradiation_event_sequence_item.py new file mode 100644 index 0000000..986959d --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_irradiation_event_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourceIrradiationEventSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value diff --git a/tdwii_plus_examples/domain_model/source_of_refractive_measurements_sequence_item.py b/tdwii_plus_examples/domain_model/source_of_refractive_measurements_sequence_item.py new file mode 100644 index 0000000..bb0effd --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_of_refractive_measurements_sequence_item.py @@ -0,0 +1,82 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem + + +class SourceOfRefractiveMeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._SourceOfRefractiveMeasurementsCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def SourceOfRefractiveMeasurementsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SourceOfRefractiveMeasurementsCodeSequence" in self._dataset: + if len(self._SourceOfRefractiveMeasurementsCodeSequence) == len( + self._dataset.SourceOfRefractiveMeasurementsCodeSequence + ): + return self._SourceOfRefractiveMeasurementsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SourceOfRefractiveMeasurementsCodeSequence] + return None + + @SourceOfRefractiveMeasurementsCodeSequence.setter + def SourceOfRefractiveMeasurementsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SourceOfRefractiveMeasurementsCodeSequence = [] + if "SourceOfRefractiveMeasurementsCodeSequence" in self._dataset: + del self._dataset.SourceOfRefractiveMeasurementsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SourceOfRefractiveMeasurementsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SourceOfRefractiveMeasurementsCodeSequence = value + if "SourceOfRefractiveMeasurementsCodeSequence" not in self._dataset: + self._dataset.SourceOfRefractiveMeasurementsCodeSequence = pydicom.Sequence() + self._dataset.SourceOfRefractiveMeasurementsCodeSequence.clear() + self._dataset.SourceOfRefractiveMeasurementsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SourceOfRefractiveMeasurementsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SourceOfRefractiveMeasurementsCodeSequence.append(item) + if "SourceOfRefractiveMeasurementsCodeSequence" not in self._dataset: + self._dataset.SourceOfRefractiveMeasurementsCodeSequence = pydicom.Sequence() + self._dataset.SourceOfRefractiveMeasurementsCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/source_patient_group_identification_sequence_item.py b/tdwii_plus_examples/domain_model/source_patient_group_identification_sequence_item.py new file mode 100644 index 0000000..742cd21 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_patient_group_identification_sequence_item.py @@ -0,0 +1,80 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) + + +class SourcePatientGroupIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/source_pixel_planes_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/source_pixel_planes_characteristics_sequence_item.py new file mode 100644 index 0000000..9758b67 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_pixel_planes_characteristics_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourcePixelPlanesCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpacingBetweenSlices(self) -> Optional[Decimal]: + if "SpacingBetweenSlices" in self._dataset: + return self._dataset.SpacingBetweenSlices + return None + + @SpacingBetweenSlices.setter + def SpacingBetweenSlices(self, value: Optional[Decimal]): + if value is None: + if "SpacingBetweenSlices" in self._dataset: + del self._dataset.SpacingBetweenSlices + else: + self._dataset.SpacingBetweenSlices = value + + @property + def ImagePositionPatient(self) -> Optional[List[Decimal]]: + if "ImagePositionPatient" in self._dataset: + return self._dataset.ImagePositionPatient + return None + + @ImagePositionPatient.setter + def ImagePositionPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagePositionPatient" in self._dataset: + del self._dataset.ImagePositionPatient + else: + self._dataset.ImagePositionPatient = value + + @property + def ImageOrientationPatient(self) -> Optional[List[Decimal]]: + if "ImageOrientationPatient" in self._dataset: + return self._dataset.ImageOrientationPatient + return None + + @ImageOrientationPatient.setter + def ImageOrientationPatient(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationPatient" in self._dataset: + del self._dataset.ImageOrientationPatient + else: + self._dataset.ImageOrientationPatient = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value diff --git a/tdwii_plus_examples/domain_model/source_sequence_item.py b/tdwii_plus_examples/domain_model/source_sequence_item.py new file mode 100644 index 0000000..dbfac37 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_sequence_item.py @@ -0,0 +1,264 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SourceSerialNumber(self) -> Optional[str]: + if "SourceSerialNumber" in self._dataset: + return self._dataset.SourceSerialNumber + return None + + @SourceSerialNumber.setter + def SourceSerialNumber(self, value: Optional[str]): + if value is None: + if "SourceSerialNumber" in self._dataset: + del self._dataset.SourceSerialNumber + else: + self._dataset.SourceSerialNumber = value + + @property + def MaterialID(self) -> Optional[str]: + if "MaterialID" in self._dataset: + return self._dataset.MaterialID + return None + + @MaterialID.setter + def MaterialID(self, value: Optional[str]): + if value is None: + if "MaterialID" in self._dataset: + del self._dataset.MaterialID + else: + self._dataset.MaterialID = value + + @property + def SourceNumber(self) -> Optional[int]: + if "SourceNumber" in self._dataset: + return self._dataset.SourceNumber + return None + + @SourceNumber.setter + def SourceNumber(self, value: Optional[int]): + if value is None: + if "SourceNumber" in self._dataset: + del self._dataset.SourceNumber + else: + self._dataset.SourceNumber = value + + @property + def SourceType(self) -> Optional[str]: + if "SourceType" in self._dataset: + return self._dataset.SourceType + return None + + @SourceType.setter + def SourceType(self, value: Optional[str]): + if value is None: + if "SourceType" in self._dataset: + del self._dataset.SourceType + else: + self._dataset.SourceType = value + + @property + def SourceManufacturer(self) -> Optional[str]: + if "SourceManufacturer" in self._dataset: + return self._dataset.SourceManufacturer + return None + + @SourceManufacturer.setter + def SourceManufacturer(self, value: Optional[str]): + if value is None: + if "SourceManufacturer" in self._dataset: + del self._dataset.SourceManufacturer + else: + self._dataset.SourceManufacturer = value + + @property + def ActiveSourceDiameter(self) -> Optional[Decimal]: + if "ActiveSourceDiameter" in self._dataset: + return self._dataset.ActiveSourceDiameter + return None + + @ActiveSourceDiameter.setter + def ActiveSourceDiameter(self, value: Optional[Decimal]): + if value is None: + if "ActiveSourceDiameter" in self._dataset: + del self._dataset.ActiveSourceDiameter + else: + self._dataset.ActiveSourceDiameter = value + + @property + def ActiveSourceLength(self) -> Optional[Decimal]: + if "ActiveSourceLength" in self._dataset: + return self._dataset.ActiveSourceLength + return None + + @ActiveSourceLength.setter + def ActiveSourceLength(self, value: Optional[Decimal]): + if value is None: + if "ActiveSourceLength" in self._dataset: + del self._dataset.ActiveSourceLength + else: + self._dataset.ActiveSourceLength = value + + @property + def SourceModelID(self) -> Optional[str]: + if "SourceModelID" in self._dataset: + return self._dataset.SourceModelID + return None + + @SourceModelID.setter + def SourceModelID(self, value: Optional[str]): + if value is None: + if "SourceModelID" in self._dataset: + del self._dataset.SourceModelID + else: + self._dataset.SourceModelID = value + + @property + def SourceDescription(self) -> Optional[str]: + if "SourceDescription" in self._dataset: + return self._dataset.SourceDescription + return None + + @SourceDescription.setter + def SourceDescription(self, value: Optional[str]): + if value is None: + if "SourceDescription" in self._dataset: + del self._dataset.SourceDescription + else: + self._dataset.SourceDescription = value + + @property + def SourceEncapsulationNominalThickness(self) -> Optional[Decimal]: + if "SourceEncapsulationNominalThickness" in self._dataset: + return self._dataset.SourceEncapsulationNominalThickness + return None + + @SourceEncapsulationNominalThickness.setter + def SourceEncapsulationNominalThickness(self, value: Optional[Decimal]): + if value is None: + if "SourceEncapsulationNominalThickness" in self._dataset: + del self._dataset.SourceEncapsulationNominalThickness + else: + self._dataset.SourceEncapsulationNominalThickness = value + + @property + def SourceEncapsulationNominalTransmission(self) -> Optional[Decimal]: + if "SourceEncapsulationNominalTransmission" in self._dataset: + return self._dataset.SourceEncapsulationNominalTransmission + return None + + @SourceEncapsulationNominalTransmission.setter + def SourceEncapsulationNominalTransmission(self, value: Optional[Decimal]): + if value is None: + if "SourceEncapsulationNominalTransmission" in self._dataset: + del self._dataset.SourceEncapsulationNominalTransmission + else: + self._dataset.SourceEncapsulationNominalTransmission = value + + @property + def SourceIsotopeName(self) -> Optional[str]: + if "SourceIsotopeName" in self._dataset: + return self._dataset.SourceIsotopeName + return None + + @SourceIsotopeName.setter + def SourceIsotopeName(self, value: Optional[str]): + if value is None: + if "SourceIsotopeName" in self._dataset: + del self._dataset.SourceIsotopeName + else: + self._dataset.SourceIsotopeName = value + + @property + def SourceIsotopeHalfLife(self) -> Optional[Decimal]: + if "SourceIsotopeHalfLife" in self._dataset: + return self._dataset.SourceIsotopeHalfLife + return None + + @SourceIsotopeHalfLife.setter + def SourceIsotopeHalfLife(self, value: Optional[Decimal]): + if value is None: + if "SourceIsotopeHalfLife" in self._dataset: + del self._dataset.SourceIsotopeHalfLife + else: + self._dataset.SourceIsotopeHalfLife = value + + @property + def SourceStrengthUnits(self) -> Optional[str]: + if "SourceStrengthUnits" in self._dataset: + return self._dataset.SourceStrengthUnits + return None + + @SourceStrengthUnits.setter + def SourceStrengthUnits(self, value: Optional[str]): + if value is None: + if "SourceStrengthUnits" in self._dataset: + del self._dataset.SourceStrengthUnits + else: + self._dataset.SourceStrengthUnits = value + + @property + def ReferenceAirKermaRate(self) -> Optional[Decimal]: + if "ReferenceAirKermaRate" in self._dataset: + return self._dataset.ReferenceAirKermaRate + return None + + @ReferenceAirKermaRate.setter + def ReferenceAirKermaRate(self, value: Optional[Decimal]): + if value is None: + if "ReferenceAirKermaRate" in self._dataset: + del self._dataset.ReferenceAirKermaRate + else: + self._dataset.ReferenceAirKermaRate = value + + @property + def SourceStrength(self) -> Optional[Decimal]: + if "SourceStrength" in self._dataset: + return self._dataset.SourceStrength + return None + + @SourceStrength.setter + def SourceStrength(self, value: Optional[Decimal]): + if value is None: + if "SourceStrength" in self._dataset: + del self._dataset.SourceStrength + else: + self._dataset.SourceStrength = value + + @property + def SourceStrengthReferenceDate(self) -> Optional[str]: + if "SourceStrengthReferenceDate" in self._dataset: + return self._dataset.SourceStrengthReferenceDate + return None + + @SourceStrengthReferenceDate.setter + def SourceStrengthReferenceDate(self, value: Optional[str]): + if value is None: + if "SourceStrengthReferenceDate" in self._dataset: + del self._dataset.SourceStrengthReferenceDate + else: + self._dataset.SourceStrengthReferenceDate = value + + @property + def SourceStrengthReferenceTime(self) -> Optional[str]: + if "SourceStrengthReferenceTime" in self._dataset: + return self._dataset.SourceStrengthReferenceTime + return None + + @SourceStrengthReferenceTime.setter + def SourceStrengthReferenceTime(self, value: Optional[str]): + if value is None: + if "SourceStrengthReferenceTime" in self._dataset: + del self._dataset.SourceStrengthReferenceTime + else: + self._dataset.SourceStrengthReferenceTime = value diff --git a/tdwii_plus_examples/domain_model/source_series_information_sequence_item.py b/tdwii_plus_examples/domain_model/source_series_information_sequence_item.py new file mode 100644 index 0000000..4a9d8a8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_series_information_sequence_item.py @@ -0,0 +1,95 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourceSeriesInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value diff --git a/tdwii_plus_examples/domain_model/source_series_sequence_item.py b/tdwii_plus_examples/domain_model/source_series_sequence_item.py new file mode 100644 index 0000000..309fa3b --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_series_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourceSeriesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/source_waveform_sequence_item.py b/tdwii_plus_examples/domain_model/source_waveform_sequence_item.py new file mode 100644 index 0000000..96dc307 --- /dev/null +++ b/tdwii_plus_examples/domain_model/source_waveform_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SourceWaveformSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedWaveformChannels(self) -> Optional[List[int]]: + if "ReferencedWaveformChannels" in self._dataset: + return self._dataset.ReferencedWaveformChannels + return None + + @ReferencedWaveformChannels.setter + def ReferencedWaveformChannels(self, value: Optional[List[int]]): + if value is None: + if "ReferencedWaveformChannels" in self._dataset: + del self._dataset.ReferencedWaveformChannels + else: + self._dataset.ReferencedWaveformChannels = value diff --git a/tdwii_plus_examples/domain_model/spatial_fiducials.py b/tdwii_plus_examples/domain_model/spatial_fiducials.py new file mode 100644 index 0000000..ea5160c --- /dev/null +++ b/tdwii_plus_examples/domain_model/spatial_fiducials.py @@ -0,0 +1,4387 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .fiducial_set_sequence_item import FiducialSetSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class SpatialFiducials: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._FiducialSetSequence: List[FiducialSetSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def FiducialSetSequence(self) -> Optional[List[FiducialSetSequenceItem]]: + if "FiducialSetSequence" in self._dataset: + if len(self._FiducialSetSequence) == len(self._dataset.FiducialSetSequence): + return self._FiducialSetSequence + else: + return [FiducialSetSequenceItem(x) for x in self._dataset.FiducialSetSequence] + return None + + @FiducialSetSequence.setter + def FiducialSetSequence(self, value: Optional[List[FiducialSetSequenceItem]]): + if value is None: + self._FiducialSetSequence = [] + if "FiducialSetSequence" in self._dataset: + del self._dataset.FiducialSetSequence + elif not isinstance(value, list) or not all(isinstance(item, FiducialSetSequenceItem) for item in value): + raise ValueError("FiducialSetSequence must be a list of FiducialSetSequenceItem objects") + else: + self._FiducialSetSequence = value + if "FiducialSetSequence" not in self._dataset: + self._dataset.FiducialSetSequence = pydicom.Sequence() + self._dataset.FiducialSetSequence.clear() + self._dataset.FiducialSetSequence.extend([item.to_dataset() for item in value]) + + def add_FiducialSet(self, item: FiducialSetSequenceItem): + if not isinstance(item, FiducialSetSequenceItem): + raise ValueError("Item must be an instance of FiducialSetSequenceItem") + self._FiducialSetSequence.append(item) + if "FiducialSetSequence" not in self._dataset: + self._dataset.FiducialSetSequence = pydicom.Sequence() + self._dataset.FiducialSetSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/spatial_registration.py b/tdwii_plus_examples/domain_model/spatial_registration.py new file mode 100644 index 0000000..4c84922 --- /dev/null +++ b/tdwii_plus_examples/domain_model/spatial_registration.py @@ -0,0 +1,4415 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .registration_sequence_item import RegistrationSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class SpatialRegistration: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._RegistrationSequence: List[RegistrationSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def RegistrationSequence(self) -> Optional[List[RegistrationSequenceItem]]: + if "RegistrationSequence" in self._dataset: + if len(self._RegistrationSequence) == len(self._dataset.RegistrationSequence): + return self._RegistrationSequence + else: + return [RegistrationSequenceItem(x) for x in self._dataset.RegistrationSequence] + return None + + @RegistrationSequence.setter + def RegistrationSequence(self, value: Optional[List[RegistrationSequenceItem]]): + if value is None: + self._RegistrationSequence = [] + if "RegistrationSequence" in self._dataset: + del self._dataset.RegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, RegistrationSequenceItem) for item in value): + raise ValueError("RegistrationSequence must be a list of RegistrationSequenceItem objects") + else: + self._RegistrationSequence = value + if "RegistrationSequence" not in self._dataset: + self._dataset.RegistrationSequence = pydicom.Sequence() + self._dataset.RegistrationSequence.clear() + self._dataset.RegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_Registration(self, item: RegistrationSequenceItem): + if not isinstance(item, RegistrationSequenceItem): + raise ValueError("Item must be an instance of RegistrationSequenceItem") + self._RegistrationSequence.append(item) + if "RegistrationSequence" not in self._dataset: + self._dataset.RegistrationSequence = pydicom.Sequence() + self._dataset.RegistrationSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/specific_absorption_rate_sequence_item.py b/tdwii_plus_examples/domain_model/specific_absorption_rate_sequence_item.py new file mode 100644 index 0000000..f3c62d2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/specific_absorption_rate_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SpecificAbsorptionRateSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificAbsorptionRateDefinition(self) -> Optional[str]: + if "SpecificAbsorptionRateDefinition" in self._dataset: + return self._dataset.SpecificAbsorptionRateDefinition + return None + + @SpecificAbsorptionRateDefinition.setter + def SpecificAbsorptionRateDefinition(self, value: Optional[str]): + if value is None: + if "SpecificAbsorptionRateDefinition" in self._dataset: + del self._dataset.SpecificAbsorptionRateDefinition + else: + self._dataset.SpecificAbsorptionRateDefinition = value + + @property + def SpecificAbsorptionRateValue(self) -> Optional[float]: + if "SpecificAbsorptionRateValue" in self._dataset: + return self._dataset.SpecificAbsorptionRateValue + return None + + @SpecificAbsorptionRateValue.setter + def SpecificAbsorptionRateValue(self, value: Optional[float]): + if value is None: + if "SpecificAbsorptionRateValue" in self._dataset: + del self._dataset.SpecificAbsorptionRateValue + else: + self._dataset.SpecificAbsorptionRateValue = value diff --git a/tdwii_plus_examples/domain_model/specimen_description_sequence_item.py b/tdwii_plus_examples/domain_model/specimen_description_sequence_item.py new file mode 100644 index 0000000..84f8e99 --- /dev/null +++ b/tdwii_plus_examples/domain_model/specimen_description_sequence_item.py @@ -0,0 +1,259 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .issuer_of_the_specimen_identifier_sequence_item import ( + IssuerOfTheSpecimenIdentifierSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .specimen_localization_content_item_sequence_item import ( + SpecimenLocalizationContentItemSequenceItem, +) +from .specimen_preparation_sequence_item import SpecimenPreparationSequenceItem + + +class SpecimenDescriptionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._IssuerOfTheSpecimenIdentifierSequence: List[IssuerOfTheSpecimenIdentifierSequenceItem] = [] + self._SpecimenTypeCodeSequence: List[CodeSequenceItem] = [] + self._SpecimenPreparationSequence: List[SpecimenPreparationSequenceItem] = [] + self._SpecimenLocalizationContentItemSequence: List[SpecimenLocalizationContentItemSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def SpecimenIdentifier(self) -> Optional[str]: + if "SpecimenIdentifier" in self._dataset: + return self._dataset.SpecimenIdentifier + return None + + @SpecimenIdentifier.setter + def SpecimenIdentifier(self, value: Optional[str]): + if value is None: + if "SpecimenIdentifier" in self._dataset: + del self._dataset.SpecimenIdentifier + else: + self._dataset.SpecimenIdentifier = value + + @property + def SpecimenUID(self) -> Optional[str]: + if "SpecimenUID" in self._dataset: + return self._dataset.SpecimenUID + return None + + @SpecimenUID.setter + def SpecimenUID(self, value: Optional[str]): + if value is None: + if "SpecimenUID" in self._dataset: + del self._dataset.SpecimenUID + else: + self._dataset.SpecimenUID = value + + @property + def IssuerOfTheSpecimenIdentifierSequence(self) -> Optional[List[IssuerOfTheSpecimenIdentifierSequenceItem]]: + if "IssuerOfTheSpecimenIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheSpecimenIdentifierSequence) == len(self._dataset.IssuerOfTheSpecimenIdentifierSequence): + return self._IssuerOfTheSpecimenIdentifierSequence + else: + return [ + IssuerOfTheSpecimenIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheSpecimenIdentifierSequence + ] + return None + + @IssuerOfTheSpecimenIdentifierSequence.setter + def IssuerOfTheSpecimenIdentifierSequence(self, value: Optional[List[IssuerOfTheSpecimenIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheSpecimenIdentifierSequence = [] + if "IssuerOfTheSpecimenIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheSpecimenIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheSpecimenIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheSpecimenIdentifierSequence must be a list of IssuerOfTheSpecimenIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheSpecimenIdentifierSequence = value + if "IssuerOfTheSpecimenIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheSpecimenIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheSpecimenIdentifierSequence.clear() + self._dataset.IssuerOfTheSpecimenIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheSpecimenIdentifier(self, item: IssuerOfTheSpecimenIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheSpecimenIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheSpecimenIdentifierSequenceItem") + self._IssuerOfTheSpecimenIdentifierSequence.append(item) + if "IssuerOfTheSpecimenIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheSpecimenIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheSpecimenIdentifierSequence.append(item.to_dataset()) + + @property + def SpecimenTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SpecimenTypeCodeSequence" in self._dataset: + if len(self._SpecimenTypeCodeSequence) == len(self._dataset.SpecimenTypeCodeSequence): + return self._SpecimenTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SpecimenTypeCodeSequence] + return None + + @SpecimenTypeCodeSequence.setter + def SpecimenTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SpecimenTypeCodeSequence = [] + if "SpecimenTypeCodeSequence" in self._dataset: + del self._dataset.SpecimenTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SpecimenTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SpecimenTypeCodeSequence = value + if "SpecimenTypeCodeSequence" not in self._dataset: + self._dataset.SpecimenTypeCodeSequence = pydicom.Sequence() + self._dataset.SpecimenTypeCodeSequence.clear() + self._dataset.SpecimenTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SpecimenTypeCodeSequence.append(item) + if "SpecimenTypeCodeSequence" not in self._dataset: + self._dataset.SpecimenTypeCodeSequence = pydicom.Sequence() + self._dataset.SpecimenTypeCodeSequence.append(item.to_dataset()) + + @property + def SpecimenShortDescription(self) -> Optional[str]: + if "SpecimenShortDescription" in self._dataset: + return self._dataset.SpecimenShortDescription + return None + + @SpecimenShortDescription.setter + def SpecimenShortDescription(self, value: Optional[str]): + if value is None: + if "SpecimenShortDescription" in self._dataset: + del self._dataset.SpecimenShortDescription + else: + self._dataset.SpecimenShortDescription = value + + @property + def SpecimenDetailedDescription(self) -> Optional[str]: + if "SpecimenDetailedDescription" in self._dataset: + return self._dataset.SpecimenDetailedDescription + return None + + @SpecimenDetailedDescription.setter + def SpecimenDetailedDescription(self, value: Optional[str]): + if value is None: + if "SpecimenDetailedDescription" in self._dataset: + del self._dataset.SpecimenDetailedDescription + else: + self._dataset.SpecimenDetailedDescription = value + + @property + def SpecimenPreparationSequence(self) -> Optional[List[SpecimenPreparationSequenceItem]]: + if "SpecimenPreparationSequence" in self._dataset: + if len(self._SpecimenPreparationSequence) == len(self._dataset.SpecimenPreparationSequence): + return self._SpecimenPreparationSequence + else: + return [SpecimenPreparationSequenceItem(x) for x in self._dataset.SpecimenPreparationSequence] + return None + + @SpecimenPreparationSequence.setter + def SpecimenPreparationSequence(self, value: Optional[List[SpecimenPreparationSequenceItem]]): + if value is None: + self._SpecimenPreparationSequence = [] + if "SpecimenPreparationSequence" in self._dataset: + del self._dataset.SpecimenPreparationSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenPreparationSequenceItem) for item in value): + raise ValueError("SpecimenPreparationSequence must be a list of SpecimenPreparationSequenceItem objects") + else: + self._SpecimenPreparationSequence = value + if "SpecimenPreparationSequence" not in self._dataset: + self._dataset.SpecimenPreparationSequence = pydicom.Sequence() + self._dataset.SpecimenPreparationSequence.clear() + self._dataset.SpecimenPreparationSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenPreparation(self, item: SpecimenPreparationSequenceItem): + if not isinstance(item, SpecimenPreparationSequenceItem): + raise ValueError("Item must be an instance of SpecimenPreparationSequenceItem") + self._SpecimenPreparationSequence.append(item) + if "SpecimenPreparationSequence" not in self._dataset: + self._dataset.SpecimenPreparationSequence = pydicom.Sequence() + self._dataset.SpecimenPreparationSequence.append(item.to_dataset()) + + @property + def SpecimenLocalizationContentItemSequence(self) -> Optional[List[SpecimenLocalizationContentItemSequenceItem]]: + if "SpecimenLocalizationContentItemSequence" in self._dataset: + if len(self._SpecimenLocalizationContentItemSequence) == len( + self._dataset.SpecimenLocalizationContentItemSequence + ): + return self._SpecimenLocalizationContentItemSequence + else: + return [ + SpecimenLocalizationContentItemSequenceItem(x) + for x in self._dataset.SpecimenLocalizationContentItemSequence + ] + return None + + @SpecimenLocalizationContentItemSequence.setter + def SpecimenLocalizationContentItemSequence(self, value: Optional[List[SpecimenLocalizationContentItemSequenceItem]]): + if value is None: + self._SpecimenLocalizationContentItemSequence = [] + if "SpecimenLocalizationContentItemSequence" in self._dataset: + del self._dataset.SpecimenLocalizationContentItemSequence + elif not isinstance(value, list) or not all( + isinstance(item, SpecimenLocalizationContentItemSequenceItem) for item in value + ): + raise ValueError( + "SpecimenLocalizationContentItemSequence must be a list of SpecimenLocalizationContentItemSequenceItem objects" + ) + else: + self._SpecimenLocalizationContentItemSequence = value + if "SpecimenLocalizationContentItemSequence" not in self._dataset: + self._dataset.SpecimenLocalizationContentItemSequence = pydicom.Sequence() + self._dataset.SpecimenLocalizationContentItemSequence.clear() + self._dataset.SpecimenLocalizationContentItemSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenLocalizationContentItem(self, item: SpecimenLocalizationContentItemSequenceItem): + if not isinstance(item, SpecimenLocalizationContentItemSequenceItem): + raise ValueError("Item must be an instance of SpecimenLocalizationContentItemSequenceItem") + self._SpecimenLocalizationContentItemSequence.append(item) + if "SpecimenLocalizationContentItemSequence" not in self._dataset: + self._dataset.SpecimenLocalizationContentItemSequence = pydicom.Sequence() + self._dataset.SpecimenLocalizationContentItemSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/specimen_preparation_sequence_item.py b/tdwii_plus_examples/domain_model/specimen_preparation_sequence_item.py new file mode 100644 index 0000000..6837a4f --- /dev/null +++ b/tdwii_plus_examples/domain_model/specimen_preparation_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .specimen_preparation_step_content_item_sequence_item import ( + SpecimenPreparationStepContentItemSequenceItem, +) + + +class SpecimenPreparationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SpecimenPreparationStepContentItemSequence: List[SpecimenPreparationStepContentItemSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecimenPreparationStepContentItemSequence(self) -> Optional[List[SpecimenPreparationStepContentItemSequenceItem]]: + if "SpecimenPreparationStepContentItemSequence" in self._dataset: + if len(self._SpecimenPreparationStepContentItemSequence) == len( + self._dataset.SpecimenPreparationStepContentItemSequence + ): + return self._SpecimenPreparationStepContentItemSequence + else: + return [ + SpecimenPreparationStepContentItemSequenceItem(x) + for x in self._dataset.SpecimenPreparationStepContentItemSequence + ] + return None + + @SpecimenPreparationStepContentItemSequence.setter + def SpecimenPreparationStepContentItemSequence( + self, value: Optional[List[SpecimenPreparationStepContentItemSequenceItem]] + ): + if value is None: + self._SpecimenPreparationStepContentItemSequence = [] + if "SpecimenPreparationStepContentItemSequence" in self._dataset: + del self._dataset.SpecimenPreparationStepContentItemSequence + elif not isinstance(value, list) or not all( + isinstance(item, SpecimenPreparationStepContentItemSequenceItem) for item in value + ): + raise ValueError( + "SpecimenPreparationStepContentItemSequence must be a list of SpecimenPreparationStepContentItemSequenceItem" + " objects" + ) + else: + self._SpecimenPreparationStepContentItemSequence = value + if "SpecimenPreparationStepContentItemSequence" not in self._dataset: + self._dataset.SpecimenPreparationStepContentItemSequence = pydicom.Sequence() + self._dataset.SpecimenPreparationStepContentItemSequence.clear() + self._dataset.SpecimenPreparationStepContentItemSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenPreparationStepContentItem(self, item: SpecimenPreparationStepContentItemSequenceItem): + if not isinstance(item, SpecimenPreparationStepContentItemSequenceItem): + raise ValueError("Item must be an instance of SpecimenPreparationStepContentItemSequenceItem") + self._SpecimenPreparationStepContentItemSequence.append(item) + if "SpecimenPreparationStepContentItemSequence" not in self._dataset: + self._dataset.SpecimenPreparationStepContentItemSequence = pydicom.Sequence() + self._dataset.SpecimenPreparationStepContentItemSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/specimen_reference_sequence_item.py b/tdwii_plus_examples/domain_model/specimen_reference_sequence_item.py new file mode 100644 index 0000000..3a6d469 --- /dev/null +++ b/tdwii_plus_examples/domain_model/specimen_reference_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SpecimenReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecimenUID(self) -> Optional[str]: + if "SpecimenUID" in self._dataset: + return self._dataset.SpecimenUID + return None + + @SpecimenUID.setter + def SpecimenUID(self, value: Optional[str]): + if value is None: + if "SpecimenUID" in self._dataset: + del self._dataset.SpecimenUID + else: + self._dataset.SpecimenUID = value diff --git a/tdwii_plus_examples/domain_model/spectacle_prescription_report.py b/tdwii_plus_examples/domain_model/spectacle_prescription_report.py new file mode 100644 index 0000000..a8f69e8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/spectacle_prescription_report.py @@ -0,0 +1,4561 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_observer_sequence_item import AuthorObserverSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .content_sequence_item import ContentSequenceItem +from .content_template_sequence_item import ContentTemplateSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .current_requested_procedure_evidence_sequence_item import ( + CurrentRequestedProcedureEvidenceSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .identical_documents_sequence_item import IdenticalDocumentsSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .measured_value_sequence_item import MeasuredValueSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .participant_sequence_item import ParticipantSequenceItem +from .pertinent_other_evidence_sequence_item import PertinentOtherEvidenceSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .predecessor_documents_sequence_item import PredecessorDocumentsSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_request_sequence_item import ReferencedRequestSequenceItem +from .referenced_sop_sequence_item import ReferencedSOPSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .tabulated_values_sequence_item import TabulatedValuesSequenceItem +from .udi_sequence_item import UDISequenceItem +from .verifying_observer_sequence_item import VerifyingObserverSequenceItem + + +class SpectaclePrescriptionReport: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._VerifyingObserverSequence: List[VerifyingObserverSequenceItem] = [] + self._AuthorObserverSequence: List[AuthorObserverSequenceItem] = [] + self._ParticipantSequence: List[ParticipantSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._PredecessorDocumentsSequence: List[PredecessorDocumentsSequenceItem] = [] + self._ReferencedRequestSequence: List[ReferencedRequestSequenceItem] = [] + self._PerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._CurrentRequestedProcedureEvidenceSequence: List[CurrentRequestedProcedureEvidenceSequenceItem] = [] + self._PertinentOtherEvidenceSequence: List[PertinentOtherEvidenceSequenceItem] = [] + self._IdenticalDocumentsSequence: List[IdenticalDocumentsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedSOPSequence: List[ReferencedSOPSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + self._MeasuredValueSequence: List[MeasuredValueSequenceItem] = [] + self._NumericValueQualifierCodeSequence: List[CodeSequenceItem] = [] + self._ContentTemplateSequence: List[ContentTemplateSequenceItem] = [] + self._ContentSequence: List[ContentSequenceItem] = [] + self._TabulatedValuesSequence: List[TabulatedValuesSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def VerifyingObserverSequence(self) -> Optional[List[VerifyingObserverSequenceItem]]: + if "VerifyingObserverSequence" in self._dataset: + if len(self._VerifyingObserverSequence) == len(self._dataset.VerifyingObserverSequence): + return self._VerifyingObserverSequence + else: + return [VerifyingObserverSequenceItem(x) for x in self._dataset.VerifyingObserverSequence] + return None + + @VerifyingObserverSequence.setter + def VerifyingObserverSequence(self, value: Optional[List[VerifyingObserverSequenceItem]]): + if value is None: + self._VerifyingObserverSequence = [] + if "VerifyingObserverSequence" in self._dataset: + del self._dataset.VerifyingObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, VerifyingObserverSequenceItem) for item in value): + raise ValueError("VerifyingObserverSequence must be a list of VerifyingObserverSequenceItem objects") + else: + self._VerifyingObserverSequence = value + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.clear() + self._dataset.VerifyingObserverSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserver(self, item: VerifyingObserverSequenceItem): + if not isinstance(item, VerifyingObserverSequenceItem): + raise ValueError("Item must be an instance of VerifyingObserverSequenceItem") + self._VerifyingObserverSequence.append(item) + if "VerifyingObserverSequence" not in self._dataset: + self._dataset.VerifyingObserverSequence = pydicom.Sequence() + self._dataset.VerifyingObserverSequence.append(item.to_dataset()) + + @property + def AuthorObserverSequence(self) -> Optional[List[AuthorObserverSequenceItem]]: + if "AuthorObserverSequence" in self._dataset: + if len(self._AuthorObserverSequence) == len(self._dataset.AuthorObserverSequence): + return self._AuthorObserverSequence + else: + return [AuthorObserverSequenceItem(x) for x in self._dataset.AuthorObserverSequence] + return None + + @AuthorObserverSequence.setter + def AuthorObserverSequence(self, value: Optional[List[AuthorObserverSequenceItem]]): + if value is None: + self._AuthorObserverSequence = [] + if "AuthorObserverSequence" in self._dataset: + del self._dataset.AuthorObserverSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorObserverSequenceItem) for item in value): + raise ValueError("AuthorObserverSequence must be a list of AuthorObserverSequenceItem objects") + else: + self._AuthorObserverSequence = value + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.clear() + self._dataset.AuthorObserverSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorObserver(self, item: AuthorObserverSequenceItem): + if not isinstance(item, AuthorObserverSequenceItem): + raise ValueError("Item must be an instance of AuthorObserverSequenceItem") + self._AuthorObserverSequence.append(item) + if "AuthorObserverSequence" not in self._dataset: + self._dataset.AuthorObserverSequence = pydicom.Sequence() + self._dataset.AuthorObserverSequence.append(item.to_dataset()) + + @property + def ParticipantSequence(self) -> Optional[List[ParticipantSequenceItem]]: + if "ParticipantSequence" in self._dataset: + if len(self._ParticipantSequence) == len(self._dataset.ParticipantSequence): + return self._ParticipantSequence + else: + return [ParticipantSequenceItem(x) for x in self._dataset.ParticipantSequence] + return None + + @ParticipantSequence.setter + def ParticipantSequence(self, value: Optional[List[ParticipantSequenceItem]]): + if value is None: + self._ParticipantSequence = [] + if "ParticipantSequence" in self._dataset: + del self._dataset.ParticipantSequence + elif not isinstance(value, list) or not all(isinstance(item, ParticipantSequenceItem) for item in value): + raise ValueError("ParticipantSequence must be a list of ParticipantSequenceItem objects") + else: + self._ParticipantSequence = value + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.clear() + self._dataset.ParticipantSequence.extend([item.to_dataset() for item in value]) + + def add_Participant(self, item: ParticipantSequenceItem): + if not isinstance(item, ParticipantSequenceItem): + raise ValueError("Item must be an instance of ParticipantSequenceItem") + self._ParticipantSequence.append(item) + if "ParticipantSequence" not in self._dataset: + self._dataset.ParticipantSequence = pydicom.Sequence() + self._dataset.ParticipantSequence.append(item.to_dataset()) + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def PredecessorDocumentsSequence(self) -> Optional[List[PredecessorDocumentsSequenceItem]]: + if "PredecessorDocumentsSequence" in self._dataset: + if len(self._PredecessorDocumentsSequence) == len(self._dataset.PredecessorDocumentsSequence): + return self._PredecessorDocumentsSequence + else: + return [PredecessorDocumentsSequenceItem(x) for x in self._dataset.PredecessorDocumentsSequence] + return None + + @PredecessorDocumentsSequence.setter + def PredecessorDocumentsSequence(self, value: Optional[List[PredecessorDocumentsSequenceItem]]): + if value is None: + self._PredecessorDocumentsSequence = [] + if "PredecessorDocumentsSequence" in self._dataset: + del self._dataset.PredecessorDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorDocumentsSequenceItem) for item in value): + raise ValueError("PredecessorDocumentsSequence must be a list of PredecessorDocumentsSequenceItem objects") + else: + self._PredecessorDocumentsSequence = value + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.clear() + self._dataset.PredecessorDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorDocuments(self, item: PredecessorDocumentsSequenceItem): + if not isinstance(item, PredecessorDocumentsSequenceItem): + raise ValueError("Item must be an instance of PredecessorDocumentsSequenceItem") + self._PredecessorDocumentsSequence.append(item) + if "PredecessorDocumentsSequence" not in self._dataset: + self._dataset.PredecessorDocumentsSequence = pydicom.Sequence() + self._dataset.PredecessorDocumentsSequence.append(item.to_dataset()) + + @property + def ReferencedRequestSequence(self) -> Optional[List[ReferencedRequestSequenceItem]]: + if "ReferencedRequestSequence" in self._dataset: + if len(self._ReferencedRequestSequence) == len(self._dataset.ReferencedRequestSequence): + return self._ReferencedRequestSequence + else: + return [ReferencedRequestSequenceItem(x) for x in self._dataset.ReferencedRequestSequence] + return None + + @ReferencedRequestSequence.setter + def ReferencedRequestSequence(self, value: Optional[List[ReferencedRequestSequenceItem]]): + if value is None: + self._ReferencedRequestSequence = [] + if "ReferencedRequestSequence" in self._dataset: + del self._dataset.ReferencedRequestSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRequestSequenceItem) for item in value): + raise ValueError("ReferencedRequestSequence must be a list of ReferencedRequestSequenceItem objects") + else: + self._ReferencedRequestSequence = value + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.clear() + self._dataset.ReferencedRequestSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRequest(self, item: ReferencedRequestSequenceItem): + if not isinstance(item, ReferencedRequestSequenceItem): + raise ValueError("Item must be an instance of ReferencedRequestSequenceItem") + self._ReferencedRequestSequence.append(item) + if "ReferencedRequestSequence" not in self._dataset: + self._dataset.ReferencedRequestSequence = pydicom.Sequence() + self._dataset.ReferencedRequestSequence.append(item.to_dataset()) + + @property + def PerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProcedureCodeSequence" in self._dataset: + if len(self._PerformedProcedureCodeSequence) == len(self._dataset.PerformedProcedureCodeSequence): + return self._PerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProcedureCodeSequence] + return None + + @PerformedProcedureCodeSequence.setter + def PerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProcedureCodeSequence = [] + if "PerformedProcedureCodeSequence" in self._dataset: + del self._dataset.PerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProcedureCodeSequence = value + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.clear() + self._dataset.PerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProcedureCodeSequence.append(item) + if "PerformedProcedureCodeSequence" not in self._dataset: + self._dataset.PerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def CurrentRequestedProcedureEvidenceSequence(self) -> Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]: + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + if len(self._CurrentRequestedProcedureEvidenceSequence) == len( + self._dataset.CurrentRequestedProcedureEvidenceSequence + ): + return self._CurrentRequestedProcedureEvidenceSequence + else: + return [ + CurrentRequestedProcedureEvidenceSequenceItem(x) + for x in self._dataset.CurrentRequestedProcedureEvidenceSequence + ] + return None + + @CurrentRequestedProcedureEvidenceSequence.setter + def CurrentRequestedProcedureEvidenceSequence(self, value: Optional[List[CurrentRequestedProcedureEvidenceSequenceItem]]): + if value is None: + self._CurrentRequestedProcedureEvidenceSequence = [] + if "CurrentRequestedProcedureEvidenceSequence" in self._dataset: + del self._dataset.CurrentRequestedProcedureEvidenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem) for item in value + ): + raise ValueError( + "CurrentRequestedProcedureEvidenceSequence must be a list of CurrentRequestedProcedureEvidenceSequenceItem" + " objects" + ) + else: + self._CurrentRequestedProcedureEvidenceSequence = value + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.clear() + self._dataset.CurrentRequestedProcedureEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_CurrentRequestedProcedureEvidence(self, item: CurrentRequestedProcedureEvidenceSequenceItem): + if not isinstance(item, CurrentRequestedProcedureEvidenceSequenceItem): + raise ValueError("Item must be an instance of CurrentRequestedProcedureEvidenceSequenceItem") + self._CurrentRequestedProcedureEvidenceSequence.append(item) + if "CurrentRequestedProcedureEvidenceSequence" not in self._dataset: + self._dataset.CurrentRequestedProcedureEvidenceSequence = pydicom.Sequence() + self._dataset.CurrentRequestedProcedureEvidenceSequence.append(item.to_dataset()) + + @property + def PertinentOtherEvidenceSequence(self) -> Optional[List[PertinentOtherEvidenceSequenceItem]]: + if "PertinentOtherEvidenceSequence" in self._dataset: + if len(self._PertinentOtherEvidenceSequence) == len(self._dataset.PertinentOtherEvidenceSequence): + return self._PertinentOtherEvidenceSequence + else: + return [PertinentOtherEvidenceSequenceItem(x) for x in self._dataset.PertinentOtherEvidenceSequence] + return None + + @PertinentOtherEvidenceSequence.setter + def PertinentOtherEvidenceSequence(self, value: Optional[List[PertinentOtherEvidenceSequenceItem]]): + if value is None: + self._PertinentOtherEvidenceSequence = [] + if "PertinentOtherEvidenceSequence" in self._dataset: + del self._dataset.PertinentOtherEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, PertinentOtherEvidenceSequenceItem) for item in value): + raise ValueError("PertinentOtherEvidenceSequence must be a list of PertinentOtherEvidenceSequenceItem objects") + else: + self._PertinentOtherEvidenceSequence = value + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.clear() + self._dataset.PertinentOtherEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_PertinentOtherEvidence(self, item: PertinentOtherEvidenceSequenceItem): + if not isinstance(item, PertinentOtherEvidenceSequenceItem): + raise ValueError("Item must be an instance of PertinentOtherEvidenceSequenceItem") + self._PertinentOtherEvidenceSequence.append(item) + if "PertinentOtherEvidenceSequence" not in self._dataset: + self._dataset.PertinentOtherEvidenceSequence = pydicom.Sequence() + self._dataset.PertinentOtherEvidenceSequence.append(item.to_dataset()) + + @property + def CompletionFlag(self) -> Optional[str]: + if "CompletionFlag" in self._dataset: + return self._dataset.CompletionFlag + return None + + @CompletionFlag.setter + def CompletionFlag(self, value: Optional[str]): + if value is None: + if "CompletionFlag" in self._dataset: + del self._dataset.CompletionFlag + else: + self._dataset.CompletionFlag = value + + @property + def CompletionFlagDescription(self) -> Optional[str]: + if "CompletionFlagDescription" in self._dataset: + return self._dataset.CompletionFlagDescription + return None + + @CompletionFlagDescription.setter + def CompletionFlagDescription(self, value: Optional[str]): + if value is None: + if "CompletionFlagDescription" in self._dataset: + del self._dataset.CompletionFlagDescription + else: + self._dataset.CompletionFlagDescription = value + + @property + def VerificationFlag(self) -> Optional[str]: + if "VerificationFlag" in self._dataset: + return self._dataset.VerificationFlag + return None + + @VerificationFlag.setter + def VerificationFlag(self, value: Optional[str]): + if value is None: + if "VerificationFlag" in self._dataset: + del self._dataset.VerificationFlag + else: + self._dataset.VerificationFlag = value + + @property + def PreliminaryFlag(self) -> Optional[str]: + if "PreliminaryFlag" in self._dataset: + return self._dataset.PreliminaryFlag + return None + + @PreliminaryFlag.setter + def PreliminaryFlag(self, value: Optional[str]): + if value is None: + if "PreliminaryFlag" in self._dataset: + del self._dataset.PreliminaryFlag + else: + self._dataset.PreliminaryFlag = value + + @property + def IdenticalDocumentsSequence(self) -> Optional[List[IdenticalDocumentsSequenceItem]]: + if "IdenticalDocumentsSequence" in self._dataset: + if len(self._IdenticalDocumentsSequence) == len(self._dataset.IdenticalDocumentsSequence): + return self._IdenticalDocumentsSequence + else: + return [IdenticalDocumentsSequenceItem(x) for x in self._dataset.IdenticalDocumentsSequence] + return None + + @IdenticalDocumentsSequence.setter + def IdenticalDocumentsSequence(self, value: Optional[List[IdenticalDocumentsSequenceItem]]): + if value is None: + self._IdenticalDocumentsSequence = [] + if "IdenticalDocumentsSequence" in self._dataset: + del self._dataset.IdenticalDocumentsSequence + elif not isinstance(value, list) or not all(isinstance(item, IdenticalDocumentsSequenceItem) for item in value): + raise ValueError("IdenticalDocumentsSequence must be a list of IdenticalDocumentsSequenceItem objects") + else: + self._IdenticalDocumentsSequence = value + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.clear() + self._dataset.IdenticalDocumentsSequence.extend([item.to_dataset() for item in value]) + + def add_IdenticalDocuments(self, item: IdenticalDocumentsSequenceItem): + if not isinstance(item, IdenticalDocumentsSequenceItem): + raise ValueError("Item must be an instance of IdenticalDocumentsSequenceItem") + self._IdenticalDocumentsSequence.append(item) + if "IdenticalDocumentsSequence" not in self._dataset: + self._dataset.IdenticalDocumentsSequence = pydicom.Sequence() + self._dataset.IdenticalDocumentsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedSOPSequence(self) -> Optional[List[ReferencedSOPSequenceItem]]: + if "ReferencedSOPSequence" in self._dataset: + if len(self._ReferencedSOPSequence) == len(self._dataset.ReferencedSOPSequence): + return self._ReferencedSOPSequence + else: + return [ReferencedSOPSequenceItem(x) for x in self._dataset.ReferencedSOPSequence] + return None + + @ReferencedSOPSequence.setter + def ReferencedSOPSequence(self, value: Optional[List[ReferencedSOPSequenceItem]]): + if value is None: + self._ReferencedSOPSequence = [] + if "ReferencedSOPSequence" in self._dataset: + del self._dataset.ReferencedSOPSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSOPSequenceItem) for item in value): + raise ValueError("ReferencedSOPSequence must be a list of ReferencedSOPSequenceItem objects") + else: + self._ReferencedSOPSequence = value + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.clear() + self._dataset.ReferencedSOPSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSOP(self, item: ReferencedSOPSequenceItem): + if not isinstance(item, ReferencedSOPSequenceItem): + raise ValueError("Item must be an instance of ReferencedSOPSequenceItem") + self._ReferencedSOPSequence.append(item) + if "ReferencedSOPSequence" not in self._dataset: + self._dataset.ReferencedSOPSequence = pydicom.Sequence() + self._dataset.ReferencedSOPSequence.append(item.to_dataset()) + + @property + def ObservationDateTime(self) -> Optional[str]: + if "ObservationDateTime" in self._dataset: + return self._dataset.ObservationDateTime + return None + + @ObservationDateTime.setter + def ObservationDateTime(self, value: Optional[str]): + if value is None: + if "ObservationDateTime" in self._dataset: + del self._dataset.ObservationDateTime + else: + self._dataset.ObservationDateTime = value + + @property + def ValueType(self) -> Optional[str]: + if "ValueType" in self._dataset: + return self._dataset.ValueType + return None + + @ValueType.setter + def ValueType(self, value: Optional[str]): + if value is None: + if "ValueType" in self._dataset: + del self._dataset.ValueType + else: + self._dataset.ValueType = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContinuityOfContent(self) -> Optional[str]: + if "ContinuityOfContent" in self._dataset: + return self._dataset.ContinuityOfContent + return None + + @ContinuityOfContent.setter + def ContinuityOfContent(self, value: Optional[str]): + if value is None: + if "ContinuityOfContent" in self._dataset: + del self._dataset.ContinuityOfContent + else: + self._dataset.ContinuityOfContent = value + + @property + def DateTime(self) -> Optional[str]: + if "DateTime" in self._dataset: + return self._dataset.DateTime + return None + + @DateTime.setter + def DateTime(self, value: Optional[str]): + if value is None: + if "DateTime" in self._dataset: + del self._dataset.DateTime + else: + self._dataset.DateTime = value + + @property + def Date(self) -> Optional[str]: + if "Date" in self._dataset: + return self._dataset.Date + return None + + @Date.setter + def Date(self, value: Optional[str]): + if value is None: + if "Date" in self._dataset: + del self._dataset.Date + else: + self._dataset.Date = value + + @property + def Time(self) -> Optional[str]: + if "Time" in self._dataset: + return self._dataset.Time + return None + + @Time.setter + def Time(self, value: Optional[str]): + if value is None: + if "Time" in self._dataset: + del self._dataset.Time + else: + self._dataset.Time = value + + @property + def PersonName(self) -> Optional[str]: + if "PersonName" in self._dataset: + return self._dataset.PersonName + return None + + @PersonName.setter + def PersonName(self, value: Optional[str]): + if value is None: + if "PersonName" in self._dataset: + del self._dataset.PersonName + else: + self._dataset.PersonName = value + + @property + def UID(self) -> Optional[str]: + if "UID" in self._dataset: + return self._dataset.UID + return None + + @UID.setter + def UID(self, value: Optional[str]): + if value is None: + if "UID" in self._dataset: + del self._dataset.UID + else: + self._dataset.UID = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def TextValue(self) -> Optional[str]: + if "TextValue" in self._dataset: + return self._dataset.TextValue + return None + + @TextValue.setter + def TextValue(self, value: Optional[str]): + if value is None: + if "TextValue" in self._dataset: + del self._dataset.TextValue + else: + self._dataset.TextValue = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def ObservationUID(self) -> Optional[str]: + if "ObservationUID" in self._dataset: + return self._dataset.ObservationUID + return None + + @ObservationUID.setter + def ObservationUID(self, value: Optional[str]): + if value is None: + if "ObservationUID" in self._dataset: + del self._dataset.ObservationUID + else: + self._dataset.ObservationUID = value + + @property + def MeasuredValueSequence(self) -> Optional[List[MeasuredValueSequenceItem]]: + if "MeasuredValueSequence" in self._dataset: + if len(self._MeasuredValueSequence) == len(self._dataset.MeasuredValueSequence): + return self._MeasuredValueSequence + else: + return [MeasuredValueSequenceItem(x) for x in self._dataset.MeasuredValueSequence] + return None + + @MeasuredValueSequence.setter + def MeasuredValueSequence(self, value: Optional[List[MeasuredValueSequenceItem]]): + if value is None: + self._MeasuredValueSequence = [] + if "MeasuredValueSequence" in self._dataset: + del self._dataset.MeasuredValueSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasuredValueSequenceItem) for item in value): + raise ValueError("MeasuredValueSequence must be a list of MeasuredValueSequenceItem objects") + else: + self._MeasuredValueSequence = value + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.clear() + self._dataset.MeasuredValueSequence.extend([item.to_dataset() for item in value]) + + def add_MeasuredValue(self, item: MeasuredValueSequenceItem): + if not isinstance(item, MeasuredValueSequenceItem): + raise ValueError("Item must be an instance of MeasuredValueSequenceItem") + self._MeasuredValueSequence.append(item) + if "MeasuredValueSequence" not in self._dataset: + self._dataset.MeasuredValueSequence = pydicom.Sequence() + self._dataset.MeasuredValueSequence.append(item.to_dataset()) + + @property + def NumericValueQualifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "NumericValueQualifierCodeSequence" in self._dataset: + if len(self._NumericValueQualifierCodeSequence) == len(self._dataset.NumericValueQualifierCodeSequence): + return self._NumericValueQualifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.NumericValueQualifierCodeSequence] + return None + + @NumericValueQualifierCodeSequence.setter + def NumericValueQualifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._NumericValueQualifierCodeSequence = [] + if "NumericValueQualifierCodeSequence" in self._dataset: + del self._dataset.NumericValueQualifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("NumericValueQualifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._NumericValueQualifierCodeSequence = value + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.clear() + self._dataset.NumericValueQualifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_NumericValueQualifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._NumericValueQualifierCodeSequence.append(item) + if "NumericValueQualifierCodeSequence" not in self._dataset: + self._dataset.NumericValueQualifierCodeSequence = pydicom.Sequence() + self._dataset.NumericValueQualifierCodeSequence.append(item.to_dataset()) + + @property + def ContentTemplateSequence(self) -> Optional[List[ContentTemplateSequenceItem]]: + if "ContentTemplateSequence" in self._dataset: + if len(self._ContentTemplateSequence) == len(self._dataset.ContentTemplateSequence): + return self._ContentTemplateSequence + else: + return [ContentTemplateSequenceItem(x) for x in self._dataset.ContentTemplateSequence] + return None + + @ContentTemplateSequence.setter + def ContentTemplateSequence(self, value: Optional[List[ContentTemplateSequenceItem]]): + if value is None: + self._ContentTemplateSequence = [] + if "ContentTemplateSequence" in self._dataset: + del self._dataset.ContentTemplateSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentTemplateSequenceItem) for item in value): + raise ValueError("ContentTemplateSequence must be a list of ContentTemplateSequenceItem objects") + else: + self._ContentTemplateSequence = value + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.clear() + self._dataset.ContentTemplateSequence.extend([item.to_dataset() for item in value]) + + def add_ContentTemplate(self, item: ContentTemplateSequenceItem): + if not isinstance(item, ContentTemplateSequenceItem): + raise ValueError("Item must be an instance of ContentTemplateSequenceItem") + self._ContentTemplateSequence.append(item) + if "ContentTemplateSequence" not in self._dataset: + self._dataset.ContentTemplateSequence = pydicom.Sequence() + self._dataset.ContentTemplateSequence.append(item.to_dataset()) + + @property + def ContentSequence(self) -> Optional[List[ContentSequenceItem]]: + if "ContentSequence" in self._dataset: + if len(self._ContentSequence) == len(self._dataset.ContentSequence): + return self._ContentSequence + else: + return [ContentSequenceItem(x) for x in self._dataset.ContentSequence] + return None + + @ContentSequence.setter + def ContentSequence(self, value: Optional[List[ContentSequenceItem]]): + if value is None: + self._ContentSequence = [] + if "ContentSequence" in self._dataset: + del self._dataset.ContentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContentSequenceItem) for item in value): + raise ValueError("ContentSequence must be a list of ContentSequenceItem objects") + else: + self._ContentSequence = value + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.clear() + self._dataset.ContentSequence.extend([item.to_dataset() for item in value]) + + def add_Content(self, item: ContentSequenceItem): + if not isinstance(item, ContentSequenceItem): + raise ValueError("Item must be an instance of ContentSequenceItem") + self._ContentSequence.append(item) + if "ContentSequence" not in self._dataset: + self._dataset.ContentSequence = pydicom.Sequence() + self._dataset.ContentSequence.append(item.to_dataset()) + + @property + def TabulatedValuesSequence(self) -> Optional[List[TabulatedValuesSequenceItem]]: + if "TabulatedValuesSequence" in self._dataset: + if len(self._TabulatedValuesSequence) == len(self._dataset.TabulatedValuesSequence): + return self._TabulatedValuesSequence + else: + return [TabulatedValuesSequenceItem(x) for x in self._dataset.TabulatedValuesSequence] + return None + + @TabulatedValuesSequence.setter + def TabulatedValuesSequence(self, value: Optional[List[TabulatedValuesSequenceItem]]): + if value is None: + self._TabulatedValuesSequence = [] + if "TabulatedValuesSequence" in self._dataset: + del self._dataset.TabulatedValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, TabulatedValuesSequenceItem) for item in value): + raise ValueError("TabulatedValuesSequence must be a list of TabulatedValuesSequenceItem objects") + else: + self._TabulatedValuesSequence = value + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.clear() + self._dataset.TabulatedValuesSequence.extend([item.to_dataset() for item in value]) + + def add_TabulatedValues(self, item: TabulatedValuesSequenceItem): + if not isinstance(item, TabulatedValuesSequenceItem): + raise ValueError("Item must be an instance of TabulatedValuesSequenceItem") + self._TabulatedValuesSequence.append(item) + if "TabulatedValuesSequence" not in self._dataset: + self._dataset.TabulatedValuesSequence = pydicom.Sequence() + self._dataset.TabulatedValuesSequence.append(item.to_dataset()) + + @property + def PixelOriginInterpretation(self) -> Optional[str]: + if "PixelOriginInterpretation" in self._dataset: + return self._dataset.PixelOriginInterpretation + return None + + @PixelOriginInterpretation.setter + def PixelOriginInterpretation(self, value: Optional[str]): + if value is None: + if "PixelOriginInterpretation" in self._dataset: + del self._dataset.PixelOriginInterpretation + else: + self._dataset.PixelOriginInterpretation = value + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/steady_state_pulse_sequence_item.py b/tdwii_plus_examples/domain_model/steady_state_pulse_sequence_item.py new file mode 100644 index 0000000..5a0eb67 --- /dev/null +++ b/tdwii_plus_examples/domain_model/steady_state_pulse_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SteadyStatePulseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/steep_corneal_axis_sequence_item.py b/tdwii_plus_examples/domain_model/steep_corneal_axis_sequence_item.py new file mode 100644 index 0000000..88f0e44 --- /dev/null +++ b/tdwii_plus_examples/domain_model/steep_corneal_axis_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SteepCornealAxisSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiusOfCurvature(self) -> Optional[float]: + if "RadiusOfCurvature" in self._dataset: + return self._dataset.RadiusOfCurvature + return None + + @RadiusOfCurvature.setter + def RadiusOfCurvature(self, value: Optional[float]): + if value is None: + if "RadiusOfCurvature" in self._dataset: + del self._dataset.RadiusOfCurvature + else: + self._dataset.RadiusOfCurvature = value + + @property + def CornealPower(self) -> Optional[float]: + if "CornealPower" in self._dataset: + return self._dataset.CornealPower + return None + + @CornealPower.setter + def CornealPower(self, value: Optional[float]): + if value is None: + if "CornealPower" in self._dataset: + del self._dataset.CornealPower + else: + self._dataset.CornealPower = value + + @property + def CornealAxis(self) -> Optional[float]: + if "CornealAxis" in self._dataset: + return self._dataset.CornealAxis + return None + + @CornealAxis.setter + def CornealAxis(self, value: Optional[float]): + if value is None: + if "CornealAxis" in self._dataset: + del self._dataset.CornealAxis + else: + self._dataset.CornealAxis = value diff --git a/tdwii_plus_examples/domain_model/steep_keratometric_axis_sequence_item.py b/tdwii_plus_examples/domain_model/steep_keratometric_axis_sequence_item.py new file mode 100644 index 0000000..c11eb98 --- /dev/null +++ b/tdwii_plus_examples/domain_model/steep_keratometric_axis_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SteepKeratometricAxisSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RadiusOfCurvature(self) -> Optional[float]: + if "RadiusOfCurvature" in self._dataset: + return self._dataset.RadiusOfCurvature + return None + + @RadiusOfCurvature.setter + def RadiusOfCurvature(self, value: Optional[float]): + if value is None: + if "RadiusOfCurvature" in self._dataset: + del self._dataset.RadiusOfCurvature + else: + self._dataset.RadiusOfCurvature = value + + @property + def KeratometricPower(self) -> Optional[float]: + if "KeratometricPower" in self._dataset: + return self._dataset.KeratometricPower + return None + + @KeratometricPower.setter + def KeratometricPower(self, value: Optional[float]): + if value is None: + if "KeratometricPower" in self._dataset: + del self._dataset.KeratometricPower + else: + self._dataset.KeratometricPower = value + + @property + def KeratometricAxis(self) -> Optional[float]: + if "KeratometricAxis" in self._dataset: + return self._dataset.KeratometricAxis + return None + + @KeratometricAxis.setter + def KeratometricAxis(self, value: Optional[float]): + if value is None: + if "KeratometricAxis" in self._dataset: + del self._dataset.KeratometricAxis + else: + self._dataset.KeratometricAxis = value diff --git a/tdwii_plus_examples/domain_model/stereo_pairs_sequence_item.py b/tdwii_plus_examples/domain_model/stereo_pairs_sequence_item.py new file mode 100644 index 0000000..1bb6c85 --- /dev/null +++ b/tdwii_plus_examples/domain_model/stereo_pairs_sequence_item.py @@ -0,0 +1,150 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .left_image_sequence_item import LeftImageSequenceItem +from .right_image_sequence_item import RightImageSequenceItem + + +class StereoPairsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._LeftImageSequence: List[LeftImageSequenceItem] = [] + self._RightImageSequence: List[RightImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StereoBaselineAngle(self) -> Optional[float]: + if "StereoBaselineAngle" in self._dataset: + return self._dataset.StereoBaselineAngle + return None + + @StereoBaselineAngle.setter + def StereoBaselineAngle(self, value: Optional[float]): + if value is None: + if "StereoBaselineAngle" in self._dataset: + del self._dataset.StereoBaselineAngle + else: + self._dataset.StereoBaselineAngle = value + + @property + def StereoBaselineDisplacement(self) -> Optional[float]: + if "StereoBaselineDisplacement" in self._dataset: + return self._dataset.StereoBaselineDisplacement + return None + + @StereoBaselineDisplacement.setter + def StereoBaselineDisplacement(self, value: Optional[float]): + if value is None: + if "StereoBaselineDisplacement" in self._dataset: + del self._dataset.StereoBaselineDisplacement + else: + self._dataset.StereoBaselineDisplacement = value + + @property + def StereoHorizontalPixelOffset(self) -> Optional[float]: + if "StereoHorizontalPixelOffset" in self._dataset: + return self._dataset.StereoHorizontalPixelOffset + return None + + @StereoHorizontalPixelOffset.setter + def StereoHorizontalPixelOffset(self, value: Optional[float]): + if value is None: + if "StereoHorizontalPixelOffset" in self._dataset: + del self._dataset.StereoHorizontalPixelOffset + else: + self._dataset.StereoHorizontalPixelOffset = value + + @property + def StereoVerticalPixelOffset(self) -> Optional[float]: + if "StereoVerticalPixelOffset" in self._dataset: + return self._dataset.StereoVerticalPixelOffset + return None + + @StereoVerticalPixelOffset.setter + def StereoVerticalPixelOffset(self, value: Optional[float]): + if value is None: + if "StereoVerticalPixelOffset" in self._dataset: + del self._dataset.StereoVerticalPixelOffset + else: + self._dataset.StereoVerticalPixelOffset = value + + @property + def StereoRotation(self) -> Optional[float]: + if "StereoRotation" in self._dataset: + return self._dataset.StereoRotation + return None + + @StereoRotation.setter + def StereoRotation(self, value: Optional[float]): + if value is None: + if "StereoRotation" in self._dataset: + del self._dataset.StereoRotation + else: + self._dataset.StereoRotation = value + + @property + def LeftImageSequence(self) -> Optional[List[LeftImageSequenceItem]]: + if "LeftImageSequence" in self._dataset: + if len(self._LeftImageSequence) == len(self._dataset.LeftImageSequence): + return self._LeftImageSequence + else: + return [LeftImageSequenceItem(x) for x in self._dataset.LeftImageSequence] + return None + + @LeftImageSequence.setter + def LeftImageSequence(self, value: Optional[List[LeftImageSequenceItem]]): + if value is None: + self._LeftImageSequence = [] + if "LeftImageSequence" in self._dataset: + del self._dataset.LeftImageSequence + elif not isinstance(value, list) or not all(isinstance(item, LeftImageSequenceItem) for item in value): + raise ValueError("LeftImageSequence must be a list of LeftImageSequenceItem objects") + else: + self._LeftImageSequence = value + if "LeftImageSequence" not in self._dataset: + self._dataset.LeftImageSequence = pydicom.Sequence() + self._dataset.LeftImageSequence.clear() + self._dataset.LeftImageSequence.extend([item.to_dataset() for item in value]) + + def add_LeftImage(self, item: LeftImageSequenceItem): + if not isinstance(item, LeftImageSequenceItem): + raise ValueError("Item must be an instance of LeftImageSequenceItem") + self._LeftImageSequence.append(item) + if "LeftImageSequence" not in self._dataset: + self._dataset.LeftImageSequence = pydicom.Sequence() + self._dataset.LeftImageSequence.append(item.to_dataset()) + + @property + def RightImageSequence(self) -> Optional[List[RightImageSequenceItem]]: + if "RightImageSequence" in self._dataset: + if len(self._RightImageSequence) == len(self._dataset.RightImageSequence): + return self._RightImageSequence + else: + return [RightImageSequenceItem(x) for x in self._dataset.RightImageSequence] + return None + + @RightImageSequence.setter + def RightImageSequence(self, value: Optional[List[RightImageSequenceItem]]): + if value is None: + self._RightImageSequence = [] + if "RightImageSequence" in self._dataset: + del self._dataset.RightImageSequence + elif not isinstance(value, list) or not all(isinstance(item, RightImageSequenceItem) for item in value): + raise ValueError("RightImageSequence must be a list of RightImageSequenceItem objects") + else: + self._RightImageSequence = value + if "RightImageSequence" not in self._dataset: + self._dataset.RightImageSequence = pydicom.Sequence() + self._dataset.RightImageSequence.clear() + self._dataset.RightImageSequence.extend([item.to_dataset() for item in value]) + + def add_RightImage(self, item: RightImageSequenceItem): + if not isinstance(item, RightImageSequenceItem): + raise ValueError("Item must be an instance of RightImageSequenceItem") + self._RightImageSequence.append(item) + if "RightImageSequence" not in self._dataset: + self._dataset.RightImageSequence = pydicom.Sequence() + self._dataset.RightImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/stereometric_relationship.py b/tdwii_plus_examples/domain_model/stereometric_relationship.py new file mode 100644 index 0000000..30e0846 --- /dev/null +++ b/tdwii_plus_examples/domain_model/stereometric_relationship.py @@ -0,0 +1,4012 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .stereo_pairs_sequence_item import StereoPairsSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class StereometricRelationship: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._StereoPairsSequence: List[StereoPairsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StereoPairsSequence(self) -> Optional[List[StereoPairsSequenceItem]]: + if "StereoPairsSequence" in self._dataset: + if len(self._StereoPairsSequence) == len(self._dataset.StereoPairsSequence): + return self._StereoPairsSequence + else: + return [StereoPairsSequenceItem(x) for x in self._dataset.StereoPairsSequence] + return None + + @StereoPairsSequence.setter + def StereoPairsSequence(self, value: Optional[List[StereoPairsSequenceItem]]): + if value is None: + self._StereoPairsSequence = [] + if "StereoPairsSequence" in self._dataset: + del self._dataset.StereoPairsSequence + elif not isinstance(value, list) or not all(isinstance(item, StereoPairsSequenceItem) for item in value): + raise ValueError("StereoPairsSequence must be a list of StereoPairsSequenceItem objects") + else: + self._StereoPairsSequence = value + if "StereoPairsSequence" not in self._dataset: + self._dataset.StereoPairsSequence = pydicom.Sequence() + self._dataset.StereoPairsSequence.clear() + self._dataset.StereoPairsSequence.extend([item.to_dataset() for item in value]) + + def add_StereoPairs(self, item: StereoPairsSequenceItem): + if not isinstance(item, StereoPairsSequenceItem): + raise ValueError("Item must be an instance of StereoPairsSequenceItem") + self._StereoPairsSequence.append(item) + if "StereoPairsSequence" not in self._dataset: + self._dataset.StereoPairsSequence = pydicom.Sequence() + self._dataset.StereoPairsSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/storage_protocol_element_sequence_item.py b/tdwii_plus_examples/domain_model/storage_protocol_element_sequence_item.py new file mode 100644 index 0000000..fa6662c --- /dev/null +++ b/tdwii_plus_examples/domain_model/storage_protocol_element_sequence_item.py @@ -0,0 +1,172 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .output_information_sequence_item import OutputInformationSequenceItem + + +class StorageProtocolElementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OutputInformationSequence: List[OutputInformationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ProtocolElementNumber(self) -> Optional[int]: + if "ProtocolElementNumber" in self._dataset: + return self._dataset.ProtocolElementNumber + return None + + @ProtocolElementNumber.setter + def ProtocolElementNumber(self, value: Optional[int]): + if value is None: + if "ProtocolElementNumber" in self._dataset: + del self._dataset.ProtocolElementNumber + else: + self._dataset.ProtocolElementNumber = value + + @property + def ProtocolElementName(self) -> Optional[str]: + if "ProtocolElementName" in self._dataset: + return self._dataset.ProtocolElementName + return None + + @ProtocolElementName.setter + def ProtocolElementName(self, value: Optional[str]): + if value is None: + if "ProtocolElementName" in self._dataset: + del self._dataset.ProtocolElementName + else: + self._dataset.ProtocolElementName = value + + @property + def ProtocolElementCharacteristicsSummary(self) -> Optional[str]: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + return self._dataset.ProtocolElementCharacteristicsSummary + return None + + @ProtocolElementCharacteristicsSummary.setter + def ProtocolElementCharacteristicsSummary(self, value: Optional[str]): + if value is None: + if "ProtocolElementCharacteristicsSummary" in self._dataset: + del self._dataset.ProtocolElementCharacteristicsSummary + else: + self._dataset.ProtocolElementCharacteristicsSummary = value + + @property + def ProtocolElementPurpose(self) -> Optional[str]: + if "ProtocolElementPurpose" in self._dataset: + return self._dataset.ProtocolElementPurpose + return None + + @ProtocolElementPurpose.setter + def ProtocolElementPurpose(self, value: Optional[str]): + if value is None: + if "ProtocolElementPurpose" in self._dataset: + del self._dataset.ProtocolElementPurpose + else: + self._dataset.ProtocolElementPurpose = value + + @property + def SourceAcquisitionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + return self._dataset.SourceAcquisitionProtocolElementNumber + return None + + @SourceAcquisitionProtocolElementNumber.setter + def SourceAcquisitionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionProtocolElementNumber" in self._dataset: + del self._dataset.SourceAcquisitionProtocolElementNumber + else: + self._dataset.SourceAcquisitionProtocolElementNumber = value + + @property + def SourceAcquisitionBeamNumber(self) -> Optional[List[int]]: + if "SourceAcquisitionBeamNumber" in self._dataset: + return self._dataset.SourceAcquisitionBeamNumber + return None + + @SourceAcquisitionBeamNumber.setter + def SourceAcquisitionBeamNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceAcquisitionBeamNumber" in self._dataset: + del self._dataset.SourceAcquisitionBeamNumber + else: + self._dataset.SourceAcquisitionBeamNumber = value + + @property + def SourceReconstructionProtocolElementNumber(self) -> Optional[List[int]]: + if "SourceReconstructionProtocolElementNumber" in self._dataset: + return self._dataset.SourceReconstructionProtocolElementNumber + return None + + @SourceReconstructionProtocolElementNumber.setter + def SourceReconstructionProtocolElementNumber(self, value: Optional[List[int]]): + if value is None: + if "SourceReconstructionProtocolElementNumber" in self._dataset: + del self._dataset.SourceReconstructionProtocolElementNumber + else: + self._dataset.SourceReconstructionProtocolElementNumber = value + + @property + def OutputInformationSequence(self) -> Optional[List[OutputInformationSequenceItem]]: + if "OutputInformationSequence" in self._dataset: + if len(self._OutputInformationSequence) == len(self._dataset.OutputInformationSequence): + return self._OutputInformationSequence + else: + return [OutputInformationSequenceItem(x) for x in self._dataset.OutputInformationSequence] + return None + + @OutputInformationSequence.setter + def OutputInformationSequence(self, value: Optional[List[OutputInformationSequenceItem]]): + if value is None: + self._OutputInformationSequence = [] + if "OutputInformationSequence" in self._dataset: + del self._dataset.OutputInformationSequence + elif not isinstance(value, list) or not all(isinstance(item, OutputInformationSequenceItem) for item in value): + raise ValueError("OutputInformationSequence must be a list of OutputInformationSequenceItem objects") + else: + self._OutputInformationSequence = value + if "OutputInformationSequence" not in self._dataset: + self._dataset.OutputInformationSequence = pydicom.Sequence() + self._dataset.OutputInformationSequence.clear() + self._dataset.OutputInformationSequence.extend([item.to_dataset() for item in value]) + + def add_OutputInformation(self, item: OutputInformationSequenceItem): + if not isinstance(item, OutputInformationSequenceItem): + raise ValueError("Item must be an instance of OutputInformationSequenceItem") + self._OutputInformationSequence.append(item) + if "OutputInformationSequence" not in self._dataset: + self._dataset.OutputInformationSequence = pydicom.Sequence() + self._dataset.OutputInformationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/stored_value_color_range_sequence_item.py b/tdwii_plus_examples/domain_model/stored_value_color_range_sequence_item.py new file mode 100644 index 0000000..0a5ff37 --- /dev/null +++ b/tdwii_plus_examples/domain_model/stored_value_color_range_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class StoredValueColorRangeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MinimumStoredValueMapped(self) -> Optional[float]: + if "MinimumStoredValueMapped" in self._dataset: + return self._dataset.MinimumStoredValueMapped + return None + + @MinimumStoredValueMapped.setter + def MinimumStoredValueMapped(self, value: Optional[float]): + if value is None: + if "MinimumStoredValueMapped" in self._dataset: + del self._dataset.MinimumStoredValueMapped + else: + self._dataset.MinimumStoredValueMapped = value + + @property + def MaximumStoredValueMapped(self) -> Optional[float]: + if "MaximumStoredValueMapped" in self._dataset: + return self._dataset.MaximumStoredValueMapped + return None + + @MaximumStoredValueMapped.setter + def MaximumStoredValueMapped(self, value: Optional[float]): + if value is None: + if "MaximumStoredValueMapped" in self._dataset: + del self._dataset.MaximumStoredValueMapped + else: + self._dataset.MaximumStoredValueMapped = value diff --git a/tdwii_plus_examples/domain_model/stowrs_storage_sequence_item.py b/tdwii_plus_examples/domain_model/stowrs_storage_sequence_item.py new file mode 100644 index 0000000..5243219 --- /dev/null +++ b/tdwii_plus_examples/domain_model/stowrs_storage_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class STOWRSStorageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StorageURL(self) -> Optional[str]: + if "StorageURL" in self._dataset: + return self._dataset.StorageURL + return None + + @StorageURL.setter + def StorageURL(self, value: Optional[str]): + if value is None: + if "StorageURL" in self._dataset: + del self._dataset.StorageURL + else: + self._dataset.StorageURL = value diff --git a/tdwii_plus_examples/domain_model/strain_stock_sequence_item.py b/tdwii_plus_examples/domain_model/strain_stock_sequence_item.py new file mode 100644 index 0000000..1d41ee2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/strain_stock_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class StrainStockSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._StrainSourceRegistryCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def StrainStockNumber(self) -> Optional[str]: + if "StrainStockNumber" in self._dataset: + return self._dataset.StrainStockNumber + return None + + @StrainStockNumber.setter + def StrainStockNumber(self, value: Optional[str]): + if value is None: + if "StrainStockNumber" in self._dataset: + del self._dataset.StrainStockNumber + else: + self._dataset.StrainStockNumber = value + + @property + def StrainSourceRegistryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainSourceRegistryCodeSequence" in self._dataset: + if len(self._StrainSourceRegistryCodeSequence) == len(self._dataset.StrainSourceRegistryCodeSequence): + return self._StrainSourceRegistryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainSourceRegistryCodeSequence] + return None + + @StrainSourceRegistryCodeSequence.setter + def StrainSourceRegistryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainSourceRegistryCodeSequence = [] + if "StrainSourceRegistryCodeSequence" in self._dataset: + del self._dataset.StrainSourceRegistryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainSourceRegistryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainSourceRegistryCodeSequence = value + if "StrainSourceRegistryCodeSequence" not in self._dataset: + self._dataset.StrainSourceRegistryCodeSequence = pydicom.Sequence() + self._dataset.StrainSourceRegistryCodeSequence.clear() + self._dataset.StrainSourceRegistryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainSourceRegistryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainSourceRegistryCodeSequence.append(item) + if "StrainSourceRegistryCodeSequence" not in self._dataset: + self._dataset.StrainSourceRegistryCodeSequence = pydicom.Sequence() + self._dataset.StrainSourceRegistryCodeSequence.append(item.to_dataset()) + + @property + def StrainSource(self) -> Optional[str]: + if "StrainSource" in self._dataset: + return self._dataset.StrainSource + return None + + @StrainSource.setter + def StrainSource(self, value: Optional[str]): + if value is None: + if "StrainSource" in self._dataset: + del self._dataset.StrainSource + else: + self._dataset.StrainSource = value diff --git a/tdwii_plus_examples/domain_model/structure_set_roi_sequence_item.py b/tdwii_plus_examples/domain_model/structure_set_roi_sequence_item.py new file mode 100644 index 0000000..8e133d6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/structure_set_roi_sequence_item.py @@ -0,0 +1,350 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .conceptual_volume_identification_sequence_item import ( + ConceptualVolumeIdentificationSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .roi_creator_sequence_item import ROICreatorSequenceItem +from .roi_derivation_algorithm_identification_sequence_item import ( + ROIDerivationAlgorithmIdentificationSequenceItem, +) + + +class StructureSetROISequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._ROIDerivationAlgorithmIdentificationSequence: List[ROIDerivationAlgorithmIdentificationSequenceItem] = [] + self._ROICreatorSequence: List[ROICreatorSequenceItem] = [] + self._RTProtocolCodeSequence: List[CodeSequenceItem] = [] + self._ConceptualVolumeIdentificationSequence: List[ConceptualVolumeIdentificationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def ROINumber(self) -> Optional[int]: + if "ROINumber" in self._dataset: + return self._dataset.ROINumber + return None + + @ROINumber.setter + def ROINumber(self, value: Optional[int]): + if value is None: + if "ROINumber" in self._dataset: + del self._dataset.ROINumber + else: + self._dataset.ROINumber = value + + @property + def ReferencedFrameOfReferenceUID(self) -> Optional[str]: + if "ReferencedFrameOfReferenceUID" in self._dataset: + return self._dataset.ReferencedFrameOfReferenceUID + return None + + @ReferencedFrameOfReferenceUID.setter + def ReferencedFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "ReferencedFrameOfReferenceUID" in self._dataset: + del self._dataset.ReferencedFrameOfReferenceUID + else: + self._dataset.ReferencedFrameOfReferenceUID = value + + @property + def ROIName(self) -> Optional[str]: + if "ROIName" in self._dataset: + return self._dataset.ROIName + return None + + @ROIName.setter + def ROIName(self, value: Optional[str]): + if value is None: + if "ROIName" in self._dataset: + del self._dataset.ROIName + else: + self._dataset.ROIName = value + + @property + def ROIDescription(self) -> Optional[str]: + if "ROIDescription" in self._dataset: + return self._dataset.ROIDescription + return None + + @ROIDescription.setter + def ROIDescription(self, value: Optional[str]): + if value is None: + if "ROIDescription" in self._dataset: + del self._dataset.ROIDescription + else: + self._dataset.ROIDescription = value + + @property + def ROIVolume(self) -> Optional[Decimal]: + if "ROIVolume" in self._dataset: + return self._dataset.ROIVolume + return None + + @ROIVolume.setter + def ROIVolume(self, value: Optional[Decimal]): + if value is None: + if "ROIVolume" in self._dataset: + del self._dataset.ROIVolume + else: + self._dataset.ROIVolume = value + + @property + def ROIDateTime(self) -> Optional[str]: + if "ROIDateTime" in self._dataset: + return self._dataset.ROIDateTime + return None + + @ROIDateTime.setter + def ROIDateTime(self, value: Optional[str]): + if value is None: + if "ROIDateTime" in self._dataset: + del self._dataset.ROIDateTime + else: + self._dataset.ROIDateTime = value + + @property + def ROIGenerationAlgorithm(self) -> Optional[str]: + if "ROIGenerationAlgorithm" in self._dataset: + return self._dataset.ROIGenerationAlgorithm + return None + + @ROIGenerationAlgorithm.setter + def ROIGenerationAlgorithm(self, value: Optional[str]): + if value is None: + if "ROIGenerationAlgorithm" in self._dataset: + del self._dataset.ROIGenerationAlgorithm + else: + self._dataset.ROIGenerationAlgorithm = value + + @property + def ROIDerivationAlgorithmIdentificationSequence(self) -> Optional[List[ROIDerivationAlgorithmIdentificationSequenceItem]]: + if "ROIDerivationAlgorithmIdentificationSequence" in self._dataset: + if len(self._ROIDerivationAlgorithmIdentificationSequence) == len( + self._dataset.ROIDerivationAlgorithmIdentificationSequence + ): + return self._ROIDerivationAlgorithmIdentificationSequence + else: + return [ + ROIDerivationAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.ROIDerivationAlgorithmIdentificationSequence + ] + return None + + @ROIDerivationAlgorithmIdentificationSequence.setter + def ROIDerivationAlgorithmIdentificationSequence( + self, value: Optional[List[ROIDerivationAlgorithmIdentificationSequenceItem]] + ): + if value is None: + self._ROIDerivationAlgorithmIdentificationSequence = [] + if "ROIDerivationAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.ROIDerivationAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ROIDerivationAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ROIDerivationAlgorithmIdentificationSequence must be a list of" + " ROIDerivationAlgorithmIdentificationSequenceItem objects" + ) + else: + self._ROIDerivationAlgorithmIdentificationSequence = value + if "ROIDerivationAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.ROIDerivationAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.ROIDerivationAlgorithmIdentificationSequence.clear() + self._dataset.ROIDerivationAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ROIDerivationAlgorithmIdentification(self, item: ROIDerivationAlgorithmIdentificationSequenceItem): + if not isinstance(item, ROIDerivationAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of ROIDerivationAlgorithmIdentificationSequenceItem") + self._ROIDerivationAlgorithmIdentificationSequence.append(item) + if "ROIDerivationAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.ROIDerivationAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.ROIDerivationAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def ROIGenerationDescription(self) -> Optional[str]: + if "ROIGenerationDescription" in self._dataset: + return self._dataset.ROIGenerationDescription + return None + + @ROIGenerationDescription.setter + def ROIGenerationDescription(self, value: Optional[str]): + if value is None: + if "ROIGenerationDescription" in self._dataset: + del self._dataset.ROIGenerationDescription + else: + self._dataset.ROIGenerationDescription = value + + @property + def ROICreatorSequence(self) -> Optional[List[ROICreatorSequenceItem]]: + if "ROICreatorSequence" in self._dataset: + if len(self._ROICreatorSequence) == len(self._dataset.ROICreatorSequence): + return self._ROICreatorSequence + else: + return [ROICreatorSequenceItem(x) for x in self._dataset.ROICreatorSequence] + return None + + @ROICreatorSequence.setter + def ROICreatorSequence(self, value: Optional[List[ROICreatorSequenceItem]]): + if value is None: + self._ROICreatorSequence = [] + if "ROICreatorSequence" in self._dataset: + del self._dataset.ROICreatorSequence + elif not isinstance(value, list) or not all(isinstance(item, ROICreatorSequenceItem) for item in value): + raise ValueError("ROICreatorSequence must be a list of ROICreatorSequenceItem objects") + else: + self._ROICreatorSequence = value + if "ROICreatorSequence" not in self._dataset: + self._dataset.ROICreatorSequence = pydicom.Sequence() + self._dataset.ROICreatorSequence.clear() + self._dataset.ROICreatorSequence.extend([item.to_dataset() for item in value]) + + def add_ROICreator(self, item: ROICreatorSequenceItem): + if not isinstance(item, ROICreatorSequenceItem): + raise ValueError("Item must be an instance of ROICreatorSequenceItem") + self._ROICreatorSequence.append(item) + if "ROICreatorSequence" not in self._dataset: + self._dataset.ROICreatorSequence = pydicom.Sequence() + self._dataset.ROICreatorSequence.append(item.to_dataset()) + + @property + def RTProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTProtocolCodeSequence" in self._dataset: + if len(self._RTProtocolCodeSequence) == len(self._dataset.RTProtocolCodeSequence): + return self._RTProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTProtocolCodeSequence] + return None + + @RTProtocolCodeSequence.setter + def RTProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTProtocolCodeSequence = [] + if "RTProtocolCodeSequence" in self._dataset: + del self._dataset.RTProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTProtocolCodeSequence = value + if "RTProtocolCodeSequence" not in self._dataset: + self._dataset.RTProtocolCodeSequence = pydicom.Sequence() + self._dataset.RTProtocolCodeSequence.clear() + self._dataset.RTProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTProtocolCodeSequence.append(item) + if "RTProtocolCodeSequence" not in self._dataset: + self._dataset.RTProtocolCodeSequence = pydicom.Sequence() + self._dataset.RTProtocolCodeSequence.append(item.to_dataset()) + + @property + def ConceptualVolumeIdentificationSequence(self) -> Optional[List[ConceptualVolumeIdentificationSequenceItem]]: + if "ConceptualVolumeIdentificationSequence" in self._dataset: + if len(self._ConceptualVolumeIdentificationSequence) == len(self._dataset.ConceptualVolumeIdentificationSequence): + return self._ConceptualVolumeIdentificationSequence + else: + return [ + ConceptualVolumeIdentificationSequenceItem(x) for x in self._dataset.ConceptualVolumeIdentificationSequence + ] + return None + + @ConceptualVolumeIdentificationSequence.setter + def ConceptualVolumeIdentificationSequence(self, value: Optional[List[ConceptualVolumeIdentificationSequenceItem]]): + if value is None: + self._ConceptualVolumeIdentificationSequence = [] + if "ConceptualVolumeIdentificationSequence" in self._dataset: + del self._dataset.ConceptualVolumeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConceptualVolumeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConceptualVolumeIdentificationSequence must be a list of ConceptualVolumeIdentificationSequenceItem objects" + ) + else: + self._ConceptualVolumeIdentificationSequence = value + if "ConceptualVolumeIdentificationSequence" not in self._dataset: + self._dataset.ConceptualVolumeIdentificationSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeIdentificationSequence.clear() + self._dataset.ConceptualVolumeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptualVolumeIdentification(self, item: ConceptualVolumeIdentificationSequenceItem): + if not isinstance(item, ConceptualVolumeIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConceptualVolumeIdentificationSequenceItem") + self._ConceptualVolumeIdentificationSequence.append(item) + if "ConceptualVolumeIdentificationSequence" not in self._dataset: + self._dataset.ConceptualVolumeIdentificationSequence = pydicom.Sequence() + self._dataset.ConceptualVolumeIdentificationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/structured_constraint_observation_sequence_item.py b/tdwii_plus_examples/domain_model/structured_constraint_observation_sequence_item.py new file mode 100644 index 0000000..f5614ea --- /dev/null +++ b/tdwii_plus_examples/domain_model/structured_constraint_observation_sequence_item.py @@ -0,0 +1,330 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .assessed_attribute_value_sequence_item import AssessedAttributeValueSequenceItem +from .code_sequence_item import CodeSequenceItem +from .constraint_value_sequence_item import ConstraintValueSequenceItem +from .recommended_default_value_sequence_item import RecommendedDefaultValueSequenceItem + + +class StructuredConstraintObservationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._AssessedAttributeValueSequence: List[AssessedAttributeValueSequenceItem] = [] + self._ConstraintValueSequence: List[ConstraintValueSequenceItem] = [] + self._RecommendedDefaultValueSequence: List[RecommendedDefaultValueSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def SelectorAttribute(self) -> Optional[int]: + if "SelectorAttribute" in self._dataset: + return self._dataset.SelectorAttribute + return None + + @SelectorAttribute.setter + def SelectorAttribute(self, value: Optional[int]): + if value is None: + if "SelectorAttribute" in self._dataset: + del self._dataset.SelectorAttribute + else: + self._dataset.SelectorAttribute = value + + @property + def SelectorValueNumber(self) -> Optional[int]: + if "SelectorValueNumber" in self._dataset: + return self._dataset.SelectorValueNumber + return None + + @SelectorValueNumber.setter + def SelectorValueNumber(self, value: Optional[int]): + if value is None: + if "SelectorValueNumber" in self._dataset: + del self._dataset.SelectorValueNumber + else: + self._dataset.SelectorValueNumber = value + + @property + def SelectorAttributeVR(self) -> Optional[str]: + if "SelectorAttributeVR" in self._dataset: + return self._dataset.SelectorAttributeVR + return None + + @SelectorAttributeVR.setter + def SelectorAttributeVR(self, value: Optional[str]): + if value is None: + if "SelectorAttributeVR" in self._dataset: + del self._dataset.SelectorAttributeVR + else: + self._dataset.SelectorAttributeVR = value + + @property + def SelectorSequencePointer(self) -> Optional[List[int]]: + if "SelectorSequencePointer" in self._dataset: + return self._dataset.SelectorSequencePointer + return None + + @SelectorSequencePointer.setter + def SelectorSequencePointer(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointer" in self._dataset: + del self._dataset.SelectorSequencePointer + else: + self._dataset.SelectorSequencePointer = value + + @property + def SelectorSequencePointerPrivateCreator(self) -> Optional[List[str]]: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + return self._dataset.SelectorSequencePointerPrivateCreator + return None + + @SelectorSequencePointerPrivateCreator.setter + def SelectorSequencePointerPrivateCreator(self, value: Optional[List[str]]): + if value is None: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + del self._dataset.SelectorSequencePointerPrivateCreator + else: + self._dataset.SelectorSequencePointerPrivateCreator = value + + @property + def SelectorAttributePrivateCreator(self) -> Optional[str]: + if "SelectorAttributePrivateCreator" in self._dataset: + return self._dataset.SelectorAttributePrivateCreator + return None + + @SelectorAttributePrivateCreator.setter + def SelectorAttributePrivateCreator(self, value: Optional[str]): + if value is None: + if "SelectorAttributePrivateCreator" in self._dataset: + del self._dataset.SelectorAttributePrivateCreator + else: + self._dataset.SelectorAttributePrivateCreator = value + + @property + def SelectorSequencePointerItems(self) -> Optional[List[int]]: + if "SelectorSequencePointerItems" in self._dataset: + return self._dataset.SelectorSequencePointerItems + return None + + @SelectorSequencePointerItems.setter + def SelectorSequencePointerItems(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointerItems" in self._dataset: + del self._dataset.SelectorSequencePointerItems + else: + self._dataset.SelectorSequencePointerItems = value + + @property + def AssessedAttributeValueSequence(self) -> Optional[List[AssessedAttributeValueSequenceItem]]: + if "AssessedAttributeValueSequence" in self._dataset: + if len(self._AssessedAttributeValueSequence) == len(self._dataset.AssessedAttributeValueSequence): + return self._AssessedAttributeValueSequence + else: + return [AssessedAttributeValueSequenceItem(x) for x in self._dataset.AssessedAttributeValueSequence] + return None + + @AssessedAttributeValueSequence.setter + def AssessedAttributeValueSequence(self, value: Optional[List[AssessedAttributeValueSequenceItem]]): + if value is None: + self._AssessedAttributeValueSequence = [] + if "AssessedAttributeValueSequence" in self._dataset: + del self._dataset.AssessedAttributeValueSequence + elif not isinstance(value, list) or not all(isinstance(item, AssessedAttributeValueSequenceItem) for item in value): + raise ValueError("AssessedAttributeValueSequence must be a list of AssessedAttributeValueSequenceItem objects") + else: + self._AssessedAttributeValueSequence = value + if "AssessedAttributeValueSequence" not in self._dataset: + self._dataset.AssessedAttributeValueSequence = pydicom.Sequence() + self._dataset.AssessedAttributeValueSequence.clear() + self._dataset.AssessedAttributeValueSequence.extend([item.to_dataset() for item in value]) + + def add_AssessedAttributeValue(self, item: AssessedAttributeValueSequenceItem): + if not isinstance(item, AssessedAttributeValueSequenceItem): + raise ValueError("Item must be an instance of AssessedAttributeValueSequenceItem") + self._AssessedAttributeValueSequence.append(item) + if "AssessedAttributeValueSequence" not in self._dataset: + self._dataset.AssessedAttributeValueSequence = pydicom.Sequence() + self._dataset.AssessedAttributeValueSequence.append(item.to_dataset()) + + @property + def SelectorAttributeName(self) -> Optional[str]: + if "SelectorAttributeName" in self._dataset: + return self._dataset.SelectorAttributeName + return None + + @SelectorAttributeName.setter + def SelectorAttributeName(self, value: Optional[str]): + if value is None: + if "SelectorAttributeName" in self._dataset: + del self._dataset.SelectorAttributeName + else: + self._dataset.SelectorAttributeName = value + + @property + def SelectorAttributeKeyword(self) -> Optional[str]: + if "SelectorAttributeKeyword" in self._dataset: + return self._dataset.SelectorAttributeKeyword + return None + + @SelectorAttributeKeyword.setter + def SelectorAttributeKeyword(self, value: Optional[str]): + if value is None: + if "SelectorAttributeKeyword" in self._dataset: + del self._dataset.SelectorAttributeKeyword + else: + self._dataset.SelectorAttributeKeyword = value + + @property + def ConstraintType(self) -> Optional[str]: + if "ConstraintType" in self._dataset: + return self._dataset.ConstraintType + return None + + @ConstraintType.setter + def ConstraintType(self, value: Optional[str]): + if value is None: + if "ConstraintType" in self._dataset: + del self._dataset.ConstraintType + else: + self._dataset.ConstraintType = value + + @property + def SpecificationSelectionGuidance(self) -> Optional[str]: + if "SpecificationSelectionGuidance" in self._dataset: + return self._dataset.SpecificationSelectionGuidance + return None + + @SpecificationSelectionGuidance.setter + def SpecificationSelectionGuidance(self, value: Optional[str]): + if value is None: + if "SpecificationSelectionGuidance" in self._dataset: + del self._dataset.SpecificationSelectionGuidance + else: + self._dataset.SpecificationSelectionGuidance = value + + @property + def ConstraintValueSequence(self) -> Optional[List[ConstraintValueSequenceItem]]: + if "ConstraintValueSequence" in self._dataset: + if len(self._ConstraintValueSequence) == len(self._dataset.ConstraintValueSequence): + return self._ConstraintValueSequence + else: + return [ConstraintValueSequenceItem(x) for x in self._dataset.ConstraintValueSequence] + return None + + @ConstraintValueSequence.setter + def ConstraintValueSequence(self, value: Optional[List[ConstraintValueSequenceItem]]): + if value is None: + self._ConstraintValueSequence = [] + if "ConstraintValueSequence" in self._dataset: + del self._dataset.ConstraintValueSequence + elif not isinstance(value, list) or not all(isinstance(item, ConstraintValueSequenceItem) for item in value): + raise ValueError("ConstraintValueSequence must be a list of ConstraintValueSequenceItem objects") + else: + self._ConstraintValueSequence = value + if "ConstraintValueSequence" not in self._dataset: + self._dataset.ConstraintValueSequence = pydicom.Sequence() + self._dataset.ConstraintValueSequence.clear() + self._dataset.ConstraintValueSequence.extend([item.to_dataset() for item in value]) + + def add_ConstraintValue(self, item: ConstraintValueSequenceItem): + if not isinstance(item, ConstraintValueSequenceItem): + raise ValueError("Item must be an instance of ConstraintValueSequenceItem") + self._ConstraintValueSequence.append(item) + if "ConstraintValueSequence" not in self._dataset: + self._dataset.ConstraintValueSequence = pydicom.Sequence() + self._dataset.ConstraintValueSequence.append(item.to_dataset()) + + @property + def RecommendedDefaultValueSequence(self) -> Optional[List[RecommendedDefaultValueSequenceItem]]: + if "RecommendedDefaultValueSequence" in self._dataset: + if len(self._RecommendedDefaultValueSequence) == len(self._dataset.RecommendedDefaultValueSequence): + return self._RecommendedDefaultValueSequence + else: + return [RecommendedDefaultValueSequenceItem(x) for x in self._dataset.RecommendedDefaultValueSequence] + return None + + @RecommendedDefaultValueSequence.setter + def RecommendedDefaultValueSequence(self, value: Optional[List[RecommendedDefaultValueSequenceItem]]): + if value is None: + self._RecommendedDefaultValueSequence = [] + if "RecommendedDefaultValueSequence" in self._dataset: + del self._dataset.RecommendedDefaultValueSequence + elif not isinstance(value, list) or not all(isinstance(item, RecommendedDefaultValueSequenceItem) for item in value): + raise ValueError("RecommendedDefaultValueSequence must be a list of RecommendedDefaultValueSequenceItem objects") + else: + self._RecommendedDefaultValueSequence = value + if "RecommendedDefaultValueSequence" not in self._dataset: + self._dataset.RecommendedDefaultValueSequence = pydicom.Sequence() + self._dataset.RecommendedDefaultValueSequence.clear() + self._dataset.RecommendedDefaultValueSequence.extend([item.to_dataset() for item in value]) + + def add_RecommendedDefaultValue(self, item: RecommendedDefaultValueSequenceItem): + if not isinstance(item, RecommendedDefaultValueSequenceItem): + raise ValueError("Item must be an instance of RecommendedDefaultValueSequenceItem") + self._RecommendedDefaultValueSequence.append(item) + if "RecommendedDefaultValueSequence" not in self._dataset: + self._dataset.RecommendedDefaultValueSequence = pydicom.Sequence() + self._dataset.RecommendedDefaultValueSequence.append(item.to_dataset()) + + @property + def ConstraintViolationSignificance(self) -> Optional[str]: + if "ConstraintViolationSignificance" in self._dataset: + return self._dataset.ConstraintViolationSignificance + return None + + @ConstraintViolationSignificance.setter + def ConstraintViolationSignificance(self, value: Optional[str]): + if value is None: + if "ConstraintViolationSignificance" in self._dataset: + del self._dataset.ConstraintViolationSignificance + else: + self._dataset.ConstraintViolationSignificance = value + + @property + def ConstraintViolationCondition(self) -> Optional[str]: + if "ConstraintViolationCondition" in self._dataset: + return self._dataset.ConstraintViolationCondition + return None + + @ConstraintViolationCondition.setter + def ConstraintViolationCondition(self, value: Optional[str]): + if value is None: + if "ConstraintViolationCondition" in self._dataset: + del self._dataset.ConstraintViolationCondition + else: + self._dataset.ConstraintViolationCondition = value diff --git a/tdwii_plus_examples/domain_model/structured_display_image_box_sequence_item.py b/tdwii_plus_examples/domain_model/structured_display_image_box_sequence_item.py new file mode 100644 index 0000000..7a16f48 --- /dev/null +++ b/tdwii_plus_examples/domain_model/structured_display_image_box_sequence_item.py @@ -0,0 +1,392 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_first_frame_sequence_item import ReferencedFirstFrameSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_presentation_state_sequence_item import ( + ReferencedPresentationStateSequenceItem, +) +from .referenced_stereometric_instance_sequence_item import ( + ReferencedStereometricInstanceSequenceItem, +) + + +class StructuredDisplayImageBoxSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedStereometricInstanceSequence: List[ReferencedStereometricInstanceSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ReferencedPresentationStateSequence: List[ReferencedPresentationStateSequenceItem] = [] + self._ReferencedFirstFrameSequence: List[ReferencedFirstFrameSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedStereometricInstanceSequence(self) -> Optional[List[ReferencedStereometricInstanceSequenceItem]]: + if "ReferencedStereometricInstanceSequence" in self._dataset: + if len(self._ReferencedStereometricInstanceSequence) == len(self._dataset.ReferencedStereometricInstanceSequence): + return self._ReferencedStereometricInstanceSequence + else: + return [ + ReferencedStereometricInstanceSequenceItem(x) for x in self._dataset.ReferencedStereometricInstanceSequence + ] + return None + + @ReferencedStereometricInstanceSequence.setter + def ReferencedStereometricInstanceSequence(self, value: Optional[List[ReferencedStereometricInstanceSequenceItem]]): + if value is None: + self._ReferencedStereometricInstanceSequence = [] + if "ReferencedStereometricInstanceSequence" in self._dataset: + del self._dataset.ReferencedStereometricInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedStereometricInstanceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedStereometricInstanceSequence must be a list of ReferencedStereometricInstanceSequenceItem objects" + ) + else: + self._ReferencedStereometricInstanceSequence = value + if "ReferencedStereometricInstanceSequence" not in self._dataset: + self._dataset.ReferencedStereometricInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedStereometricInstanceSequence.clear() + self._dataset.ReferencedStereometricInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStereometricInstance(self, item: ReferencedStereometricInstanceSequenceItem): + if not isinstance(item, ReferencedStereometricInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedStereometricInstanceSequenceItem") + self._ReferencedStereometricInstanceSequence.append(item) + if "ReferencedStereometricInstanceSequence" not in self._dataset: + self._dataset.ReferencedStereometricInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedStereometricInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def ReferencedPresentationStateSequence(self) -> Optional[List[ReferencedPresentationStateSequenceItem]]: + if "ReferencedPresentationStateSequence" in self._dataset: + if len(self._ReferencedPresentationStateSequence) == len(self._dataset.ReferencedPresentationStateSequence): + return self._ReferencedPresentationStateSequence + else: + return [ReferencedPresentationStateSequenceItem(x) for x in self._dataset.ReferencedPresentationStateSequence] + return None + + @ReferencedPresentationStateSequence.setter + def ReferencedPresentationStateSequence(self, value: Optional[List[ReferencedPresentationStateSequenceItem]]): + if value is None: + self._ReferencedPresentationStateSequence = [] + if "ReferencedPresentationStateSequence" in self._dataset: + del self._dataset.ReferencedPresentationStateSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPresentationStateSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPresentationStateSequence must be a list of ReferencedPresentationStateSequenceItem objects" + ) + else: + self._ReferencedPresentationStateSequence = value + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.clear() + self._dataset.ReferencedPresentationStateSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPresentationState(self, item: ReferencedPresentationStateSequenceItem): + if not isinstance(item, ReferencedPresentationStateSequenceItem): + raise ValueError("Item must be an instance of ReferencedPresentationStateSequenceItem") + self._ReferencedPresentationStateSequence.append(item) + if "ReferencedPresentationStateSequence" not in self._dataset: + self._dataset.ReferencedPresentationStateSequence = pydicom.Sequence() + self._dataset.ReferencedPresentationStateSequence.append(item.to_dataset()) + + @property + def InitialCineRunState(self) -> Optional[str]: + if "InitialCineRunState" in self._dataset: + return self._dataset.InitialCineRunState + return None + + @InitialCineRunState.setter + def InitialCineRunState(self, value: Optional[str]): + if value is None: + if "InitialCineRunState" in self._dataset: + del self._dataset.InitialCineRunState + else: + self._dataset.InitialCineRunState = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def DisplayEnvironmentSpatialPosition(self) -> Optional[List[float]]: + if "DisplayEnvironmentSpatialPosition" in self._dataset: + return self._dataset.DisplayEnvironmentSpatialPosition + return None + + @DisplayEnvironmentSpatialPosition.setter + def DisplayEnvironmentSpatialPosition(self, value: Optional[List[float]]): + if value is None: + if "DisplayEnvironmentSpatialPosition" in self._dataset: + del self._dataset.DisplayEnvironmentSpatialPosition + else: + self._dataset.DisplayEnvironmentSpatialPosition = value + + @property + def ImageBoxNumber(self) -> Optional[int]: + if "ImageBoxNumber" in self._dataset: + return self._dataset.ImageBoxNumber + return None + + @ImageBoxNumber.setter + def ImageBoxNumber(self, value: Optional[int]): + if value is None: + if "ImageBoxNumber" in self._dataset: + del self._dataset.ImageBoxNumber + else: + self._dataset.ImageBoxNumber = value + + @property + def ImageBoxLayoutType(self) -> Optional[str]: + if "ImageBoxLayoutType" in self._dataset: + return self._dataset.ImageBoxLayoutType + return None + + @ImageBoxLayoutType.setter + def ImageBoxLayoutType(self, value: Optional[str]): + if value is None: + if "ImageBoxLayoutType" in self._dataset: + del self._dataset.ImageBoxLayoutType + else: + self._dataset.ImageBoxLayoutType = value + + @property + def ImageBoxTileHorizontalDimension(self) -> Optional[int]: + if "ImageBoxTileHorizontalDimension" in self._dataset: + return self._dataset.ImageBoxTileHorizontalDimension + return None + + @ImageBoxTileHorizontalDimension.setter + def ImageBoxTileHorizontalDimension(self, value: Optional[int]): + if value is None: + if "ImageBoxTileHorizontalDimension" in self._dataset: + del self._dataset.ImageBoxTileHorizontalDimension + else: + self._dataset.ImageBoxTileHorizontalDimension = value + + @property + def ImageBoxTileVerticalDimension(self) -> Optional[int]: + if "ImageBoxTileVerticalDimension" in self._dataset: + return self._dataset.ImageBoxTileVerticalDimension + return None + + @ImageBoxTileVerticalDimension.setter + def ImageBoxTileVerticalDimension(self, value: Optional[int]): + if value is None: + if "ImageBoxTileVerticalDimension" in self._dataset: + del self._dataset.ImageBoxTileVerticalDimension + else: + self._dataset.ImageBoxTileVerticalDimension = value + + @property + def ImageBoxOverlapPriority(self) -> Optional[int]: + if "ImageBoxOverlapPriority" in self._dataset: + return self._dataset.ImageBoxOverlapPriority + return None + + @ImageBoxOverlapPriority.setter + def ImageBoxOverlapPriority(self, value: Optional[int]): + if value is None: + if "ImageBoxOverlapPriority" in self._dataset: + del self._dataset.ImageBoxOverlapPriority + else: + self._dataset.ImageBoxOverlapPriority = value + + @property + def CineRelativeToRealTime(self) -> Optional[float]: + if "CineRelativeToRealTime" in self._dataset: + return self._dataset.CineRelativeToRealTime + return None + + @CineRelativeToRealTime.setter + def CineRelativeToRealTime(self, value: Optional[float]): + if value is None: + if "CineRelativeToRealTime" in self._dataset: + del self._dataset.CineRelativeToRealTime + else: + self._dataset.CineRelativeToRealTime = value + + @property + def ReferencedFirstFrameSequence(self) -> Optional[List[ReferencedFirstFrameSequenceItem]]: + if "ReferencedFirstFrameSequence" in self._dataset: + if len(self._ReferencedFirstFrameSequence) == len(self._dataset.ReferencedFirstFrameSequence): + return self._ReferencedFirstFrameSequence + else: + return [ReferencedFirstFrameSequenceItem(x) for x in self._dataset.ReferencedFirstFrameSequence] + return None + + @ReferencedFirstFrameSequence.setter + def ReferencedFirstFrameSequence(self, value: Optional[List[ReferencedFirstFrameSequenceItem]]): + if value is None: + self._ReferencedFirstFrameSequence = [] + if "ReferencedFirstFrameSequence" in self._dataset: + del self._dataset.ReferencedFirstFrameSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedFirstFrameSequenceItem) for item in value): + raise ValueError("ReferencedFirstFrameSequence must be a list of ReferencedFirstFrameSequenceItem objects") + else: + self._ReferencedFirstFrameSequence = value + if "ReferencedFirstFrameSequence" not in self._dataset: + self._dataset.ReferencedFirstFrameSequence = pydicom.Sequence() + self._dataset.ReferencedFirstFrameSequence.clear() + self._dataset.ReferencedFirstFrameSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedFirstFrame(self, item: ReferencedFirstFrameSequenceItem): + if not isinstance(item, ReferencedFirstFrameSequenceItem): + raise ValueError("Item must be an instance of ReferencedFirstFrameSequenceItem") + self._ReferencedFirstFrameSequence.append(item) + if "ReferencedFirstFrameSequence" not in self._dataset: + self._dataset.ReferencedFirstFrameSequence = pydicom.Sequence() + self._dataset.ReferencedFirstFrameSequence.append(item.to_dataset()) + + @property + def DisplaySetHorizontalJustification(self) -> Optional[str]: + if "DisplaySetHorizontalJustification" in self._dataset: + return self._dataset.DisplaySetHorizontalJustification + return None + + @DisplaySetHorizontalJustification.setter + def DisplaySetHorizontalJustification(self, value: Optional[str]): + if value is None: + if "DisplaySetHorizontalJustification" in self._dataset: + del self._dataset.DisplaySetHorizontalJustification + else: + self._dataset.DisplaySetHorizontalJustification = value + + @property + def DisplaySetVerticalJustification(self) -> Optional[str]: + if "DisplaySetVerticalJustification" in self._dataset: + return self._dataset.DisplaySetVerticalJustification + return None + + @DisplaySetVerticalJustification.setter + def DisplaySetVerticalJustification(self, value: Optional[str]): + if value is None: + if "DisplaySetVerticalJustification" in self._dataset: + del self._dataset.DisplaySetVerticalJustification + else: + self._dataset.DisplaySetVerticalJustification = value diff --git a/tdwii_plus_examples/domain_model/structured_display_text_box_sequence_item.py b/tdwii_plus_examples/domain_model/structured_display_text_box_sequence_item.py new file mode 100644 index 0000000..fa23084 --- /dev/null +++ b/tdwii_plus_examples/domain_model/structured_display_text_box_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class StructuredDisplayTextBoxSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def UnformattedTextValue(self) -> Optional[str]: + if "UnformattedTextValue" in self._dataset: + return self._dataset.UnformattedTextValue + return None + + @UnformattedTextValue.setter + def UnformattedTextValue(self, value: Optional[str]): + if value is None: + if "UnformattedTextValue" in self._dataset: + del self._dataset.UnformattedTextValue + else: + self._dataset.UnformattedTextValue = value + + @property + def BoundingBoxTextHorizontalJustification(self) -> Optional[str]: + if "BoundingBoxTextHorizontalJustification" in self._dataset: + return self._dataset.BoundingBoxTextHorizontalJustification + return None + + @BoundingBoxTextHorizontalJustification.setter + def BoundingBoxTextHorizontalJustification(self, value: Optional[str]): + if value is None: + if "BoundingBoxTextHorizontalJustification" in self._dataset: + del self._dataset.BoundingBoxTextHorizontalJustification + else: + self._dataset.BoundingBoxTextHorizontalJustification = value + + @property + def GraphicLayerRecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "GraphicLayerRecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.GraphicLayerRecommendedDisplayCIELabValue + return None + + @GraphicLayerRecommendedDisplayCIELabValue.setter + def GraphicLayerRecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "GraphicLayerRecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.GraphicLayerRecommendedDisplayCIELabValue + else: + self._dataset.GraphicLayerRecommendedDisplayCIELabValue = value + + @property + def DisplayEnvironmentSpatialPosition(self) -> Optional[List[float]]: + if "DisplayEnvironmentSpatialPosition" in self._dataset: + return self._dataset.DisplayEnvironmentSpatialPosition + return None + + @DisplayEnvironmentSpatialPosition.setter + def DisplayEnvironmentSpatialPosition(self, value: Optional[List[float]]): + if value is None: + if "DisplayEnvironmentSpatialPosition" in self._dataset: + del self._dataset.DisplayEnvironmentSpatialPosition + else: + self._dataset.DisplayEnvironmentSpatialPosition = value diff --git a/tdwii_plus_examples/domain_model/studies_containing_other_referenced_instances_sequence_item.py b/tdwii_plus_examples/domain_model/studies_containing_other_referenced_instances_sequence_item.py new file mode 100644 index 0000000..9c4b6e6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/studies_containing_other_referenced_instances_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem + + +class StudiesContainingOtherReferencedInstancesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value diff --git a/tdwii_plus_examples/domain_model/subjective_refraction_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/subjective_refraction_left_eye_sequence_item.py new file mode 100644 index 0000000..fd56f6e --- /dev/null +++ b/tdwii_plus_examples/domain_model/subjective_refraction_left_eye_sequence_item.py @@ -0,0 +1,196 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .add_intermediate_sequence_item import AddIntermediateSequenceItem +from .add_near_sequence_item import AddNearSequenceItem +from .add_other_sequence_item import AddOtherSequenceItem +from .cylinder_sequence_item import CylinderSequenceItem +from .prism_sequence_item import PrismSequenceItem + + +class SubjectiveRefractionLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + self._PrismSequence: List[PrismSequenceItem] = [] + self._AddNearSequence: List[AddNearSequenceItem] = [] + self._AddIntermediateSequence: List[AddIntermediateSequenceItem] = [] + self._AddOtherSequence: List[AddOtherSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PrismSequence(self) -> Optional[List[PrismSequenceItem]]: + if "PrismSequence" in self._dataset: + if len(self._PrismSequence) == len(self._dataset.PrismSequence): + return self._PrismSequence + else: + return [PrismSequenceItem(x) for x in self._dataset.PrismSequence] + return None + + @PrismSequence.setter + def PrismSequence(self, value: Optional[List[PrismSequenceItem]]): + if value is None: + self._PrismSequence = [] + if "PrismSequence" in self._dataset: + del self._dataset.PrismSequence + elif not isinstance(value, list) or not all(isinstance(item, PrismSequenceItem) for item in value): + raise ValueError("PrismSequence must be a list of PrismSequenceItem objects") + else: + self._PrismSequence = value + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.clear() + self._dataset.PrismSequence.extend([item.to_dataset() for item in value]) + + def add_Prism(self, item: PrismSequenceItem): + if not isinstance(item, PrismSequenceItem): + raise ValueError("Item must be an instance of PrismSequenceItem") + self._PrismSequence.append(item) + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.append(item.to_dataset()) + + @property + def AddNearSequence(self) -> Optional[List[AddNearSequenceItem]]: + if "AddNearSequence" in self._dataset: + if len(self._AddNearSequence) == len(self._dataset.AddNearSequence): + return self._AddNearSequence + else: + return [AddNearSequenceItem(x) for x in self._dataset.AddNearSequence] + return None + + @AddNearSequence.setter + def AddNearSequence(self, value: Optional[List[AddNearSequenceItem]]): + if value is None: + self._AddNearSequence = [] + if "AddNearSequence" in self._dataset: + del self._dataset.AddNearSequence + elif not isinstance(value, list) or not all(isinstance(item, AddNearSequenceItem) for item in value): + raise ValueError("AddNearSequence must be a list of AddNearSequenceItem objects") + else: + self._AddNearSequence = value + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.clear() + self._dataset.AddNearSequence.extend([item.to_dataset() for item in value]) + + def add_AddNear(self, item: AddNearSequenceItem): + if not isinstance(item, AddNearSequenceItem): + raise ValueError("Item must be an instance of AddNearSequenceItem") + self._AddNearSequence.append(item) + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.append(item.to_dataset()) + + @property + def AddIntermediateSequence(self) -> Optional[List[AddIntermediateSequenceItem]]: + if "AddIntermediateSequence" in self._dataset: + if len(self._AddIntermediateSequence) == len(self._dataset.AddIntermediateSequence): + return self._AddIntermediateSequence + else: + return [AddIntermediateSequenceItem(x) for x in self._dataset.AddIntermediateSequence] + return None + + @AddIntermediateSequence.setter + def AddIntermediateSequence(self, value: Optional[List[AddIntermediateSequenceItem]]): + if value is None: + self._AddIntermediateSequence = [] + if "AddIntermediateSequence" in self._dataset: + del self._dataset.AddIntermediateSequence + elif not isinstance(value, list) or not all(isinstance(item, AddIntermediateSequenceItem) for item in value): + raise ValueError("AddIntermediateSequence must be a list of AddIntermediateSequenceItem objects") + else: + self._AddIntermediateSequence = value + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.clear() + self._dataset.AddIntermediateSequence.extend([item.to_dataset() for item in value]) + + def add_AddIntermediate(self, item: AddIntermediateSequenceItem): + if not isinstance(item, AddIntermediateSequenceItem): + raise ValueError("Item must be an instance of AddIntermediateSequenceItem") + self._AddIntermediateSequence.append(item) + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.append(item.to_dataset()) + + @property + def AddOtherSequence(self) -> Optional[List[AddOtherSequenceItem]]: + if "AddOtherSequence" in self._dataset: + if len(self._AddOtherSequence) == len(self._dataset.AddOtherSequence): + return self._AddOtherSequence + else: + return [AddOtherSequenceItem(x) for x in self._dataset.AddOtherSequence] + return None + + @AddOtherSequence.setter + def AddOtherSequence(self, value: Optional[List[AddOtherSequenceItem]]): + if value is None: + self._AddOtherSequence = [] + if "AddOtherSequence" in self._dataset: + del self._dataset.AddOtherSequence + elif not isinstance(value, list) or not all(isinstance(item, AddOtherSequenceItem) for item in value): + raise ValueError("AddOtherSequence must be a list of AddOtherSequenceItem objects") + else: + self._AddOtherSequence = value + if "AddOtherSequence" not in self._dataset: + self._dataset.AddOtherSequence = pydicom.Sequence() + self._dataset.AddOtherSequence.clear() + self._dataset.AddOtherSequence.extend([item.to_dataset() for item in value]) + + def add_AddOther(self, item: AddOtherSequenceItem): + if not isinstance(item, AddOtherSequenceItem): + raise ValueError("Item must be an instance of AddOtherSequenceItem") + self._AddOtherSequence.append(item) + if "AddOtherSequence" not in self._dataset: + self._dataset.AddOtherSequence = pydicom.Sequence() + self._dataset.AddOtherSequence.append(item.to_dataset()) + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/subjective_refraction_measurements.py b/tdwii_plus_examples/domain_model/subjective_refraction_measurements.py new file mode 100644 index 0000000..8d4a0ce --- /dev/null +++ b/tdwii_plus_examples/domain_model/subjective_refraction_measurements.py @@ -0,0 +1,4236 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .subjective_refraction_left_eye_sequence_item import ( + SubjectiveRefractionLeftEyeSequenceItem, +) +from .subjective_refraction_right_eye_sequence_item import ( + SubjectiveRefractionRightEyeSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class SubjectiveRefractionMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._SubjectiveRefractionRightEyeSequence: List[SubjectiveRefractionRightEyeSequenceItem] = [] + self._SubjectiveRefractionLeftEyeSequence: List[SubjectiveRefractionLeftEyeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def DistancePupillaryDistance(self) -> Optional[float]: + if "DistancePupillaryDistance" in self._dataset: + return self._dataset.DistancePupillaryDistance + return None + + @DistancePupillaryDistance.setter + def DistancePupillaryDistance(self, value: Optional[float]): + if value is None: + if "DistancePupillaryDistance" in self._dataset: + del self._dataset.DistancePupillaryDistance + else: + self._dataset.DistancePupillaryDistance = value + + @property + def NearPupillaryDistance(self) -> Optional[float]: + if "NearPupillaryDistance" in self._dataset: + return self._dataset.NearPupillaryDistance + return None + + @NearPupillaryDistance.setter + def NearPupillaryDistance(self, value: Optional[float]): + if value is None: + if "NearPupillaryDistance" in self._dataset: + del self._dataset.NearPupillaryDistance + else: + self._dataset.NearPupillaryDistance = value + + @property + def IntermediatePupillaryDistance(self) -> Optional[float]: + if "IntermediatePupillaryDistance" in self._dataset: + return self._dataset.IntermediatePupillaryDistance + return None + + @IntermediatePupillaryDistance.setter + def IntermediatePupillaryDistance(self, value: Optional[float]): + if value is None: + if "IntermediatePupillaryDistance" in self._dataset: + del self._dataset.IntermediatePupillaryDistance + else: + self._dataset.IntermediatePupillaryDistance = value + + @property + def OtherPupillaryDistance(self) -> Optional[float]: + if "OtherPupillaryDistance" in self._dataset: + return self._dataset.OtherPupillaryDistance + return None + + @OtherPupillaryDistance.setter + def OtherPupillaryDistance(self, value: Optional[float]): + if value is None: + if "OtherPupillaryDistance" in self._dataset: + del self._dataset.OtherPupillaryDistance + else: + self._dataset.OtherPupillaryDistance = value + + @property + def SubjectiveRefractionRightEyeSequence(self) -> Optional[List[SubjectiveRefractionRightEyeSequenceItem]]: + if "SubjectiveRefractionRightEyeSequence" in self._dataset: + if len(self._SubjectiveRefractionRightEyeSequence) == len(self._dataset.SubjectiveRefractionRightEyeSequence): + return self._SubjectiveRefractionRightEyeSequence + else: + return [ + SubjectiveRefractionRightEyeSequenceItem(x) for x in self._dataset.SubjectiveRefractionRightEyeSequence + ] + return None + + @SubjectiveRefractionRightEyeSequence.setter + def SubjectiveRefractionRightEyeSequence(self, value: Optional[List[SubjectiveRefractionRightEyeSequenceItem]]): + if value is None: + self._SubjectiveRefractionRightEyeSequence = [] + if "SubjectiveRefractionRightEyeSequence" in self._dataset: + del self._dataset.SubjectiveRefractionRightEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, SubjectiveRefractionRightEyeSequenceItem) for item in value + ): + raise ValueError( + "SubjectiveRefractionRightEyeSequence must be a list of SubjectiveRefractionRightEyeSequenceItem objects" + ) + else: + self._SubjectiveRefractionRightEyeSequence = value + if "SubjectiveRefractionRightEyeSequence" not in self._dataset: + self._dataset.SubjectiveRefractionRightEyeSequence = pydicom.Sequence() + self._dataset.SubjectiveRefractionRightEyeSequence.clear() + self._dataset.SubjectiveRefractionRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_SubjectiveRefractionRightEye(self, item: SubjectiveRefractionRightEyeSequenceItem): + if not isinstance(item, SubjectiveRefractionRightEyeSequenceItem): + raise ValueError("Item must be an instance of SubjectiveRefractionRightEyeSequenceItem") + self._SubjectiveRefractionRightEyeSequence.append(item) + if "SubjectiveRefractionRightEyeSequence" not in self._dataset: + self._dataset.SubjectiveRefractionRightEyeSequence = pydicom.Sequence() + self._dataset.SubjectiveRefractionRightEyeSequence.append(item.to_dataset()) + + @property + def SubjectiveRefractionLeftEyeSequence(self) -> Optional[List[SubjectiveRefractionLeftEyeSequenceItem]]: + if "SubjectiveRefractionLeftEyeSequence" in self._dataset: + if len(self._SubjectiveRefractionLeftEyeSequence) == len(self._dataset.SubjectiveRefractionLeftEyeSequence): + return self._SubjectiveRefractionLeftEyeSequence + else: + return [SubjectiveRefractionLeftEyeSequenceItem(x) for x in self._dataset.SubjectiveRefractionLeftEyeSequence] + return None + + @SubjectiveRefractionLeftEyeSequence.setter + def SubjectiveRefractionLeftEyeSequence(self, value: Optional[List[SubjectiveRefractionLeftEyeSequenceItem]]): + if value is None: + self._SubjectiveRefractionLeftEyeSequence = [] + if "SubjectiveRefractionLeftEyeSequence" in self._dataset: + del self._dataset.SubjectiveRefractionLeftEyeSequence + elif not isinstance(value, list) or not all( + isinstance(item, SubjectiveRefractionLeftEyeSequenceItem) for item in value + ): + raise ValueError( + "SubjectiveRefractionLeftEyeSequence must be a list of SubjectiveRefractionLeftEyeSequenceItem objects" + ) + else: + self._SubjectiveRefractionLeftEyeSequence = value + if "SubjectiveRefractionLeftEyeSequence" not in self._dataset: + self._dataset.SubjectiveRefractionLeftEyeSequence = pydicom.Sequence() + self._dataset.SubjectiveRefractionLeftEyeSequence.clear() + self._dataset.SubjectiveRefractionLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_SubjectiveRefractionLeftEye(self, item: SubjectiveRefractionLeftEyeSequenceItem): + if not isinstance(item, SubjectiveRefractionLeftEyeSequenceItem): + raise ValueError("Item must be an instance of SubjectiveRefractionLeftEyeSequenceItem") + self._SubjectiveRefractionLeftEyeSequence.append(item) + if "SubjectiveRefractionLeftEyeSequence" not in self._dataset: + self._dataset.SubjectiveRefractionLeftEyeSequence = pydicom.Sequence() + self._dataset.SubjectiveRefractionLeftEyeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/subjective_refraction_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/subjective_refraction_right_eye_sequence_item.py new file mode 100644 index 0000000..88d7793 --- /dev/null +++ b/tdwii_plus_examples/domain_model/subjective_refraction_right_eye_sequence_item.py @@ -0,0 +1,196 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .add_intermediate_sequence_item import AddIntermediateSequenceItem +from .add_near_sequence_item import AddNearSequenceItem +from .add_other_sequence_item import AddOtherSequenceItem +from .cylinder_sequence_item import CylinderSequenceItem +from .prism_sequence_item import PrismSequenceItem + + +class SubjectiveRefractionRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + self._PrismSequence: List[PrismSequenceItem] = [] + self._AddNearSequence: List[AddNearSequenceItem] = [] + self._AddIntermediateSequence: List[AddIntermediateSequenceItem] = [] + self._AddOtherSequence: List[AddOtherSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PrismSequence(self) -> Optional[List[PrismSequenceItem]]: + if "PrismSequence" in self._dataset: + if len(self._PrismSequence) == len(self._dataset.PrismSequence): + return self._PrismSequence + else: + return [PrismSequenceItem(x) for x in self._dataset.PrismSequence] + return None + + @PrismSequence.setter + def PrismSequence(self, value: Optional[List[PrismSequenceItem]]): + if value is None: + self._PrismSequence = [] + if "PrismSequence" in self._dataset: + del self._dataset.PrismSequence + elif not isinstance(value, list) or not all(isinstance(item, PrismSequenceItem) for item in value): + raise ValueError("PrismSequence must be a list of PrismSequenceItem objects") + else: + self._PrismSequence = value + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.clear() + self._dataset.PrismSequence.extend([item.to_dataset() for item in value]) + + def add_Prism(self, item: PrismSequenceItem): + if not isinstance(item, PrismSequenceItem): + raise ValueError("Item must be an instance of PrismSequenceItem") + self._PrismSequence.append(item) + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.append(item.to_dataset()) + + @property + def AddNearSequence(self) -> Optional[List[AddNearSequenceItem]]: + if "AddNearSequence" in self._dataset: + if len(self._AddNearSequence) == len(self._dataset.AddNearSequence): + return self._AddNearSequence + else: + return [AddNearSequenceItem(x) for x in self._dataset.AddNearSequence] + return None + + @AddNearSequence.setter + def AddNearSequence(self, value: Optional[List[AddNearSequenceItem]]): + if value is None: + self._AddNearSequence = [] + if "AddNearSequence" in self._dataset: + del self._dataset.AddNearSequence + elif not isinstance(value, list) or not all(isinstance(item, AddNearSequenceItem) for item in value): + raise ValueError("AddNearSequence must be a list of AddNearSequenceItem objects") + else: + self._AddNearSequence = value + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.clear() + self._dataset.AddNearSequence.extend([item.to_dataset() for item in value]) + + def add_AddNear(self, item: AddNearSequenceItem): + if not isinstance(item, AddNearSequenceItem): + raise ValueError("Item must be an instance of AddNearSequenceItem") + self._AddNearSequence.append(item) + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.append(item.to_dataset()) + + @property + def AddIntermediateSequence(self) -> Optional[List[AddIntermediateSequenceItem]]: + if "AddIntermediateSequence" in self._dataset: + if len(self._AddIntermediateSequence) == len(self._dataset.AddIntermediateSequence): + return self._AddIntermediateSequence + else: + return [AddIntermediateSequenceItem(x) for x in self._dataset.AddIntermediateSequence] + return None + + @AddIntermediateSequence.setter + def AddIntermediateSequence(self, value: Optional[List[AddIntermediateSequenceItem]]): + if value is None: + self._AddIntermediateSequence = [] + if "AddIntermediateSequence" in self._dataset: + del self._dataset.AddIntermediateSequence + elif not isinstance(value, list) or not all(isinstance(item, AddIntermediateSequenceItem) for item in value): + raise ValueError("AddIntermediateSequence must be a list of AddIntermediateSequenceItem objects") + else: + self._AddIntermediateSequence = value + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.clear() + self._dataset.AddIntermediateSequence.extend([item.to_dataset() for item in value]) + + def add_AddIntermediate(self, item: AddIntermediateSequenceItem): + if not isinstance(item, AddIntermediateSequenceItem): + raise ValueError("Item must be an instance of AddIntermediateSequenceItem") + self._AddIntermediateSequence.append(item) + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.append(item.to_dataset()) + + @property + def AddOtherSequence(self) -> Optional[List[AddOtherSequenceItem]]: + if "AddOtherSequence" in self._dataset: + if len(self._AddOtherSequence) == len(self._dataset.AddOtherSequence): + return self._AddOtherSequence + else: + return [AddOtherSequenceItem(x) for x in self._dataset.AddOtherSequence] + return None + + @AddOtherSequence.setter + def AddOtherSequence(self, value: Optional[List[AddOtherSequenceItem]]): + if value is None: + self._AddOtherSequence = [] + if "AddOtherSequence" in self._dataset: + del self._dataset.AddOtherSequence + elif not isinstance(value, list) or not all(isinstance(item, AddOtherSequenceItem) for item in value): + raise ValueError("AddOtherSequence must be a list of AddOtherSequenceItem objects") + else: + self._AddOtherSequence = value + if "AddOtherSequence" not in self._dataset: + self._dataset.AddOtherSequence = pydicom.Sequence() + self._dataset.AddOtherSequence.clear() + self._dataset.AddOtherSequence.extend([item.to_dataset() for item in value]) + + def add_AddOther(self, item: AddOtherSequenceItem): + if not isinstance(item, AddOtherSequenceItem): + raise ValueError("Item must be an instance of AddOtherSequenceItem") + self._AddOtherSequence.append(item) + if "AddOtherSequence" not in self._dataset: + self._dataset.AddOtherSequence = pydicom.Sequence() + self._dataset.AddOtherSequence.append(item.to_dataset()) + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/surface_mesh_primitives_sequence_item.py b/tdwii_plus_examples/domain_model/surface_mesh_primitives_sequence_item.py new file mode 100644 index 0000000..8fc205e --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_mesh_primitives_sequence_item.py @@ -0,0 +1,190 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .facet_sequence_item import FacetSequenceItem +from .line_sequence_item import LineSequenceItem +from .triangle_fan_sequence_item import TriangleFanSequenceItem +from .triangle_strip_sequence_item import TriangleStripSequenceItem + + +class SurfaceMeshPrimitivesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TriangleStripSequence: List[TriangleStripSequenceItem] = [] + self._TriangleFanSequence: List[TriangleFanSequenceItem] = [] + self._LineSequence: List[LineSequenceItem] = [] + self._FacetSequence: List[FacetSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TriangleStripSequence(self) -> Optional[List[TriangleStripSequenceItem]]: + if "TriangleStripSequence" in self._dataset: + if len(self._TriangleStripSequence) == len(self._dataset.TriangleStripSequence): + return self._TriangleStripSequence + else: + return [TriangleStripSequenceItem(x) for x in self._dataset.TriangleStripSequence] + return None + + @TriangleStripSequence.setter + def TriangleStripSequence(self, value: Optional[List[TriangleStripSequenceItem]]): + if value is None: + self._TriangleStripSequence = [] + if "TriangleStripSequence" in self._dataset: + del self._dataset.TriangleStripSequence + elif not isinstance(value, list) or not all(isinstance(item, TriangleStripSequenceItem) for item in value): + raise ValueError("TriangleStripSequence must be a list of TriangleStripSequenceItem objects") + else: + self._TriangleStripSequence = value + if "TriangleStripSequence" not in self._dataset: + self._dataset.TriangleStripSequence = pydicom.Sequence() + self._dataset.TriangleStripSequence.clear() + self._dataset.TriangleStripSequence.extend([item.to_dataset() for item in value]) + + def add_TriangleStrip(self, item: TriangleStripSequenceItem): + if not isinstance(item, TriangleStripSequenceItem): + raise ValueError("Item must be an instance of TriangleStripSequenceItem") + self._TriangleStripSequence.append(item) + if "TriangleStripSequence" not in self._dataset: + self._dataset.TriangleStripSequence = pydicom.Sequence() + self._dataset.TriangleStripSequence.append(item.to_dataset()) + + @property + def TriangleFanSequence(self) -> Optional[List[TriangleFanSequenceItem]]: + if "TriangleFanSequence" in self._dataset: + if len(self._TriangleFanSequence) == len(self._dataset.TriangleFanSequence): + return self._TriangleFanSequence + else: + return [TriangleFanSequenceItem(x) for x in self._dataset.TriangleFanSequence] + return None + + @TriangleFanSequence.setter + def TriangleFanSequence(self, value: Optional[List[TriangleFanSequenceItem]]): + if value is None: + self._TriangleFanSequence = [] + if "TriangleFanSequence" in self._dataset: + del self._dataset.TriangleFanSequence + elif not isinstance(value, list) or not all(isinstance(item, TriangleFanSequenceItem) for item in value): + raise ValueError("TriangleFanSequence must be a list of TriangleFanSequenceItem objects") + else: + self._TriangleFanSequence = value + if "TriangleFanSequence" not in self._dataset: + self._dataset.TriangleFanSequence = pydicom.Sequence() + self._dataset.TriangleFanSequence.clear() + self._dataset.TriangleFanSequence.extend([item.to_dataset() for item in value]) + + def add_TriangleFan(self, item: TriangleFanSequenceItem): + if not isinstance(item, TriangleFanSequenceItem): + raise ValueError("Item must be an instance of TriangleFanSequenceItem") + self._TriangleFanSequence.append(item) + if "TriangleFanSequence" not in self._dataset: + self._dataset.TriangleFanSequence = pydicom.Sequence() + self._dataset.TriangleFanSequence.append(item.to_dataset()) + + @property + def LineSequence(self) -> Optional[List[LineSequenceItem]]: + if "LineSequence" in self._dataset: + if len(self._LineSequence) == len(self._dataset.LineSequence): + return self._LineSequence + else: + return [LineSequenceItem(x) for x in self._dataset.LineSequence] + return None + + @LineSequence.setter + def LineSequence(self, value: Optional[List[LineSequenceItem]]): + if value is None: + self._LineSequence = [] + if "LineSequence" in self._dataset: + del self._dataset.LineSequence + elif not isinstance(value, list) or not all(isinstance(item, LineSequenceItem) for item in value): + raise ValueError("LineSequence must be a list of LineSequenceItem objects") + else: + self._LineSequence = value + if "LineSequence" not in self._dataset: + self._dataset.LineSequence = pydicom.Sequence() + self._dataset.LineSequence.clear() + self._dataset.LineSequence.extend([item.to_dataset() for item in value]) + + def add_Line(self, item: LineSequenceItem): + if not isinstance(item, LineSequenceItem): + raise ValueError("Item must be an instance of LineSequenceItem") + self._LineSequence.append(item) + if "LineSequence" not in self._dataset: + self._dataset.LineSequence = pydicom.Sequence() + self._dataset.LineSequence.append(item.to_dataset()) + + @property + def FacetSequence(self) -> Optional[List[FacetSequenceItem]]: + if "FacetSequence" in self._dataset: + if len(self._FacetSequence) == len(self._dataset.FacetSequence): + return self._FacetSequence + else: + return [FacetSequenceItem(x) for x in self._dataset.FacetSequence] + return None + + @FacetSequence.setter + def FacetSequence(self, value: Optional[List[FacetSequenceItem]]): + if value is None: + self._FacetSequence = [] + if "FacetSequence" in self._dataset: + del self._dataset.FacetSequence + elif not isinstance(value, list) or not all(isinstance(item, FacetSequenceItem) for item in value): + raise ValueError("FacetSequence must be a list of FacetSequenceItem objects") + else: + self._FacetSequence = value + if "FacetSequence" not in self._dataset: + self._dataset.FacetSequence = pydicom.Sequence() + self._dataset.FacetSequence.clear() + self._dataset.FacetSequence.extend([item.to_dataset() for item in value]) + + def add_Facet(self, item: FacetSequenceItem): + if not isinstance(item, FacetSequenceItem): + raise ValueError("Item must be an instance of FacetSequenceItem") + self._FacetSequence.append(item) + if "FacetSequence" not in self._dataset: + self._dataset.FacetSequence = pydicom.Sequence() + self._dataset.FacetSequence.append(item.to_dataset()) + + @property + def LongTrianglePointIndexList(self) -> Optional[bytes]: + if "LongTrianglePointIndexList" in self._dataset: + return self._dataset.LongTrianglePointIndexList + return None + + @LongTrianglePointIndexList.setter + def LongTrianglePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongTrianglePointIndexList" in self._dataset: + del self._dataset.LongTrianglePointIndexList + else: + self._dataset.LongTrianglePointIndexList = value + + @property + def LongEdgePointIndexList(self) -> Optional[bytes]: + if "LongEdgePointIndexList" in self._dataset: + return self._dataset.LongEdgePointIndexList + return None + + @LongEdgePointIndexList.setter + def LongEdgePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongEdgePointIndexList" in self._dataset: + del self._dataset.LongEdgePointIndexList + else: + self._dataset.LongEdgePointIndexList = value + + @property + def LongVertexPointIndexList(self) -> Optional[bytes]: + if "LongVertexPointIndexList" in self._dataset: + return self._dataset.LongVertexPointIndexList + return None + + @LongVertexPointIndexList.setter + def LongVertexPointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongVertexPointIndexList" in self._dataset: + del self._dataset.LongVertexPointIndexList + else: + self._dataset.LongVertexPointIndexList = value diff --git a/tdwii_plus_examples/domain_model/surface_points_normals_sequence_item.py b/tdwii_plus_examples/domain_model/surface_points_normals_sequence_item.py new file mode 100644 index 0000000..62c92b4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_points_normals_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SurfacePointsNormalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfVectors(self) -> Optional[int]: + if "NumberOfVectors" in self._dataset: + return self._dataset.NumberOfVectors + return None + + @NumberOfVectors.setter + def NumberOfVectors(self, value: Optional[int]): + if value is None: + if "NumberOfVectors" in self._dataset: + del self._dataset.NumberOfVectors + else: + self._dataset.NumberOfVectors = value + + @property + def VectorDimensionality(self) -> Optional[int]: + if "VectorDimensionality" in self._dataset: + return self._dataset.VectorDimensionality + return None + + @VectorDimensionality.setter + def VectorDimensionality(self, value: Optional[int]): + if value is None: + if "VectorDimensionality" in self._dataset: + del self._dataset.VectorDimensionality + else: + self._dataset.VectorDimensionality = value + + @property + def VectorAccuracy(self) -> Optional[List[float]]: + if "VectorAccuracy" in self._dataset: + return self._dataset.VectorAccuracy + return None + + @VectorAccuracy.setter + def VectorAccuracy(self, value: Optional[List[float]]): + if value is None: + if "VectorAccuracy" in self._dataset: + del self._dataset.VectorAccuracy + else: + self._dataset.VectorAccuracy = value + + @property + def VectorCoordinateData(self) -> Optional[bytes]: + if "VectorCoordinateData" in self._dataset: + return self._dataset.VectorCoordinateData + return None + + @VectorCoordinateData.setter + def VectorCoordinateData(self, value: Optional[bytes]): + if value is None: + if "VectorCoordinateData" in self._dataset: + del self._dataset.VectorCoordinateData + else: + self._dataset.VectorCoordinateData = value diff --git a/tdwii_plus_examples/domain_model/surface_points_sequence_item.py b/tdwii_plus_examples/domain_model/surface_points_sequence_item.py new file mode 100644 index 0000000..abcde73 --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_points_sequence_item.py @@ -0,0 +1,191 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SurfacePointsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SegmentedPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._SegmentedPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SegmentedPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + if len(self._SegmentedPropertyCategoryCodeSequence) == len(self._dataset.SegmentedPropertyCategoryCodeSequence): + return self._SegmentedPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyCategoryCodeSequence] + return None + + @SegmentedPropertyCategoryCodeSequence.setter + def SegmentedPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyCategoryCodeSequence = [] + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyCategoryCodeSequence = value + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.clear() + self._dataset.SegmentedPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyCategoryCodeSequence.append(item) + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def SegmentedPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + if len(self._SegmentedPropertyTypeCodeSequence) == len(self._dataset.SegmentedPropertyTypeCodeSequence): + return self._SegmentedPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyTypeCodeSequence] + return None + + @SegmentedPropertyTypeCodeSequence.setter + def SegmentedPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyTypeCodeSequence = [] + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyTypeCodeSequence = value + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.clear() + self._dataset.SegmentedPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyTypeCodeSequence.append(item) + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def NumberOfSurfacePoints(self) -> Optional[int]: + if "NumberOfSurfacePoints" in self._dataset: + return self._dataset.NumberOfSurfacePoints + return None + + @NumberOfSurfacePoints.setter + def NumberOfSurfacePoints(self, value: Optional[int]): + if value is None: + if "NumberOfSurfacePoints" in self._dataset: + del self._dataset.NumberOfSurfacePoints + else: + self._dataset.NumberOfSurfacePoints = value + + @property + def PointCoordinatesData(self) -> Optional[bytes]: + if "PointCoordinatesData" in self._dataset: + return self._dataset.PointCoordinatesData + return None + + @PointCoordinatesData.setter + def PointCoordinatesData(self, value: Optional[bytes]): + if value is None: + if "PointCoordinatesData" in self._dataset: + del self._dataset.PointCoordinatesData + else: + self._dataset.PointCoordinatesData = value + + @property + def PointPositionAccuracy(self) -> Optional[List[float]]: + if "PointPositionAccuracy" in self._dataset: + return self._dataset.PointPositionAccuracy + return None + + @PointPositionAccuracy.setter + def PointPositionAccuracy(self, value: Optional[List[float]]): + if value is None: + if "PointPositionAccuracy" in self._dataset: + del self._dataset.PointPositionAccuracy + else: + self._dataset.PointPositionAccuracy = value + + @property + def MeanPointDistance(self) -> Optional[float]: + if "MeanPointDistance" in self._dataset: + return self._dataset.MeanPointDistance + return None + + @MeanPointDistance.setter + def MeanPointDistance(self, value: Optional[float]): + if value is None: + if "MeanPointDistance" in self._dataset: + del self._dataset.MeanPointDistance + else: + self._dataset.MeanPointDistance = value + + @property + def MaximumPointDistance(self) -> Optional[float]: + if "MaximumPointDistance" in self._dataset: + return self._dataset.MaximumPointDistance + return None + + @MaximumPointDistance.setter + def MaximumPointDistance(self, value: Optional[float]): + if value is None: + if "MaximumPointDistance" in self._dataset: + del self._dataset.MaximumPointDistance + else: + self._dataset.MaximumPointDistance = value + + @property + def PointsBoundingBoxCoordinates(self) -> Optional[List[float]]: + if "PointsBoundingBoxCoordinates" in self._dataset: + return self._dataset.PointsBoundingBoxCoordinates + return None + + @PointsBoundingBoxCoordinates.setter + def PointsBoundingBoxCoordinates(self, value: Optional[List[float]]): + if value is None: + if "PointsBoundingBoxCoordinates" in self._dataset: + del self._dataset.PointsBoundingBoxCoordinates + else: + self._dataset.PointsBoundingBoxCoordinates = value + + @property + def AxisOfRotation(self) -> Optional[List[float]]: + if "AxisOfRotation" in self._dataset: + return self._dataset.AxisOfRotation + return None + + @AxisOfRotation.setter + def AxisOfRotation(self, value: Optional[List[float]]): + if value is None: + if "AxisOfRotation" in self._dataset: + del self._dataset.AxisOfRotation + else: + self._dataset.AxisOfRotation = value + + @property + def CenterOfRotation(self) -> Optional[List[float]]: + if "CenterOfRotation" in self._dataset: + return self._dataset.CenterOfRotation + return None + + @CenterOfRotation.setter + def CenterOfRotation(self, value: Optional[List[float]]): + if value is None: + if "CenterOfRotation" in self._dataset: + del self._dataset.CenterOfRotation + else: + self._dataset.CenterOfRotation = value diff --git a/tdwii_plus_examples/domain_model/surface_processing_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/surface_processing_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..eb04ec0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_processing_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class SurfaceProcessingAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/surface_scan_mesh.py b/tdwii_plus_examples/domain_model/surface_scan_mesh.py new file mode 100644 index 0000000..37d9353 --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_scan_mesh.py @@ -0,0 +1,4508 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_surface_data_sequence_item import ReferencedSurfaceDataSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .surface_sequence_item import SurfaceSequenceItem +from .udi_sequence_item import UDISequenceItem +from .uv_mapping_sequence_item import UVMappingSequenceItem + + +class SurfaceScanMesh: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedSurfaceDataSequence: List[ReferencedSurfaceDataSequenceItem] = [] + self._SurfaceSequence: List[SurfaceSequenceItem] = [] + self._UVMappingSequence: List[UVMappingSequenceItem] = [] + self._SurfaceScanAcquisitionTypeCodeSequence: List[CodeSequenceItem] = [] + self._SurfaceScanModeCodeSequence: List[CodeSequenceItem] = [] + self._RegistrationMethodCodeSequence: List[CodeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ReferencedSurfaceDataSequence(self) -> Optional[List[ReferencedSurfaceDataSequenceItem]]: + if "ReferencedSurfaceDataSequence" in self._dataset: + if len(self._ReferencedSurfaceDataSequence) == len(self._dataset.ReferencedSurfaceDataSequence): + return self._ReferencedSurfaceDataSequence + else: + return [ReferencedSurfaceDataSequenceItem(x) for x in self._dataset.ReferencedSurfaceDataSequence] + return None + + @ReferencedSurfaceDataSequence.setter + def ReferencedSurfaceDataSequence(self, value: Optional[List[ReferencedSurfaceDataSequenceItem]]): + if value is None: + self._ReferencedSurfaceDataSequence = [] + if "ReferencedSurfaceDataSequence" in self._dataset: + del self._dataset.ReferencedSurfaceDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSurfaceDataSequenceItem) for item in value): + raise ValueError("ReferencedSurfaceDataSequence must be a list of ReferencedSurfaceDataSequenceItem objects") + else: + self._ReferencedSurfaceDataSequence = value + if "ReferencedSurfaceDataSequence" not in self._dataset: + self._dataset.ReferencedSurfaceDataSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceDataSequence.clear() + self._dataset.ReferencedSurfaceDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSurfaceData(self, item: ReferencedSurfaceDataSequenceItem): + if not isinstance(item, ReferencedSurfaceDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedSurfaceDataSequenceItem") + self._ReferencedSurfaceDataSequence.append(item) + if "ReferencedSurfaceDataSequence" not in self._dataset: + self._dataset.ReferencedSurfaceDataSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceDataSequence.append(item.to_dataset()) + + @property + def NumberOfSurfaces(self) -> Optional[int]: + if "NumberOfSurfaces" in self._dataset: + return self._dataset.NumberOfSurfaces + return None + + @NumberOfSurfaces.setter + def NumberOfSurfaces(self, value: Optional[int]): + if value is None: + if "NumberOfSurfaces" in self._dataset: + del self._dataset.NumberOfSurfaces + else: + self._dataset.NumberOfSurfaces = value + + @property + def SurfaceSequence(self) -> Optional[List[SurfaceSequenceItem]]: + if "SurfaceSequence" in self._dataset: + if len(self._SurfaceSequence) == len(self._dataset.SurfaceSequence): + return self._SurfaceSequence + else: + return [SurfaceSequenceItem(x) for x in self._dataset.SurfaceSequence] + return None + + @SurfaceSequence.setter + def SurfaceSequence(self, value: Optional[List[SurfaceSequenceItem]]): + if value is None: + self._SurfaceSequence = [] + if "SurfaceSequence" in self._dataset: + del self._dataset.SurfaceSequence + elif not isinstance(value, list) or not all(isinstance(item, SurfaceSequenceItem) for item in value): + raise ValueError("SurfaceSequence must be a list of SurfaceSequenceItem objects") + else: + self._SurfaceSequence = value + if "SurfaceSequence" not in self._dataset: + self._dataset.SurfaceSequence = pydicom.Sequence() + self._dataset.SurfaceSequence.clear() + self._dataset.SurfaceSequence.extend([item.to_dataset() for item in value]) + + def add_Surface(self, item: SurfaceSequenceItem): + if not isinstance(item, SurfaceSequenceItem): + raise ValueError("Item must be an instance of SurfaceSequenceItem") + self._SurfaceSequence.append(item) + if "SurfaceSequence" not in self._dataset: + self._dataset.SurfaceSequence = pydicom.Sequence() + self._dataset.SurfaceSequence.append(item.to_dataset()) + + @property + def UVMappingSequence(self) -> Optional[List[UVMappingSequenceItem]]: + if "UVMappingSequence" in self._dataset: + if len(self._UVMappingSequence) == len(self._dataset.UVMappingSequence): + return self._UVMappingSequence + else: + return [UVMappingSequenceItem(x) for x in self._dataset.UVMappingSequence] + return None + + @UVMappingSequence.setter + def UVMappingSequence(self, value: Optional[List[UVMappingSequenceItem]]): + if value is None: + self._UVMappingSequence = [] + if "UVMappingSequence" in self._dataset: + del self._dataset.UVMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, UVMappingSequenceItem) for item in value): + raise ValueError("UVMappingSequence must be a list of UVMappingSequenceItem objects") + else: + self._UVMappingSequence = value + if "UVMappingSequence" not in self._dataset: + self._dataset.UVMappingSequence = pydicom.Sequence() + self._dataset.UVMappingSequence.clear() + self._dataset.UVMappingSequence.extend([item.to_dataset() for item in value]) + + def add_UVMapping(self, item: UVMappingSequenceItem): + if not isinstance(item, UVMappingSequenceItem): + raise ValueError("Item must be an instance of UVMappingSequenceItem") + self._UVMappingSequence.append(item) + if "UVMappingSequence" not in self._dataset: + self._dataset.UVMappingSequence = pydicom.Sequence() + self._dataset.UVMappingSequence.append(item.to_dataset()) + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SurfaceScanAcquisitionTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SurfaceScanAcquisitionTypeCodeSequence" in self._dataset: + if len(self._SurfaceScanAcquisitionTypeCodeSequence) == len(self._dataset.SurfaceScanAcquisitionTypeCodeSequence): + return self._SurfaceScanAcquisitionTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SurfaceScanAcquisitionTypeCodeSequence] + return None + + @SurfaceScanAcquisitionTypeCodeSequence.setter + def SurfaceScanAcquisitionTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SurfaceScanAcquisitionTypeCodeSequence = [] + if "SurfaceScanAcquisitionTypeCodeSequence" in self._dataset: + del self._dataset.SurfaceScanAcquisitionTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SurfaceScanAcquisitionTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SurfaceScanAcquisitionTypeCodeSequence = value + if "SurfaceScanAcquisitionTypeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanAcquisitionTypeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanAcquisitionTypeCodeSequence.clear() + self._dataset.SurfaceScanAcquisitionTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SurfaceScanAcquisitionTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SurfaceScanAcquisitionTypeCodeSequence.append(item) + if "SurfaceScanAcquisitionTypeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanAcquisitionTypeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanAcquisitionTypeCodeSequence.append(item.to_dataset()) + + @property + def SurfaceScanModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SurfaceScanModeCodeSequence" in self._dataset: + if len(self._SurfaceScanModeCodeSequence) == len(self._dataset.SurfaceScanModeCodeSequence): + return self._SurfaceScanModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SurfaceScanModeCodeSequence] + return None + + @SurfaceScanModeCodeSequence.setter + def SurfaceScanModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SurfaceScanModeCodeSequence = [] + if "SurfaceScanModeCodeSequence" in self._dataset: + del self._dataset.SurfaceScanModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SurfaceScanModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SurfaceScanModeCodeSequence = value + if "SurfaceScanModeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanModeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanModeCodeSequence.clear() + self._dataset.SurfaceScanModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SurfaceScanModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SurfaceScanModeCodeSequence.append(item) + if "SurfaceScanModeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanModeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanModeCodeSequence.append(item.to_dataset()) + + @property + def RegistrationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RegistrationMethodCodeSequence" in self._dataset: + if len(self._RegistrationMethodCodeSequence) == len(self._dataset.RegistrationMethodCodeSequence): + return self._RegistrationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RegistrationMethodCodeSequence] + return None + + @RegistrationMethodCodeSequence.setter + def RegistrationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RegistrationMethodCodeSequence = [] + if "RegistrationMethodCodeSequence" in self._dataset: + del self._dataset.RegistrationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RegistrationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RegistrationMethodCodeSequence = value + if "RegistrationMethodCodeSequence" not in self._dataset: + self._dataset.RegistrationMethodCodeSequence = pydicom.Sequence() + self._dataset.RegistrationMethodCodeSequence.clear() + self._dataset.RegistrationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RegistrationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RegistrationMethodCodeSequence.append(item) + if "RegistrationMethodCodeSequence" not in self._dataset: + self._dataset.RegistrationMethodCodeSequence = pydicom.Sequence() + self._dataset.RegistrationMethodCodeSequence.append(item.to_dataset()) + + @property + def ShotDurationTime(self) -> Optional[float]: + if "ShotDurationTime" in self._dataset: + return self._dataset.ShotDurationTime + return None + + @ShotDurationTime.setter + def ShotDurationTime(self, value: Optional[float]): + if value is None: + if "ShotDurationTime" in self._dataset: + del self._dataset.ShotDurationTime + else: + self._dataset.ShotDurationTime = value + + @property + def ShotOffsetTime(self) -> Optional[float]: + if "ShotOffsetTime" in self._dataset: + return self._dataset.ShotOffsetTime + return None + + @ShotOffsetTime.setter + def ShotOffsetTime(self, value: Optional[float]): + if value is None: + if "ShotOffsetTime" in self._dataset: + del self._dataset.ShotOffsetTime + else: + self._dataset.ShotOffsetTime = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/surface_scan_point_cloud.py b/tdwii_plus_examples/domain_model/surface_scan_point_cloud.py new file mode 100644 index 0000000..4ca43f0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_scan_point_cloud.py @@ -0,0 +1,4522 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referenced_surface_data_sequence_item import ReferencedSurfaceDataSequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .surface_points_sequence_item import SurfacePointsSequenceItem +from .udi_sequence_item import UDISequenceItem +from .uv_mapping_sequence_item import UVMappingSequenceItem + + +class SurfaceScanPointCloud: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedSurfaceDataSequence: List[ReferencedSurfaceDataSequenceItem] = [] + self._UVMappingSequence: List[UVMappingSequenceItem] = [] + self._SurfaceScanAcquisitionTypeCodeSequence: List[CodeSequenceItem] = [] + self._SurfaceScanModeCodeSequence: List[CodeSequenceItem] = [] + self._RegistrationMethodCodeSequence: List[CodeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SurfacePointsSequence: List[SurfacePointsSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def ReferencedSurfaceDataSequence(self) -> Optional[List[ReferencedSurfaceDataSequenceItem]]: + if "ReferencedSurfaceDataSequence" in self._dataset: + if len(self._ReferencedSurfaceDataSequence) == len(self._dataset.ReferencedSurfaceDataSequence): + return self._ReferencedSurfaceDataSequence + else: + return [ReferencedSurfaceDataSequenceItem(x) for x in self._dataset.ReferencedSurfaceDataSequence] + return None + + @ReferencedSurfaceDataSequence.setter + def ReferencedSurfaceDataSequence(self, value: Optional[List[ReferencedSurfaceDataSequenceItem]]): + if value is None: + self._ReferencedSurfaceDataSequence = [] + if "ReferencedSurfaceDataSequence" in self._dataset: + del self._dataset.ReferencedSurfaceDataSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSurfaceDataSequenceItem) for item in value): + raise ValueError("ReferencedSurfaceDataSequence must be a list of ReferencedSurfaceDataSequenceItem objects") + else: + self._ReferencedSurfaceDataSequence = value + if "ReferencedSurfaceDataSequence" not in self._dataset: + self._dataset.ReferencedSurfaceDataSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceDataSequence.clear() + self._dataset.ReferencedSurfaceDataSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSurfaceData(self, item: ReferencedSurfaceDataSequenceItem): + if not isinstance(item, ReferencedSurfaceDataSequenceItem): + raise ValueError("Item must be an instance of ReferencedSurfaceDataSequenceItem") + self._ReferencedSurfaceDataSequence.append(item) + if "ReferencedSurfaceDataSequence" not in self._dataset: + self._dataset.ReferencedSurfaceDataSequence = pydicom.Sequence() + self._dataset.ReferencedSurfaceDataSequence.append(item.to_dataset()) + + @property + def UVMappingSequence(self) -> Optional[List[UVMappingSequenceItem]]: + if "UVMappingSequence" in self._dataset: + if len(self._UVMappingSequence) == len(self._dataset.UVMappingSequence): + return self._UVMappingSequence + else: + return [UVMappingSequenceItem(x) for x in self._dataset.UVMappingSequence] + return None + + @UVMappingSequence.setter + def UVMappingSequence(self, value: Optional[List[UVMappingSequenceItem]]): + if value is None: + self._UVMappingSequence = [] + if "UVMappingSequence" in self._dataset: + del self._dataset.UVMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, UVMappingSequenceItem) for item in value): + raise ValueError("UVMappingSequence must be a list of UVMappingSequenceItem objects") + else: + self._UVMappingSequence = value + if "UVMappingSequence" not in self._dataset: + self._dataset.UVMappingSequence = pydicom.Sequence() + self._dataset.UVMappingSequence.clear() + self._dataset.UVMappingSequence.extend([item.to_dataset() for item in value]) + + def add_UVMapping(self, item: UVMappingSequenceItem): + if not isinstance(item, UVMappingSequenceItem): + raise ValueError("Item must be an instance of UVMappingSequenceItem") + self._UVMappingSequence.append(item) + if "UVMappingSequence" not in self._dataset: + self._dataset.UVMappingSequence = pydicom.Sequence() + self._dataset.UVMappingSequence.append(item.to_dataset()) + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SurfaceScanAcquisitionTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SurfaceScanAcquisitionTypeCodeSequence" in self._dataset: + if len(self._SurfaceScanAcquisitionTypeCodeSequence) == len(self._dataset.SurfaceScanAcquisitionTypeCodeSequence): + return self._SurfaceScanAcquisitionTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SurfaceScanAcquisitionTypeCodeSequence] + return None + + @SurfaceScanAcquisitionTypeCodeSequence.setter + def SurfaceScanAcquisitionTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SurfaceScanAcquisitionTypeCodeSequence = [] + if "SurfaceScanAcquisitionTypeCodeSequence" in self._dataset: + del self._dataset.SurfaceScanAcquisitionTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SurfaceScanAcquisitionTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SurfaceScanAcquisitionTypeCodeSequence = value + if "SurfaceScanAcquisitionTypeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanAcquisitionTypeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanAcquisitionTypeCodeSequence.clear() + self._dataset.SurfaceScanAcquisitionTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SurfaceScanAcquisitionTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SurfaceScanAcquisitionTypeCodeSequence.append(item) + if "SurfaceScanAcquisitionTypeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanAcquisitionTypeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanAcquisitionTypeCodeSequence.append(item.to_dataset()) + + @property + def SurfaceScanModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SurfaceScanModeCodeSequence" in self._dataset: + if len(self._SurfaceScanModeCodeSequence) == len(self._dataset.SurfaceScanModeCodeSequence): + return self._SurfaceScanModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SurfaceScanModeCodeSequence] + return None + + @SurfaceScanModeCodeSequence.setter + def SurfaceScanModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SurfaceScanModeCodeSequence = [] + if "SurfaceScanModeCodeSequence" in self._dataset: + del self._dataset.SurfaceScanModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SurfaceScanModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SurfaceScanModeCodeSequence = value + if "SurfaceScanModeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanModeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanModeCodeSequence.clear() + self._dataset.SurfaceScanModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SurfaceScanModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SurfaceScanModeCodeSequence.append(item) + if "SurfaceScanModeCodeSequence" not in self._dataset: + self._dataset.SurfaceScanModeCodeSequence = pydicom.Sequence() + self._dataset.SurfaceScanModeCodeSequence.append(item.to_dataset()) + + @property + def RegistrationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RegistrationMethodCodeSequence" in self._dataset: + if len(self._RegistrationMethodCodeSequence) == len(self._dataset.RegistrationMethodCodeSequence): + return self._RegistrationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RegistrationMethodCodeSequence] + return None + + @RegistrationMethodCodeSequence.setter + def RegistrationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RegistrationMethodCodeSequence = [] + if "RegistrationMethodCodeSequence" in self._dataset: + del self._dataset.RegistrationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RegistrationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RegistrationMethodCodeSequence = value + if "RegistrationMethodCodeSequence" not in self._dataset: + self._dataset.RegistrationMethodCodeSequence = pydicom.Sequence() + self._dataset.RegistrationMethodCodeSequence.clear() + self._dataset.RegistrationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RegistrationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RegistrationMethodCodeSequence.append(item) + if "RegistrationMethodCodeSequence" not in self._dataset: + self._dataset.RegistrationMethodCodeSequence = pydicom.Sequence() + self._dataset.RegistrationMethodCodeSequence.append(item.to_dataset()) + + @property + def ShotDurationTime(self) -> Optional[float]: + if "ShotDurationTime" in self._dataset: + return self._dataset.ShotDurationTime + return None + + @ShotDurationTime.setter + def ShotDurationTime(self, value: Optional[float]): + if value is None: + if "ShotDurationTime" in self._dataset: + del self._dataset.ShotDurationTime + else: + self._dataset.ShotDurationTime = value + + @property + def ShotOffsetTime(self) -> Optional[float]: + if "ShotOffsetTime" in self._dataset: + return self._dataset.ShotOffsetTime + return None + + @ShotOffsetTime.setter + def ShotOffsetTime(self, value: Optional[float]): + if value is None: + if "ShotOffsetTime" in self._dataset: + del self._dataset.ShotOffsetTime + else: + self._dataset.ShotOffsetTime = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def SurfacePointsSequence(self) -> Optional[List[SurfacePointsSequenceItem]]: + if "SurfacePointsSequence" in self._dataset: + if len(self._SurfacePointsSequence) == len(self._dataset.SurfacePointsSequence): + return self._SurfacePointsSequence + else: + return [SurfacePointsSequenceItem(x) for x in self._dataset.SurfacePointsSequence] + return None + + @SurfacePointsSequence.setter + def SurfacePointsSequence(self, value: Optional[List[SurfacePointsSequenceItem]]): + if value is None: + self._SurfacePointsSequence = [] + if "SurfacePointsSequence" in self._dataset: + del self._dataset.SurfacePointsSequence + elif not isinstance(value, list) or not all(isinstance(item, SurfacePointsSequenceItem) for item in value): + raise ValueError("SurfacePointsSequence must be a list of SurfacePointsSequenceItem objects") + else: + self._SurfacePointsSequence = value + if "SurfacePointsSequence" not in self._dataset: + self._dataset.SurfacePointsSequence = pydicom.Sequence() + self._dataset.SurfacePointsSequence.clear() + self._dataset.SurfacePointsSequence.extend([item.to_dataset() for item in value]) + + def add_SurfacePoints(self, item: SurfacePointsSequenceItem): + if not isinstance(item, SurfacePointsSequenceItem): + raise ValueError("Item must be an instance of SurfacePointsSequenceItem") + self._SurfacePointsSequence.append(item) + if "SurfacePointsSequence" not in self._dataset: + self._dataset.SurfacePointsSequence = pydicom.Sequence() + self._dataset.SurfacePointsSequence.append(item.to_dataset()) + + @property + def SurfacePointPresentationValueData(self) -> Optional[List[int]]: + if "SurfacePointPresentationValueData" in self._dataset: + return self._dataset.SurfacePointPresentationValueData + return None + + @SurfacePointPresentationValueData.setter + def SurfacePointPresentationValueData(self, value: Optional[List[int]]): + if value is None: + if "SurfacePointPresentationValueData" in self._dataset: + del self._dataset.SurfacePointPresentationValueData + else: + self._dataset.SurfacePointPresentationValueData = value + + @property + def SurfacePointColorCIELabValueData(self) -> Optional[List[int]]: + if "SurfacePointColorCIELabValueData" in self._dataset: + return self._dataset.SurfacePointColorCIELabValueData + return None + + @SurfacePointColorCIELabValueData.setter + def SurfacePointColorCIELabValueData(self, value: Optional[List[int]]): + if value is None: + if "SurfacePointColorCIELabValueData" in self._dataset: + del self._dataset.SurfacePointColorCIELabValueData + else: + self._dataset.SurfacePointColorCIELabValueData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/surface_segmentation.py b/tdwii_plus_examples/domain_model/surface_segmentation.py new file mode 100644 index 0000000..8d3f87f --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_segmentation.py @@ -0,0 +1,4567 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .segment_sequence_item import SegmentSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .surface_sequence_item import SurfaceSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class SurfaceSegmentation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SurfaceSequence: List[SurfaceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._SegmentSequence: List[SegmentSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def NumberOfSurfaces(self) -> Optional[int]: + if "NumberOfSurfaces" in self._dataset: + return self._dataset.NumberOfSurfaces + return None + + @NumberOfSurfaces.setter + def NumberOfSurfaces(self, value: Optional[int]): + if value is None: + if "NumberOfSurfaces" in self._dataset: + del self._dataset.NumberOfSurfaces + else: + self._dataset.NumberOfSurfaces = value + + @property + def SurfaceSequence(self) -> Optional[List[SurfaceSequenceItem]]: + if "SurfaceSequence" in self._dataset: + if len(self._SurfaceSequence) == len(self._dataset.SurfaceSequence): + return self._SurfaceSequence + else: + return [SurfaceSequenceItem(x) for x in self._dataset.SurfaceSequence] + return None + + @SurfaceSequence.setter + def SurfaceSequence(self, value: Optional[List[SurfaceSequenceItem]]): + if value is None: + self._SurfaceSequence = [] + if "SurfaceSequence" in self._dataset: + del self._dataset.SurfaceSequence + elif not isinstance(value, list) or not all(isinstance(item, SurfaceSequenceItem) for item in value): + raise ValueError("SurfaceSequence must be a list of SurfaceSequenceItem objects") + else: + self._SurfaceSequence = value + if "SurfaceSequence" not in self._dataset: + self._dataset.SurfaceSequence = pydicom.Sequence() + self._dataset.SurfaceSequence.clear() + self._dataset.SurfaceSequence.extend([item.to_dataset() for item in value]) + + def add_Surface(self, item: SurfaceSequenceItem): + if not isinstance(item, SurfaceSequenceItem): + raise ValueError("Item must be an instance of SurfaceSequenceItem") + self._SurfaceSequence.append(item) + if "SurfaceSequence" not in self._dataset: + self._dataset.SurfaceSequence = pydicom.Sequence() + self._dataset.SurfaceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def SegmentSequence(self) -> Optional[List[SegmentSequenceItem]]: + if "SegmentSequence" in self._dataset: + if len(self._SegmentSequence) == len(self._dataset.SegmentSequence): + return self._SegmentSequence + else: + return [SegmentSequenceItem(x) for x in self._dataset.SegmentSequence] + return None + + @SegmentSequence.setter + def SegmentSequence(self, value: Optional[List[SegmentSequenceItem]]): + if value is None: + self._SegmentSequence = [] + if "SegmentSequence" in self._dataset: + del self._dataset.SegmentSequence + elif not isinstance(value, list) or not all(isinstance(item, SegmentSequenceItem) for item in value): + raise ValueError("SegmentSequence must be a list of SegmentSequenceItem objects") + else: + self._SegmentSequence = value + if "SegmentSequence" not in self._dataset: + self._dataset.SegmentSequence = pydicom.Sequence() + self._dataset.SegmentSequence.clear() + self._dataset.SegmentSequence.extend([item.to_dataset() for item in value]) + + def add_Segment(self, item: SegmentSequenceItem): + if not isinstance(item, SegmentSequenceItem): + raise ValueError("Item must be an instance of SegmentSequenceItem") + self._SegmentSequence.append(item) + if "SegmentSequence" not in self._dataset: + self._dataset.SegmentSequence = pydicom.Sequence() + self._dataset.SegmentSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/surface_sequence_item.py b/tdwii_plus_examples/domain_model/surface_sequence_item.py new file mode 100644 index 0000000..08c2fdd --- /dev/null +++ b/tdwii_plus_examples/domain_model/surface_sequence_item.py @@ -0,0 +1,413 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .surface_mesh_primitives_sequence_item import SurfaceMeshPrimitivesSequenceItem +from .surface_points_normals_sequence_item import SurfacePointsNormalsSequenceItem +from .surface_points_sequence_item import SurfacePointsSequenceItem +from .surface_processing_algorithm_identification_sequence_item import ( + SurfaceProcessingAlgorithmIdentificationSequenceItem, +) + + +class SurfaceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SegmentedPropertyCategoryCodeSequence: List[CodeSequenceItem] = [] + self._SegmentedPropertyTypeCodeSequence: List[CodeSequenceItem] = [] + self._SurfacePointsSequence: List[SurfacePointsSequenceItem] = [] + self._SurfacePointsNormalsSequence: List[SurfacePointsNormalsSequenceItem] = [] + self._SurfaceMeshPrimitivesSequence: List[SurfaceMeshPrimitivesSequenceItem] = [] + self._SurfaceProcessingAlgorithmIdentificationSequence: List[SurfaceProcessingAlgorithmIdentificationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SegmentedPropertyCategoryCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + if len(self._SegmentedPropertyCategoryCodeSequence) == len(self._dataset.SegmentedPropertyCategoryCodeSequence): + return self._SegmentedPropertyCategoryCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyCategoryCodeSequence] + return None + + @SegmentedPropertyCategoryCodeSequence.setter + def SegmentedPropertyCategoryCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyCategoryCodeSequence = [] + if "SegmentedPropertyCategoryCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyCategoryCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyCategoryCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyCategoryCodeSequence = value + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.clear() + self._dataset.SegmentedPropertyCategoryCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyCategoryCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyCategoryCodeSequence.append(item) + if "SegmentedPropertyCategoryCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyCategoryCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyCategoryCodeSequence.append(item.to_dataset()) + + @property + def RecommendedDisplayGrayscaleValue(self) -> Optional[int]: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + return self._dataset.RecommendedDisplayGrayscaleValue + return None + + @RecommendedDisplayGrayscaleValue.setter + def RecommendedDisplayGrayscaleValue(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayGrayscaleValue" in self._dataset: + del self._dataset.RecommendedDisplayGrayscaleValue + else: + self._dataset.RecommendedDisplayGrayscaleValue = value + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def SegmentedPropertyTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + if len(self._SegmentedPropertyTypeCodeSequence) == len(self._dataset.SegmentedPropertyTypeCodeSequence): + return self._SegmentedPropertyTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SegmentedPropertyTypeCodeSequence] + return None + + @SegmentedPropertyTypeCodeSequence.setter + def SegmentedPropertyTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SegmentedPropertyTypeCodeSequence = [] + if "SegmentedPropertyTypeCodeSequence" in self._dataset: + del self._dataset.SegmentedPropertyTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SegmentedPropertyTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SegmentedPropertyTypeCodeSequence = value + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.clear() + self._dataset.SegmentedPropertyTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SegmentedPropertyTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SegmentedPropertyTypeCodeSequence.append(item) + if "SegmentedPropertyTypeCodeSequence" not in self._dataset: + self._dataset.SegmentedPropertyTypeCodeSequence = pydicom.Sequence() + self._dataset.SegmentedPropertyTypeCodeSequence.append(item.to_dataset()) + + @property + def SurfaceNumber(self) -> Optional[int]: + if "SurfaceNumber" in self._dataset: + return self._dataset.SurfaceNumber + return None + + @SurfaceNumber.setter + def SurfaceNumber(self, value: Optional[int]): + if value is None: + if "SurfaceNumber" in self._dataset: + del self._dataset.SurfaceNumber + else: + self._dataset.SurfaceNumber = value + + @property + def SurfaceComments(self) -> Optional[str]: + if "SurfaceComments" in self._dataset: + return self._dataset.SurfaceComments + return None + + @SurfaceComments.setter + def SurfaceComments(self, value: Optional[str]): + if value is None: + if "SurfaceComments" in self._dataset: + del self._dataset.SurfaceComments + else: + self._dataset.SurfaceComments = value + + @property + def SurfaceProcessing(self) -> Optional[str]: + if "SurfaceProcessing" in self._dataset: + return self._dataset.SurfaceProcessing + return None + + @SurfaceProcessing.setter + def SurfaceProcessing(self, value: Optional[str]): + if value is None: + if "SurfaceProcessing" in self._dataset: + del self._dataset.SurfaceProcessing + else: + self._dataset.SurfaceProcessing = value + + @property + def SurfaceProcessingRatio(self) -> Optional[float]: + if "SurfaceProcessingRatio" in self._dataset: + return self._dataset.SurfaceProcessingRatio + return None + + @SurfaceProcessingRatio.setter + def SurfaceProcessingRatio(self, value: Optional[float]): + if value is None: + if "SurfaceProcessingRatio" in self._dataset: + del self._dataset.SurfaceProcessingRatio + else: + self._dataset.SurfaceProcessingRatio = value + + @property + def SurfaceProcessingDescription(self) -> Optional[str]: + if "SurfaceProcessingDescription" in self._dataset: + return self._dataset.SurfaceProcessingDescription + return None + + @SurfaceProcessingDescription.setter + def SurfaceProcessingDescription(self, value: Optional[str]): + if value is None: + if "SurfaceProcessingDescription" in self._dataset: + del self._dataset.SurfaceProcessingDescription + else: + self._dataset.SurfaceProcessingDescription = value + + @property + def RecommendedPresentationOpacity(self) -> Optional[float]: + if "RecommendedPresentationOpacity" in self._dataset: + return self._dataset.RecommendedPresentationOpacity + return None + + @RecommendedPresentationOpacity.setter + def RecommendedPresentationOpacity(self, value: Optional[float]): + if value is None: + if "RecommendedPresentationOpacity" in self._dataset: + del self._dataset.RecommendedPresentationOpacity + else: + self._dataset.RecommendedPresentationOpacity = value + + @property + def RecommendedPresentationType(self) -> Optional[str]: + if "RecommendedPresentationType" in self._dataset: + return self._dataset.RecommendedPresentationType + return None + + @RecommendedPresentationType.setter + def RecommendedPresentationType(self, value: Optional[str]): + if value is None: + if "RecommendedPresentationType" in self._dataset: + del self._dataset.RecommendedPresentationType + else: + self._dataset.RecommendedPresentationType = value + + @property + def FiniteVolume(self) -> Optional[str]: + if "FiniteVolume" in self._dataset: + return self._dataset.FiniteVolume + return None + + @FiniteVolume.setter + def FiniteVolume(self, value: Optional[str]): + if value is None: + if "FiniteVolume" in self._dataset: + del self._dataset.FiniteVolume + else: + self._dataset.FiniteVolume = value + + @property + def Manifold(self) -> Optional[str]: + if "Manifold" in self._dataset: + return self._dataset.Manifold + return None + + @Manifold.setter + def Manifold(self, value: Optional[str]): + if value is None: + if "Manifold" in self._dataset: + del self._dataset.Manifold + else: + self._dataset.Manifold = value + + @property + def SurfacePointsSequence(self) -> Optional[List[SurfacePointsSequenceItem]]: + if "SurfacePointsSequence" in self._dataset: + if len(self._SurfacePointsSequence) == len(self._dataset.SurfacePointsSequence): + return self._SurfacePointsSequence + else: + return [SurfacePointsSequenceItem(x) for x in self._dataset.SurfacePointsSequence] + return None + + @SurfacePointsSequence.setter + def SurfacePointsSequence(self, value: Optional[List[SurfacePointsSequenceItem]]): + if value is None: + self._SurfacePointsSequence = [] + if "SurfacePointsSequence" in self._dataset: + del self._dataset.SurfacePointsSequence + elif not isinstance(value, list) or not all(isinstance(item, SurfacePointsSequenceItem) for item in value): + raise ValueError("SurfacePointsSequence must be a list of SurfacePointsSequenceItem objects") + else: + self._SurfacePointsSequence = value + if "SurfacePointsSequence" not in self._dataset: + self._dataset.SurfacePointsSequence = pydicom.Sequence() + self._dataset.SurfacePointsSequence.clear() + self._dataset.SurfacePointsSequence.extend([item.to_dataset() for item in value]) + + def add_SurfacePoints(self, item: SurfacePointsSequenceItem): + if not isinstance(item, SurfacePointsSequenceItem): + raise ValueError("Item must be an instance of SurfacePointsSequenceItem") + self._SurfacePointsSequence.append(item) + if "SurfacePointsSequence" not in self._dataset: + self._dataset.SurfacePointsSequence = pydicom.Sequence() + self._dataset.SurfacePointsSequence.append(item.to_dataset()) + + @property + def SurfacePointsNormalsSequence(self) -> Optional[List[SurfacePointsNormalsSequenceItem]]: + if "SurfacePointsNormalsSequence" in self._dataset: + if len(self._SurfacePointsNormalsSequence) == len(self._dataset.SurfacePointsNormalsSequence): + return self._SurfacePointsNormalsSequence + else: + return [SurfacePointsNormalsSequenceItem(x) for x in self._dataset.SurfacePointsNormalsSequence] + return None + + @SurfacePointsNormalsSequence.setter + def SurfacePointsNormalsSequence(self, value: Optional[List[SurfacePointsNormalsSequenceItem]]): + if value is None: + self._SurfacePointsNormalsSequence = [] + if "SurfacePointsNormalsSequence" in self._dataset: + del self._dataset.SurfacePointsNormalsSequence + elif not isinstance(value, list) or not all(isinstance(item, SurfacePointsNormalsSequenceItem) for item in value): + raise ValueError("SurfacePointsNormalsSequence must be a list of SurfacePointsNormalsSequenceItem objects") + else: + self._SurfacePointsNormalsSequence = value + if "SurfacePointsNormalsSequence" not in self._dataset: + self._dataset.SurfacePointsNormalsSequence = pydicom.Sequence() + self._dataset.SurfacePointsNormalsSequence.clear() + self._dataset.SurfacePointsNormalsSequence.extend([item.to_dataset() for item in value]) + + def add_SurfacePointsNormals(self, item: SurfacePointsNormalsSequenceItem): + if not isinstance(item, SurfacePointsNormalsSequenceItem): + raise ValueError("Item must be an instance of SurfacePointsNormalsSequenceItem") + self._SurfacePointsNormalsSequence.append(item) + if "SurfacePointsNormalsSequence" not in self._dataset: + self._dataset.SurfacePointsNormalsSequence = pydicom.Sequence() + self._dataset.SurfacePointsNormalsSequence.append(item.to_dataset()) + + @property + def SurfaceMeshPrimitivesSequence(self) -> Optional[List[SurfaceMeshPrimitivesSequenceItem]]: + if "SurfaceMeshPrimitivesSequence" in self._dataset: + if len(self._SurfaceMeshPrimitivesSequence) == len(self._dataset.SurfaceMeshPrimitivesSequence): + return self._SurfaceMeshPrimitivesSequence + else: + return [SurfaceMeshPrimitivesSequenceItem(x) for x in self._dataset.SurfaceMeshPrimitivesSequence] + return None + + @SurfaceMeshPrimitivesSequence.setter + def SurfaceMeshPrimitivesSequence(self, value: Optional[List[SurfaceMeshPrimitivesSequenceItem]]): + if value is None: + self._SurfaceMeshPrimitivesSequence = [] + if "SurfaceMeshPrimitivesSequence" in self._dataset: + del self._dataset.SurfaceMeshPrimitivesSequence + elif not isinstance(value, list) or not all(isinstance(item, SurfaceMeshPrimitivesSequenceItem) for item in value): + raise ValueError("SurfaceMeshPrimitivesSequence must be a list of SurfaceMeshPrimitivesSequenceItem objects") + else: + self._SurfaceMeshPrimitivesSequence = value + if "SurfaceMeshPrimitivesSequence" not in self._dataset: + self._dataset.SurfaceMeshPrimitivesSequence = pydicom.Sequence() + self._dataset.SurfaceMeshPrimitivesSequence.clear() + self._dataset.SurfaceMeshPrimitivesSequence.extend([item.to_dataset() for item in value]) + + def add_SurfaceMeshPrimitives(self, item: SurfaceMeshPrimitivesSequenceItem): + if not isinstance(item, SurfaceMeshPrimitivesSequenceItem): + raise ValueError("Item must be an instance of SurfaceMeshPrimitivesSequenceItem") + self._SurfaceMeshPrimitivesSequence.append(item) + if "SurfaceMeshPrimitivesSequence" not in self._dataset: + self._dataset.SurfaceMeshPrimitivesSequence = pydicom.Sequence() + self._dataset.SurfaceMeshPrimitivesSequence.append(item.to_dataset()) + + @property + def SurfaceProcessingAlgorithmIdentificationSequence( + self, + ) -> Optional[List[SurfaceProcessingAlgorithmIdentificationSequenceItem]]: + if "SurfaceProcessingAlgorithmIdentificationSequence" in self._dataset: + if len(self._SurfaceProcessingAlgorithmIdentificationSequence) == len( + self._dataset.SurfaceProcessingAlgorithmIdentificationSequence + ): + return self._SurfaceProcessingAlgorithmIdentificationSequence + else: + return [ + SurfaceProcessingAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.SurfaceProcessingAlgorithmIdentificationSequence + ] + return None + + @SurfaceProcessingAlgorithmIdentificationSequence.setter + def SurfaceProcessingAlgorithmIdentificationSequence( + self, value: Optional[List[SurfaceProcessingAlgorithmIdentificationSequenceItem]] + ): + if value is None: + self._SurfaceProcessingAlgorithmIdentificationSequence = [] + if "SurfaceProcessingAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.SurfaceProcessingAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SurfaceProcessingAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SurfaceProcessingAlgorithmIdentificationSequence must be a list of" + " SurfaceProcessingAlgorithmIdentificationSequenceItem objects" + ) + else: + self._SurfaceProcessingAlgorithmIdentificationSequence = value + if "SurfaceProcessingAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.SurfaceProcessingAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.SurfaceProcessingAlgorithmIdentificationSequence.clear() + self._dataset.SurfaceProcessingAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SurfaceProcessingAlgorithmIdentification(self, item: SurfaceProcessingAlgorithmIdentificationSequenceItem): + if not isinstance(item, SurfaceProcessingAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of SurfaceProcessingAlgorithmIdentificationSequenceItem") + self._SurfaceProcessingAlgorithmIdentificationSequence.append(item) + if "SurfaceProcessingAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.SurfaceProcessingAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.SurfaceProcessingAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def RecommendedPointRadius(self) -> Optional[float]: + if "RecommendedPointRadius" in self._dataset: + return self._dataset.RecommendedPointRadius + return None + + @RecommendedPointRadius.setter + def RecommendedPointRadius(self, value: Optional[float]): + if value is None: + if "RecommendedPointRadius" in self._dataset: + del self._dataset.RecommendedPointRadius + else: + self._dataset.RecommendedPointRadius = value + + @property + def RecommendedLineThickness(self) -> Optional[float]: + if "RecommendedLineThickness" in self._dataset: + return self._dataset.RecommendedLineThickness + return None + + @RecommendedLineThickness.setter + def RecommendedLineThickness(self, value: Optional[float]): + if value is None: + if "RecommendedLineThickness" in self._dataset: + del self._dataset.RecommendedLineThickness + else: + self._dataset.RecommendedLineThickness = value diff --git a/tdwii_plus_examples/domain_model/surgically_induced_astigmatism_sequence_item.py b/tdwii_plus_examples/domain_model/surgically_induced_astigmatism_sequence_item.py new file mode 100644 index 0000000..6b72a85 --- /dev/null +++ b/tdwii_plus_examples/domain_model/surgically_induced_astigmatism_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class SurgicallyInducedAstigmatismSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def CylinderPower(self) -> Optional[float]: + if "CylinderPower" in self._dataset: + return self._dataset.CylinderPower + return None + + @CylinderPower.setter + def CylinderPower(self, value: Optional[float]): + if value is None: + if "CylinderPower" in self._dataset: + del self._dataset.CylinderPower + else: + self._dataset.CylinderPower = value diff --git a/tdwii_plus_examples/domain_model/table_column_definition_sequence_item.py b/tdwii_plus_examples/domain_model/table_column_definition_sequence_item.py new file mode 100644 index 0000000..50fd560 --- /dev/null +++ b/tdwii_plus_examples/domain_model/table_column_definition_sequence_item.py @@ -0,0 +1,93 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TableColumnDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def TableColumnNumber(self) -> Optional[int]: + if "TableColumnNumber" in self._dataset: + return self._dataset.TableColumnNumber + return None + + @TableColumnNumber.setter + def TableColumnNumber(self, value: Optional[int]): + if value is None: + if "TableColumnNumber" in self._dataset: + del self._dataset.TableColumnNumber + else: + self._dataset.TableColumnNumber = value diff --git a/tdwii_plus_examples/domain_model/table_position_sequence_item.py b/tdwii_plus_examples/domain_model/table_position_sequence_item.py new file mode 100644 index 0000000..bcbdc94 --- /dev/null +++ b/tdwii_plus_examples/domain_model/table_position_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class TablePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TableHorizontalRotationAngle(self) -> Optional[float]: + if "TableHorizontalRotationAngle" in self._dataset: + return self._dataset.TableHorizontalRotationAngle + return None + + @TableHorizontalRotationAngle.setter + def TableHorizontalRotationAngle(self, value: Optional[float]): + if value is None: + if "TableHorizontalRotationAngle" in self._dataset: + del self._dataset.TableHorizontalRotationAngle + else: + self._dataset.TableHorizontalRotationAngle = value + + @property + def TableHeadTiltAngle(self) -> Optional[float]: + if "TableHeadTiltAngle" in self._dataset: + return self._dataset.TableHeadTiltAngle + return None + + @TableHeadTiltAngle.setter + def TableHeadTiltAngle(self, value: Optional[float]): + if value is None: + if "TableHeadTiltAngle" in self._dataset: + del self._dataset.TableHeadTiltAngle + else: + self._dataset.TableHeadTiltAngle = value + + @property + def TableCradleTiltAngle(self) -> Optional[float]: + if "TableCradleTiltAngle" in self._dataset: + return self._dataset.TableCradleTiltAngle + return None + + @TableCradleTiltAngle.setter + def TableCradleTiltAngle(self, value: Optional[float]): + if value is None: + if "TableCradleTiltAngle" in self._dataset: + del self._dataset.TableCradleTiltAngle + else: + self._dataset.TableCradleTiltAngle = value + + @property + def TableTopVerticalPosition(self) -> Optional[Decimal]: + if "TableTopVerticalPosition" in self._dataset: + return self._dataset.TableTopVerticalPosition + return None + + @TableTopVerticalPosition.setter + def TableTopVerticalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPosition" in self._dataset: + del self._dataset.TableTopVerticalPosition + else: + self._dataset.TableTopVerticalPosition = value + + @property + def TableTopLongitudinalPosition(self) -> Optional[Decimal]: + if "TableTopLongitudinalPosition" in self._dataset: + return self._dataset.TableTopLongitudinalPosition + return None + + @TableTopLongitudinalPosition.setter + def TableTopLongitudinalPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPosition" in self._dataset: + del self._dataset.TableTopLongitudinalPosition + else: + self._dataset.TableTopLongitudinalPosition = value + + @property + def TableTopLateralPosition(self) -> Optional[Decimal]: + if "TableTopLateralPosition" in self._dataset: + return self._dataset.TableTopLateralPosition + return None + + @TableTopLateralPosition.setter + def TableTopLateralPosition(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPosition" in self._dataset: + del self._dataset.TableTopLateralPosition + else: + self._dataset.TableTopLateralPosition = value diff --git a/tdwii_plus_examples/domain_model/table_row_definition_sequence_item.py b/tdwii_plus_examples/domain_model/table_row_definition_sequence_item.py new file mode 100644 index 0000000..fe75e24 --- /dev/null +++ b/tdwii_plus_examples/domain_model/table_row_definition_sequence_item.py @@ -0,0 +1,93 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TableRowDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def TableRowNumber(self) -> Optional[int]: + if "TableRowNumber" in self._dataset: + return self._dataset.TableRowNumber + return None + + @TableRowNumber.setter + def TableRowNumber(self, value: Optional[int]): + if value is None: + if "TableRowNumber" in self._dataset: + del self._dataset.TableRowNumber + else: + self._dataset.TableRowNumber = value diff --git a/tdwii_plus_examples/domain_model/tabulated_values_sequence_item.py b/tdwii_plus_examples/domain_model/tabulated_values_sequence_item.py new file mode 100644 index 0000000..4eec390 --- /dev/null +++ b/tdwii_plus_examples/domain_model/tabulated_values_sequence_item.py @@ -0,0 +1,142 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .cell_values_sequence_item import CellValuesSequenceItem +from .table_column_definition_sequence_item import TableColumnDefinitionSequenceItem +from .table_row_definition_sequence_item import TableRowDefinitionSequenceItem + + +class TabulatedValuesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TableRowDefinitionSequence: List[TableRowDefinitionSequenceItem] = [] + self._TableColumnDefinitionSequence: List[TableColumnDefinitionSequenceItem] = [] + self._CellValuesSequence: List[CellValuesSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def NumberOfTableRows(self) -> Optional[int]: + if "NumberOfTableRows" in self._dataset: + return self._dataset.NumberOfTableRows + return None + + @NumberOfTableRows.setter + def NumberOfTableRows(self, value: Optional[int]): + if value is None: + if "NumberOfTableRows" in self._dataset: + del self._dataset.NumberOfTableRows + else: + self._dataset.NumberOfTableRows = value + + @property + def NumberOfTableColumns(self) -> Optional[int]: + if "NumberOfTableColumns" in self._dataset: + return self._dataset.NumberOfTableColumns + return None + + @NumberOfTableColumns.setter + def NumberOfTableColumns(self, value: Optional[int]): + if value is None: + if "NumberOfTableColumns" in self._dataset: + del self._dataset.NumberOfTableColumns + else: + self._dataset.NumberOfTableColumns = value + + @property + def TableRowDefinitionSequence(self) -> Optional[List[TableRowDefinitionSequenceItem]]: + if "TableRowDefinitionSequence" in self._dataset: + if len(self._TableRowDefinitionSequence) == len(self._dataset.TableRowDefinitionSequence): + return self._TableRowDefinitionSequence + else: + return [TableRowDefinitionSequenceItem(x) for x in self._dataset.TableRowDefinitionSequence] + return None + + @TableRowDefinitionSequence.setter + def TableRowDefinitionSequence(self, value: Optional[List[TableRowDefinitionSequenceItem]]): + if value is None: + self._TableRowDefinitionSequence = [] + if "TableRowDefinitionSequence" in self._dataset: + del self._dataset.TableRowDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, TableRowDefinitionSequenceItem) for item in value): + raise ValueError("TableRowDefinitionSequence must be a list of TableRowDefinitionSequenceItem objects") + else: + self._TableRowDefinitionSequence = value + if "TableRowDefinitionSequence" not in self._dataset: + self._dataset.TableRowDefinitionSequence = pydicom.Sequence() + self._dataset.TableRowDefinitionSequence.clear() + self._dataset.TableRowDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_TableRowDefinition(self, item: TableRowDefinitionSequenceItem): + if not isinstance(item, TableRowDefinitionSequenceItem): + raise ValueError("Item must be an instance of TableRowDefinitionSequenceItem") + self._TableRowDefinitionSequence.append(item) + if "TableRowDefinitionSequence" not in self._dataset: + self._dataset.TableRowDefinitionSequence = pydicom.Sequence() + self._dataset.TableRowDefinitionSequence.append(item.to_dataset()) + + @property + def TableColumnDefinitionSequence(self) -> Optional[List[TableColumnDefinitionSequenceItem]]: + if "TableColumnDefinitionSequence" in self._dataset: + if len(self._TableColumnDefinitionSequence) == len(self._dataset.TableColumnDefinitionSequence): + return self._TableColumnDefinitionSequence + else: + return [TableColumnDefinitionSequenceItem(x) for x in self._dataset.TableColumnDefinitionSequence] + return None + + @TableColumnDefinitionSequence.setter + def TableColumnDefinitionSequence(self, value: Optional[List[TableColumnDefinitionSequenceItem]]): + if value is None: + self._TableColumnDefinitionSequence = [] + if "TableColumnDefinitionSequence" in self._dataset: + del self._dataset.TableColumnDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, TableColumnDefinitionSequenceItem) for item in value): + raise ValueError("TableColumnDefinitionSequence must be a list of TableColumnDefinitionSequenceItem objects") + else: + self._TableColumnDefinitionSequence = value + if "TableColumnDefinitionSequence" not in self._dataset: + self._dataset.TableColumnDefinitionSequence = pydicom.Sequence() + self._dataset.TableColumnDefinitionSequence.clear() + self._dataset.TableColumnDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_TableColumnDefinition(self, item: TableColumnDefinitionSequenceItem): + if not isinstance(item, TableColumnDefinitionSequenceItem): + raise ValueError("Item must be an instance of TableColumnDefinitionSequenceItem") + self._TableColumnDefinitionSequence.append(item) + if "TableColumnDefinitionSequence" not in self._dataset: + self._dataset.TableColumnDefinitionSequence = pydicom.Sequence() + self._dataset.TableColumnDefinitionSequence.append(item.to_dataset()) + + @property + def CellValuesSequence(self) -> Optional[List[CellValuesSequenceItem]]: + if "CellValuesSequence" in self._dataset: + if len(self._CellValuesSequence) == len(self._dataset.CellValuesSequence): + return self._CellValuesSequence + else: + return [CellValuesSequenceItem(x) for x in self._dataset.CellValuesSequence] + return None + + @CellValuesSequence.setter + def CellValuesSequence(self, value: Optional[List[CellValuesSequenceItem]]): + if value is None: + self._CellValuesSequence = [] + if "CellValuesSequence" in self._dataset: + del self._dataset.CellValuesSequence + elif not isinstance(value, list) or not all(isinstance(item, CellValuesSequenceItem) for item in value): + raise ValueError("CellValuesSequence must be a list of CellValuesSequenceItem objects") + else: + self._CellValuesSequence = value + if "CellValuesSequence" not in self._dataset: + self._dataset.CellValuesSequence = pydicom.Sequence() + self._dataset.CellValuesSequence.clear() + self._dataset.CellValuesSequence.extend([item.to_dataset() for item in value]) + + def add_CellValues(self, item: CellValuesSequenceItem): + if not isinstance(item, CellValuesSequenceItem): + raise ValueError("Item must be an instance of CellValuesSequenceItem") + self._CellValuesSequence.append(item) + if "CellValuesSequence" not in self._dataset: + self._dataset.CellValuesSequence = pydicom.Sequence() + self._dataset.CellValuesSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/temporal_position_sequence_item.py b/tdwii_plus_examples/domain_model/temporal_position_sequence_item.py new file mode 100644 index 0000000..45377e4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/temporal_position_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TemporalPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TemporalPositionTimeOffset(self) -> Optional[float]: + if "TemporalPositionTimeOffset" in self._dataset: + return self._dataset.TemporalPositionTimeOffset + return None + + @TemporalPositionTimeOffset.setter + def TemporalPositionTimeOffset(self, value: Optional[float]): + if value is None: + if "TemporalPositionTimeOffset" in self._dataset: + del self._dataset.TemporalPositionTimeOffset + else: + self._dataset.TemporalPositionTimeOffset = value diff --git a/tdwii_plus_examples/domain_model/test_point_normals_sequence_item.py b/tdwii_plus_examples/domain_model/test_point_normals_sequence_item.py new file mode 100644 index 0000000..982853b --- /dev/null +++ b/tdwii_plus_examples/domain_model/test_point_normals_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TestPointNormalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataSetName(self) -> Optional[str]: + if "DataSetName" in self._dataset: + return self._dataset.DataSetName + return None + + @DataSetName.setter + def DataSetName(self, value: Optional[str]): + if value is None: + if "DataSetName" in self._dataset: + del self._dataset.DataSetName + else: + self._dataset.DataSetName = value + + @property + def DataSetVersion(self) -> Optional[str]: + if "DataSetVersion" in self._dataset: + return self._dataset.DataSetVersion + return None + + @DataSetVersion.setter + def DataSetVersion(self, value: Optional[str]): + if value is None: + if "DataSetVersion" in self._dataset: + del self._dataset.DataSetVersion + else: + self._dataset.DataSetVersion = value + + @property + def DataSetSource(self) -> Optional[str]: + if "DataSetSource" in self._dataset: + return self._dataset.DataSetSource + return None + + @DataSetSource.setter + def DataSetSource(self, value: Optional[str]): + if value is None: + if "DataSetSource" in self._dataset: + del self._dataset.DataSetSource + else: + self._dataset.DataSetSource = value + + @property + def DataSetDescription(self) -> Optional[str]: + if "DataSetDescription" in self._dataset: + return self._dataset.DataSetDescription + return None + + @DataSetDescription.setter + def DataSetDescription(self, value: Optional[str]): + if value is None: + if "DataSetDescription" in self._dataset: + del self._dataset.DataSetDescription + else: + self._dataset.DataSetDescription = value diff --git a/tdwii_plus_examples/domain_model/text_object_sequence_item.py b/tdwii_plus_examples/domain_model/text_object_sequence_item.py new file mode 100644 index 0000000..b27bb6a --- /dev/null +++ b/tdwii_plus_examples/domain_model/text_object_sequence_item.py @@ -0,0 +1,214 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .text_style_sequence_item import TextStyleSequenceItem + + +class TextObjectSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TextStyleSequence: List[TextStyleSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TrackingID(self) -> Optional[str]: + if "TrackingID" in self._dataset: + return self._dataset.TrackingID + return None + + @TrackingID.setter + def TrackingID(self, value: Optional[str]): + if value is None: + if "TrackingID" in self._dataset: + del self._dataset.TrackingID + else: + self._dataset.TrackingID = value + + @property + def TrackingUID(self) -> Optional[str]: + if "TrackingUID" in self._dataset: + return self._dataset.TrackingUID + return None + + @TrackingUID.setter + def TrackingUID(self, value: Optional[str]): + if value is None: + if "TrackingUID" in self._dataset: + del self._dataset.TrackingUID + else: + self._dataset.TrackingUID = value + + @property + def BoundingBoxAnnotationUnits(self) -> Optional[str]: + if "BoundingBoxAnnotationUnits" in self._dataset: + return self._dataset.BoundingBoxAnnotationUnits + return None + + @BoundingBoxAnnotationUnits.setter + def BoundingBoxAnnotationUnits(self, value: Optional[str]): + if value is None: + if "BoundingBoxAnnotationUnits" in self._dataset: + del self._dataset.BoundingBoxAnnotationUnits + else: + self._dataset.BoundingBoxAnnotationUnits = value + + @property + def AnchorPointAnnotationUnits(self) -> Optional[str]: + if "AnchorPointAnnotationUnits" in self._dataset: + return self._dataset.AnchorPointAnnotationUnits + return None + + @AnchorPointAnnotationUnits.setter + def AnchorPointAnnotationUnits(self, value: Optional[str]): + if value is None: + if "AnchorPointAnnotationUnits" in self._dataset: + del self._dataset.AnchorPointAnnotationUnits + else: + self._dataset.AnchorPointAnnotationUnits = value + + @property + def UnformattedTextValue(self) -> Optional[str]: + if "UnformattedTextValue" in self._dataset: + return self._dataset.UnformattedTextValue + return None + + @UnformattedTextValue.setter + def UnformattedTextValue(self, value: Optional[str]): + if value is None: + if "UnformattedTextValue" in self._dataset: + del self._dataset.UnformattedTextValue + else: + self._dataset.UnformattedTextValue = value + + @property + def BoundingBoxTopLeftHandCorner(self) -> Optional[List[float]]: + if "BoundingBoxTopLeftHandCorner" in self._dataset: + return self._dataset.BoundingBoxTopLeftHandCorner + return None + + @BoundingBoxTopLeftHandCorner.setter + def BoundingBoxTopLeftHandCorner(self, value: Optional[List[float]]): + if value is None: + if "BoundingBoxTopLeftHandCorner" in self._dataset: + del self._dataset.BoundingBoxTopLeftHandCorner + else: + self._dataset.BoundingBoxTopLeftHandCorner = value + + @property + def BoundingBoxBottomRightHandCorner(self) -> Optional[List[float]]: + if "BoundingBoxBottomRightHandCorner" in self._dataset: + return self._dataset.BoundingBoxBottomRightHandCorner + return None + + @BoundingBoxBottomRightHandCorner.setter + def BoundingBoxBottomRightHandCorner(self, value: Optional[List[float]]): + if value is None: + if "BoundingBoxBottomRightHandCorner" in self._dataset: + del self._dataset.BoundingBoxBottomRightHandCorner + else: + self._dataset.BoundingBoxBottomRightHandCorner = value + + @property + def BoundingBoxTextHorizontalJustification(self) -> Optional[str]: + if "BoundingBoxTextHorizontalJustification" in self._dataset: + return self._dataset.BoundingBoxTextHorizontalJustification + return None + + @BoundingBoxTextHorizontalJustification.setter + def BoundingBoxTextHorizontalJustification(self, value: Optional[str]): + if value is None: + if "BoundingBoxTextHorizontalJustification" in self._dataset: + del self._dataset.BoundingBoxTextHorizontalJustification + else: + self._dataset.BoundingBoxTextHorizontalJustification = value + + @property + def AnchorPoint(self) -> Optional[List[float]]: + if "AnchorPoint" in self._dataset: + return self._dataset.AnchorPoint + return None + + @AnchorPoint.setter + def AnchorPoint(self, value: Optional[List[float]]): + if value is None: + if "AnchorPoint" in self._dataset: + del self._dataset.AnchorPoint + else: + self._dataset.AnchorPoint = value + + @property + def AnchorPointVisibility(self) -> Optional[str]: + if "AnchorPointVisibility" in self._dataset: + return self._dataset.AnchorPointVisibility + return None + + @AnchorPointVisibility.setter + def AnchorPointVisibility(self, value: Optional[str]): + if value is None: + if "AnchorPointVisibility" in self._dataset: + del self._dataset.AnchorPointVisibility + else: + self._dataset.AnchorPointVisibility = value + + @property + def CompoundGraphicInstanceID(self) -> Optional[int]: + if "CompoundGraphicInstanceID" in self._dataset: + return self._dataset.CompoundGraphicInstanceID + return None + + @CompoundGraphicInstanceID.setter + def CompoundGraphicInstanceID(self, value: Optional[int]): + if value is None: + if "CompoundGraphicInstanceID" in self._dataset: + del self._dataset.CompoundGraphicInstanceID + else: + self._dataset.CompoundGraphicInstanceID = value + + @property + def TextStyleSequence(self) -> Optional[List[TextStyleSequenceItem]]: + if "TextStyleSequence" in self._dataset: + if len(self._TextStyleSequence) == len(self._dataset.TextStyleSequence): + return self._TextStyleSequence + else: + return [TextStyleSequenceItem(x) for x in self._dataset.TextStyleSequence] + return None + + @TextStyleSequence.setter + def TextStyleSequence(self, value: Optional[List[TextStyleSequenceItem]]): + if value is None: + self._TextStyleSequence = [] + if "TextStyleSequence" in self._dataset: + del self._dataset.TextStyleSequence + elif not isinstance(value, list) or not all(isinstance(item, TextStyleSequenceItem) for item in value): + raise ValueError("TextStyleSequence must be a list of TextStyleSequenceItem objects") + else: + self._TextStyleSequence = value + if "TextStyleSequence" not in self._dataset: + self._dataset.TextStyleSequence = pydicom.Sequence() + self._dataset.TextStyleSequence.clear() + self._dataset.TextStyleSequence.extend([item.to_dataset() for item in value]) + + def add_TextStyle(self, item: TextStyleSequenceItem): + if not isinstance(item, TextStyleSequenceItem): + raise ValueError("Item must be an instance of TextStyleSequenceItem") + self._TextStyleSequence.append(item) + if "TextStyleSequence" not in self._dataset: + self._dataset.TextStyleSequence = pydicom.Sequence() + self._dataset.TextStyleSequence.append(item.to_dataset()) + + @property + def GraphicGroupID(self) -> Optional[int]: + if "GraphicGroupID" in self._dataset: + return self._dataset.GraphicGroupID + return None + + @GraphicGroupID.setter + def GraphicGroupID(self, value: Optional[int]): + if value is None: + if "GraphicGroupID" in self._dataset: + del self._dataset.GraphicGroupID + else: + self._dataset.GraphicGroupID = value diff --git a/tdwii_plus_examples/domain_model/text_style_sequence_item.py b/tdwii_plus_examples/domain_model/text_style_sequence_item.py new file mode 100644 index 0000000..f5bf079 --- /dev/null +++ b/tdwii_plus_examples/domain_model/text_style_sequence_item.py @@ -0,0 +1,207 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TextStyleSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FontName(self) -> Optional[str]: + if "FontName" in self._dataset: + return self._dataset.FontName + return None + + @FontName.setter + def FontName(self, value: Optional[str]): + if value is None: + if "FontName" in self._dataset: + del self._dataset.FontName + else: + self._dataset.FontName = value + + @property + def FontNameType(self) -> Optional[str]: + if "FontNameType" in self._dataset: + return self._dataset.FontNameType + return None + + @FontNameType.setter + def FontNameType(self, value: Optional[str]): + if value is None: + if "FontNameType" in self._dataset: + del self._dataset.FontNameType + else: + self._dataset.FontNameType = value + + @property + def CSSFontName(self) -> Optional[str]: + if "CSSFontName" in self._dataset: + return self._dataset.CSSFontName + return None + + @CSSFontName.setter + def CSSFontName(self, value: Optional[str]): + if value is None: + if "CSSFontName" in self._dataset: + del self._dataset.CSSFontName + else: + self._dataset.CSSFontName = value + + @property + def TextColorCIELabValue(self) -> Optional[List[int]]: + if "TextColorCIELabValue" in self._dataset: + return self._dataset.TextColorCIELabValue + return None + + @TextColorCIELabValue.setter + def TextColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "TextColorCIELabValue" in self._dataset: + del self._dataset.TextColorCIELabValue + else: + self._dataset.TextColorCIELabValue = value + + @property + def HorizontalAlignment(self) -> Optional[str]: + if "HorizontalAlignment" in self._dataset: + return self._dataset.HorizontalAlignment + return None + + @HorizontalAlignment.setter + def HorizontalAlignment(self, value: Optional[str]): + if value is None: + if "HorizontalAlignment" in self._dataset: + del self._dataset.HorizontalAlignment + else: + self._dataset.HorizontalAlignment = value + + @property + def VerticalAlignment(self) -> Optional[str]: + if "VerticalAlignment" in self._dataset: + return self._dataset.VerticalAlignment + return None + + @VerticalAlignment.setter + def VerticalAlignment(self, value: Optional[str]): + if value is None: + if "VerticalAlignment" in self._dataset: + del self._dataset.VerticalAlignment + else: + self._dataset.VerticalAlignment = value + + @property + def ShadowStyle(self) -> Optional[str]: + if "ShadowStyle" in self._dataset: + return self._dataset.ShadowStyle + return None + + @ShadowStyle.setter + def ShadowStyle(self, value: Optional[str]): + if value is None: + if "ShadowStyle" in self._dataset: + del self._dataset.ShadowStyle + else: + self._dataset.ShadowStyle = value + + @property + def ShadowOffsetX(self) -> Optional[float]: + if "ShadowOffsetX" in self._dataset: + return self._dataset.ShadowOffsetX + return None + + @ShadowOffsetX.setter + def ShadowOffsetX(self, value: Optional[float]): + if value is None: + if "ShadowOffsetX" in self._dataset: + del self._dataset.ShadowOffsetX + else: + self._dataset.ShadowOffsetX = value + + @property + def ShadowOffsetY(self) -> Optional[float]: + if "ShadowOffsetY" in self._dataset: + return self._dataset.ShadowOffsetY + return None + + @ShadowOffsetY.setter + def ShadowOffsetY(self, value: Optional[float]): + if value is None: + if "ShadowOffsetY" in self._dataset: + del self._dataset.ShadowOffsetY + else: + self._dataset.ShadowOffsetY = value + + @property + def ShadowColorCIELabValue(self) -> Optional[List[int]]: + if "ShadowColorCIELabValue" in self._dataset: + return self._dataset.ShadowColorCIELabValue + return None + + @ShadowColorCIELabValue.setter + def ShadowColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShadowColorCIELabValue" in self._dataset: + del self._dataset.ShadowColorCIELabValue + else: + self._dataset.ShadowColorCIELabValue = value + + @property + def Underlined(self) -> Optional[str]: + if "Underlined" in self._dataset: + return self._dataset.Underlined + return None + + @Underlined.setter + def Underlined(self, value: Optional[str]): + if value is None: + if "Underlined" in self._dataset: + del self._dataset.Underlined + else: + self._dataset.Underlined = value + + @property + def Bold(self) -> Optional[str]: + if "Bold" in self._dataset: + return self._dataset.Bold + return None + + @Bold.setter + def Bold(self, value: Optional[str]): + if value is None: + if "Bold" in self._dataset: + del self._dataset.Bold + else: + self._dataset.Bold = value + + @property + def Italic(self) -> Optional[str]: + if "Italic" in self._dataset: + return self._dataset.Italic + return None + + @Italic.setter + def Italic(self, value: Optional[str]): + if value is None: + if "Italic" in self._dataset: + del self._dataset.Italic + else: + self._dataset.Italic = value + + @property + def ShadowOpacity(self) -> Optional[float]: + if "ShadowOpacity" in self._dataset: + return self._dataset.ShadowOpacity + return None + + @ShadowOpacity.setter + def ShadowOpacity(self, value: Optional[float]): + if value is None: + if "ShadowOpacity" in self._dataset: + del self._dataset.ShadowOpacity + else: + self._dataset.ShadowOpacity = value diff --git a/tdwii_plus_examples/domain_model/threshold_sequence_item.py b/tdwii_plus_examples/domain_model/threshold_sequence_item.py new file mode 100644 index 0000000..700d453 --- /dev/null +++ b/tdwii_plus_examples/domain_model/threshold_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .threshold_value_sequence_item import ThresholdValueSequenceItem + + +class ThresholdSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ThresholdValueSequence: List[ThresholdValueSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ThresholdValueSequence(self) -> Optional[List[ThresholdValueSequenceItem]]: + if "ThresholdValueSequence" in self._dataset: + if len(self._ThresholdValueSequence) == len(self._dataset.ThresholdValueSequence): + return self._ThresholdValueSequence + else: + return [ThresholdValueSequenceItem(x) for x in self._dataset.ThresholdValueSequence] + return None + + @ThresholdValueSequence.setter + def ThresholdValueSequence(self, value: Optional[List[ThresholdValueSequenceItem]]): + if value is None: + self._ThresholdValueSequence = [] + if "ThresholdValueSequence" in self._dataset: + del self._dataset.ThresholdValueSequence + elif not isinstance(value, list) or not all(isinstance(item, ThresholdValueSequenceItem) for item in value): + raise ValueError("ThresholdValueSequence must be a list of ThresholdValueSequenceItem objects") + else: + self._ThresholdValueSequence = value + if "ThresholdValueSequence" not in self._dataset: + self._dataset.ThresholdValueSequence = pydicom.Sequence() + self._dataset.ThresholdValueSequence.clear() + self._dataset.ThresholdValueSequence.extend([item.to_dataset() for item in value]) + + def add_ThresholdValue(self, item: ThresholdValueSequenceItem): + if not isinstance(item, ThresholdValueSequenceItem): + raise ValueError("Item must be an instance of ThresholdValueSequenceItem") + self._ThresholdValueSequence.append(item) + if "ThresholdValueSequence" not in self._dataset: + self._dataset.ThresholdValueSequence = pydicom.Sequence() + self._dataset.ThresholdValueSequence.append(item.to_dataset()) + + @property + def ThresholdType(self) -> Optional[str]: + if "ThresholdType" in self._dataset: + return self._dataset.ThresholdType + return None + + @ThresholdType.setter + def ThresholdType(self, value: Optional[str]): + if value is None: + if "ThresholdType" in self._dataset: + del self._dataset.ThresholdType + else: + self._dataset.ThresholdType = value diff --git a/tdwii_plus_examples/domain_model/threshold_value_sequence_item.py b/tdwii_plus_examples/domain_model/threshold_value_sequence_item.py new file mode 100644 index 0000000..73f586e --- /dev/null +++ b/tdwii_plus_examples/domain_model/threshold_value_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ThresholdValueSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ThresholdValue(self) -> Optional[float]: + if "ThresholdValue" in self._dataset: + return self._dataset.ThresholdValue + return None + + @ThresholdValue.setter + def ThresholdValue(self, value: Optional[float]): + if value is None: + if "ThresholdValue" in self._dataset: + del self._dataset.ThresholdValue + else: + self._dataset.ThresholdValue = value diff --git a/tdwii_plus_examples/domain_model/time_of_frame_group_sequence_item.py b/tdwii_plus_examples/domain_model/time_of_frame_group_sequence_item.py new file mode 100644 index 0000000..950baa8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/time_of_frame_group_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TimeOfFrameGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameOriginTimestamp(self) -> Optional[bytes]: + if "FrameOriginTimestamp" in self._dataset: + return self._dataset.FrameOriginTimestamp + return None + + @FrameOriginTimestamp.setter + def FrameOriginTimestamp(self, value: Optional[bytes]): + if value is None: + if "FrameOriginTimestamp" in self._dataset: + del self._dataset.FrameOriginTimestamp + else: + self._dataset.FrameOriginTimestamp = value diff --git a/tdwii_plus_examples/domain_model/time_slot_information_sequence_item.py b/tdwii_plus_examples/domain_model/time_slot_information_sequence_item.py new file mode 100644 index 0000000..a71dd13 --- /dev/null +++ b/tdwii_plus_examples/domain_model/time_slot_information_sequence_item.py @@ -0,0 +1,26 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class TimeSlotInformationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TimeSlotTime(self) -> Optional[Decimal]: + if "TimeSlotTime" in self._dataset: + return self._dataset.TimeSlotTime + return None + + @TimeSlotTime.setter + def TimeSlotTime(self, value: Optional[Decimal]): + if value is None: + if "TimeSlotTime" in self._dataset: + del self._dataset.TimeSlotTime + else: + self._dataset.TimeSlotTime = value diff --git a/tdwii_plus_examples/domain_model/tolerance_table_sequence_item.py b/tdwii_plus_examples/domain_model/tolerance_table_sequence_item.py new file mode 100644 index 0000000..2969d22 --- /dev/null +++ b/tdwii_plus_examples/domain_model/tolerance_table_sequence_item.py @@ -0,0 +1,221 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_limiting_device_tolerance_sequence_item import ( + BeamLimitingDeviceToleranceSequenceItem, +) + + +class ToleranceTableSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._BeamLimitingDeviceToleranceSequence: List[BeamLimitingDeviceToleranceSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ToleranceTableNumber(self) -> Optional[int]: + if "ToleranceTableNumber" in self._dataset: + return self._dataset.ToleranceTableNumber + return None + + @ToleranceTableNumber.setter + def ToleranceTableNumber(self, value: Optional[int]): + if value is None: + if "ToleranceTableNumber" in self._dataset: + del self._dataset.ToleranceTableNumber + else: + self._dataset.ToleranceTableNumber = value + + @property + def ToleranceTableLabel(self) -> Optional[str]: + if "ToleranceTableLabel" in self._dataset: + return self._dataset.ToleranceTableLabel + return None + + @ToleranceTableLabel.setter + def ToleranceTableLabel(self, value: Optional[str]): + if value is None: + if "ToleranceTableLabel" in self._dataset: + del self._dataset.ToleranceTableLabel + else: + self._dataset.ToleranceTableLabel = value + + @property + def GantryAngleTolerance(self) -> Optional[Decimal]: + if "GantryAngleTolerance" in self._dataset: + return self._dataset.GantryAngleTolerance + return None + + @GantryAngleTolerance.setter + def GantryAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "GantryAngleTolerance" in self._dataset: + del self._dataset.GantryAngleTolerance + else: + self._dataset.GantryAngleTolerance = value + + @property + def BeamLimitingDeviceAngleTolerance(self) -> Optional[Decimal]: + if "BeamLimitingDeviceAngleTolerance" in self._dataset: + return self._dataset.BeamLimitingDeviceAngleTolerance + return None + + @BeamLimitingDeviceAngleTolerance.setter + def BeamLimitingDeviceAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "BeamLimitingDeviceAngleTolerance" in self._dataset: + del self._dataset.BeamLimitingDeviceAngleTolerance + else: + self._dataset.BeamLimitingDeviceAngleTolerance = value + + @property + def BeamLimitingDeviceToleranceSequence(self) -> Optional[List[BeamLimitingDeviceToleranceSequenceItem]]: + if "BeamLimitingDeviceToleranceSequence" in self._dataset: + if len(self._BeamLimitingDeviceToleranceSequence) == len(self._dataset.BeamLimitingDeviceToleranceSequence): + return self._BeamLimitingDeviceToleranceSequence + else: + return [BeamLimitingDeviceToleranceSequenceItem(x) for x in self._dataset.BeamLimitingDeviceToleranceSequence] + return None + + @BeamLimitingDeviceToleranceSequence.setter + def BeamLimitingDeviceToleranceSequence(self, value: Optional[List[BeamLimitingDeviceToleranceSequenceItem]]): + if value is None: + self._BeamLimitingDeviceToleranceSequence = [] + if "BeamLimitingDeviceToleranceSequence" in self._dataset: + del self._dataset.BeamLimitingDeviceToleranceSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDeviceToleranceSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDeviceToleranceSequence must be a list of BeamLimitingDeviceToleranceSequenceItem objects" + ) + else: + self._BeamLimitingDeviceToleranceSequence = value + if "BeamLimitingDeviceToleranceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceToleranceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceToleranceSequence.clear() + self._dataset.BeamLimitingDeviceToleranceSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDeviceTolerance(self, item: BeamLimitingDeviceToleranceSequenceItem): + if not isinstance(item, BeamLimitingDeviceToleranceSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDeviceToleranceSequenceItem") + self._BeamLimitingDeviceToleranceSequence.append(item) + if "BeamLimitingDeviceToleranceSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceToleranceSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceToleranceSequence.append(item.to_dataset()) + + @property + def PatientSupportAngleTolerance(self) -> Optional[Decimal]: + if "PatientSupportAngleTolerance" in self._dataset: + return self._dataset.PatientSupportAngleTolerance + return None + + @PatientSupportAngleTolerance.setter + def PatientSupportAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "PatientSupportAngleTolerance" in self._dataset: + del self._dataset.PatientSupportAngleTolerance + else: + self._dataset.PatientSupportAngleTolerance = value + + @property + def TableTopEccentricAngleTolerance(self) -> Optional[Decimal]: + if "TableTopEccentricAngleTolerance" in self._dataset: + return self._dataset.TableTopEccentricAngleTolerance + return None + + @TableTopEccentricAngleTolerance.setter + def TableTopEccentricAngleTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopEccentricAngleTolerance" in self._dataset: + del self._dataset.TableTopEccentricAngleTolerance + else: + self._dataset.TableTopEccentricAngleTolerance = value + + @property + def TableTopPitchAngleTolerance(self) -> Optional[float]: + if "TableTopPitchAngleTolerance" in self._dataset: + return self._dataset.TableTopPitchAngleTolerance + return None + + @TableTopPitchAngleTolerance.setter + def TableTopPitchAngleTolerance(self, value: Optional[float]): + if value is None: + if "TableTopPitchAngleTolerance" in self._dataset: + del self._dataset.TableTopPitchAngleTolerance + else: + self._dataset.TableTopPitchAngleTolerance = value + + @property + def TableTopRollAngleTolerance(self) -> Optional[float]: + if "TableTopRollAngleTolerance" in self._dataset: + return self._dataset.TableTopRollAngleTolerance + return None + + @TableTopRollAngleTolerance.setter + def TableTopRollAngleTolerance(self, value: Optional[float]): + if value is None: + if "TableTopRollAngleTolerance" in self._dataset: + del self._dataset.TableTopRollAngleTolerance + else: + self._dataset.TableTopRollAngleTolerance = value + + @property + def TableTopVerticalPositionTolerance(self) -> Optional[Decimal]: + if "TableTopVerticalPositionTolerance" in self._dataset: + return self._dataset.TableTopVerticalPositionTolerance + return None + + @TableTopVerticalPositionTolerance.setter + def TableTopVerticalPositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopVerticalPositionTolerance" in self._dataset: + del self._dataset.TableTopVerticalPositionTolerance + else: + self._dataset.TableTopVerticalPositionTolerance = value + + @property + def TableTopLongitudinalPositionTolerance(self) -> Optional[Decimal]: + if "TableTopLongitudinalPositionTolerance" in self._dataset: + return self._dataset.TableTopLongitudinalPositionTolerance + return None + + @TableTopLongitudinalPositionTolerance.setter + def TableTopLongitudinalPositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopLongitudinalPositionTolerance" in self._dataset: + del self._dataset.TableTopLongitudinalPositionTolerance + else: + self._dataset.TableTopLongitudinalPositionTolerance = value + + @property + def TableTopLateralPositionTolerance(self) -> Optional[Decimal]: + if "TableTopLateralPositionTolerance" in self._dataset: + return self._dataset.TableTopLateralPositionTolerance + return None + + @TableTopLateralPositionTolerance.setter + def TableTopLateralPositionTolerance(self, value: Optional[Decimal]): + if value is None: + if "TableTopLateralPositionTolerance" in self._dataset: + del self._dataset.TableTopLateralPositionTolerance + else: + self._dataset.TableTopLateralPositionTolerance = value + + @property + def GantryPitchAngleTolerance(self) -> Optional[float]: + if "GantryPitchAngleTolerance" in self._dataset: + return self._dataset.GantryPitchAngleTolerance + return None + + @GantryPitchAngleTolerance.setter + def GantryPitchAngleTolerance(self, value: Optional[float]): + if value is None: + if "GantryPitchAngleTolerance" in self._dataset: + del self._dataset.GantryPitchAngleTolerance + else: + self._dataset.GantryPitchAngleTolerance = value diff --git a/tdwii_plus_examples/domain_model/tomotherapeutic_control_point_sequence_item.py b/tdwii_plus_examples/domain_model/tomotherapeutic_control_point_sequence_item.py new file mode 100644 index 0000000..9bd2adf --- /dev/null +++ b/tdwii_plus_examples/domain_model/tomotherapeutic_control_point_sequence_item.py @@ -0,0 +1,274 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .beam_area_limit_sequence_item import BeamAreaLimitSequenceItem +from .delivery_rate_unit_sequence_item import DeliveryRateUnitSequenceItem +from .rt_beam_limiting_device_opening_sequence_item import ( + RTBeamLimitingDeviceOpeningSequenceItem, +) + + +class TomotherapeuticControlPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DeliveryRateUnitSequence: List[DeliveryRateUnitSequenceItem] = [] + self._RTBeamLimitingDeviceOpeningSequence: List[RTBeamLimitingDeviceOpeningSequenceItem] = [] + self._BeamAreaLimitSequence: List[BeamAreaLimitSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RTControlPointIndex(self) -> Optional[int]: + if "RTControlPointIndex" in self._dataset: + return self._dataset.RTControlPointIndex + return None + + @RTControlPointIndex.setter + def RTControlPointIndex(self, value: Optional[int]): + if value is None: + if "RTControlPointIndex" in self._dataset: + del self._dataset.RTControlPointIndex + else: + self._dataset.RTControlPointIndex = value + + @property + def ReferencedRadiationGenerationModeIndex(self) -> Optional[int]: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + return self._dataset.ReferencedRadiationGenerationModeIndex + return None + + @ReferencedRadiationGenerationModeIndex.setter + def ReferencedRadiationGenerationModeIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationGenerationModeIndex" in self._dataset: + del self._dataset.ReferencedRadiationGenerationModeIndex + else: + self._dataset.ReferencedRadiationGenerationModeIndex = value + + @property + def ReferencedTreatmentPositionIndex(self) -> Optional[int]: + if "ReferencedTreatmentPositionIndex" in self._dataset: + return self._dataset.ReferencedTreatmentPositionIndex + return None + + @ReferencedTreatmentPositionIndex.setter + def ReferencedTreatmentPositionIndex(self, value: Optional[int]): + if value is None: + if "ReferencedTreatmentPositionIndex" in self._dataset: + del self._dataset.ReferencedTreatmentPositionIndex + else: + self._dataset.ReferencedTreatmentPositionIndex = value + + @property + def CumulativeMeterset(self) -> Optional[float]: + if "CumulativeMeterset" in self._dataset: + return self._dataset.CumulativeMeterset + return None + + @CumulativeMeterset.setter + def CumulativeMeterset(self, value: Optional[float]): + if value is None: + if "CumulativeMeterset" in self._dataset: + del self._dataset.CumulativeMeterset + else: + self._dataset.CumulativeMeterset = value + + @property + def DeliveryRate(self) -> Optional[float]: + if "DeliveryRate" in self._dataset: + return self._dataset.DeliveryRate + return None + + @DeliveryRate.setter + def DeliveryRate(self, value: Optional[float]): + if value is None: + if "DeliveryRate" in self._dataset: + del self._dataset.DeliveryRate + else: + self._dataset.DeliveryRate = value + + @property + def DeliveryRateUnitSequence(self) -> Optional[List[DeliveryRateUnitSequenceItem]]: + if "DeliveryRateUnitSequence" in self._dataset: + if len(self._DeliveryRateUnitSequence) == len(self._dataset.DeliveryRateUnitSequence): + return self._DeliveryRateUnitSequence + else: + return [DeliveryRateUnitSequenceItem(x) for x in self._dataset.DeliveryRateUnitSequence] + return None + + @DeliveryRateUnitSequence.setter + def DeliveryRateUnitSequence(self, value: Optional[List[DeliveryRateUnitSequenceItem]]): + if value is None: + self._DeliveryRateUnitSequence = [] + if "DeliveryRateUnitSequence" in self._dataset: + del self._dataset.DeliveryRateUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, DeliveryRateUnitSequenceItem) for item in value): + raise ValueError("DeliveryRateUnitSequence must be a list of DeliveryRateUnitSequenceItem objects") + else: + self._DeliveryRateUnitSequence = value + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.clear() + self._dataset.DeliveryRateUnitSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveryRateUnit(self, item: DeliveryRateUnitSequenceItem): + if not isinstance(item, DeliveryRateUnitSequenceItem): + raise ValueError("Item must be an instance of DeliveryRateUnitSequenceItem") + self._DeliveryRateUnitSequence.append(item) + if "DeliveryRateUnitSequence" not in self._dataset: + self._dataset.DeliveryRateUnitSequence = pydicom.Sequence() + self._dataset.DeliveryRateUnitSequence.append(item.to_dataset()) + + @property + def RTBeamLimitingDeviceOpeningSequence(self) -> Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]: + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceOpeningSequence) == len(self._dataset.RTBeamLimitingDeviceOpeningSequence): + return self._RTBeamLimitingDeviceOpeningSequence + else: + return [RTBeamLimitingDeviceOpeningSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceOpeningSequence] + return None + + @RTBeamLimitingDeviceOpeningSequence.setter + def RTBeamLimitingDeviceOpeningSequence(self, value: Optional[List[RTBeamLimitingDeviceOpeningSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceOpeningSequence = [] + if "RTBeamLimitingDeviceOpeningSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceOpeningSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceOpeningSequence must be a list of RTBeamLimitingDeviceOpeningSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceOpeningSequence = value + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.clear() + self._dataset.RTBeamLimitingDeviceOpeningSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceOpening(self, item: RTBeamLimitingDeviceOpeningSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceOpeningSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceOpeningSequenceItem") + self._RTBeamLimitingDeviceOpeningSequence.append(item) + if "RTBeamLimitingDeviceOpeningSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceOpeningSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceOpeningSequence.append(item.to_dataset()) + + @property + def NumberOfRTBeamLimitingDeviceOpenings(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDeviceOpenings" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDeviceOpenings + return None + + @NumberOfRTBeamLimitingDeviceOpenings.setter + def NumberOfRTBeamLimitingDeviceOpenings(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDeviceOpenings" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDeviceOpenings + else: + self._dataset.NumberOfRTBeamLimitingDeviceOpenings = value + + @property + def SourceRollAngle(self) -> Optional[float]: + if "SourceRollAngle" in self._dataset: + return self._dataset.SourceRollAngle + return None + + @SourceRollAngle.setter + def SourceRollAngle(self, value: Optional[float]): + if value is None: + if "SourceRollAngle" in self._dataset: + del self._dataset.SourceRollAngle + else: + self._dataset.SourceRollAngle = value + + @property + def BeamAreaLimitSequence(self) -> Optional[List[BeamAreaLimitSequenceItem]]: + if "BeamAreaLimitSequence" in self._dataset: + if len(self._BeamAreaLimitSequence) == len(self._dataset.BeamAreaLimitSequence): + return self._BeamAreaLimitSequence + else: + return [BeamAreaLimitSequenceItem(x) for x in self._dataset.BeamAreaLimitSequence] + return None + + @BeamAreaLimitSequence.setter + def BeamAreaLimitSequence(self, value: Optional[List[BeamAreaLimitSequenceItem]]): + if value is None: + self._BeamAreaLimitSequence = [] + if "BeamAreaLimitSequence" in self._dataset: + del self._dataset.BeamAreaLimitSequence + elif not isinstance(value, list) or not all(isinstance(item, BeamAreaLimitSequenceItem) for item in value): + raise ValueError("BeamAreaLimitSequence must be a list of BeamAreaLimitSequenceItem objects") + else: + self._BeamAreaLimitSequence = value + if "BeamAreaLimitSequence" not in self._dataset: + self._dataset.BeamAreaLimitSequence = pydicom.Sequence() + self._dataset.BeamAreaLimitSequence.clear() + self._dataset.BeamAreaLimitSequence.extend([item.to_dataset() for item in value]) + + def add_BeamAreaLimit(self, item: BeamAreaLimitSequenceItem): + if not isinstance(item, BeamAreaLimitSequenceItem): + raise ValueError("Item must be an instance of BeamAreaLimitSequenceItem") + self._BeamAreaLimitSequence.append(item) + if "BeamAreaLimitSequence" not in self._dataset: + self._dataset.BeamAreaLimitSequence = pydicom.Sequence() + self._dataset.BeamAreaLimitSequence.append(item.to_dataset()) + + @property + def RecordedRTControlPointDateTime(self) -> Optional[str]: + if "RecordedRTControlPointDateTime" in self._dataset: + return self._dataset.RecordedRTControlPointDateTime + return None + + @RecordedRTControlPointDateTime.setter + def RecordedRTControlPointDateTime(self, value: Optional[str]): + if value is None: + if "RecordedRTControlPointDateTime" in self._dataset: + del self._dataset.RecordedRTControlPointDateTime + else: + self._dataset.RecordedRTControlPointDateTime = value + + @property + def ReferencedRadiationRTControlPointIndex(self) -> Optional[int]: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + return self._dataset.ReferencedRadiationRTControlPointIndex + return None + + @ReferencedRadiationRTControlPointIndex.setter + def ReferencedRadiationRTControlPointIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRadiationRTControlPointIndex" in self._dataset: + del self._dataset.ReferencedRadiationRTControlPointIndex + else: + self._dataset.ReferencedRadiationRTControlPointIndex = value + + @property + def TomotherapeuticLeafOpenDurations(self) -> Optional[List[float]]: + if "TomotherapeuticLeafOpenDurations" in self._dataset: + return self._dataset.TomotherapeuticLeafOpenDurations + return None + + @TomotherapeuticLeafOpenDurations.setter + def TomotherapeuticLeafOpenDurations(self, value: Optional[List[float]]): + if value is None: + if "TomotherapeuticLeafOpenDurations" in self._dataset: + del self._dataset.TomotherapeuticLeafOpenDurations + else: + self._dataset.TomotherapeuticLeafOpenDurations = value + + @property + def TomotherapeuticLeafInitialClosedDurations(self) -> Optional[List[float]]: + if "TomotherapeuticLeafInitialClosedDurations" in self._dataset: + return self._dataset.TomotherapeuticLeafInitialClosedDurations + return None + + @TomotherapeuticLeafInitialClosedDurations.setter + def TomotherapeuticLeafInitialClosedDurations(self, value: Optional[List[float]]): + if value is None: + if "TomotherapeuticLeafInitialClosedDurations" in self._dataset: + del self._dataset.TomotherapeuticLeafInitialClosedDurations + else: + self._dataset.TomotherapeuticLeafInitialClosedDurations = value diff --git a/tdwii_plus_examples/domain_model/tomotherapeutic_radiation.py b/tdwii_plus_examples/domain_model/tomotherapeutic_radiation.py new file mode 100644 index 0000000..02cfb81 --- /dev/null +++ b/tdwii_plus_examples/domain_model/tomotherapeutic_radiation.py @@ -0,0 +1,5285 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .tomotherapeutic_control_point_sequence_item import ( + TomotherapeuticControlPointSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class TomotherapeuticRadiation: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._TomotherapeuticControlPointSequence: List[TomotherapeuticControlPointSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RadiationSourceAxisDistance(self) -> Optional[float]: + if "RadiationSourceAxisDistance" in self._dataset: + return self._dataset.RadiationSourceAxisDistance + return None + + @RadiationSourceAxisDistance.setter + def RadiationSourceAxisDistance(self, value: Optional[float]): + if value is None: + if "RadiationSourceAxisDistance" in self._dataset: + del self._dataset.RadiationSourceAxisDistance + else: + self._dataset.RadiationSourceAxisDistance = value + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def TreatmentTimeLimit(self) -> Optional[float]: + if "TreatmentTimeLimit" in self._dataset: + return self._dataset.TreatmentTimeLimit + return None + + @TreatmentTimeLimit.setter + def TreatmentTimeLimit(self, value: Optional[float]): + if value is None: + if "TreatmentTimeLimit" in self._dataset: + del self._dataset.TreatmentTimeLimit + else: + self._dataset.TreatmentTimeLimit = value + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLabel(self) -> Optional[str]: + if "UserContentLabel" in self._dataset: + return self._dataset.UserContentLabel + return None + + @UserContentLabel.setter + def UserContentLabel(self, value: Optional[str]): + if value is None: + if "UserContentLabel" in self._dataset: + del self._dataset.UserContentLabel + else: + self._dataset.UserContentLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def RevolutionTime(self) -> Optional[float]: + if "RevolutionTime" in self._dataset: + return self._dataset.RevolutionTime + return None + + @RevolutionTime.setter + def RevolutionTime(self, value: Optional[float]): + if value is None: + if "RevolutionTime" in self._dataset: + del self._dataset.RevolutionTime + else: + self._dataset.RevolutionTime = value + + @property + def TableSpeed(self) -> Optional[float]: + if "TableSpeed" in self._dataset: + return self._dataset.TableSpeed + return None + + @TableSpeed.setter + def TableSpeed(self, value: Optional[float]): + if value is None: + if "TableSpeed" in self._dataset: + del self._dataset.TableSpeed + else: + self._dataset.TableSpeed = value + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def TomotherapeuticControlPointSequence(self) -> Optional[List[TomotherapeuticControlPointSequenceItem]]: + if "TomotherapeuticControlPointSequence" in self._dataset: + if len(self._TomotherapeuticControlPointSequence) == len(self._dataset.TomotherapeuticControlPointSequence): + return self._TomotherapeuticControlPointSequence + else: + return [TomotherapeuticControlPointSequenceItem(x) for x in self._dataset.TomotherapeuticControlPointSequence] + return None + + @TomotherapeuticControlPointSequence.setter + def TomotherapeuticControlPointSequence(self, value: Optional[List[TomotherapeuticControlPointSequenceItem]]): + if value is None: + self._TomotherapeuticControlPointSequence = [] + if "TomotherapeuticControlPointSequence" in self._dataset: + del self._dataset.TomotherapeuticControlPointSequence + elif not isinstance(value, list) or not all( + isinstance(item, TomotherapeuticControlPointSequenceItem) for item in value + ): + raise ValueError( + "TomotherapeuticControlPointSequence must be a list of TomotherapeuticControlPointSequenceItem objects" + ) + else: + self._TomotherapeuticControlPointSequence = value + if "TomotherapeuticControlPointSequence" not in self._dataset: + self._dataset.TomotherapeuticControlPointSequence = pydicom.Sequence() + self._dataset.TomotherapeuticControlPointSequence.clear() + self._dataset.TomotherapeuticControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_TomotherapeuticControlPoint(self, item: TomotherapeuticControlPointSequenceItem): + if not isinstance(item, TomotherapeuticControlPointSequenceItem): + raise ValueError("Item must be an instance of TomotherapeuticControlPointSequenceItem") + self._TomotherapeuticControlPointSequence.append(item) + if "TomotherapeuticControlPointSequence" not in self._dataset: + self._dataset.TomotherapeuticControlPointSequence = pydicom.Sequence() + self._dataset.TomotherapeuticControlPointSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/tomotherapeutic_radiation_record.py b/tdwii_plus_examples/domain_model/tomotherapeutic_radiation_record.py new file mode 100644 index 0000000..1d4bd62 --- /dev/null +++ b/tdwii_plus_examples/domain_model/tomotherapeutic_radiation_record.py @@ -0,0 +1,5727 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .additional_parameter_recording_instance_sequence_item import ( + AdditionalParameterRecordingInstanceSequenceItem, +) +from .author_identification_sequence_item import AuthorIdentificationSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .confirmation_sequence_item import ConfirmationSequenceItem +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .equipment_reference_point_coordinates_sequence_item import ( + EquipmentReferencePointCoordinatesSequenceItem, +) +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instance_level_referenced_performed_procedure_step_sequence_item import ( + InstanceLevelReferencedPerformedProcedureStepSequenceItem, +) +from .interlock_sequence_item import InterlockSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_support_devices_sequence_item import PatientSupportDevicesSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .radiation_dosimeter_unit_sequence_item import RadiationDosimeterUnitSequenceItem +from .radiation_generation_mode_sequence_item import RadiationGenerationModeSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_rt_instance_sequence_item import ReferencedRTInstanceSequenceItem +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .rt_beam_limiting_device_definition_sequence_item import ( + RTBeamLimitingDeviceDefinitionSequenceItem, +) +from .rt_tolerance_set_sequence_item import RTToleranceSetSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .tomotherapeutic_control_point_sequence_item import ( + TomotherapeuticControlPointSequenceItem, +) +from .treatment_device_identification_sequence_item import ( + TreatmentDeviceIdentificationSequenceItem, +) +from .treatment_position_sequence_item import TreatmentPositionSequenceItem +from .treatment_tolerance_violation_sequence_item import ( + TreatmentToleranceViolationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class TomotherapeuticRadiationRecord: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._AuthorIdentificationSequence: List[AuthorIdentificationSequenceItem] = [] + self._InstanceLevelReferencedPerformedProcedureStepSequence: List[ + InstanceLevelReferencedPerformedProcedureStepSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RTBeamLimitingDeviceDefinitionSequence: List[RTBeamLimitingDeviceDefinitionSequenceItem] = [] + self._RadiationGenerationModeSequence: List[RadiationGenerationModeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentDeviceIdentificationSequence: List[TreatmentDeviceIdentificationSequenceItem] = [] + self._RadiationDosimeterUnitSequence: List[RadiationDosimeterUnitSequenceItem] = [] + self._RTDeviceDistanceReferenceLocationCodeSequence: List[CodeSequenceItem] = [] + self._EquipmentReferencePointCoordinatesSequence: List[EquipmentReferencePointCoordinatesSequenceItem] = [] + self._PatientSupportDevicesSequence: List[PatientSupportDevicesSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._TomotherapeuticControlPointSequence: List[TomotherapeuticControlPointSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._RTToleranceSetSequence: List[RTToleranceSetSequenceItem] = [] + self._ReferencedRTInstanceSequence: List[ReferencedRTInstanceSequenceItem] = [] + self._TreatmentMachineSpecialModeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentPositionSequence: List[TreatmentPositionSequenceItem] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentToleranceViolationSequence: List[TreatmentToleranceViolationSequenceItem] = [] + self._ConfirmationSequence: List[ConfirmationSequenceItem] = [] + self._InterlockSequence: List[InterlockSequenceItem] = [] + self._AdditionalParameterRecordingInstanceSequence: List[AdditionalParameterRecordingInstanceSequenceItem] = [] + self._PatientEquipmentRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._RTTreatmentTechniqueCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AuthorIdentificationSequence(self) -> Optional[List[AuthorIdentificationSequenceItem]]: + if "AuthorIdentificationSequence" in self._dataset: + if len(self._AuthorIdentificationSequence) == len(self._dataset.AuthorIdentificationSequence): + return self._AuthorIdentificationSequence + else: + return [AuthorIdentificationSequenceItem(x) for x in self._dataset.AuthorIdentificationSequence] + return None + + @AuthorIdentificationSequence.setter + def AuthorIdentificationSequence(self, value: Optional[List[AuthorIdentificationSequenceItem]]): + if value is None: + self._AuthorIdentificationSequence = [] + if "AuthorIdentificationSequence" in self._dataset: + del self._dataset.AuthorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, AuthorIdentificationSequenceItem) for item in value): + raise ValueError("AuthorIdentificationSequence must be a list of AuthorIdentificationSequenceItem objects") + else: + self._AuthorIdentificationSequence = value + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.clear() + self._dataset.AuthorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_AuthorIdentification(self, item: AuthorIdentificationSequenceItem): + if not isinstance(item, AuthorIdentificationSequenceItem): + raise ValueError("Item must be an instance of AuthorIdentificationSequenceItem") + self._AuthorIdentificationSequence.append(item) + if "AuthorIdentificationSequence" not in self._dataset: + self._dataset.AuthorIdentificationSequence = pydicom.Sequence() + self._dataset.AuthorIdentificationSequence.append(item.to_dataset()) + + @property + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, + ) -> Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]]: + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._InstanceLevelReferencedPerformedProcedureStepSequence) == len( + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ): + return self._InstanceLevelReferencedPerformedProcedureStepSequence + else: + return [ + InstanceLevelReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + ] + return None + + @InstanceLevelReferencedPerformedProcedureStepSequence.setter + def InstanceLevelReferencedPerformedProcedureStepSequence( + self, value: Optional[List[InstanceLevelReferencedPerformedProcedureStepSequenceItem]] + ): + if value is None: + self._InstanceLevelReferencedPerformedProcedureStepSequence = [] + if "InstanceLevelReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "InstanceLevelReferencedPerformedProcedureStepSequence must be a list of" + " InstanceLevelReferencedPerformedProcedureStepSequenceItem objects" + ) + else: + self._InstanceLevelReferencedPerformedProcedureStepSequence = value + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.clear() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_InstanceLevelReferencedPerformedProcedureStep( + self, item: InstanceLevelReferencedPerformedProcedureStepSequenceItem + ): + if not isinstance(item, InstanceLevelReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of InstanceLevelReferencedPerformedProcedureStepSequenceItem") + self._InstanceLevelReferencedPerformedProcedureStepSequence.append(item) + if "InstanceLevelReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.InstanceLevelReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RadiationSourceAxisDistance(self) -> Optional[float]: + if "RadiationSourceAxisDistance" in self._dataset: + return self._dataset.RadiationSourceAxisDistance + return None + + @RadiationSourceAxisDistance.setter + def RadiationSourceAxisDistance(self, value: Optional[float]): + if value is None: + if "RadiationSourceAxisDistance" in self._dataset: + del self._dataset.RadiationSourceAxisDistance + else: + self._dataset.RadiationSourceAxisDistance = value + + @property + def NumberOfRTBeamLimitingDevices(self) -> Optional[int]: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + return self._dataset.NumberOfRTBeamLimitingDevices + return None + + @NumberOfRTBeamLimitingDevices.setter + def NumberOfRTBeamLimitingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfRTBeamLimitingDevices" in self._dataset: + del self._dataset.NumberOfRTBeamLimitingDevices + else: + self._dataset.NumberOfRTBeamLimitingDevices = value + + @property + def RTBeamLimitingDeviceDefinitionSequence(self) -> Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]: + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + if len(self._RTBeamLimitingDeviceDefinitionSequence) == len(self._dataset.RTBeamLimitingDeviceDefinitionSequence): + return self._RTBeamLimitingDeviceDefinitionSequence + else: + return [ + RTBeamLimitingDeviceDefinitionSequenceItem(x) for x in self._dataset.RTBeamLimitingDeviceDefinitionSequence + ] + return None + + @RTBeamLimitingDeviceDefinitionSequence.setter + def RTBeamLimitingDeviceDefinitionSequence(self, value: Optional[List[RTBeamLimitingDeviceDefinitionSequenceItem]]): + if value is None: + self._RTBeamLimitingDeviceDefinitionSequence = [] + if "RTBeamLimitingDeviceDefinitionSequence" in self._dataset: + del self._dataset.RTBeamLimitingDeviceDefinitionSequence + elif not isinstance(value, list) or not all( + isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem) for item in value + ): + raise ValueError( + "RTBeamLimitingDeviceDefinitionSequence must be a list of RTBeamLimitingDeviceDefinitionSequenceItem objects" + ) + else: + self._RTBeamLimitingDeviceDefinitionSequence = value + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.clear() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_RTBeamLimitingDeviceDefinition(self, item: RTBeamLimitingDeviceDefinitionSequenceItem): + if not isinstance(item, RTBeamLimitingDeviceDefinitionSequenceItem): + raise ValueError("Item must be an instance of RTBeamLimitingDeviceDefinitionSequenceItem") + self._RTBeamLimitingDeviceDefinitionSequence.append(item) + if "RTBeamLimitingDeviceDefinitionSequence" not in self._dataset: + self._dataset.RTBeamLimitingDeviceDefinitionSequence = pydicom.Sequence() + self._dataset.RTBeamLimitingDeviceDefinitionSequence.append(item.to_dataset()) + + @property + def RadiationGenerationModeSequence(self) -> Optional[List[RadiationGenerationModeSequenceItem]]: + if "RadiationGenerationModeSequence" in self._dataset: + if len(self._RadiationGenerationModeSequence) == len(self._dataset.RadiationGenerationModeSequence): + return self._RadiationGenerationModeSequence + else: + return [RadiationGenerationModeSequenceItem(x) for x in self._dataset.RadiationGenerationModeSequence] + return None + + @RadiationGenerationModeSequence.setter + def RadiationGenerationModeSequence(self, value: Optional[List[RadiationGenerationModeSequenceItem]]): + if value is None: + self._RadiationGenerationModeSequence = [] + if "RadiationGenerationModeSequence" in self._dataset: + del self._dataset.RadiationGenerationModeSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationGenerationModeSequenceItem) for item in value): + raise ValueError("RadiationGenerationModeSequence must be a list of RadiationGenerationModeSequenceItem objects") + else: + self._RadiationGenerationModeSequence = value + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.clear() + self._dataset.RadiationGenerationModeSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationGenerationMode(self, item: RadiationGenerationModeSequenceItem): + if not isinstance(item, RadiationGenerationModeSequenceItem): + raise ValueError("Item must be an instance of RadiationGenerationModeSequenceItem") + self._RadiationGenerationModeSequence.append(item) + if "RadiationGenerationModeSequence" not in self._dataset: + self._dataset.RadiationGenerationModeSequence = pydicom.Sequence() + self._dataset.RadiationGenerationModeSequence.append(item.to_dataset()) + + @property + def NumberOfRadiationGenerationModes(self) -> Optional[int]: + if "NumberOfRadiationGenerationModes" in self._dataset: + return self._dataset.NumberOfRadiationGenerationModes + return None + + @NumberOfRadiationGenerationModes.setter + def NumberOfRadiationGenerationModes(self, value: Optional[int]): + if value is None: + if "NumberOfRadiationGenerationModes" in self._dataset: + del self._dataset.NumberOfRadiationGenerationModes + else: + self._dataset.NumberOfRadiationGenerationModes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def TreatmentDeviceIdentificationSequence(self) -> Optional[List[TreatmentDeviceIdentificationSequenceItem]]: + if "TreatmentDeviceIdentificationSequence" in self._dataset: + if len(self._TreatmentDeviceIdentificationSequence) == len(self._dataset.TreatmentDeviceIdentificationSequence): + return self._TreatmentDeviceIdentificationSequence + else: + return [ + TreatmentDeviceIdentificationSequenceItem(x) for x in self._dataset.TreatmentDeviceIdentificationSequence + ] + return None + + @TreatmentDeviceIdentificationSequence.setter + def TreatmentDeviceIdentificationSequence(self, value: Optional[List[TreatmentDeviceIdentificationSequenceItem]]): + if value is None: + self._TreatmentDeviceIdentificationSequence = [] + if "TreatmentDeviceIdentificationSequence" in self._dataset: + del self._dataset.TreatmentDeviceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentDeviceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentDeviceIdentificationSequence must be a list of TreatmentDeviceIdentificationSequenceItem objects" + ) + else: + self._TreatmentDeviceIdentificationSequence = value + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.clear() + self._dataset.TreatmentDeviceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentDeviceIdentification(self, item: TreatmentDeviceIdentificationSequenceItem): + if not isinstance(item, TreatmentDeviceIdentificationSequenceItem): + raise ValueError("Item must be an instance of TreatmentDeviceIdentificationSequenceItem") + self._TreatmentDeviceIdentificationSequence.append(item) + if "TreatmentDeviceIdentificationSequence" not in self._dataset: + self._dataset.TreatmentDeviceIdentificationSequence = pydicom.Sequence() + self._dataset.TreatmentDeviceIdentificationSequence.append(item.to_dataset()) + + @property + def RadiationDosimeterUnitSequence(self) -> Optional[List[RadiationDosimeterUnitSequenceItem]]: + if "RadiationDosimeterUnitSequence" in self._dataset: + if len(self._RadiationDosimeterUnitSequence) == len(self._dataset.RadiationDosimeterUnitSequence): + return self._RadiationDosimeterUnitSequence + else: + return [RadiationDosimeterUnitSequenceItem(x) for x in self._dataset.RadiationDosimeterUnitSequence] + return None + + @RadiationDosimeterUnitSequence.setter + def RadiationDosimeterUnitSequence(self, value: Optional[List[RadiationDosimeterUnitSequenceItem]]): + if value is None: + self._RadiationDosimeterUnitSequence = [] + if "RadiationDosimeterUnitSequence" in self._dataset: + del self._dataset.RadiationDosimeterUnitSequence + elif not isinstance(value, list) or not all(isinstance(item, RadiationDosimeterUnitSequenceItem) for item in value): + raise ValueError("RadiationDosimeterUnitSequence must be a list of RadiationDosimeterUnitSequenceItem objects") + else: + self._RadiationDosimeterUnitSequence = value + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.clear() + self._dataset.RadiationDosimeterUnitSequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDosimeterUnit(self, item: RadiationDosimeterUnitSequenceItem): + if not isinstance(item, RadiationDosimeterUnitSequenceItem): + raise ValueError("Item must be an instance of RadiationDosimeterUnitSequenceItem") + self._RadiationDosimeterUnitSequence.append(item) + if "RadiationDosimeterUnitSequence" not in self._dataset: + self._dataset.RadiationDosimeterUnitSequence = pydicom.Sequence() + self._dataset.RadiationDosimeterUnitSequence.append(item.to_dataset()) + + @property + def RTDeviceDistanceReferenceLocationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + if len(self._RTDeviceDistanceReferenceLocationCodeSequence) == len( + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + ): + return self._RTDeviceDistanceReferenceLocationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTDeviceDistanceReferenceLocationCodeSequence] + return None + + @RTDeviceDistanceReferenceLocationCodeSequence.setter + def RTDeviceDistanceReferenceLocationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTDeviceDistanceReferenceLocationCodeSequence = [] + if "RTDeviceDistanceReferenceLocationCodeSequence" in self._dataset: + del self._dataset.RTDeviceDistanceReferenceLocationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTDeviceDistanceReferenceLocationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTDeviceDistanceReferenceLocationCodeSequence = value + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.clear() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTDeviceDistanceReferenceLocationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTDeviceDistanceReferenceLocationCodeSequence.append(item) + if "RTDeviceDistanceReferenceLocationCodeSequence" not in self._dataset: + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence = pydicom.Sequence() + self._dataset.RTDeviceDistanceReferenceLocationCodeSequence.append(item.to_dataset()) + + @property + def EquipmentFrameOfReferenceUID(self) -> Optional[str]: + if "EquipmentFrameOfReferenceUID" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceUID + return None + + @EquipmentFrameOfReferenceUID.setter + def EquipmentFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceUID" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceUID + else: + self._dataset.EquipmentFrameOfReferenceUID = value + + @property + def EquipmentFrameOfReferenceDescription(self) -> Optional[str]: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + return self._dataset.EquipmentFrameOfReferenceDescription + return None + + @EquipmentFrameOfReferenceDescription.setter + def EquipmentFrameOfReferenceDescription(self, value: Optional[str]): + if value is None: + if "EquipmentFrameOfReferenceDescription" in self._dataset: + del self._dataset.EquipmentFrameOfReferenceDescription + else: + self._dataset.EquipmentFrameOfReferenceDescription = value + + @property + def EquipmentReferencePointCoordinatesSequence(self) -> Optional[List[EquipmentReferencePointCoordinatesSequenceItem]]: + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + if len(self._EquipmentReferencePointCoordinatesSequence) == len( + self._dataset.EquipmentReferencePointCoordinatesSequence + ): + return self._EquipmentReferencePointCoordinatesSequence + else: + return [ + EquipmentReferencePointCoordinatesSequenceItem(x) + for x in self._dataset.EquipmentReferencePointCoordinatesSequence + ] + return None + + @EquipmentReferencePointCoordinatesSequence.setter + def EquipmentReferencePointCoordinatesSequence( + self, value: Optional[List[EquipmentReferencePointCoordinatesSequenceItem]] + ): + if value is None: + self._EquipmentReferencePointCoordinatesSequence = [] + if "EquipmentReferencePointCoordinatesSequence" in self._dataset: + del self._dataset.EquipmentReferencePointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, EquipmentReferencePointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "EquipmentReferencePointCoordinatesSequence must be a list of EquipmentReferencePointCoordinatesSequenceItem" + " objects" + ) + else: + self._EquipmentReferencePointCoordinatesSequence = value + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.clear() + self._dataset.EquipmentReferencePointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_EquipmentReferencePointCoordinates(self, item: EquipmentReferencePointCoordinatesSequenceItem): + if not isinstance(item, EquipmentReferencePointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of EquipmentReferencePointCoordinatesSequenceItem") + self._EquipmentReferencePointCoordinatesSequence.append(item) + if "EquipmentReferencePointCoordinatesSequence" not in self._dataset: + self._dataset.EquipmentReferencePointCoordinatesSequence = pydicom.Sequence() + self._dataset.EquipmentReferencePointCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportDevicesSequence(self) -> Optional[List[PatientSupportDevicesSequenceItem]]: + if "PatientSupportDevicesSequence" in self._dataset: + if len(self._PatientSupportDevicesSequence) == len(self._dataset.PatientSupportDevicesSequence): + return self._PatientSupportDevicesSequence + else: + return [PatientSupportDevicesSequenceItem(x) for x in self._dataset.PatientSupportDevicesSequence] + return None + + @PatientSupportDevicesSequence.setter + def PatientSupportDevicesSequence(self, value: Optional[List[PatientSupportDevicesSequenceItem]]): + if value is None: + self._PatientSupportDevicesSequence = [] + if "PatientSupportDevicesSequence" in self._dataset: + del self._dataset.PatientSupportDevicesSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportDevicesSequenceItem) for item in value): + raise ValueError("PatientSupportDevicesSequence must be a list of PatientSupportDevicesSequenceItem objects") + else: + self._PatientSupportDevicesSequence = value + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.clear() + self._dataset.PatientSupportDevicesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportDevices(self, item: PatientSupportDevicesSequenceItem): + if not isinstance(item, PatientSupportDevicesSequenceItem): + raise ValueError("Item must be an instance of PatientSupportDevicesSequenceItem") + self._PatientSupportDevicesSequence.append(item) + if "PatientSupportDevicesSequence" not in self._dataset: + self._dataset.PatientSupportDevicesSequence = pydicom.Sequence() + self._dataset.PatientSupportDevicesSequence.append(item.to_dataset()) + + @property + def NumberOfPatientSupportDevices(self) -> Optional[int]: + if "NumberOfPatientSupportDevices" in self._dataset: + return self._dataset.NumberOfPatientSupportDevices + return None + + @NumberOfPatientSupportDevices.setter + def NumberOfPatientSupportDevices(self, value: Optional[int]): + if value is None: + if "NumberOfPatientSupportDevices" in self._dataset: + del self._dataset.NumberOfPatientSupportDevices + else: + self._dataset.NumberOfPatientSupportDevices = value + + @property + def RTBeamModifierDefinitionDistance(self) -> Optional[float]: + if "RTBeamModifierDefinitionDistance" in self._dataset: + return self._dataset.RTBeamModifierDefinitionDistance + return None + + @RTBeamModifierDefinitionDistance.setter + def RTBeamModifierDefinitionDistance(self, value: Optional[float]): + if value is None: + if "RTBeamModifierDefinitionDistance" in self._dataset: + del self._dataset.RTBeamModifierDefinitionDistance + else: + self._dataset.RTBeamModifierDefinitionDistance = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def RevolutionTime(self) -> Optional[float]: + if "RevolutionTime" in self._dataset: + return self._dataset.RevolutionTime + return None + + @RevolutionTime.setter + def RevolutionTime(self, value: Optional[float]): + if value is None: + if "RevolutionTime" in self._dataset: + del self._dataset.RevolutionTime + else: + self._dataset.RevolutionTime = value + + @property + def TableSpeed(self) -> Optional[float]: + if "TableSpeed" in self._dataset: + return self._dataset.TableSpeed + return None + + @TableSpeed.setter + def TableSpeed(self, value: Optional[float]): + if value is None: + if "TableSpeed" in self._dataset: + del self._dataset.TableSpeed + else: + self._dataset.TableSpeed = value + + @property + def NumberOfRTControlPoints(self) -> Optional[int]: + if "NumberOfRTControlPoints" in self._dataset: + return self._dataset.NumberOfRTControlPoints + return None + + @NumberOfRTControlPoints.setter + def NumberOfRTControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfRTControlPoints" in self._dataset: + del self._dataset.NumberOfRTControlPoints + else: + self._dataset.NumberOfRTControlPoints = value + + @property + def TomotherapeuticControlPointSequence(self) -> Optional[List[TomotherapeuticControlPointSequenceItem]]: + if "TomotherapeuticControlPointSequence" in self._dataset: + if len(self._TomotherapeuticControlPointSequence) == len(self._dataset.TomotherapeuticControlPointSequence): + return self._TomotherapeuticControlPointSequence + else: + return [TomotherapeuticControlPointSequenceItem(x) for x in self._dataset.TomotherapeuticControlPointSequence] + return None + + @TomotherapeuticControlPointSequence.setter + def TomotherapeuticControlPointSequence(self, value: Optional[List[TomotherapeuticControlPointSequenceItem]]): + if value is None: + self._TomotherapeuticControlPointSequence = [] + if "TomotherapeuticControlPointSequence" in self._dataset: + del self._dataset.TomotherapeuticControlPointSequence + elif not isinstance(value, list) or not all( + isinstance(item, TomotherapeuticControlPointSequenceItem) for item in value + ): + raise ValueError( + "TomotherapeuticControlPointSequence must be a list of TomotherapeuticControlPointSequenceItem objects" + ) + else: + self._TomotherapeuticControlPointSequence = value + if "TomotherapeuticControlPointSequence" not in self._dataset: + self._dataset.TomotherapeuticControlPointSequence = pydicom.Sequence() + self._dataset.TomotherapeuticControlPointSequence.clear() + self._dataset.TomotherapeuticControlPointSequence.extend([item.to_dataset() for item in value]) + + def add_TomotherapeuticControlPoint(self, item: TomotherapeuticControlPointSequenceItem): + if not isinstance(item, TomotherapeuticControlPointSequenceItem): + raise ValueError("Item must be an instance of TomotherapeuticControlPointSequenceItem") + self._TomotherapeuticControlPointSequence.append(item) + if "TomotherapeuticControlPointSequence" not in self._dataset: + self._dataset.TomotherapeuticControlPointSequence = pydicom.Sequence() + self._dataset.TomotherapeuticControlPointSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def RTToleranceSetSequence(self) -> Optional[List[RTToleranceSetSequenceItem]]: + if "RTToleranceSetSequence" in self._dataset: + if len(self._RTToleranceSetSequence) == len(self._dataset.RTToleranceSetSequence): + return self._RTToleranceSetSequence + else: + return [RTToleranceSetSequenceItem(x) for x in self._dataset.RTToleranceSetSequence] + return None + + @RTToleranceSetSequence.setter + def RTToleranceSetSequence(self, value: Optional[List[RTToleranceSetSequenceItem]]): + if value is None: + self._RTToleranceSetSequence = [] + if "RTToleranceSetSequence" in self._dataset: + del self._dataset.RTToleranceSetSequence + elif not isinstance(value, list) or not all(isinstance(item, RTToleranceSetSequenceItem) for item in value): + raise ValueError("RTToleranceSetSequence must be a list of RTToleranceSetSequenceItem objects") + else: + self._RTToleranceSetSequence = value + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.clear() + self._dataset.RTToleranceSetSequence.extend([item.to_dataset() for item in value]) + + def add_RTToleranceSet(self, item: RTToleranceSetSequenceItem): + if not isinstance(item, RTToleranceSetSequenceItem): + raise ValueError("Item must be an instance of RTToleranceSetSequenceItem") + self._RTToleranceSetSequence.append(item) + if "RTToleranceSetSequence" not in self._dataset: + self._dataset.RTToleranceSetSequence = pydicom.Sequence() + self._dataset.RTToleranceSetSequence.append(item.to_dataset()) + + @property + def ReferencedRTInstanceSequence(self) -> Optional[List[ReferencedRTInstanceSequenceItem]]: + if "ReferencedRTInstanceSequence" in self._dataset: + if len(self._ReferencedRTInstanceSequence) == len(self._dataset.ReferencedRTInstanceSequence): + return self._ReferencedRTInstanceSequence + else: + return [ReferencedRTInstanceSequenceItem(x) for x in self._dataset.ReferencedRTInstanceSequence] + return None + + @ReferencedRTInstanceSequence.setter + def ReferencedRTInstanceSequence(self, value: Optional[List[ReferencedRTInstanceSequenceItem]]): + if value is None: + self._ReferencedRTInstanceSequence = [] + if "ReferencedRTInstanceSequence" in self._dataset: + del self._dataset.ReferencedRTInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTInstanceSequenceItem) for item in value): + raise ValueError("ReferencedRTInstanceSequence must be a list of ReferencedRTInstanceSequenceItem objects") + else: + self._ReferencedRTInstanceSequence = value + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.clear() + self._dataset.ReferencedRTInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTInstance(self, item: ReferencedRTInstanceSequenceItem): + if not isinstance(item, ReferencedRTInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTInstanceSequenceItem") + self._ReferencedRTInstanceSequence.append(item) + if "ReferencedRTInstanceSequence" not in self._dataset: + self._dataset.ReferencedRTInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedRTInstanceSequence.append(item.to_dataset()) + + @property + def TreatmentMachineSpecialModeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + if len(self._TreatmentMachineSpecialModeCodeSequence) == len( + self._dataset.TreatmentMachineSpecialModeCodeSequence + ): + return self._TreatmentMachineSpecialModeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentMachineSpecialModeCodeSequence] + return None + + @TreatmentMachineSpecialModeCodeSequence.setter + def TreatmentMachineSpecialModeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentMachineSpecialModeCodeSequence = [] + if "TreatmentMachineSpecialModeCodeSequence" in self._dataset: + del self._dataset.TreatmentMachineSpecialModeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentMachineSpecialModeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentMachineSpecialModeCodeSequence = value + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.clear() + self._dataset.TreatmentMachineSpecialModeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentMachineSpecialModeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentMachineSpecialModeCodeSequence.append(item) + if "TreatmentMachineSpecialModeCodeSequence" not in self._dataset: + self._dataset.TreatmentMachineSpecialModeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentMachineSpecialModeCodeSequence.append(item.to_dataset()) + + @property + def RTRadiationPhysicalAndGeometricContentDetailFlag(self) -> Optional[str]: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + return self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + return None + + @RTRadiationPhysicalAndGeometricContentDetailFlag.setter + def RTRadiationPhysicalAndGeometricContentDetailFlag(self, value: Optional[str]): + if value is None: + if "RTRadiationPhysicalAndGeometricContentDetailFlag" in self._dataset: + del self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag + else: + self._dataset.RTRadiationPhysicalAndGeometricContentDetailFlag = value + + @property + def RTRecordFlag(self) -> Optional[str]: + if "RTRecordFlag" in self._dataset: + return self._dataset.RTRecordFlag + return None + + @RTRecordFlag.setter + def RTRecordFlag(self, value: Optional[str]): + if value is None: + if "RTRecordFlag" in self._dataset: + del self._dataset.RTRecordFlag + else: + self._dataset.RTRecordFlag = value + + @property + def TreatmentPositionSequence(self) -> Optional[List[TreatmentPositionSequenceItem]]: + if "TreatmentPositionSequence" in self._dataset: + if len(self._TreatmentPositionSequence) == len(self._dataset.TreatmentPositionSequence): + return self._TreatmentPositionSequence + else: + return [TreatmentPositionSequenceItem(x) for x in self._dataset.TreatmentPositionSequence] + return None + + @TreatmentPositionSequence.setter + def TreatmentPositionSequence(self, value: Optional[List[TreatmentPositionSequenceItem]]): + if value is None: + self._TreatmentPositionSequence = [] + if "TreatmentPositionSequence" in self._dataset: + del self._dataset.TreatmentPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, TreatmentPositionSequenceItem) for item in value): + raise ValueError("TreatmentPositionSequence must be a list of TreatmentPositionSequenceItem objects") + else: + self._TreatmentPositionSequence = value + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.clear() + self._dataset.TreatmentPositionSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentPosition(self, item: TreatmentPositionSequenceItem): + if not isinstance(item, TreatmentPositionSequenceItem): + raise ValueError("Item must be an instance of TreatmentPositionSequenceItem") + self._TreatmentPositionSequence.append(item) + if "TreatmentPositionSequence" not in self._dataset: + self._dataset.TreatmentPositionSequence = pydicom.Sequence() + self._dataset.TreatmentPositionSequence.append(item.to_dataset()) + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RTRadiationUsage(self) -> Optional[str]: + if "RTRadiationUsage" in self._dataset: + return self._dataset.RTRadiationUsage + return None + + @RTRadiationUsage.setter + def RTRadiationUsage(self, value: Optional[str]): + if value is None: + if "RTRadiationUsage" in self._dataset: + del self._dataset.RTRadiationUsage + else: + self._dataset.RTRadiationUsage = value + + @property + def TreatmentDeliveryContinuationFlag(self) -> Optional[str]: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + return self._dataset.TreatmentDeliveryContinuationFlag + return None + + @TreatmentDeliveryContinuationFlag.setter + def TreatmentDeliveryContinuationFlag(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryContinuationFlag" in self._dataset: + del self._dataset.TreatmentDeliveryContinuationFlag + else: + self._dataset.TreatmentDeliveryContinuationFlag = value + + @property + def TreatmentRecordContentOrigin(self) -> Optional[str]: + if "TreatmentRecordContentOrigin" in self._dataset: + return self._dataset.TreatmentRecordContentOrigin + return None + + @TreatmentRecordContentOrigin.setter + def TreatmentRecordContentOrigin(self, value: Optional[str]): + if value is None: + if "TreatmentRecordContentOrigin" in self._dataset: + del self._dataset.TreatmentRecordContentOrigin + else: + self._dataset.TreatmentRecordContentOrigin = value + + @property + def RTTreatmentTerminationStatus(self) -> Optional[str]: + if "RTTreatmentTerminationStatus" in self._dataset: + return self._dataset.RTTreatmentTerminationStatus + return None + + @RTTreatmentTerminationStatus.setter + def RTTreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "RTTreatmentTerminationStatus" in self._dataset: + del self._dataset.RTTreatmentTerminationStatus + else: + self._dataset.RTTreatmentTerminationStatus = value + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def TreatmentToleranceViolationSequence(self) -> Optional[List[TreatmentToleranceViolationSequenceItem]]: + if "TreatmentToleranceViolationSequence" in self._dataset: + if len(self._TreatmentToleranceViolationSequence) == len(self._dataset.TreatmentToleranceViolationSequence): + return self._TreatmentToleranceViolationSequence + else: + return [TreatmentToleranceViolationSequenceItem(x) for x in self._dataset.TreatmentToleranceViolationSequence] + return None + + @TreatmentToleranceViolationSequence.setter + def TreatmentToleranceViolationSequence(self, value: Optional[List[TreatmentToleranceViolationSequenceItem]]): + if value is None: + self._TreatmentToleranceViolationSequence = [] + if "TreatmentToleranceViolationSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentToleranceViolationSequenceItem) for item in value + ): + raise ValueError( + "TreatmentToleranceViolationSequence must be a list of TreatmentToleranceViolationSequenceItem objects" + ) + else: + self._TreatmentToleranceViolationSequence = value + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.clear() + self._dataset.TreatmentToleranceViolationSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolation(self, item: TreatmentToleranceViolationSequenceItem): + if not isinstance(item, TreatmentToleranceViolationSequenceItem): + raise ValueError("Item must be an instance of TreatmentToleranceViolationSequenceItem") + self._TreatmentToleranceViolationSequence.append(item) + if "TreatmentToleranceViolationSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationSequence.append(item.to_dataset()) + + @property + def ConfirmationSequence(self) -> Optional[List[ConfirmationSequenceItem]]: + if "ConfirmationSequence" in self._dataset: + if len(self._ConfirmationSequence) == len(self._dataset.ConfirmationSequence): + return self._ConfirmationSequence + else: + return [ConfirmationSequenceItem(x) for x in self._dataset.ConfirmationSequence] + return None + + @ConfirmationSequence.setter + def ConfirmationSequence(self, value: Optional[List[ConfirmationSequenceItem]]): + if value is None: + self._ConfirmationSequence = [] + if "ConfirmationSequence" in self._dataset: + del self._dataset.ConfirmationSequence + elif not isinstance(value, list) or not all(isinstance(item, ConfirmationSequenceItem) for item in value): + raise ValueError("ConfirmationSequence must be a list of ConfirmationSequenceItem objects") + else: + self._ConfirmationSequence = value + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.clear() + self._dataset.ConfirmationSequence.extend([item.to_dataset() for item in value]) + + def add_Confirmation(self, item: ConfirmationSequenceItem): + if not isinstance(item, ConfirmationSequenceItem): + raise ValueError("Item must be an instance of ConfirmationSequenceItem") + self._ConfirmationSequence.append(item) + if "ConfirmationSequence" not in self._dataset: + self._dataset.ConfirmationSequence = pydicom.Sequence() + self._dataset.ConfirmationSequence.append(item.to_dataset()) + + @property + def InterlockSequence(self) -> Optional[List[InterlockSequenceItem]]: + if "InterlockSequence" in self._dataset: + if len(self._InterlockSequence) == len(self._dataset.InterlockSequence): + return self._InterlockSequence + else: + return [InterlockSequenceItem(x) for x in self._dataset.InterlockSequence] + return None + + @InterlockSequence.setter + def InterlockSequence(self, value: Optional[List[InterlockSequenceItem]]): + if value is None: + self._InterlockSequence = [] + if "InterlockSequence" in self._dataset: + del self._dataset.InterlockSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockSequenceItem) for item in value): + raise ValueError("InterlockSequence must be a list of InterlockSequenceItem objects") + else: + self._InterlockSequence = value + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.clear() + self._dataset.InterlockSequence.extend([item.to_dataset() for item in value]) + + def add_Interlock(self, item: InterlockSequenceItem): + if not isinstance(item, InterlockSequenceItem): + raise ValueError("Item must be an instance of InterlockSequenceItem") + self._InterlockSequence.append(item) + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.append(item.to_dataset()) + + @property + def AdditionalParameterRecordingInstanceSequence(self) -> Optional[List[AdditionalParameterRecordingInstanceSequenceItem]]: + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + if len(self._AdditionalParameterRecordingInstanceSequence) == len( + self._dataset.AdditionalParameterRecordingInstanceSequence + ): + return self._AdditionalParameterRecordingInstanceSequence + else: + return [ + AdditionalParameterRecordingInstanceSequenceItem(x) + for x in self._dataset.AdditionalParameterRecordingInstanceSequence + ] + return None + + @AdditionalParameterRecordingInstanceSequence.setter + def AdditionalParameterRecordingInstanceSequence( + self, value: Optional[List[AdditionalParameterRecordingInstanceSequenceItem]] + ): + if value is None: + self._AdditionalParameterRecordingInstanceSequence = [] + if "AdditionalParameterRecordingInstanceSequence" in self._dataset: + del self._dataset.AdditionalParameterRecordingInstanceSequence + elif not isinstance(value, list) or not all( + isinstance(item, AdditionalParameterRecordingInstanceSequenceItem) for item in value + ): + raise ValueError( + "AdditionalParameterRecordingInstanceSequence must be a list of" + " AdditionalParameterRecordingInstanceSequenceItem objects" + ) + else: + self._AdditionalParameterRecordingInstanceSequence = value + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.clear() + self._dataset.AdditionalParameterRecordingInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_AdditionalParameterRecordingInstance(self, item: AdditionalParameterRecordingInstanceSequenceItem): + if not isinstance(item, AdditionalParameterRecordingInstanceSequenceItem): + raise ValueError("Item must be an instance of AdditionalParameterRecordingInstanceSequenceItem") + self._AdditionalParameterRecordingInstanceSequence.append(item) + if "AdditionalParameterRecordingInstanceSequence" not in self._dataset: + self._dataset.AdditionalParameterRecordingInstanceSequence = pydicom.Sequence() + self._dataset.AdditionalParameterRecordingInstanceSequence.append(item.to_dataset()) + + @property + def PatientEquipmentRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + if len(self._PatientEquipmentRelationshipCodeSequence) == len( + self._dataset.PatientEquipmentRelationshipCodeSequence + ): + return self._PatientEquipmentRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEquipmentRelationshipCodeSequence] + return None + + @PatientEquipmentRelationshipCodeSequence.setter + def PatientEquipmentRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEquipmentRelationshipCodeSequence = [] + if "PatientEquipmentRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientEquipmentRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEquipmentRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEquipmentRelationshipCodeSequence = value + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.clear() + self._dataset.PatientEquipmentRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEquipmentRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEquipmentRelationshipCodeSequence.append(item) + if "PatientEquipmentRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientEquipmentRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientEquipmentRelationshipCodeSequence.append(item.to_dataset()) + + @property + def UserContentLongLabel(self) -> Optional[str]: + if "UserContentLongLabel" in self._dataset: + return self._dataset.UserContentLongLabel + return None + + @UserContentLongLabel.setter + def UserContentLongLabel(self, value: Optional[str]): + if value is None: + if "UserContentLongLabel" in self._dataset: + del self._dataset.UserContentLongLabel + else: + self._dataset.UserContentLongLabel = value + + @property + def RTTreatmentTechniqueCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + if len(self._RTTreatmentTechniqueCodeSequence) == len(self._dataset.RTTreatmentTechniqueCodeSequence): + return self._RTTreatmentTechniqueCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTechniqueCodeSequence] + return None + + @RTTreatmentTechniqueCodeSequence.setter + def RTTreatmentTechniqueCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTechniqueCodeSequence = [] + if "RTTreatmentTechniqueCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTechniqueCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTechniqueCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTechniqueCodeSequence = value + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.clear() + self._dataset.RTTreatmentTechniqueCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTechniqueCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTechniqueCodeSequence.append(item) + if "RTTreatmentTechniqueCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTechniqueCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTechniqueCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/toric_iol_power_for_exact_emmetropia_sequence_item.py b/tdwii_plus_examples/domain_model/toric_iol_power_for_exact_emmetropia_sequence_item.py new file mode 100644 index 0000000..9e1aa71 --- /dev/null +++ b/tdwii_plus_examples/domain_model/toric_iol_power_for_exact_emmetropia_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ToricIOLPowerForExactEmmetropiaSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value + + @property + def CylinderPower(self) -> Optional[float]: + if "CylinderPower" in self._dataset: + return self._dataset.CylinderPower + return None + + @CylinderPower.setter + def CylinderPower(self, value: Optional[float]): + if value is None: + if "CylinderPower" in self._dataset: + del self._dataset.CylinderPower + else: + self._dataset.CylinderPower = value diff --git a/tdwii_plus_examples/domain_model/toric_iol_power_for_exact_target_refraction_sequence_item.py b/tdwii_plus_examples/domain_model/toric_iol_power_for_exact_target_refraction_sequence_item.py new file mode 100644 index 0000000..0897cef --- /dev/null +++ b/tdwii_plus_examples/domain_model/toric_iol_power_for_exact_target_refraction_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ToricIOLPowerForExactTargetRefractionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value + + @property + def CylinderPower(self) -> Optional[float]: + if "CylinderPower" in self._dataset: + return self._dataset.CylinderPower + return None + + @CylinderPower.setter + def CylinderPower(self, value: Optional[float]): + if value is None: + if "CylinderPower" in self._dataset: + del self._dataset.CylinderPower + else: + self._dataset.CylinderPower = value diff --git a/tdwii_plus_examples/domain_model/toric_iol_power_sequence_item.py b/tdwii_plus_examples/domain_model/toric_iol_power_sequence_item.py new file mode 100644 index 0000000..419d706 --- /dev/null +++ b/tdwii_plus_examples/domain_model/toric_iol_power_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class ToricIOLPowerSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderAxis(self) -> Optional[float]: + if "CylinderAxis" in self._dataset: + return self._dataset.CylinderAxis + return None + + @CylinderAxis.setter + def CylinderAxis(self, value: Optional[float]): + if value is None: + if "CylinderAxis" in self._dataset: + del self._dataset.CylinderAxis + else: + self._dataset.CylinderAxis = value + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value + + @property + def CylinderPower(self) -> Optional[float]: + if "CylinderPower" in self._dataset: + return self._dataset.CylinderPower + return None + + @CylinderPower.setter + def CylinderPower(self, value: Optional[float]): + if value is None: + if "CylinderPower" in self._dataset: + del self._dataset.CylinderPower + else: + self._dataset.CylinderPower = value diff --git a/tdwii_plus_examples/domain_model/total_pixel_matrix_origin_sequence_item.py b/tdwii_plus_examples/domain_model/total_pixel_matrix_origin_sequence_item.py new file mode 100644 index 0000000..a2676e0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/total_pixel_matrix_origin_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class TotalPixelMatrixOriginSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def XOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "XOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.XOffsetInSlideCoordinateSystem + return None + + @XOffsetInSlideCoordinateSystem.setter + def XOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "XOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.XOffsetInSlideCoordinateSystem + else: + self._dataset.XOffsetInSlideCoordinateSystem = value + + @property + def YOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "YOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.YOffsetInSlideCoordinateSystem + return None + + @YOffsetInSlideCoordinateSystem.setter + def YOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "YOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.YOffsetInSlideCoordinateSystem + else: + self._dataset.YOffsetInSlideCoordinateSystem = value + + @property + def ZOffsetInSlideCoordinateSystem(self) -> Optional[Decimal]: + if "ZOffsetInSlideCoordinateSystem" in self._dataset: + return self._dataset.ZOffsetInSlideCoordinateSystem + return None + + @ZOffsetInSlideCoordinateSystem.setter + def ZOffsetInSlideCoordinateSystem(self, value: Optional[Decimal]): + if value is None: + if "ZOffsetInSlideCoordinateSystem" in self._dataset: + del self._dataset.ZOffsetInSlideCoordinateSystem + else: + self._dataset.ZOffsetInSlideCoordinateSystem = value diff --git a/tdwii_plus_examples/domain_model/track_sequence_item.py b/tdwii_plus_examples/domain_model/track_sequence_item.py new file mode 100644 index 0000000..0c19a39 --- /dev/null +++ b/tdwii_plus_examples/domain_model/track_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TrackSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def PointCoordinatesData(self) -> Optional[bytes]: + if "PointCoordinatesData" in self._dataset: + return self._dataset.PointCoordinatesData + return None + + @PointCoordinatesData.setter + def PointCoordinatesData(self, value: Optional[bytes]): + if value is None: + if "PointCoordinatesData" in self._dataset: + del self._dataset.PointCoordinatesData + else: + self._dataset.PointCoordinatesData = value + + @property + def RecommendedDisplayCIELabValueList(self) -> Optional[bytes]: + if "RecommendedDisplayCIELabValueList" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValueList + return None + + @RecommendedDisplayCIELabValueList.setter + def RecommendedDisplayCIELabValueList(self, value: Optional[bytes]): + if value is None: + if "RecommendedDisplayCIELabValueList" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValueList + else: + self._dataset.RecommendedDisplayCIELabValueList = value diff --git a/tdwii_plus_examples/domain_model/track_set_sequence_item.py b/tdwii_plus_examples/domain_model/track_set_sequence_item.py new file mode 100644 index 0000000..e148034 --- /dev/null +++ b/tdwii_plus_examples/domain_model/track_set_sequence_item.py @@ -0,0 +1,363 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .measurements_sequence_item import MeasurementsSequenceItem +from .track_sequence_item import TrackSequenceItem +from .track_set_statistics_sequence_item import TrackSetStatisticsSequenceItem +from .track_statistics_sequence_item import TrackStatisticsSequenceItem +from .tracking_algorithm_identification_sequence_item import ( + TrackingAlgorithmIdentificationSequenceItem, +) + + +class TrackSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TrackSequence: List[TrackSequenceItem] = [] + self._TrackingAlgorithmIdentificationSequence: List[TrackingAlgorithmIdentificationSequenceItem] = [] + self._TrackSetAnatomicalTypeCodeSequence: List[CodeSequenceItem] = [] + self._MeasurementsSequence: List[MeasurementsSequenceItem] = [] + self._TrackSetStatisticsSequence: List[TrackSetStatisticsSequenceItem] = [] + self._TrackStatisticsSequence: List[TrackStatisticsSequenceItem] = [] + self._DiffusionAcquisitionCodeSequence: List[CodeSequenceItem] = [] + self._DiffusionModelCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RecommendedDisplayCIELabValue(self) -> Optional[List[int]]: + if "RecommendedDisplayCIELabValue" in self._dataset: + return self._dataset.RecommendedDisplayCIELabValue + return None + + @RecommendedDisplayCIELabValue.setter + def RecommendedDisplayCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedDisplayCIELabValue" in self._dataset: + del self._dataset.RecommendedDisplayCIELabValue + else: + self._dataset.RecommendedDisplayCIELabValue = value + + @property + def RecommendedLineThickness(self) -> Optional[float]: + if "RecommendedLineThickness" in self._dataset: + return self._dataset.RecommendedLineThickness + return None + + @RecommendedLineThickness.setter + def RecommendedLineThickness(self, value: Optional[float]): + if value is None: + if "RecommendedLineThickness" in self._dataset: + del self._dataset.RecommendedLineThickness + else: + self._dataset.RecommendedLineThickness = value + + @property + def TrackSequence(self) -> Optional[List[TrackSequenceItem]]: + if "TrackSequence" in self._dataset: + if len(self._TrackSequence) == len(self._dataset.TrackSequence): + return self._TrackSequence + else: + return [TrackSequenceItem(x) for x in self._dataset.TrackSequence] + return None + + @TrackSequence.setter + def TrackSequence(self, value: Optional[List[TrackSequenceItem]]): + if value is None: + self._TrackSequence = [] + if "TrackSequence" in self._dataset: + del self._dataset.TrackSequence + elif not isinstance(value, list) or not all(isinstance(item, TrackSequenceItem) for item in value): + raise ValueError("TrackSequence must be a list of TrackSequenceItem objects") + else: + self._TrackSequence = value + if "TrackSequence" not in self._dataset: + self._dataset.TrackSequence = pydicom.Sequence() + self._dataset.TrackSequence.clear() + self._dataset.TrackSequence.extend([item.to_dataset() for item in value]) + + def add_Track(self, item: TrackSequenceItem): + if not isinstance(item, TrackSequenceItem): + raise ValueError("Item must be an instance of TrackSequenceItem") + self._TrackSequence.append(item) + if "TrackSequence" not in self._dataset: + self._dataset.TrackSequence = pydicom.Sequence() + self._dataset.TrackSequence.append(item.to_dataset()) + + @property + def TrackingAlgorithmIdentificationSequence(self) -> Optional[List[TrackingAlgorithmIdentificationSequenceItem]]: + if "TrackingAlgorithmIdentificationSequence" in self._dataset: + if len(self._TrackingAlgorithmIdentificationSequence) == len( + self._dataset.TrackingAlgorithmIdentificationSequence + ): + return self._TrackingAlgorithmIdentificationSequence + else: + return [ + TrackingAlgorithmIdentificationSequenceItem(x) + for x in self._dataset.TrackingAlgorithmIdentificationSequence + ] + return None + + @TrackingAlgorithmIdentificationSequence.setter + def TrackingAlgorithmIdentificationSequence(self, value: Optional[List[TrackingAlgorithmIdentificationSequenceItem]]): + if value is None: + self._TrackingAlgorithmIdentificationSequence = [] + if "TrackingAlgorithmIdentificationSequence" in self._dataset: + del self._dataset.TrackingAlgorithmIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, TrackingAlgorithmIdentificationSequenceItem) for item in value + ): + raise ValueError( + "TrackingAlgorithmIdentificationSequence must be a list of TrackingAlgorithmIdentificationSequenceItem objects" + ) + else: + self._TrackingAlgorithmIdentificationSequence = value + if "TrackingAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.TrackingAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.TrackingAlgorithmIdentificationSequence.clear() + self._dataset.TrackingAlgorithmIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TrackingAlgorithmIdentification(self, item: TrackingAlgorithmIdentificationSequenceItem): + if not isinstance(item, TrackingAlgorithmIdentificationSequenceItem): + raise ValueError("Item must be an instance of TrackingAlgorithmIdentificationSequenceItem") + self._TrackingAlgorithmIdentificationSequence.append(item) + if "TrackingAlgorithmIdentificationSequence" not in self._dataset: + self._dataset.TrackingAlgorithmIdentificationSequence = pydicom.Sequence() + self._dataset.TrackingAlgorithmIdentificationSequence.append(item.to_dataset()) + + @property + def TrackSetNumber(self) -> Optional[int]: + if "TrackSetNumber" in self._dataset: + return self._dataset.TrackSetNumber + return None + + @TrackSetNumber.setter + def TrackSetNumber(self, value: Optional[int]): + if value is None: + if "TrackSetNumber" in self._dataset: + del self._dataset.TrackSetNumber + else: + self._dataset.TrackSetNumber = value + + @property + def TrackSetLabel(self) -> Optional[str]: + if "TrackSetLabel" in self._dataset: + return self._dataset.TrackSetLabel + return None + + @TrackSetLabel.setter + def TrackSetLabel(self, value: Optional[str]): + if value is None: + if "TrackSetLabel" in self._dataset: + del self._dataset.TrackSetLabel + else: + self._dataset.TrackSetLabel = value + + @property + def TrackSetDescription(self) -> Optional[str]: + if "TrackSetDescription" in self._dataset: + return self._dataset.TrackSetDescription + return None + + @TrackSetDescription.setter + def TrackSetDescription(self, value: Optional[str]): + if value is None: + if "TrackSetDescription" in self._dataset: + del self._dataset.TrackSetDescription + else: + self._dataset.TrackSetDescription = value + + @property + def TrackSetAnatomicalTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TrackSetAnatomicalTypeCodeSequence" in self._dataset: + if len(self._TrackSetAnatomicalTypeCodeSequence) == len(self._dataset.TrackSetAnatomicalTypeCodeSequence): + return self._TrackSetAnatomicalTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TrackSetAnatomicalTypeCodeSequence] + return None + + @TrackSetAnatomicalTypeCodeSequence.setter + def TrackSetAnatomicalTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TrackSetAnatomicalTypeCodeSequence = [] + if "TrackSetAnatomicalTypeCodeSequence" in self._dataset: + del self._dataset.TrackSetAnatomicalTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TrackSetAnatomicalTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TrackSetAnatomicalTypeCodeSequence = value + if "TrackSetAnatomicalTypeCodeSequence" not in self._dataset: + self._dataset.TrackSetAnatomicalTypeCodeSequence = pydicom.Sequence() + self._dataset.TrackSetAnatomicalTypeCodeSequence.clear() + self._dataset.TrackSetAnatomicalTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TrackSetAnatomicalTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TrackSetAnatomicalTypeCodeSequence.append(item) + if "TrackSetAnatomicalTypeCodeSequence" not in self._dataset: + self._dataset.TrackSetAnatomicalTypeCodeSequence = pydicom.Sequence() + self._dataset.TrackSetAnatomicalTypeCodeSequence.append(item.to_dataset()) + + @property + def MeasurementsSequence(self) -> Optional[List[MeasurementsSequenceItem]]: + if "MeasurementsSequence" in self._dataset: + if len(self._MeasurementsSequence) == len(self._dataset.MeasurementsSequence): + return self._MeasurementsSequence + else: + return [MeasurementsSequenceItem(x) for x in self._dataset.MeasurementsSequence] + return None + + @MeasurementsSequence.setter + def MeasurementsSequence(self, value: Optional[List[MeasurementsSequenceItem]]): + if value is None: + self._MeasurementsSequence = [] + if "MeasurementsSequence" in self._dataset: + del self._dataset.MeasurementsSequence + elif not isinstance(value, list) or not all(isinstance(item, MeasurementsSequenceItem) for item in value): + raise ValueError("MeasurementsSequence must be a list of MeasurementsSequenceItem objects") + else: + self._MeasurementsSequence = value + if "MeasurementsSequence" not in self._dataset: + self._dataset.MeasurementsSequence = pydicom.Sequence() + self._dataset.MeasurementsSequence.clear() + self._dataset.MeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_Measurements(self, item: MeasurementsSequenceItem): + if not isinstance(item, MeasurementsSequenceItem): + raise ValueError("Item must be an instance of MeasurementsSequenceItem") + self._MeasurementsSequence.append(item) + if "MeasurementsSequence" not in self._dataset: + self._dataset.MeasurementsSequence = pydicom.Sequence() + self._dataset.MeasurementsSequence.append(item.to_dataset()) + + @property + def TrackSetStatisticsSequence(self) -> Optional[List[TrackSetStatisticsSequenceItem]]: + if "TrackSetStatisticsSequence" in self._dataset: + if len(self._TrackSetStatisticsSequence) == len(self._dataset.TrackSetStatisticsSequence): + return self._TrackSetStatisticsSequence + else: + return [TrackSetStatisticsSequenceItem(x) for x in self._dataset.TrackSetStatisticsSequence] + return None + + @TrackSetStatisticsSequence.setter + def TrackSetStatisticsSequence(self, value: Optional[List[TrackSetStatisticsSequenceItem]]): + if value is None: + self._TrackSetStatisticsSequence = [] + if "TrackSetStatisticsSequence" in self._dataset: + del self._dataset.TrackSetStatisticsSequence + elif not isinstance(value, list) or not all(isinstance(item, TrackSetStatisticsSequenceItem) for item in value): + raise ValueError("TrackSetStatisticsSequence must be a list of TrackSetStatisticsSequenceItem objects") + else: + self._TrackSetStatisticsSequence = value + if "TrackSetStatisticsSequence" not in self._dataset: + self._dataset.TrackSetStatisticsSequence = pydicom.Sequence() + self._dataset.TrackSetStatisticsSequence.clear() + self._dataset.TrackSetStatisticsSequence.extend([item.to_dataset() for item in value]) + + def add_TrackSetStatistics(self, item: TrackSetStatisticsSequenceItem): + if not isinstance(item, TrackSetStatisticsSequenceItem): + raise ValueError("Item must be an instance of TrackSetStatisticsSequenceItem") + self._TrackSetStatisticsSequence.append(item) + if "TrackSetStatisticsSequence" not in self._dataset: + self._dataset.TrackSetStatisticsSequence = pydicom.Sequence() + self._dataset.TrackSetStatisticsSequence.append(item.to_dataset()) + + @property + def TrackStatisticsSequence(self) -> Optional[List[TrackStatisticsSequenceItem]]: + if "TrackStatisticsSequence" in self._dataset: + if len(self._TrackStatisticsSequence) == len(self._dataset.TrackStatisticsSequence): + return self._TrackStatisticsSequence + else: + return [TrackStatisticsSequenceItem(x) for x in self._dataset.TrackStatisticsSequence] + return None + + @TrackStatisticsSequence.setter + def TrackStatisticsSequence(self, value: Optional[List[TrackStatisticsSequenceItem]]): + if value is None: + self._TrackStatisticsSequence = [] + if "TrackStatisticsSequence" in self._dataset: + del self._dataset.TrackStatisticsSequence + elif not isinstance(value, list) or not all(isinstance(item, TrackStatisticsSequenceItem) for item in value): + raise ValueError("TrackStatisticsSequence must be a list of TrackStatisticsSequenceItem objects") + else: + self._TrackStatisticsSequence = value + if "TrackStatisticsSequence" not in self._dataset: + self._dataset.TrackStatisticsSequence = pydicom.Sequence() + self._dataset.TrackStatisticsSequence.clear() + self._dataset.TrackStatisticsSequence.extend([item.to_dataset() for item in value]) + + def add_TrackStatistics(self, item: TrackStatisticsSequenceItem): + if not isinstance(item, TrackStatisticsSequenceItem): + raise ValueError("Item must be an instance of TrackStatisticsSequenceItem") + self._TrackStatisticsSequence.append(item) + if "TrackStatisticsSequence" not in self._dataset: + self._dataset.TrackStatisticsSequence = pydicom.Sequence() + self._dataset.TrackStatisticsSequence.append(item.to_dataset()) + + @property + def DiffusionAcquisitionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DiffusionAcquisitionCodeSequence" in self._dataset: + if len(self._DiffusionAcquisitionCodeSequence) == len(self._dataset.DiffusionAcquisitionCodeSequence): + return self._DiffusionAcquisitionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DiffusionAcquisitionCodeSequence] + return None + + @DiffusionAcquisitionCodeSequence.setter + def DiffusionAcquisitionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DiffusionAcquisitionCodeSequence = [] + if "DiffusionAcquisitionCodeSequence" in self._dataset: + del self._dataset.DiffusionAcquisitionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DiffusionAcquisitionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DiffusionAcquisitionCodeSequence = value + if "DiffusionAcquisitionCodeSequence" not in self._dataset: + self._dataset.DiffusionAcquisitionCodeSequence = pydicom.Sequence() + self._dataset.DiffusionAcquisitionCodeSequence.clear() + self._dataset.DiffusionAcquisitionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DiffusionAcquisitionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DiffusionAcquisitionCodeSequence.append(item) + if "DiffusionAcquisitionCodeSequence" not in self._dataset: + self._dataset.DiffusionAcquisitionCodeSequence = pydicom.Sequence() + self._dataset.DiffusionAcquisitionCodeSequence.append(item.to_dataset()) + + @property + def DiffusionModelCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DiffusionModelCodeSequence" in self._dataset: + if len(self._DiffusionModelCodeSequence) == len(self._dataset.DiffusionModelCodeSequence): + return self._DiffusionModelCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DiffusionModelCodeSequence] + return None + + @DiffusionModelCodeSequence.setter + def DiffusionModelCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DiffusionModelCodeSequence = [] + if "DiffusionModelCodeSequence" in self._dataset: + del self._dataset.DiffusionModelCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DiffusionModelCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DiffusionModelCodeSequence = value + if "DiffusionModelCodeSequence" not in self._dataset: + self._dataset.DiffusionModelCodeSequence = pydicom.Sequence() + self._dataset.DiffusionModelCodeSequence.clear() + self._dataset.DiffusionModelCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DiffusionModelCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DiffusionModelCodeSequence.append(item) + if "DiffusionModelCodeSequence" not in self._dataset: + self._dataset.DiffusionModelCodeSequence = pydicom.Sequence() + self._dataset.DiffusionModelCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/track_set_statistics_sequence_item.py b/tdwii_plus_examples/domain_model/track_set_statistics_sequence_item.py new file mode 100644 index 0000000..11cc14c --- /dev/null +++ b/tdwii_plus_examples/domain_model/track_set_statistics_sequence_item.py @@ -0,0 +1,126 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TrackSetStatisticsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ModifierCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def FloatingPointValue(self) -> Optional[List[float]]: + if "FloatingPointValue" in self._dataset: + return self._dataset.FloatingPointValue + return None + + @FloatingPointValue.setter + def FloatingPointValue(self, value: Optional[List[float]]): + if value is None: + if "FloatingPointValue" in self._dataset: + del self._dataset.FloatingPointValue + else: + self._dataset.FloatingPointValue = value + + @property + def ModifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ModifierCodeSequence" in self._dataset: + if len(self._ModifierCodeSequence) == len(self._dataset.ModifierCodeSequence): + return self._ModifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ModifierCodeSequence] + return None + + @ModifierCodeSequence.setter + def ModifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ModifierCodeSequence = [] + if "ModifierCodeSequence" in self._dataset: + del self._dataset.ModifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ModifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ModifierCodeSequence = value + if "ModifierCodeSequence" not in self._dataset: + self._dataset.ModifierCodeSequence = pydicom.Sequence() + self._dataset.ModifierCodeSequence.clear() + self._dataset.ModifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ModifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ModifierCodeSequence.append(item) + if "ModifierCodeSequence" not in self._dataset: + self._dataset.ModifierCodeSequence = pydicom.Sequence() + self._dataset.ModifierCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/track_statistics_sequence_item.py b/tdwii_plus_examples/domain_model/track_statistics_sequence_item.py new file mode 100644 index 0000000..c05f0f5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/track_statistics_sequence_item.py @@ -0,0 +1,126 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TrackStatisticsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ModifierCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ModifierCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ModifierCodeSequence" in self._dataset: + if len(self._ModifierCodeSequence) == len(self._dataset.ModifierCodeSequence): + return self._ModifierCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ModifierCodeSequence] + return None + + @ModifierCodeSequence.setter + def ModifierCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ModifierCodeSequence = [] + if "ModifierCodeSequence" in self._dataset: + del self._dataset.ModifierCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ModifierCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ModifierCodeSequence = value + if "ModifierCodeSequence" not in self._dataset: + self._dataset.ModifierCodeSequence = pydicom.Sequence() + self._dataset.ModifierCodeSequence.clear() + self._dataset.ModifierCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ModifierCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ModifierCodeSequence.append(item) + if "ModifierCodeSequence" not in self._dataset: + self._dataset.ModifierCodeSequence = pydicom.Sequence() + self._dataset.ModifierCodeSequence.append(item.to_dataset()) + + @property + def FloatingPointValues(self) -> Optional[bytes]: + if "FloatingPointValues" in self._dataset: + return self._dataset.FloatingPointValues + return None + + @FloatingPointValues.setter + def FloatingPointValues(self, value: Optional[bytes]): + if value is None: + if "FloatingPointValues" in self._dataset: + del self._dataset.FloatingPointValues + else: + self._dataset.FloatingPointValues = value diff --git a/tdwii_plus_examples/domain_model/tracking_algorithm_identification_sequence_item.py b/tdwii_plus_examples/domain_model/tracking_algorithm_identification_sequence_item.py new file mode 100644 index 0000000..df51349 --- /dev/null +++ b/tdwii_plus_examples/domain_model/tracking_algorithm_identification_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TrackingAlgorithmIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/tractography_results.py b/tdwii_plus_examples/domain_model/tractography_results.py new file mode 100644 index 0000000..c09ba7b --- /dev/null +++ b/tdwii_plus_examples/domain_model/tractography_results.py @@ -0,0 +1,4583 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .track_set_sequence_item import TrackSetSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class TractographyResults: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._TrackSetSequence: List[TrackSetSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def TrackSetSequence(self) -> Optional[List[TrackSetSequenceItem]]: + if "TrackSetSequence" in self._dataset: + if len(self._TrackSetSequence) == len(self._dataset.TrackSetSequence): + return self._TrackSetSequence + else: + return [TrackSetSequenceItem(x) for x in self._dataset.TrackSetSequence] + return None + + @TrackSetSequence.setter + def TrackSetSequence(self, value: Optional[List[TrackSetSequenceItem]]): + if value is None: + self._TrackSetSequence = [] + if "TrackSetSequence" in self._dataset: + del self._dataset.TrackSetSequence + elif not isinstance(value, list) or not all(isinstance(item, TrackSetSequenceItem) for item in value): + raise ValueError("TrackSetSequence must be a list of TrackSetSequenceItem objects") + else: + self._TrackSetSequence = value + if "TrackSetSequence" not in self._dataset: + self._dataset.TrackSetSequence = pydicom.Sequence() + self._dataset.TrackSetSequence.clear() + self._dataset.TrackSetSequence.extend([item.to_dataset() for item in value]) + + def add_TrackSet(self, item: TrackSetSequenceItem): + if not isinstance(item, TrackSetSequenceItem): + raise ValueError("Item must be an instance of TrackSetSequenceItem") + self._TrackSetSequence.append(item) + if "TrackSetSequence" not in self._dataset: + self._dataset.TrackSetSequence = pydicom.Sequence() + self._dataset.TrackSetSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/transducer_identification_sequence_item.py b/tdwii_plus_examples/domain_model/transducer_identification_sequence_item.py new file mode 100644 index 0000000..72cbd31 --- /dev/null +++ b/tdwii_plus_examples/domain_model/transducer_identification_sequence_item.py @@ -0,0 +1,220 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class TransducerIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/transducer_response_sequence_item.py b/tdwii_plus_examples/domain_model/transducer_response_sequence_item.py new file mode 100644 index 0000000..a21abd1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/transducer_response_sequence_item.py @@ -0,0 +1,67 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TransducerResponseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CenterFrequency(self) -> Optional[float]: + if "CenterFrequency" in self._dataset: + return self._dataset.CenterFrequency + return None + + @CenterFrequency.setter + def CenterFrequency(self, value: Optional[float]): + if value is None: + if "CenterFrequency" in self._dataset: + del self._dataset.CenterFrequency + else: + self._dataset.CenterFrequency = value + + @property + def FractionalBandwidth(self) -> Optional[float]: + if "FractionalBandwidth" in self._dataset: + return self._dataset.FractionalBandwidth + return None + + @FractionalBandwidth.setter + def FractionalBandwidth(self, value: Optional[float]): + if value is None: + if "FractionalBandwidth" in self._dataset: + del self._dataset.FractionalBandwidth + else: + self._dataset.FractionalBandwidth = value + + @property + def LowerCutoffFrequency(self) -> Optional[float]: + if "LowerCutoffFrequency" in self._dataset: + return self._dataset.LowerCutoffFrequency + return None + + @LowerCutoffFrequency.setter + def LowerCutoffFrequency(self, value: Optional[float]): + if value is None: + if "LowerCutoffFrequency" in self._dataset: + del self._dataset.LowerCutoffFrequency + else: + self._dataset.LowerCutoffFrequency = value + + @property + def UpperCutoffFrequency(self) -> Optional[float]: + if "UpperCutoffFrequency" in self._dataset: + return self._dataset.UpperCutoffFrequency + return None + + @UpperCutoffFrequency.setter + def UpperCutoffFrequency(self, value: Optional[float]): + if value is None: + if "UpperCutoffFrequency" in self._dataset: + del self._dataset.UpperCutoffFrequency + else: + self._dataset.UpperCutoffFrequency = value diff --git a/tdwii_plus_examples/domain_model/transducer_technology_sequence_item.py b/tdwii_plus_examples/domain_model/transducer_technology_sequence_item.py new file mode 100644 index 0000000..cfcc3e3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/transducer_technology_sequence_item.py @@ -0,0 +1,256 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TransducerTechnologySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._EquivalentCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CodeValue(self) -> Optional[str]: + if "CodeValue" in self._dataset: + return self._dataset.CodeValue + return None + + @CodeValue.setter + def CodeValue(self, value: Optional[str]): + if value is None: + if "CodeValue" in self._dataset: + del self._dataset.CodeValue + else: + self._dataset.CodeValue = value + + @property + def CodingSchemeDesignator(self) -> Optional[str]: + if "CodingSchemeDesignator" in self._dataset: + return self._dataset.CodingSchemeDesignator + return None + + @CodingSchemeDesignator.setter + def CodingSchemeDesignator(self, value: Optional[str]): + if value is None: + if "CodingSchemeDesignator" in self._dataset: + del self._dataset.CodingSchemeDesignator + else: + self._dataset.CodingSchemeDesignator = value + + @property + def CodingSchemeVersion(self) -> Optional[str]: + if "CodingSchemeVersion" in self._dataset: + return self._dataset.CodingSchemeVersion + return None + + @CodingSchemeVersion.setter + def CodingSchemeVersion(self, value: Optional[str]): + if value is None: + if "CodingSchemeVersion" in self._dataset: + del self._dataset.CodingSchemeVersion + else: + self._dataset.CodingSchemeVersion = value + + @property + def CodeMeaning(self) -> Optional[str]: + if "CodeMeaning" in self._dataset: + return self._dataset.CodeMeaning + return None + + @CodeMeaning.setter + def CodeMeaning(self, value: Optional[str]): + if value is None: + if "CodeMeaning" in self._dataset: + del self._dataset.CodeMeaning + else: + self._dataset.CodeMeaning = value + + @property + def MappingResource(self) -> Optional[str]: + if "MappingResource" in self._dataset: + return self._dataset.MappingResource + return None + + @MappingResource.setter + def MappingResource(self, value: Optional[str]): + if value is None: + if "MappingResource" in self._dataset: + del self._dataset.MappingResource + else: + self._dataset.MappingResource = value + + @property + def ContextGroupVersion(self) -> Optional[str]: + if "ContextGroupVersion" in self._dataset: + return self._dataset.ContextGroupVersion + return None + + @ContextGroupVersion.setter + def ContextGroupVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupVersion" in self._dataset: + del self._dataset.ContextGroupVersion + else: + self._dataset.ContextGroupVersion = value + + @property + def ContextGroupLocalVersion(self) -> Optional[str]: + if "ContextGroupLocalVersion" in self._dataset: + return self._dataset.ContextGroupLocalVersion + return None + + @ContextGroupLocalVersion.setter + def ContextGroupLocalVersion(self, value: Optional[str]): + if value is None: + if "ContextGroupLocalVersion" in self._dataset: + del self._dataset.ContextGroupLocalVersion + else: + self._dataset.ContextGroupLocalVersion = value + + @property + def ContextGroupExtensionFlag(self) -> Optional[str]: + if "ContextGroupExtensionFlag" in self._dataset: + return self._dataset.ContextGroupExtensionFlag + return None + + @ContextGroupExtensionFlag.setter + def ContextGroupExtensionFlag(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionFlag" in self._dataset: + del self._dataset.ContextGroupExtensionFlag + else: + self._dataset.ContextGroupExtensionFlag = value + + @property + def ContextGroupExtensionCreatorUID(self) -> Optional[str]: + if "ContextGroupExtensionCreatorUID" in self._dataset: + return self._dataset.ContextGroupExtensionCreatorUID + return None + + @ContextGroupExtensionCreatorUID.setter + def ContextGroupExtensionCreatorUID(self, value: Optional[str]): + if value is None: + if "ContextGroupExtensionCreatorUID" in self._dataset: + del self._dataset.ContextGroupExtensionCreatorUID + else: + self._dataset.ContextGroupExtensionCreatorUID = value + + @property + def ContextIdentifier(self) -> Optional[str]: + if "ContextIdentifier" in self._dataset: + return self._dataset.ContextIdentifier + return None + + @ContextIdentifier.setter + def ContextIdentifier(self, value: Optional[str]): + if value is None: + if "ContextIdentifier" in self._dataset: + del self._dataset.ContextIdentifier + else: + self._dataset.ContextIdentifier = value + + @property + def ContextUID(self) -> Optional[str]: + if "ContextUID" in self._dataset: + return self._dataset.ContextUID + return None + + @ContextUID.setter + def ContextUID(self, value: Optional[str]): + if value is None: + if "ContextUID" in self._dataset: + del self._dataset.ContextUID + else: + self._dataset.ContextUID = value + + @property + def MappingResourceUID(self) -> Optional[str]: + if "MappingResourceUID" in self._dataset: + return self._dataset.MappingResourceUID + return None + + @MappingResourceUID.setter + def MappingResourceUID(self, value: Optional[str]): + if value is None: + if "MappingResourceUID" in self._dataset: + del self._dataset.MappingResourceUID + else: + self._dataset.MappingResourceUID = value + + @property + def LongCodeValue(self) -> Optional[str]: + if "LongCodeValue" in self._dataset: + return self._dataset.LongCodeValue + return None + + @LongCodeValue.setter + def LongCodeValue(self, value: Optional[str]): + if value is None: + if "LongCodeValue" in self._dataset: + del self._dataset.LongCodeValue + else: + self._dataset.LongCodeValue = value + + @property + def URNCodeValue(self) -> Optional[str]: + if "URNCodeValue" in self._dataset: + return self._dataset.URNCodeValue + return None + + @URNCodeValue.setter + def URNCodeValue(self, value: Optional[str]): + if value is None: + if "URNCodeValue" in self._dataset: + del self._dataset.URNCodeValue + else: + self._dataset.URNCodeValue = value + + @property + def EquivalentCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "EquivalentCodeSequence" in self._dataset: + if len(self._EquivalentCodeSequence) == len(self._dataset.EquivalentCodeSequence): + return self._EquivalentCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.EquivalentCodeSequence] + return None + + @EquivalentCodeSequence.setter + def EquivalentCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._EquivalentCodeSequence = [] + if "EquivalentCodeSequence" in self._dataset: + del self._dataset.EquivalentCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("EquivalentCodeSequence must be a list of CodeSequenceItem objects") + else: + self._EquivalentCodeSequence = value + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.clear() + self._dataset.EquivalentCodeSequence.extend([item.to_dataset() for item in value]) + + def add_EquivalentCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._EquivalentCodeSequence.append(item) + if "EquivalentCodeSequence" not in self._dataset: + self._dataset.EquivalentCodeSequence = pydicom.Sequence() + self._dataset.EquivalentCodeSequence.append(item.to_dataset()) + + @property + def MappingResourceName(self) -> Optional[str]: + if "MappingResourceName" in self._dataset: + return self._dataset.MappingResourceName + return None + + @MappingResourceName.setter + def MappingResourceName(self, value: Optional[str]): + if value is None: + if "MappingResourceName" in self._dataset: + del self._dataset.MappingResourceName + else: + self._dataset.MappingResourceName = value diff --git a/tdwii_plus_examples/domain_model/transformation_algorithm_sequence_item.py b/tdwii_plus_examples/domain_model/transformation_algorithm_sequence_item.py new file mode 100644 index 0000000..aef57bc --- /dev/null +++ b/tdwii_plus_examples/domain_model/transformation_algorithm_sequence_item.py @@ -0,0 +1,135 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TransformationAlgorithmSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/treatment_device_identification_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_device_identification_sequence_item.py new file mode 100644 index 0000000..1ee09b6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_device_identification_sequence_item.py @@ -0,0 +1,318 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class TreatmentDeviceIdentificationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/treatment_machine_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_machine_sequence_item.py new file mode 100644 index 0000000..c6f8bf2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_machine_sequence_item.py @@ -0,0 +1,174 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class TreatmentMachineSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def TreatmentMachineName(self) -> Optional[str]: + if "TreatmentMachineName" in self._dataset: + return self._dataset.TreatmentMachineName + return None + + @TreatmentMachineName.setter + def TreatmentMachineName(self, value: Optional[str]): + if value is None: + if "TreatmentMachineName" in self._dataset: + del self._dataset.TreatmentMachineName + else: + self._dataset.TreatmentMachineName = value diff --git a/tdwii_plus_examples/domain_model/treatment_position_group_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_position_group_sequence_item.py new file mode 100644 index 0000000..040431d --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_position_group_sequence_item.py @@ -0,0 +1,74 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_rt_radiation_sequence_item import ReferencedRTRadiationSequenceItem + + +class TreatmentPositionGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedRTRadiationSequence: List[ReferencedRTRadiationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def TreatmentPositionGroupLabel(self) -> Optional[str]: + if "TreatmentPositionGroupLabel" in self._dataset: + return self._dataset.TreatmentPositionGroupLabel + return None + + @TreatmentPositionGroupLabel.setter + def TreatmentPositionGroupLabel(self, value: Optional[str]): + if value is None: + if "TreatmentPositionGroupLabel" in self._dataset: + del self._dataset.TreatmentPositionGroupLabel + else: + self._dataset.TreatmentPositionGroupLabel = value + + @property + def TreatmentPositionGroupUID(self) -> Optional[str]: + if "TreatmentPositionGroupUID" in self._dataset: + return self._dataset.TreatmentPositionGroupUID + return None + + @TreatmentPositionGroupUID.setter + def TreatmentPositionGroupUID(self, value: Optional[str]): + if value is None: + if "TreatmentPositionGroupUID" in self._dataset: + del self._dataset.TreatmentPositionGroupUID + else: + self._dataset.TreatmentPositionGroupUID = value + + @property + def ReferencedRTRadiationSequence(self) -> Optional[List[ReferencedRTRadiationSequenceItem]]: + if "ReferencedRTRadiationSequence" in self._dataset: + if len(self._ReferencedRTRadiationSequence) == len(self._dataset.ReferencedRTRadiationSequence): + return self._ReferencedRTRadiationSequence + else: + return [ReferencedRTRadiationSequenceItem(x) for x in self._dataset.ReferencedRTRadiationSequence] + return None + + @ReferencedRTRadiationSequence.setter + def ReferencedRTRadiationSequence(self, value: Optional[List[ReferencedRTRadiationSequenceItem]]): + if value is None: + self._ReferencedRTRadiationSequence = [] + if "ReferencedRTRadiationSequence" in self._dataset: + del self._dataset.ReferencedRTRadiationSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedRTRadiationSequenceItem) for item in value): + raise ValueError("ReferencedRTRadiationSequence must be a list of ReferencedRTRadiationSequenceItem objects") + else: + self._ReferencedRTRadiationSequence = value + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.clear() + self._dataset.ReferencedRTRadiationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRTRadiation(self, item: ReferencedRTRadiationSequenceItem): + if not isinstance(item, ReferencedRTRadiationSequenceItem): + raise ValueError("Item must be an instance of ReferencedRTRadiationSequenceItem") + self._ReferencedRTRadiationSequence.append(item) + if "ReferencedRTRadiationSequence" not in self._dataset: + self._dataset.ReferencedRTRadiationSequence = pydicom.Sequence() + self._dataset.ReferencedRTRadiationSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/treatment_position_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_position_sequence_item.py new file mode 100644 index 0000000..bd3a4da --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_position_sequence_item.py @@ -0,0 +1,129 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .patient_location_coordinates_sequence_item import ( + PatientLocationCoordinatesSequenceItem, +) +from .patient_support_position_sequence_item import PatientSupportPositionSequenceItem + + +class TreatmentPositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PatientLocationCoordinatesSequence: List[PatientLocationCoordinatesSequenceItem] = [] + self._PatientSupportPositionSequence: List[PatientSupportPositionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ImageToEquipmentMappingMatrix(self) -> Optional[List[Decimal]]: + if "ImageToEquipmentMappingMatrix" in self._dataset: + return self._dataset.ImageToEquipmentMappingMatrix + return None + + @ImageToEquipmentMappingMatrix.setter + def ImageToEquipmentMappingMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageToEquipmentMappingMatrix" in self._dataset: + del self._dataset.ImageToEquipmentMappingMatrix + else: + self._dataset.ImageToEquipmentMappingMatrix = value + + @property + def FrameOfReferenceTransformationComment(self) -> Optional[str]: + if "FrameOfReferenceTransformationComment" in self._dataset: + return self._dataset.FrameOfReferenceTransformationComment + return None + + @FrameOfReferenceTransformationComment.setter + def FrameOfReferenceTransformationComment(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceTransformationComment" in self._dataset: + del self._dataset.FrameOfReferenceTransformationComment + else: + self._dataset.FrameOfReferenceTransformationComment = value + + @property + def PatientLocationCoordinatesSequence(self) -> Optional[List[PatientLocationCoordinatesSequenceItem]]: + if "PatientLocationCoordinatesSequence" in self._dataset: + if len(self._PatientLocationCoordinatesSequence) == len(self._dataset.PatientLocationCoordinatesSequence): + return self._PatientLocationCoordinatesSequence + else: + return [PatientLocationCoordinatesSequenceItem(x) for x in self._dataset.PatientLocationCoordinatesSequence] + return None + + @PatientLocationCoordinatesSequence.setter + def PatientLocationCoordinatesSequence(self, value: Optional[List[PatientLocationCoordinatesSequenceItem]]): + if value is None: + self._PatientLocationCoordinatesSequence = [] + if "PatientLocationCoordinatesSequence" in self._dataset: + del self._dataset.PatientLocationCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientLocationCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "PatientLocationCoordinatesSequence must be a list of PatientLocationCoordinatesSequenceItem objects" + ) + else: + self._PatientLocationCoordinatesSequence = value + if "PatientLocationCoordinatesSequence" not in self._dataset: + self._dataset.PatientLocationCoordinatesSequence = pydicom.Sequence() + self._dataset.PatientLocationCoordinatesSequence.clear() + self._dataset.PatientLocationCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_PatientLocationCoordinates(self, item: PatientLocationCoordinatesSequenceItem): + if not isinstance(item, PatientLocationCoordinatesSequenceItem): + raise ValueError("Item must be an instance of PatientLocationCoordinatesSequenceItem") + self._PatientLocationCoordinatesSequence.append(item) + if "PatientLocationCoordinatesSequence" not in self._dataset: + self._dataset.PatientLocationCoordinatesSequence = pydicom.Sequence() + self._dataset.PatientLocationCoordinatesSequence.append(item.to_dataset()) + + @property + def PatientSupportPositionSequence(self) -> Optional[List[PatientSupportPositionSequenceItem]]: + if "PatientSupportPositionSequence" in self._dataset: + if len(self._PatientSupportPositionSequence) == len(self._dataset.PatientSupportPositionSequence): + return self._PatientSupportPositionSequence + else: + return [PatientSupportPositionSequenceItem(x) for x in self._dataset.PatientSupportPositionSequence] + return None + + @PatientSupportPositionSequence.setter + def PatientSupportPositionSequence(self, value: Optional[List[PatientSupportPositionSequenceItem]]): + if value is None: + self._PatientSupportPositionSequence = [] + if "PatientSupportPositionSequence" in self._dataset: + del self._dataset.PatientSupportPositionSequence + elif not isinstance(value, list) or not all(isinstance(item, PatientSupportPositionSequenceItem) for item in value): + raise ValueError("PatientSupportPositionSequence must be a list of PatientSupportPositionSequenceItem objects") + else: + self._PatientSupportPositionSequence = value + if "PatientSupportPositionSequence" not in self._dataset: + self._dataset.PatientSupportPositionSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionSequence.clear() + self._dataset.PatientSupportPositionSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSupportPosition(self, item: PatientSupportPositionSequenceItem): + if not isinstance(item, PatientSupportPositionSequenceItem): + raise ValueError("Item must be an instance of PatientSupportPositionSequenceItem") + self._PatientSupportPositionSequence.append(item) + if "PatientSupportPositionSequence" not in self._dataset: + self._dataset.PatientSupportPositionSequence = pydicom.Sequence() + self._dataset.PatientSupportPositionSequence.append(item.to_dataset()) + + @property + def TreatmentPositionIndex(self) -> Optional[int]: + if "TreatmentPositionIndex" in self._dataset: + return self._dataset.TreatmentPositionIndex + return None + + @TreatmentPositionIndex.setter + def TreatmentPositionIndex(self, value: Optional[int]): + if value is None: + if "TreatmentPositionIndex" in self._dataset: + del self._dataset.TreatmentPositionIndex + else: + self._dataset.TreatmentPositionIndex = value diff --git a/tdwii_plus_examples/domain_model/treatment_session_application_setup_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_session_application_setup_sequence_item.py new file mode 100644 index 0000000..d0bf836 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_session_application_setup_sequence_item.py @@ -0,0 +1,487 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .recorded_brachy_accessory_device_sequence_item import ( + RecordedBrachyAccessoryDeviceSequenceItem, +) +from .recorded_channel_sequence_item import RecordedChannelSequenceItem +from .referenced_calculated_dose_reference_sequence_item import ( + ReferencedCalculatedDoseReferenceSequenceItem, +) +from .referenced_measured_dose_reference_sequence_item import ( + ReferencedMeasuredDoseReferenceSequenceItem, +) +from .referenced_verification_image_sequence_item import ( + ReferencedVerificationImageSequenceItem, +) + + +class TreatmentSessionApplicationSetupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedMeasuredDoseReferenceSequence: List[ReferencedMeasuredDoseReferenceSequenceItem] = [] + self._ReferencedCalculatedDoseReferenceSequence: List[ReferencedCalculatedDoseReferenceSequenceItem] = [] + self._RecordedBrachyAccessoryDeviceSequence: List[RecordedBrachyAccessoryDeviceSequenceItem] = [] + self._RecordedChannelSequence: List[RecordedChannelSequenceItem] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedVerificationImageSequence: List[ReferencedVerificationImageSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CurrentFractionNumber(self) -> Optional[int]: + if "CurrentFractionNumber" in self._dataset: + return self._dataset.CurrentFractionNumber + return None + + @CurrentFractionNumber.setter + def CurrentFractionNumber(self, value: Optional[int]): + if value is None: + if "CurrentFractionNumber" in self._dataset: + del self._dataset.CurrentFractionNumber + else: + self._dataset.CurrentFractionNumber = value + + @property + def TreatmentTerminationStatus(self) -> Optional[str]: + if "TreatmentTerminationStatus" in self._dataset: + return self._dataset.TreatmentTerminationStatus + return None + + @TreatmentTerminationStatus.setter + def TreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationStatus" in self._dataset: + del self._dataset.TreatmentTerminationStatus + else: + self._dataset.TreatmentTerminationStatus = value + + @property + def TreatmentVerificationStatus(self) -> Optional[str]: + if "TreatmentVerificationStatus" in self._dataset: + return self._dataset.TreatmentVerificationStatus + return None + + @TreatmentVerificationStatus.setter + def TreatmentVerificationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentVerificationStatus" in self._dataset: + del self._dataset.TreatmentVerificationStatus + else: + self._dataset.TreatmentVerificationStatus = value + + @property + def ReferencedMeasuredDoseReferenceSequence(self) -> Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]: + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + if len(self._ReferencedMeasuredDoseReferenceSequence) == len( + self._dataset.ReferencedMeasuredDoseReferenceSequence + ): + return self._ReferencedMeasuredDoseReferenceSequence + else: + return [ + ReferencedMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedMeasuredDoseReferenceSequence + ] + return None + + @ReferencedMeasuredDoseReferenceSequence.setter + def ReferencedMeasuredDoseReferenceSequence(self, value: Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedMeasuredDoseReferenceSequence = [] + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedMeasuredDoseReferenceSequence must be a list of ReferencedMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._ReferencedMeasuredDoseReferenceSequence = value + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.clear() + self._dataset.ReferencedMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedMeasuredDoseReference(self, item: ReferencedMeasuredDoseReferenceSequenceItem): + if not isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedMeasuredDoseReferenceSequenceItem") + self._ReferencedMeasuredDoseReferenceSequence.append(item) + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedCalculatedDoseReferenceSequence(self) -> Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]: + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedCalculatedDoseReferenceSequence) == len( + self._dataset.ReferencedCalculatedDoseReferenceSequence + ): + return self._ReferencedCalculatedDoseReferenceSequence + else: + return [ + ReferencedCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedCalculatedDoseReferenceSequence + ] + return None + + @ReferencedCalculatedDoseReferenceSequence.setter + def ReferencedCalculatedDoseReferenceSequence(self, value: Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedCalculatedDoseReferenceSequence = [] + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedCalculatedDoseReferenceSequence must be a list of ReferencedCalculatedDoseReferenceSequenceItem" + " objects" + ) + else: + self._ReferencedCalculatedDoseReferenceSequence = value + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.clear() + self._dataset.ReferencedCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedCalculatedDoseReference(self, item: ReferencedCalculatedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedCalculatedDoseReferenceSequenceItem") + self._ReferencedCalculatedDoseReferenceSequence.append(item) + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def ApplicationSetupCheck(self) -> Optional[str]: + if "ApplicationSetupCheck" in self._dataset: + return self._dataset.ApplicationSetupCheck + return None + + @ApplicationSetupCheck.setter + def ApplicationSetupCheck(self, value: Optional[str]): + if value is None: + if "ApplicationSetupCheck" in self._dataset: + del self._dataset.ApplicationSetupCheck + else: + self._dataset.ApplicationSetupCheck = value + + @property + def RecordedBrachyAccessoryDeviceSequence(self) -> Optional[List[RecordedBrachyAccessoryDeviceSequenceItem]]: + if "RecordedBrachyAccessoryDeviceSequence" in self._dataset: + if len(self._RecordedBrachyAccessoryDeviceSequence) == len(self._dataset.RecordedBrachyAccessoryDeviceSequence): + return self._RecordedBrachyAccessoryDeviceSequence + else: + return [ + RecordedBrachyAccessoryDeviceSequenceItem(x) for x in self._dataset.RecordedBrachyAccessoryDeviceSequence + ] + return None + + @RecordedBrachyAccessoryDeviceSequence.setter + def RecordedBrachyAccessoryDeviceSequence(self, value: Optional[List[RecordedBrachyAccessoryDeviceSequenceItem]]): + if value is None: + self._RecordedBrachyAccessoryDeviceSequence = [] + if "RecordedBrachyAccessoryDeviceSequence" in self._dataset: + del self._dataset.RecordedBrachyAccessoryDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, RecordedBrachyAccessoryDeviceSequenceItem) for item in value + ): + raise ValueError( + "RecordedBrachyAccessoryDeviceSequence must be a list of RecordedBrachyAccessoryDeviceSequenceItem objects" + ) + else: + self._RecordedBrachyAccessoryDeviceSequence = value + if "RecordedBrachyAccessoryDeviceSequence" not in self._dataset: + self._dataset.RecordedBrachyAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.RecordedBrachyAccessoryDeviceSequence.clear() + self._dataset.RecordedBrachyAccessoryDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedBrachyAccessoryDevice(self, item: RecordedBrachyAccessoryDeviceSequenceItem): + if not isinstance(item, RecordedBrachyAccessoryDeviceSequenceItem): + raise ValueError("Item must be an instance of RecordedBrachyAccessoryDeviceSequenceItem") + self._RecordedBrachyAccessoryDeviceSequence.append(item) + if "RecordedBrachyAccessoryDeviceSequence" not in self._dataset: + self._dataset.RecordedBrachyAccessoryDeviceSequence = pydicom.Sequence() + self._dataset.RecordedBrachyAccessoryDeviceSequence.append(item.to_dataset()) + + @property + def RecordedChannelSequence(self) -> Optional[List[RecordedChannelSequenceItem]]: + if "RecordedChannelSequence" in self._dataset: + if len(self._RecordedChannelSequence) == len(self._dataset.RecordedChannelSequence): + return self._RecordedChannelSequence + else: + return [RecordedChannelSequenceItem(x) for x in self._dataset.RecordedChannelSequence] + return None + + @RecordedChannelSequence.setter + def RecordedChannelSequence(self, value: Optional[List[RecordedChannelSequenceItem]]): + if value is None: + self._RecordedChannelSequence = [] + if "RecordedChannelSequence" in self._dataset: + del self._dataset.RecordedChannelSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedChannelSequenceItem) for item in value): + raise ValueError("RecordedChannelSequence must be a list of RecordedChannelSequenceItem objects") + else: + self._RecordedChannelSequence = value + if "RecordedChannelSequence" not in self._dataset: + self._dataset.RecordedChannelSequence = pydicom.Sequence() + self._dataset.RecordedChannelSequence.clear() + self._dataset.RecordedChannelSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedChannel(self, item: RecordedChannelSequenceItem): + if not isinstance(item, RecordedChannelSequenceItem): + raise ValueError("Item must be an instance of RecordedChannelSequenceItem") + self._RecordedChannelSequence.append(item) + if "RecordedChannelSequence" not in self._dataset: + self._dataset.RecordedChannelSequence = pydicom.Sequence() + self._dataset.RecordedChannelSequence.append(item.to_dataset()) + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def ApplicationSetupType(self) -> Optional[str]: + if "ApplicationSetupType" in self._dataset: + return self._dataset.ApplicationSetupType + return None + + @ApplicationSetupType.setter + def ApplicationSetupType(self, value: Optional[str]): + if value is None: + if "ApplicationSetupType" in self._dataset: + del self._dataset.ApplicationSetupType + else: + self._dataset.ApplicationSetupType = value + + @property + def ApplicationSetupName(self) -> Optional[str]: + if "ApplicationSetupName" in self._dataset: + return self._dataset.ApplicationSetupName + return None + + @ApplicationSetupName.setter + def ApplicationSetupName(self, value: Optional[str]): + if value is None: + if "ApplicationSetupName" in self._dataset: + del self._dataset.ApplicationSetupName + else: + self._dataset.ApplicationSetupName = value + + @property + def ApplicationSetupManufacturer(self) -> Optional[str]: + if "ApplicationSetupManufacturer" in self._dataset: + return self._dataset.ApplicationSetupManufacturer + return None + + @ApplicationSetupManufacturer.setter + def ApplicationSetupManufacturer(self, value: Optional[str]): + if value is None: + if "ApplicationSetupManufacturer" in self._dataset: + del self._dataset.ApplicationSetupManufacturer + else: + self._dataset.ApplicationSetupManufacturer = value + + @property + def TemplateNumber(self) -> Optional[int]: + if "TemplateNumber" in self._dataset: + return self._dataset.TemplateNumber + return None + + @TemplateNumber.setter + def TemplateNumber(self, value: Optional[int]): + if value is None: + if "TemplateNumber" in self._dataset: + del self._dataset.TemplateNumber + else: + self._dataset.TemplateNumber = value + + @property + def TemplateType(self) -> Optional[str]: + if "TemplateType" in self._dataset: + return self._dataset.TemplateType + return None + + @TemplateType.setter + def TemplateType(self, value: Optional[str]): + if value is None: + if "TemplateType" in self._dataset: + del self._dataset.TemplateType + else: + self._dataset.TemplateType = value + + @property + def TemplateName(self) -> Optional[str]: + if "TemplateName" in self._dataset: + return self._dataset.TemplateName + return None + + @TemplateName.setter + def TemplateName(self, value: Optional[str]): + if value is None: + if "TemplateName" in self._dataset: + del self._dataset.TemplateName + else: + self._dataset.TemplateName = value + + @property + def TotalReferenceAirKerma(self) -> Optional[Decimal]: + if "TotalReferenceAirKerma" in self._dataset: + return self._dataset.TotalReferenceAirKerma + return None + + @TotalReferenceAirKerma.setter + def TotalReferenceAirKerma(self, value: Optional[Decimal]): + if value is None: + if "TotalReferenceAirKerma" in self._dataset: + del self._dataset.TotalReferenceAirKerma + else: + self._dataset.TotalReferenceAirKerma = value + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def ReferencedBrachyApplicationSetupNumber(self) -> Optional[int]: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + return self._dataset.ReferencedBrachyApplicationSetupNumber + return None + + @ReferencedBrachyApplicationSetupNumber.setter + def ReferencedBrachyApplicationSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBrachyApplicationSetupNumber" in self._dataset: + del self._dataset.ReferencedBrachyApplicationSetupNumber + else: + self._dataset.ReferencedBrachyApplicationSetupNumber = value + + @property + def ReferencedVerificationImageSequence(self) -> Optional[List[ReferencedVerificationImageSequenceItem]]: + if "ReferencedVerificationImageSequence" in self._dataset: + if len(self._ReferencedVerificationImageSequence) == len(self._dataset.ReferencedVerificationImageSequence): + return self._ReferencedVerificationImageSequence + else: + return [ReferencedVerificationImageSequenceItem(x) for x in self._dataset.ReferencedVerificationImageSequence] + return None + + @ReferencedVerificationImageSequence.setter + def ReferencedVerificationImageSequence(self, value: Optional[List[ReferencedVerificationImageSequenceItem]]): + if value is None: + self._ReferencedVerificationImageSequence = [] + if "ReferencedVerificationImageSequence" in self._dataset: + del self._dataset.ReferencedVerificationImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedVerificationImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedVerificationImageSequence must be a list of ReferencedVerificationImageSequenceItem objects" + ) + else: + self._ReferencedVerificationImageSequence = value + if "ReferencedVerificationImageSequence" not in self._dataset: + self._dataset.ReferencedVerificationImageSequence = pydicom.Sequence() + self._dataset.ReferencedVerificationImageSequence.clear() + self._dataset.ReferencedVerificationImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedVerificationImage(self, item: ReferencedVerificationImageSequenceItem): + if not isinstance(item, ReferencedVerificationImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedVerificationImageSequenceItem") + self._ReferencedVerificationImageSequence.append(item) + if "ReferencedVerificationImageSequence" not in self._dataset: + self._dataset.ReferencedVerificationImageSequence = pydicom.Sequence() + self._dataset.ReferencedVerificationImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/treatment_session_beam_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_session_beam_sequence_item.py new file mode 100644 index 0000000..95229f8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_session_beam_sequence_item.py @@ -0,0 +1,1143 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .applicator_sequence_item import ApplicatorSequenceItem +from .beam_limiting_device_leaf_pairs_sequence_item import ( + BeamLimitingDeviceLeafPairsSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .control_point_delivery_sequence_item import ControlPointDeliverySequenceItem +from .definition_source_sequence_item import DefinitionSourceSequenceItem +from .dose_calibration_conditions_sequence_item import ( + DoseCalibrationConditionsSequenceItem, +) +from .enhanced_rt_beam_limiting_device_sequence_item import ( + EnhancedRTBeamLimitingDeviceSequenceItem, +) +from .gating_beam_hold_transition_sequence_item import ( + GatingBeamHoldTransitionSequenceItem, +) +from .general_accessory_sequence_item import GeneralAccessorySequenceItem +from .interlock_sequence_item import InterlockSequenceItem +from .primary_fluence_mode_sequence_item import PrimaryFluenceModeSequenceItem +from .radiation_device_configuration_and_commissioning_key_sequence_item import ( + RadiationDeviceConfigurationAndCommissioningKeySequenceItem, +) +from .recorded_block_sequence_item import RecordedBlockSequenceItem +from .recorded_compensator_sequence_item import RecordedCompensatorSequenceItem +from .recorded_wedge_sequence_item import RecordedWedgeSequenceItem +from .referenced_bolus_sequence_item import ReferencedBolusSequenceItem +from .referenced_calculated_dose_reference_sequence_item import ( + ReferencedCalculatedDoseReferenceSequenceItem, +) +from .referenced_measured_dose_reference_sequence_item import ( + ReferencedMeasuredDoseReferenceSequenceItem, +) +from .referenced_verification_image_sequence_item import ( + ReferencedVerificationImageSequenceItem, +) + + +class TreatmentSessionBeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DefinitionSourceSequence: List[DefinitionSourceSequenceItem] = [] + self._PrimaryFluenceModeSequence: List[PrimaryFluenceModeSequenceItem] = [] + self._ControlPointDeliverySequence: List[ControlPointDeliverySequenceItem] = [] + self._ReferencedMeasuredDoseReferenceSequence: List[ReferencedMeasuredDoseReferenceSequenceItem] = [] + self._ReferencedCalculatedDoseReferenceSequence: List[ReferencedCalculatedDoseReferenceSequenceItem] = [] + self._BeamLimitingDeviceLeafPairsSequence: List[BeamLimitingDeviceLeafPairsSequenceItem] = [] + self._EnhancedRTBeamLimitingDeviceSequence: List[EnhancedRTBeamLimitingDeviceSequenceItem] = [] + self._RecordedWedgeSequence: List[RecordedWedgeSequenceItem] = [] + self._RecordedCompensatorSequence: List[RecordedCompensatorSequenceItem] = [] + self._RecordedBlockSequence: List[RecordedBlockSequenceItem] = [] + self._ApplicatorSequence: List[ApplicatorSequenceItem] = [] + self._GeneralAccessorySequence: List[GeneralAccessorySequenceItem] = [] + self._RadiationDeviceConfigurationAndCommissioningKeySequence: List[ + RadiationDeviceConfigurationAndCommissioningKeySequenceItem + ] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._InterlockSequence: List[InterlockSequenceItem] = [] + self._ReferencedVerificationImageSequence: List[ReferencedVerificationImageSequenceItem] = [] + self._ReferencedBolusSequence: List[ReferencedBolusSequenceItem] = [] + self._DoseCalibrationConditionsSequence: List[DoseCalibrationConditionsSequenceItem] = [] + self._GatingBeamHoldTransitionSequence: List[GatingBeamHoldTransitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DefinitionSourceSequence(self) -> Optional[List[DefinitionSourceSequenceItem]]: + if "DefinitionSourceSequence" in self._dataset: + if len(self._DefinitionSourceSequence) == len(self._dataset.DefinitionSourceSequence): + return self._DefinitionSourceSequence + else: + return [DefinitionSourceSequenceItem(x) for x in self._dataset.DefinitionSourceSequence] + return None + + @DefinitionSourceSequence.setter + def DefinitionSourceSequence(self, value: Optional[List[DefinitionSourceSequenceItem]]): + if value is None: + self._DefinitionSourceSequence = [] + if "DefinitionSourceSequence" in self._dataset: + del self._dataset.DefinitionSourceSequence + elif not isinstance(value, list) or not all(isinstance(item, DefinitionSourceSequenceItem) for item in value): + raise ValueError("DefinitionSourceSequence must be a list of DefinitionSourceSequenceItem objects") + else: + self._DefinitionSourceSequence = value + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.clear() + self._dataset.DefinitionSourceSequence.extend([item.to_dataset() for item in value]) + + def add_DefinitionSource(self, item: DefinitionSourceSequenceItem): + if not isinstance(item, DefinitionSourceSequenceItem): + raise ValueError("Item must be an instance of DefinitionSourceSequenceItem") + self._DefinitionSourceSequence.append(item) + if "DefinitionSourceSequence" not in self._dataset: + self._dataset.DefinitionSourceSequence = pydicom.Sequence() + self._dataset.DefinitionSourceSequence.append(item.to_dataset()) + + @property + def PrimaryFluenceModeSequence(self) -> Optional[List[PrimaryFluenceModeSequenceItem]]: + if "PrimaryFluenceModeSequence" in self._dataset: + if len(self._PrimaryFluenceModeSequence) == len(self._dataset.PrimaryFluenceModeSequence): + return self._PrimaryFluenceModeSequence + else: + return [PrimaryFluenceModeSequenceItem(x) for x in self._dataset.PrimaryFluenceModeSequence] + return None + + @PrimaryFluenceModeSequence.setter + def PrimaryFluenceModeSequence(self, value: Optional[List[PrimaryFluenceModeSequenceItem]]): + if value is None: + self._PrimaryFluenceModeSequence = [] + if "PrimaryFluenceModeSequence" in self._dataset: + del self._dataset.PrimaryFluenceModeSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryFluenceModeSequenceItem) for item in value): + raise ValueError("PrimaryFluenceModeSequence must be a list of PrimaryFluenceModeSequenceItem objects") + else: + self._PrimaryFluenceModeSequence = value + if "PrimaryFluenceModeSequence" not in self._dataset: + self._dataset.PrimaryFluenceModeSequence = pydicom.Sequence() + self._dataset.PrimaryFluenceModeSequence.clear() + self._dataset.PrimaryFluenceModeSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryFluenceMode(self, item: PrimaryFluenceModeSequenceItem): + if not isinstance(item, PrimaryFluenceModeSequenceItem): + raise ValueError("Item must be an instance of PrimaryFluenceModeSequenceItem") + self._PrimaryFluenceModeSequence.append(item) + if "PrimaryFluenceModeSequence" not in self._dataset: + self._dataset.PrimaryFluenceModeSequence = pydicom.Sequence() + self._dataset.PrimaryFluenceModeSequence.append(item.to_dataset()) + + @property + def CurrentFractionNumber(self) -> Optional[int]: + if "CurrentFractionNumber" in self._dataset: + return self._dataset.CurrentFractionNumber + return None + + @CurrentFractionNumber.setter + def CurrentFractionNumber(self, value: Optional[int]): + if value is None: + if "CurrentFractionNumber" in self._dataset: + del self._dataset.CurrentFractionNumber + else: + self._dataset.CurrentFractionNumber = value + + @property + def TreatmentTerminationStatus(self) -> Optional[str]: + if "TreatmentTerminationStatus" in self._dataset: + return self._dataset.TreatmentTerminationStatus + return None + + @TreatmentTerminationStatus.setter + def TreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationStatus" in self._dataset: + del self._dataset.TreatmentTerminationStatus + else: + self._dataset.TreatmentTerminationStatus = value + + @property + def TreatmentVerificationStatus(self) -> Optional[str]: + if "TreatmentVerificationStatus" in self._dataset: + return self._dataset.TreatmentVerificationStatus + return None + + @TreatmentVerificationStatus.setter + def TreatmentVerificationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentVerificationStatus" in self._dataset: + del self._dataset.TreatmentVerificationStatus + else: + self._dataset.TreatmentVerificationStatus = value + + @property + def SpecifiedPrimaryMeterset(self) -> Optional[Decimal]: + if "SpecifiedPrimaryMeterset" in self._dataset: + return self._dataset.SpecifiedPrimaryMeterset + return None + + @SpecifiedPrimaryMeterset.setter + def SpecifiedPrimaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedPrimaryMeterset" in self._dataset: + del self._dataset.SpecifiedPrimaryMeterset + else: + self._dataset.SpecifiedPrimaryMeterset = value + + @property + def SpecifiedSecondaryMeterset(self) -> Optional[Decimal]: + if "SpecifiedSecondaryMeterset" in self._dataset: + return self._dataset.SpecifiedSecondaryMeterset + return None + + @SpecifiedSecondaryMeterset.setter + def SpecifiedSecondaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedSecondaryMeterset" in self._dataset: + del self._dataset.SpecifiedSecondaryMeterset + else: + self._dataset.SpecifiedSecondaryMeterset = value + + @property + def DeliveredPrimaryMeterset(self) -> Optional[Decimal]: + if "DeliveredPrimaryMeterset" in self._dataset: + return self._dataset.DeliveredPrimaryMeterset + return None + + @DeliveredPrimaryMeterset.setter + def DeliveredPrimaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "DeliveredPrimaryMeterset" in self._dataset: + del self._dataset.DeliveredPrimaryMeterset + else: + self._dataset.DeliveredPrimaryMeterset = value + + @property + def DeliveredSecondaryMeterset(self) -> Optional[Decimal]: + if "DeliveredSecondaryMeterset" in self._dataset: + return self._dataset.DeliveredSecondaryMeterset + return None + + @DeliveredSecondaryMeterset.setter + def DeliveredSecondaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "DeliveredSecondaryMeterset" in self._dataset: + del self._dataset.DeliveredSecondaryMeterset + else: + self._dataset.DeliveredSecondaryMeterset = value + + @property + def SpecifiedTreatmentTime(self) -> Optional[Decimal]: + if "SpecifiedTreatmentTime" in self._dataset: + return self._dataset.SpecifiedTreatmentTime + return None + + @SpecifiedTreatmentTime.setter + def SpecifiedTreatmentTime(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedTreatmentTime" in self._dataset: + del self._dataset.SpecifiedTreatmentTime + else: + self._dataset.SpecifiedTreatmentTime = value + + @property + def DeliveredTreatmentTime(self) -> Optional[Decimal]: + if "DeliveredTreatmentTime" in self._dataset: + return self._dataset.DeliveredTreatmentTime + return None + + @DeliveredTreatmentTime.setter + def DeliveredTreatmentTime(self, value: Optional[Decimal]): + if value is None: + if "DeliveredTreatmentTime" in self._dataset: + del self._dataset.DeliveredTreatmentTime + else: + self._dataset.DeliveredTreatmentTime = value + + @property + def ControlPointDeliverySequence(self) -> Optional[List[ControlPointDeliverySequenceItem]]: + if "ControlPointDeliverySequence" in self._dataset: + if len(self._ControlPointDeliverySequence) == len(self._dataset.ControlPointDeliverySequence): + return self._ControlPointDeliverySequence + else: + return [ControlPointDeliverySequenceItem(x) for x in self._dataset.ControlPointDeliverySequence] + return None + + @ControlPointDeliverySequence.setter + def ControlPointDeliverySequence(self, value: Optional[List[ControlPointDeliverySequenceItem]]): + if value is None: + self._ControlPointDeliverySequence = [] + if "ControlPointDeliverySequence" in self._dataset: + del self._dataset.ControlPointDeliverySequence + elif not isinstance(value, list) or not all(isinstance(item, ControlPointDeliverySequenceItem) for item in value): + raise ValueError("ControlPointDeliverySequence must be a list of ControlPointDeliverySequenceItem objects") + else: + self._ControlPointDeliverySequence = value + if "ControlPointDeliverySequence" not in self._dataset: + self._dataset.ControlPointDeliverySequence = pydicom.Sequence() + self._dataset.ControlPointDeliverySequence.clear() + self._dataset.ControlPointDeliverySequence.extend([item.to_dataset() for item in value]) + + def add_ControlPointDelivery(self, item: ControlPointDeliverySequenceItem): + if not isinstance(item, ControlPointDeliverySequenceItem): + raise ValueError("Item must be an instance of ControlPointDeliverySequenceItem") + self._ControlPointDeliverySequence.append(item) + if "ControlPointDeliverySequence" not in self._dataset: + self._dataset.ControlPointDeliverySequence = pydicom.Sequence() + self._dataset.ControlPointDeliverySequence.append(item.to_dataset()) + + @property + def ReferencedMeasuredDoseReferenceSequence(self) -> Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]: + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + if len(self._ReferencedMeasuredDoseReferenceSequence) == len( + self._dataset.ReferencedMeasuredDoseReferenceSequence + ): + return self._ReferencedMeasuredDoseReferenceSequence + else: + return [ + ReferencedMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedMeasuredDoseReferenceSequence + ] + return None + + @ReferencedMeasuredDoseReferenceSequence.setter + def ReferencedMeasuredDoseReferenceSequence(self, value: Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedMeasuredDoseReferenceSequence = [] + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedMeasuredDoseReferenceSequence must be a list of ReferencedMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._ReferencedMeasuredDoseReferenceSequence = value + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.clear() + self._dataset.ReferencedMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedMeasuredDoseReference(self, item: ReferencedMeasuredDoseReferenceSequenceItem): + if not isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedMeasuredDoseReferenceSequenceItem") + self._ReferencedMeasuredDoseReferenceSequence.append(item) + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedCalculatedDoseReferenceSequence(self) -> Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]: + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedCalculatedDoseReferenceSequence) == len( + self._dataset.ReferencedCalculatedDoseReferenceSequence + ): + return self._ReferencedCalculatedDoseReferenceSequence + else: + return [ + ReferencedCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedCalculatedDoseReferenceSequence + ] + return None + + @ReferencedCalculatedDoseReferenceSequence.setter + def ReferencedCalculatedDoseReferenceSequence(self, value: Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedCalculatedDoseReferenceSequence = [] + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedCalculatedDoseReferenceSequence must be a list of ReferencedCalculatedDoseReferenceSequenceItem" + " objects" + ) + else: + self._ReferencedCalculatedDoseReferenceSequence = value + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.clear() + self._dataset.ReferencedCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedCalculatedDoseReference(self, item: ReferencedCalculatedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedCalculatedDoseReferenceSequenceItem") + self._ReferencedCalculatedDoseReferenceSequence.append(item) + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def BeamLimitingDeviceLeafPairsSequence(self) -> Optional[List[BeamLimitingDeviceLeafPairsSequenceItem]]: + if "BeamLimitingDeviceLeafPairsSequence" in self._dataset: + if len(self._BeamLimitingDeviceLeafPairsSequence) == len(self._dataset.BeamLimitingDeviceLeafPairsSequence): + return self._BeamLimitingDeviceLeafPairsSequence + else: + return [BeamLimitingDeviceLeafPairsSequenceItem(x) for x in self._dataset.BeamLimitingDeviceLeafPairsSequence] + return None + + @BeamLimitingDeviceLeafPairsSequence.setter + def BeamLimitingDeviceLeafPairsSequence(self, value: Optional[List[BeamLimitingDeviceLeafPairsSequenceItem]]): + if value is None: + self._BeamLimitingDeviceLeafPairsSequence = [] + if "BeamLimitingDeviceLeafPairsSequence" in self._dataset: + del self._dataset.BeamLimitingDeviceLeafPairsSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDeviceLeafPairsSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDeviceLeafPairsSequence must be a list of BeamLimitingDeviceLeafPairsSequenceItem objects" + ) + else: + self._BeamLimitingDeviceLeafPairsSequence = value + if "BeamLimitingDeviceLeafPairsSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceLeafPairsSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceLeafPairsSequence.clear() + self._dataset.BeamLimitingDeviceLeafPairsSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDeviceLeafPairs(self, item: BeamLimitingDeviceLeafPairsSequenceItem): + if not isinstance(item, BeamLimitingDeviceLeafPairsSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDeviceLeafPairsSequenceItem") + self._BeamLimitingDeviceLeafPairsSequence.append(item) + if "BeamLimitingDeviceLeafPairsSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceLeafPairsSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceLeafPairsSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceSequence(self) -> Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]: + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingDeviceSequence) == len(self._dataset.EnhancedRTBeamLimitingDeviceSequence): + return self._EnhancedRTBeamLimitingDeviceSequence + else: + return [ + EnhancedRTBeamLimitingDeviceSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingDeviceSequence + ] + return None + + @EnhancedRTBeamLimitingDeviceSequence.setter + def EnhancedRTBeamLimitingDeviceSequence(self, value: Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingDeviceSequence = [] + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingDeviceSequence must be a list of EnhancedRTBeamLimitingDeviceSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingDeviceSequence = value + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.clear() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingDevice(self, item: EnhancedRTBeamLimitingDeviceSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingDeviceSequenceItem") + self._EnhancedRTBeamLimitingDeviceSequence.append(item) + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self) -> Optional[str]: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + return self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + return None + + @EnhancedRTBeamLimitingDeviceDefinitionFlag.setter + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self, value: Optional[str]): + if value is None: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + else: + self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag = value + + @property + def RecordedWedgeSequence(self) -> Optional[List[RecordedWedgeSequenceItem]]: + if "RecordedWedgeSequence" in self._dataset: + if len(self._RecordedWedgeSequence) == len(self._dataset.RecordedWedgeSequence): + return self._RecordedWedgeSequence + else: + return [RecordedWedgeSequenceItem(x) for x in self._dataset.RecordedWedgeSequence] + return None + + @RecordedWedgeSequence.setter + def RecordedWedgeSequence(self, value: Optional[List[RecordedWedgeSequenceItem]]): + if value is None: + self._RecordedWedgeSequence = [] + if "RecordedWedgeSequence" in self._dataset: + del self._dataset.RecordedWedgeSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedWedgeSequenceItem) for item in value): + raise ValueError("RecordedWedgeSequence must be a list of RecordedWedgeSequenceItem objects") + else: + self._RecordedWedgeSequence = value + if "RecordedWedgeSequence" not in self._dataset: + self._dataset.RecordedWedgeSequence = pydicom.Sequence() + self._dataset.RecordedWedgeSequence.clear() + self._dataset.RecordedWedgeSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedWedge(self, item: RecordedWedgeSequenceItem): + if not isinstance(item, RecordedWedgeSequenceItem): + raise ValueError("Item must be an instance of RecordedWedgeSequenceItem") + self._RecordedWedgeSequence.append(item) + if "RecordedWedgeSequence" not in self._dataset: + self._dataset.RecordedWedgeSequence = pydicom.Sequence() + self._dataset.RecordedWedgeSequence.append(item.to_dataset()) + + @property + def RecordedCompensatorSequence(self) -> Optional[List[RecordedCompensatorSequenceItem]]: + if "RecordedCompensatorSequence" in self._dataset: + if len(self._RecordedCompensatorSequence) == len(self._dataset.RecordedCompensatorSequence): + return self._RecordedCompensatorSequence + else: + return [RecordedCompensatorSequenceItem(x) for x in self._dataset.RecordedCompensatorSequence] + return None + + @RecordedCompensatorSequence.setter + def RecordedCompensatorSequence(self, value: Optional[List[RecordedCompensatorSequenceItem]]): + if value is None: + self._RecordedCompensatorSequence = [] + if "RecordedCompensatorSequence" in self._dataset: + del self._dataset.RecordedCompensatorSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedCompensatorSequenceItem) for item in value): + raise ValueError("RecordedCompensatorSequence must be a list of RecordedCompensatorSequenceItem objects") + else: + self._RecordedCompensatorSequence = value + if "RecordedCompensatorSequence" not in self._dataset: + self._dataset.RecordedCompensatorSequence = pydicom.Sequence() + self._dataset.RecordedCompensatorSequence.clear() + self._dataset.RecordedCompensatorSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedCompensator(self, item: RecordedCompensatorSequenceItem): + if not isinstance(item, RecordedCompensatorSequenceItem): + raise ValueError("Item must be an instance of RecordedCompensatorSequenceItem") + self._RecordedCompensatorSequence.append(item) + if "RecordedCompensatorSequence" not in self._dataset: + self._dataset.RecordedCompensatorSequence = pydicom.Sequence() + self._dataset.RecordedCompensatorSequence.append(item.to_dataset()) + + @property + def RecordedBlockSequence(self) -> Optional[List[RecordedBlockSequenceItem]]: + if "RecordedBlockSequence" in self._dataset: + if len(self._RecordedBlockSequence) == len(self._dataset.RecordedBlockSequence): + return self._RecordedBlockSequence + else: + return [RecordedBlockSequenceItem(x) for x in self._dataset.RecordedBlockSequence] + return None + + @RecordedBlockSequence.setter + def RecordedBlockSequence(self, value: Optional[List[RecordedBlockSequenceItem]]): + if value is None: + self._RecordedBlockSequence = [] + if "RecordedBlockSequence" in self._dataset: + del self._dataset.RecordedBlockSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedBlockSequenceItem) for item in value): + raise ValueError("RecordedBlockSequence must be a list of RecordedBlockSequenceItem objects") + else: + self._RecordedBlockSequence = value + if "RecordedBlockSequence" not in self._dataset: + self._dataset.RecordedBlockSequence = pydicom.Sequence() + self._dataset.RecordedBlockSequence.clear() + self._dataset.RecordedBlockSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedBlock(self, item: RecordedBlockSequenceItem): + if not isinstance(item, RecordedBlockSequenceItem): + raise ValueError("Item must be an instance of RecordedBlockSequenceItem") + self._RecordedBlockSequence.append(item) + if "RecordedBlockSequence" not in self._dataset: + self._dataset.RecordedBlockSequence = pydicom.Sequence() + self._dataset.RecordedBlockSequence.append(item.to_dataset()) + + @property + def SourceAxisDistance(self) -> Optional[Decimal]: + if "SourceAxisDistance" in self._dataset: + return self._dataset.SourceAxisDistance + return None + + @SourceAxisDistance.setter + def SourceAxisDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceAxisDistance" in self._dataset: + del self._dataset.SourceAxisDistance + else: + self._dataset.SourceAxisDistance = value + + @property + def BeamName(self) -> Optional[str]: + if "BeamName" in self._dataset: + return self._dataset.BeamName + return None + + @BeamName.setter + def BeamName(self, value: Optional[str]): + if value is None: + if "BeamName" in self._dataset: + del self._dataset.BeamName + else: + self._dataset.BeamName = value + + @property + def BeamDescription(self) -> Optional[str]: + if "BeamDescription" in self._dataset: + return self._dataset.BeamDescription + return None + + @BeamDescription.setter + def BeamDescription(self, value: Optional[str]): + if value is None: + if "BeamDescription" in self._dataset: + del self._dataset.BeamDescription + else: + self._dataset.BeamDescription = value + + @property + def BeamType(self) -> Optional[str]: + if "BeamType" in self._dataset: + return self._dataset.BeamType + return None + + @BeamType.setter + def BeamType(self, value: Optional[str]): + if value is None: + if "BeamType" in self._dataset: + del self._dataset.BeamType + else: + self._dataset.BeamType = value + + @property + def RadiationType(self) -> Optional[str]: + if "RadiationType" in self._dataset: + return self._dataset.RadiationType + return None + + @RadiationType.setter + def RadiationType(self, value: Optional[str]): + if value is None: + if "RadiationType" in self._dataset: + del self._dataset.RadiationType + else: + self._dataset.RadiationType = value + + @property + def HighDoseTechniqueType(self) -> Optional[str]: + if "HighDoseTechniqueType" in self._dataset: + return self._dataset.HighDoseTechniqueType + return None + + @HighDoseTechniqueType.setter + def HighDoseTechniqueType(self, value: Optional[str]): + if value is None: + if "HighDoseTechniqueType" in self._dataset: + del self._dataset.HighDoseTechniqueType + else: + self._dataset.HighDoseTechniqueType = value + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def NumberOfWedges(self) -> Optional[int]: + if "NumberOfWedges" in self._dataset: + return self._dataset.NumberOfWedges + return None + + @NumberOfWedges.setter + def NumberOfWedges(self, value: Optional[int]): + if value is None: + if "NumberOfWedges" in self._dataset: + del self._dataset.NumberOfWedges + else: + self._dataset.NumberOfWedges = value + + @property + def NumberOfCompensators(self) -> Optional[int]: + if "NumberOfCompensators" in self._dataset: + return self._dataset.NumberOfCompensators + return None + + @NumberOfCompensators.setter + def NumberOfCompensators(self, value: Optional[int]): + if value is None: + if "NumberOfCompensators" in self._dataset: + del self._dataset.NumberOfCompensators + else: + self._dataset.NumberOfCompensators = value + + @property + def NumberOfBoli(self) -> Optional[int]: + if "NumberOfBoli" in self._dataset: + return self._dataset.NumberOfBoli + return None + + @NumberOfBoli.setter + def NumberOfBoli(self, value: Optional[int]): + if value is None: + if "NumberOfBoli" in self._dataset: + del self._dataset.NumberOfBoli + else: + self._dataset.NumberOfBoli = value + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def ApplicatorSequence(self) -> Optional[List[ApplicatorSequenceItem]]: + if "ApplicatorSequence" in self._dataset: + if len(self._ApplicatorSequence) == len(self._dataset.ApplicatorSequence): + return self._ApplicatorSequence + else: + return [ApplicatorSequenceItem(x) for x in self._dataset.ApplicatorSequence] + return None + + @ApplicatorSequence.setter + def ApplicatorSequence(self, value: Optional[List[ApplicatorSequenceItem]]): + if value is None: + self._ApplicatorSequence = [] + if "ApplicatorSequence" in self._dataset: + del self._dataset.ApplicatorSequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicatorSequenceItem) for item in value): + raise ValueError("ApplicatorSequence must be a list of ApplicatorSequenceItem objects") + else: + self._ApplicatorSequence = value + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.clear() + self._dataset.ApplicatorSequence.extend([item.to_dataset() for item in value]) + + def add_Applicator(self, item: ApplicatorSequenceItem): + if not isinstance(item, ApplicatorSequenceItem): + raise ValueError("Item must be an instance of ApplicatorSequenceItem") + self._ApplicatorSequence.append(item) + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.append(item.to_dataset()) + + @property + def NumberOfControlPoints(self) -> Optional[int]: + if "NumberOfControlPoints" in self._dataset: + return self._dataset.NumberOfControlPoints + return None + + @NumberOfControlPoints.setter + def NumberOfControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfControlPoints" in self._dataset: + del self._dataset.NumberOfControlPoints + else: + self._dataset.NumberOfControlPoints = value + + @property + def GeneralAccessorySequence(self) -> Optional[List[GeneralAccessorySequenceItem]]: + if "GeneralAccessorySequence" in self._dataset: + if len(self._GeneralAccessorySequence) == len(self._dataset.GeneralAccessorySequence): + return self._GeneralAccessorySequence + else: + return [GeneralAccessorySequenceItem(x) for x in self._dataset.GeneralAccessorySequence] + return None + + @GeneralAccessorySequence.setter + def GeneralAccessorySequence(self, value: Optional[List[GeneralAccessorySequenceItem]]): + if value is None: + self._GeneralAccessorySequence = [] + if "GeneralAccessorySequence" in self._dataset: + del self._dataset.GeneralAccessorySequence + elif not isinstance(value, list) or not all(isinstance(item, GeneralAccessorySequenceItem) for item in value): + raise ValueError("GeneralAccessorySequence must be a list of GeneralAccessorySequenceItem objects") + else: + self._GeneralAccessorySequence = value + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.clear() + self._dataset.GeneralAccessorySequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessory(self, item: GeneralAccessorySequenceItem): + if not isinstance(item, GeneralAccessorySequenceItem): + raise ValueError("Item must be an instance of GeneralAccessorySequenceItem") + self._GeneralAccessorySequence.append(item) + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.append(item.to_dataset()) + + @property + def RadiationDeviceConfigurationAndCommissioningKeySequence( + self, + ) -> Optional[List[RadiationDeviceConfigurationAndCommissioningKeySequenceItem]]: + if "RadiationDeviceConfigurationAndCommissioningKeySequence" in self._dataset: + if len(self._RadiationDeviceConfigurationAndCommissioningKeySequence) == len( + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + ): + return self._RadiationDeviceConfigurationAndCommissioningKeySequence + else: + return [ + RadiationDeviceConfigurationAndCommissioningKeySequenceItem(x) + for x in self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + ] + return None + + @RadiationDeviceConfigurationAndCommissioningKeySequence.setter + def RadiationDeviceConfigurationAndCommissioningKeySequence( + self, value: Optional[List[RadiationDeviceConfigurationAndCommissioningKeySequenceItem]] + ): + if value is None: + self._RadiationDeviceConfigurationAndCommissioningKeySequence = [] + if "RadiationDeviceConfigurationAndCommissioningKeySequence" in self._dataset: + del self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence + elif not isinstance(value, list) or not all( + isinstance(item, RadiationDeviceConfigurationAndCommissioningKeySequenceItem) for item in value + ): + raise ValueError( + "RadiationDeviceConfigurationAndCommissioningKeySequence must be a list of" + " RadiationDeviceConfigurationAndCommissioningKeySequenceItem objects" + ) + else: + self._RadiationDeviceConfigurationAndCommissioningKeySequence = value + if "RadiationDeviceConfigurationAndCommissioningKeySequence" not in self._dataset: + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence = pydicom.Sequence() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.clear() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.extend([item.to_dataset() for item in value]) + + def add_RadiationDeviceConfigurationAndCommissioningKey( + self, item: RadiationDeviceConfigurationAndCommissioningKeySequenceItem + ): + if not isinstance(item, RadiationDeviceConfigurationAndCommissioningKeySequenceItem): + raise ValueError("Item must be an instance of RadiationDeviceConfigurationAndCommissioningKeySequenceItem") + self._RadiationDeviceConfigurationAndCommissioningKeySequence.append(item) + if "RadiationDeviceConfigurationAndCommissioningKeySequence" not in self._dataset: + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence = pydicom.Sequence() + self._dataset.RadiationDeviceConfigurationAndCommissioningKeySequence.append(item.to_dataset()) + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def InterlockSequence(self) -> Optional[List[InterlockSequenceItem]]: + if "InterlockSequence" in self._dataset: + if len(self._InterlockSequence) == len(self._dataset.InterlockSequence): + return self._InterlockSequence + else: + return [InterlockSequenceItem(x) for x in self._dataset.InterlockSequence] + return None + + @InterlockSequence.setter + def InterlockSequence(self, value: Optional[List[InterlockSequenceItem]]): + if value is None: + self._InterlockSequence = [] + if "InterlockSequence" in self._dataset: + del self._dataset.InterlockSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockSequenceItem) for item in value): + raise ValueError("InterlockSequence must be a list of InterlockSequenceItem objects") + else: + self._InterlockSequence = value + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.clear() + self._dataset.InterlockSequence.extend([item.to_dataset() for item in value]) + + def add_Interlock(self, item: InterlockSequenceItem): + if not isinstance(item, InterlockSequenceItem): + raise ValueError("Item must be an instance of InterlockSequenceItem") + self._InterlockSequence.append(item) + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.append(item.to_dataset()) + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def ReferencedVerificationImageSequence(self) -> Optional[List[ReferencedVerificationImageSequenceItem]]: + if "ReferencedVerificationImageSequence" in self._dataset: + if len(self._ReferencedVerificationImageSequence) == len(self._dataset.ReferencedVerificationImageSequence): + return self._ReferencedVerificationImageSequence + else: + return [ReferencedVerificationImageSequenceItem(x) for x in self._dataset.ReferencedVerificationImageSequence] + return None + + @ReferencedVerificationImageSequence.setter + def ReferencedVerificationImageSequence(self, value: Optional[List[ReferencedVerificationImageSequenceItem]]): + if value is None: + self._ReferencedVerificationImageSequence = [] + if "ReferencedVerificationImageSequence" in self._dataset: + del self._dataset.ReferencedVerificationImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedVerificationImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedVerificationImageSequence must be a list of ReferencedVerificationImageSequenceItem objects" + ) + else: + self._ReferencedVerificationImageSequence = value + if "ReferencedVerificationImageSequence" not in self._dataset: + self._dataset.ReferencedVerificationImageSequence = pydicom.Sequence() + self._dataset.ReferencedVerificationImageSequence.clear() + self._dataset.ReferencedVerificationImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedVerificationImage(self, item: ReferencedVerificationImageSequenceItem): + if not isinstance(item, ReferencedVerificationImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedVerificationImageSequenceItem") + self._ReferencedVerificationImageSequence.append(item) + if "ReferencedVerificationImageSequence" not in self._dataset: + self._dataset.ReferencedVerificationImageSequence = pydicom.Sequence() + self._dataset.ReferencedVerificationImageSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSetupNumber(self) -> Optional[int]: + if "ReferencedPatientSetupNumber" in self._dataset: + return self._dataset.ReferencedPatientSetupNumber + return None + + @ReferencedPatientSetupNumber.setter + def ReferencedPatientSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedPatientSetupNumber" in self._dataset: + del self._dataset.ReferencedPatientSetupNumber + else: + self._dataset.ReferencedPatientSetupNumber = value + + @property + def ReferencedBolusSequence(self) -> Optional[List[ReferencedBolusSequenceItem]]: + if "ReferencedBolusSequence" in self._dataset: + if len(self._ReferencedBolusSequence) == len(self._dataset.ReferencedBolusSequence): + return self._ReferencedBolusSequence + else: + return [ReferencedBolusSequenceItem(x) for x in self._dataset.ReferencedBolusSequence] + return None + + @ReferencedBolusSequence.setter + def ReferencedBolusSequence(self, value: Optional[List[ReferencedBolusSequenceItem]]): + if value is None: + self._ReferencedBolusSequence = [] + if "ReferencedBolusSequence" in self._dataset: + del self._dataset.ReferencedBolusSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBolusSequenceItem) for item in value): + raise ValueError("ReferencedBolusSequence must be a list of ReferencedBolusSequenceItem objects") + else: + self._ReferencedBolusSequence = value + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.clear() + self._dataset.ReferencedBolusSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBolus(self, item: ReferencedBolusSequenceItem): + if not isinstance(item, ReferencedBolusSequenceItem): + raise ValueError("Item must be an instance of ReferencedBolusSequenceItem") + self._ReferencedBolusSequence.append(item) + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.append(item.to_dataset()) + + @property + def DoseCalibrationConditionsSequence(self) -> Optional[List[DoseCalibrationConditionsSequenceItem]]: + if "DoseCalibrationConditionsSequence" in self._dataset: + if len(self._DoseCalibrationConditionsSequence) == len(self._dataset.DoseCalibrationConditionsSequence): + return self._DoseCalibrationConditionsSequence + else: + return [DoseCalibrationConditionsSequenceItem(x) for x in self._dataset.DoseCalibrationConditionsSequence] + return None + + @DoseCalibrationConditionsSequence.setter + def DoseCalibrationConditionsSequence(self, value: Optional[List[DoseCalibrationConditionsSequenceItem]]): + if value is None: + self._DoseCalibrationConditionsSequence = [] + if "DoseCalibrationConditionsSequence" in self._dataset: + del self._dataset.DoseCalibrationConditionsSequence + elif not isinstance(value, list) or not all(isinstance(item, DoseCalibrationConditionsSequenceItem) for item in value): + raise ValueError( + "DoseCalibrationConditionsSequence must be a list of DoseCalibrationConditionsSequenceItem objects" + ) + else: + self._DoseCalibrationConditionsSequence = value + if "DoseCalibrationConditionsSequence" not in self._dataset: + self._dataset.DoseCalibrationConditionsSequence = pydicom.Sequence() + self._dataset.DoseCalibrationConditionsSequence.clear() + self._dataset.DoseCalibrationConditionsSequence.extend([item.to_dataset() for item in value]) + + def add_DoseCalibrationConditions(self, item: DoseCalibrationConditionsSequenceItem): + if not isinstance(item, DoseCalibrationConditionsSequenceItem): + raise ValueError("Item must be an instance of DoseCalibrationConditionsSequenceItem") + self._DoseCalibrationConditionsSequence.append(item) + if "DoseCalibrationConditionsSequence" not in self._dataset: + self._dataset.DoseCalibrationConditionsSequence = pydicom.Sequence() + self._dataset.DoseCalibrationConditionsSequence.append(item.to_dataset()) + + @property + def DoseCalibrationConditionsVerifiedFlag(self) -> Optional[str]: + if "DoseCalibrationConditionsVerifiedFlag" in self._dataset: + return self._dataset.DoseCalibrationConditionsVerifiedFlag + return None + + @DoseCalibrationConditionsVerifiedFlag.setter + def DoseCalibrationConditionsVerifiedFlag(self, value: Optional[str]): + if value is None: + if "DoseCalibrationConditionsVerifiedFlag" in self._dataset: + del self._dataset.DoseCalibrationConditionsVerifiedFlag + else: + self._dataset.DoseCalibrationConditionsVerifiedFlag = value + + @property + def GatingBeamHoldTransitionSequence(self) -> Optional[List[GatingBeamHoldTransitionSequenceItem]]: + if "GatingBeamHoldTransitionSequence" in self._dataset: + if len(self._GatingBeamHoldTransitionSequence) == len(self._dataset.GatingBeamHoldTransitionSequence): + return self._GatingBeamHoldTransitionSequence + else: + return [GatingBeamHoldTransitionSequenceItem(x) for x in self._dataset.GatingBeamHoldTransitionSequence] + return None + + @GatingBeamHoldTransitionSequence.setter + def GatingBeamHoldTransitionSequence(self, value: Optional[List[GatingBeamHoldTransitionSequenceItem]]): + if value is None: + self._GatingBeamHoldTransitionSequence = [] + if "GatingBeamHoldTransitionSequence" in self._dataset: + del self._dataset.GatingBeamHoldTransitionSequence + elif not isinstance(value, list) or not all(isinstance(item, GatingBeamHoldTransitionSequenceItem) for item in value): + raise ValueError("GatingBeamHoldTransitionSequence must be a list of GatingBeamHoldTransitionSequenceItem objects") + else: + self._GatingBeamHoldTransitionSequence = value + if "GatingBeamHoldTransitionSequence" not in self._dataset: + self._dataset.GatingBeamHoldTransitionSequence = pydicom.Sequence() + self._dataset.GatingBeamHoldTransitionSequence.clear() + self._dataset.GatingBeamHoldTransitionSequence.extend([item.to_dataset() for item in value]) + + def add_GatingBeamHoldTransition(self, item: GatingBeamHoldTransitionSequenceItem): + if not isinstance(item, GatingBeamHoldTransitionSequenceItem): + raise ValueError("Item must be an instance of GatingBeamHoldTransitionSequenceItem") + self._GatingBeamHoldTransitionSequence.append(item) + if "GatingBeamHoldTransitionSequence" not in self._dataset: + self._dataset.GatingBeamHoldTransitionSequence = pydicom.Sequence() + self._dataset.GatingBeamHoldTransitionSequence.append(item.to_dataset()) + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value diff --git a/tdwii_plus_examples/domain_model/treatment_session_ion_beam_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_session_ion_beam_sequence_item.py new file mode 100644 index 0000000..87b9b0f --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_session_ion_beam_sequence_item.py @@ -0,0 +1,1303 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .applicator_sequence_item import ApplicatorSequenceItem +from .beam_limiting_device_leaf_pairs_sequence_item import ( + BeamLimitingDeviceLeafPairsSequenceItem, +) +from .code_sequence_item import CodeSequenceItem +from .delivered_depth_dose_parameters_sequence_item import ( + DeliveredDepthDoseParametersSequenceItem, +) +from .enhanced_rt_beam_limiting_device_sequence_item import ( + EnhancedRTBeamLimitingDeviceSequenceItem, +) +from .general_accessory_sequence_item import GeneralAccessorySequenceItem +from .interlock_sequence_item import InterlockSequenceItem +from .ion_control_point_delivery_sequence_item import ( + IonControlPointDeliverySequenceItem, +) +from .recorded_block_sequence_item import RecordedBlockSequenceItem +from .recorded_compensator_sequence_item import RecordedCompensatorSequenceItem +from .recorded_lateral_spreading_device_sequence_item import ( + RecordedLateralSpreadingDeviceSequenceItem, +) +from .recorded_range_modulator_sequence_item import RecordedRangeModulatorSequenceItem +from .recorded_range_shifter_sequence_item import RecordedRangeShifterSequenceItem +from .recorded_snout_sequence_item import RecordedSnoutSequenceItem +from .recorded_wedge_sequence_item import RecordedWedgeSequenceItem +from .referenced_bolus_sequence_item import ReferencedBolusSequenceItem +from .referenced_calculated_dose_reference_sequence_item import ( + ReferencedCalculatedDoseReferenceSequenceItem, +) +from .referenced_measured_dose_reference_sequence_item import ( + ReferencedMeasuredDoseReferenceSequenceItem, +) +from .referenced_verification_image_sequence_item import ( + ReferencedVerificationImageSequenceItem, +) + + +class TreatmentSessionIonBeamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IonControlPointDeliverySequence: List[IonControlPointDeliverySequenceItem] = [] + self._ReferencedMeasuredDoseReferenceSequence: List[ReferencedMeasuredDoseReferenceSequenceItem] = [] + self._ReferencedCalculatedDoseReferenceSequence: List[ReferencedCalculatedDoseReferenceSequenceItem] = [] + self._BeamLimitingDeviceLeafPairsSequence: List[BeamLimitingDeviceLeafPairsSequenceItem] = [] + self._EnhancedRTBeamLimitingDeviceSequence: List[EnhancedRTBeamLimitingDeviceSequenceItem] = [] + self._RecordedWedgeSequence: List[RecordedWedgeSequenceItem] = [] + self._RecordedCompensatorSequence: List[RecordedCompensatorSequenceItem] = [] + self._RecordedBlockSequence: List[RecordedBlockSequenceItem] = [] + self._RecordedSnoutSequence: List[RecordedSnoutSequenceItem] = [] + self._RecordedRangeShifterSequence: List[RecordedRangeShifterSequenceItem] = [] + self._RecordedLateralSpreadingDeviceSequence: List[RecordedLateralSpreadingDeviceSequenceItem] = [] + self._RecordedRangeModulatorSequence: List[RecordedRangeModulatorSequenceItem] = [] + self._ApplicatorSequence: List[ApplicatorSequenceItem] = [] + self._GeneralAccessorySequence: List[GeneralAccessorySequenceItem] = [] + self._DeliveredDepthDoseParametersSequence: List[DeliveredDepthDoseParametersSequenceItem] = [] + self._RTTreatmentTerminationReasonCodeSequence: List[CodeSequenceItem] = [] + self._MachineSpecificTreatmentTerminationCodeSequence: List[CodeSequenceItem] = [] + self._InterlockSequence: List[InterlockSequenceItem] = [] + self._ReferencedVerificationImageSequence: List[ReferencedVerificationImageSequenceItem] = [] + self._ReferencedBolusSequence: List[ReferencedBolusSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CurrentFractionNumber(self) -> Optional[int]: + if "CurrentFractionNumber" in self._dataset: + return self._dataset.CurrentFractionNumber + return None + + @CurrentFractionNumber.setter + def CurrentFractionNumber(self, value: Optional[int]): + if value is None: + if "CurrentFractionNumber" in self._dataset: + del self._dataset.CurrentFractionNumber + else: + self._dataset.CurrentFractionNumber = value + + @property + def TreatmentTerminationStatus(self) -> Optional[str]: + if "TreatmentTerminationStatus" in self._dataset: + return self._dataset.TreatmentTerminationStatus + return None + + @TreatmentTerminationStatus.setter + def TreatmentTerminationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationStatus" in self._dataset: + del self._dataset.TreatmentTerminationStatus + else: + self._dataset.TreatmentTerminationStatus = value + + @property + def TreatmentVerificationStatus(self) -> Optional[str]: + if "TreatmentVerificationStatus" in self._dataset: + return self._dataset.TreatmentVerificationStatus + return None + + @TreatmentVerificationStatus.setter + def TreatmentVerificationStatus(self, value: Optional[str]): + if value is None: + if "TreatmentVerificationStatus" in self._dataset: + del self._dataset.TreatmentVerificationStatus + else: + self._dataset.TreatmentVerificationStatus = value + + @property + def SpecifiedPrimaryMeterset(self) -> Optional[Decimal]: + if "SpecifiedPrimaryMeterset" in self._dataset: + return self._dataset.SpecifiedPrimaryMeterset + return None + + @SpecifiedPrimaryMeterset.setter + def SpecifiedPrimaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedPrimaryMeterset" in self._dataset: + del self._dataset.SpecifiedPrimaryMeterset + else: + self._dataset.SpecifiedPrimaryMeterset = value + + @property + def SpecifiedSecondaryMeterset(self) -> Optional[Decimal]: + if "SpecifiedSecondaryMeterset" in self._dataset: + return self._dataset.SpecifiedSecondaryMeterset + return None + + @SpecifiedSecondaryMeterset.setter + def SpecifiedSecondaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedSecondaryMeterset" in self._dataset: + del self._dataset.SpecifiedSecondaryMeterset + else: + self._dataset.SpecifiedSecondaryMeterset = value + + @property + def DeliveredPrimaryMeterset(self) -> Optional[Decimal]: + if "DeliveredPrimaryMeterset" in self._dataset: + return self._dataset.DeliveredPrimaryMeterset + return None + + @DeliveredPrimaryMeterset.setter + def DeliveredPrimaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "DeliveredPrimaryMeterset" in self._dataset: + del self._dataset.DeliveredPrimaryMeterset + else: + self._dataset.DeliveredPrimaryMeterset = value + + @property + def DeliveredSecondaryMeterset(self) -> Optional[Decimal]: + if "DeliveredSecondaryMeterset" in self._dataset: + return self._dataset.DeliveredSecondaryMeterset + return None + + @DeliveredSecondaryMeterset.setter + def DeliveredSecondaryMeterset(self, value: Optional[Decimal]): + if value is None: + if "DeliveredSecondaryMeterset" in self._dataset: + del self._dataset.DeliveredSecondaryMeterset + else: + self._dataset.DeliveredSecondaryMeterset = value + + @property + def SpecifiedTreatmentTime(self) -> Optional[Decimal]: + if "SpecifiedTreatmentTime" in self._dataset: + return self._dataset.SpecifiedTreatmentTime + return None + + @SpecifiedTreatmentTime.setter + def SpecifiedTreatmentTime(self, value: Optional[Decimal]): + if value is None: + if "SpecifiedTreatmentTime" in self._dataset: + del self._dataset.SpecifiedTreatmentTime + else: + self._dataset.SpecifiedTreatmentTime = value + + @property + def DeliveredTreatmentTime(self) -> Optional[Decimal]: + if "DeliveredTreatmentTime" in self._dataset: + return self._dataset.DeliveredTreatmentTime + return None + + @DeliveredTreatmentTime.setter + def DeliveredTreatmentTime(self, value: Optional[Decimal]): + if value is None: + if "DeliveredTreatmentTime" in self._dataset: + del self._dataset.DeliveredTreatmentTime + else: + self._dataset.DeliveredTreatmentTime = value + + @property + def IonControlPointDeliverySequence(self) -> Optional[List[IonControlPointDeliverySequenceItem]]: + if "IonControlPointDeliverySequence" in self._dataset: + if len(self._IonControlPointDeliverySequence) == len(self._dataset.IonControlPointDeliverySequence): + return self._IonControlPointDeliverySequence + else: + return [IonControlPointDeliverySequenceItem(x) for x in self._dataset.IonControlPointDeliverySequence] + return None + + @IonControlPointDeliverySequence.setter + def IonControlPointDeliverySequence(self, value: Optional[List[IonControlPointDeliverySequenceItem]]): + if value is None: + self._IonControlPointDeliverySequence = [] + if "IonControlPointDeliverySequence" in self._dataset: + del self._dataset.IonControlPointDeliverySequence + elif not isinstance(value, list) or not all(isinstance(item, IonControlPointDeliverySequenceItem) for item in value): + raise ValueError("IonControlPointDeliverySequence must be a list of IonControlPointDeliverySequenceItem objects") + else: + self._IonControlPointDeliverySequence = value + if "IonControlPointDeliverySequence" not in self._dataset: + self._dataset.IonControlPointDeliverySequence = pydicom.Sequence() + self._dataset.IonControlPointDeliverySequence.clear() + self._dataset.IonControlPointDeliverySequence.extend([item.to_dataset() for item in value]) + + def add_IonControlPointDelivery(self, item: IonControlPointDeliverySequenceItem): + if not isinstance(item, IonControlPointDeliverySequenceItem): + raise ValueError("Item must be an instance of IonControlPointDeliverySequenceItem") + self._IonControlPointDeliverySequence.append(item) + if "IonControlPointDeliverySequence" not in self._dataset: + self._dataset.IonControlPointDeliverySequence = pydicom.Sequence() + self._dataset.IonControlPointDeliverySequence.append(item.to_dataset()) + + @property + def ReferencedMeasuredDoseReferenceSequence(self) -> Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]: + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + if len(self._ReferencedMeasuredDoseReferenceSequence) == len( + self._dataset.ReferencedMeasuredDoseReferenceSequence + ): + return self._ReferencedMeasuredDoseReferenceSequence + else: + return [ + ReferencedMeasuredDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedMeasuredDoseReferenceSequence + ] + return None + + @ReferencedMeasuredDoseReferenceSequence.setter + def ReferencedMeasuredDoseReferenceSequence(self, value: Optional[List[ReferencedMeasuredDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedMeasuredDoseReferenceSequence = [] + if "ReferencedMeasuredDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedMeasuredDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedMeasuredDoseReferenceSequence must be a list of ReferencedMeasuredDoseReferenceSequenceItem objects" + ) + else: + self._ReferencedMeasuredDoseReferenceSequence = value + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.clear() + self._dataset.ReferencedMeasuredDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedMeasuredDoseReference(self, item: ReferencedMeasuredDoseReferenceSequenceItem): + if not isinstance(item, ReferencedMeasuredDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedMeasuredDoseReferenceSequenceItem") + self._ReferencedMeasuredDoseReferenceSequence.append(item) + if "ReferencedMeasuredDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedMeasuredDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedMeasuredDoseReferenceSequence.append(item.to_dataset()) + + @property + def ReferencedCalculatedDoseReferenceSequence(self) -> Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]: + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + if len(self._ReferencedCalculatedDoseReferenceSequence) == len( + self._dataset.ReferencedCalculatedDoseReferenceSequence + ): + return self._ReferencedCalculatedDoseReferenceSequence + else: + return [ + ReferencedCalculatedDoseReferenceSequenceItem(x) + for x in self._dataset.ReferencedCalculatedDoseReferenceSequence + ] + return None + + @ReferencedCalculatedDoseReferenceSequence.setter + def ReferencedCalculatedDoseReferenceSequence(self, value: Optional[List[ReferencedCalculatedDoseReferenceSequenceItem]]): + if value is None: + self._ReferencedCalculatedDoseReferenceSequence = [] + if "ReferencedCalculatedDoseReferenceSequence" in self._dataset: + del self._dataset.ReferencedCalculatedDoseReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem) for item in value + ): + raise ValueError( + "ReferencedCalculatedDoseReferenceSequence must be a list of ReferencedCalculatedDoseReferenceSequenceItem" + " objects" + ) + else: + self._ReferencedCalculatedDoseReferenceSequence = value + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.clear() + self._dataset.ReferencedCalculatedDoseReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedCalculatedDoseReference(self, item: ReferencedCalculatedDoseReferenceSequenceItem): + if not isinstance(item, ReferencedCalculatedDoseReferenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedCalculatedDoseReferenceSequenceItem") + self._ReferencedCalculatedDoseReferenceSequence.append(item) + if "ReferencedCalculatedDoseReferenceSequence" not in self._dataset: + self._dataset.ReferencedCalculatedDoseReferenceSequence = pydicom.Sequence() + self._dataset.ReferencedCalculatedDoseReferenceSequence.append(item.to_dataset()) + + @property + def BeamLimitingDeviceLeafPairsSequence(self) -> Optional[List[BeamLimitingDeviceLeafPairsSequenceItem]]: + if "BeamLimitingDeviceLeafPairsSequence" in self._dataset: + if len(self._BeamLimitingDeviceLeafPairsSequence) == len(self._dataset.BeamLimitingDeviceLeafPairsSequence): + return self._BeamLimitingDeviceLeafPairsSequence + else: + return [BeamLimitingDeviceLeafPairsSequenceItem(x) for x in self._dataset.BeamLimitingDeviceLeafPairsSequence] + return None + + @BeamLimitingDeviceLeafPairsSequence.setter + def BeamLimitingDeviceLeafPairsSequence(self, value: Optional[List[BeamLimitingDeviceLeafPairsSequenceItem]]): + if value is None: + self._BeamLimitingDeviceLeafPairsSequence = [] + if "BeamLimitingDeviceLeafPairsSequence" in self._dataset: + del self._dataset.BeamLimitingDeviceLeafPairsSequence + elif not isinstance(value, list) or not all( + isinstance(item, BeamLimitingDeviceLeafPairsSequenceItem) for item in value + ): + raise ValueError( + "BeamLimitingDeviceLeafPairsSequence must be a list of BeamLimitingDeviceLeafPairsSequenceItem objects" + ) + else: + self._BeamLimitingDeviceLeafPairsSequence = value + if "BeamLimitingDeviceLeafPairsSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceLeafPairsSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceLeafPairsSequence.clear() + self._dataset.BeamLimitingDeviceLeafPairsSequence.extend([item.to_dataset() for item in value]) + + def add_BeamLimitingDeviceLeafPairs(self, item: BeamLimitingDeviceLeafPairsSequenceItem): + if not isinstance(item, BeamLimitingDeviceLeafPairsSequenceItem): + raise ValueError("Item must be an instance of BeamLimitingDeviceLeafPairsSequenceItem") + self._BeamLimitingDeviceLeafPairsSequence.append(item) + if "BeamLimitingDeviceLeafPairsSequence" not in self._dataset: + self._dataset.BeamLimitingDeviceLeafPairsSequence = pydicom.Sequence() + self._dataset.BeamLimitingDeviceLeafPairsSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceSequence(self) -> Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]: + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + if len(self._EnhancedRTBeamLimitingDeviceSequence) == len(self._dataset.EnhancedRTBeamLimitingDeviceSequence): + return self._EnhancedRTBeamLimitingDeviceSequence + else: + return [ + EnhancedRTBeamLimitingDeviceSequenceItem(x) for x in self._dataset.EnhancedRTBeamLimitingDeviceSequence + ] + return None + + @EnhancedRTBeamLimitingDeviceSequence.setter + def EnhancedRTBeamLimitingDeviceSequence(self, value: Optional[List[EnhancedRTBeamLimitingDeviceSequenceItem]]): + if value is None: + self._EnhancedRTBeamLimitingDeviceSequence = [] + if "EnhancedRTBeamLimitingDeviceSequence" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem) for item in value + ): + raise ValueError( + "EnhancedRTBeamLimitingDeviceSequence must be a list of EnhancedRTBeamLimitingDeviceSequenceItem objects" + ) + else: + self._EnhancedRTBeamLimitingDeviceSequence = value + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.clear() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_EnhancedRTBeamLimitingDevice(self, item: EnhancedRTBeamLimitingDeviceSequenceItem): + if not isinstance(item, EnhancedRTBeamLimitingDeviceSequenceItem): + raise ValueError("Item must be an instance of EnhancedRTBeamLimitingDeviceSequenceItem") + self._EnhancedRTBeamLimitingDeviceSequence.append(item) + if "EnhancedRTBeamLimitingDeviceSequence" not in self._dataset: + self._dataset.EnhancedRTBeamLimitingDeviceSequence = pydicom.Sequence() + self._dataset.EnhancedRTBeamLimitingDeviceSequence.append(item.to_dataset()) + + @property + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self) -> Optional[str]: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + return self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + return None + + @EnhancedRTBeamLimitingDeviceDefinitionFlag.setter + def EnhancedRTBeamLimitingDeviceDefinitionFlag(self, value: Optional[str]): + if value is None: + if "EnhancedRTBeamLimitingDeviceDefinitionFlag" in self._dataset: + del self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag + else: + self._dataset.EnhancedRTBeamLimitingDeviceDefinitionFlag = value + + @property + def RecordedWedgeSequence(self) -> Optional[List[RecordedWedgeSequenceItem]]: + if "RecordedWedgeSequence" in self._dataset: + if len(self._RecordedWedgeSequence) == len(self._dataset.RecordedWedgeSequence): + return self._RecordedWedgeSequence + else: + return [RecordedWedgeSequenceItem(x) for x in self._dataset.RecordedWedgeSequence] + return None + + @RecordedWedgeSequence.setter + def RecordedWedgeSequence(self, value: Optional[List[RecordedWedgeSequenceItem]]): + if value is None: + self._RecordedWedgeSequence = [] + if "RecordedWedgeSequence" in self._dataset: + del self._dataset.RecordedWedgeSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedWedgeSequenceItem) for item in value): + raise ValueError("RecordedWedgeSequence must be a list of RecordedWedgeSequenceItem objects") + else: + self._RecordedWedgeSequence = value + if "RecordedWedgeSequence" not in self._dataset: + self._dataset.RecordedWedgeSequence = pydicom.Sequence() + self._dataset.RecordedWedgeSequence.clear() + self._dataset.RecordedWedgeSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedWedge(self, item: RecordedWedgeSequenceItem): + if not isinstance(item, RecordedWedgeSequenceItem): + raise ValueError("Item must be an instance of RecordedWedgeSequenceItem") + self._RecordedWedgeSequence.append(item) + if "RecordedWedgeSequence" not in self._dataset: + self._dataset.RecordedWedgeSequence = pydicom.Sequence() + self._dataset.RecordedWedgeSequence.append(item.to_dataset()) + + @property + def RecordedCompensatorSequence(self) -> Optional[List[RecordedCompensatorSequenceItem]]: + if "RecordedCompensatorSequence" in self._dataset: + if len(self._RecordedCompensatorSequence) == len(self._dataset.RecordedCompensatorSequence): + return self._RecordedCompensatorSequence + else: + return [RecordedCompensatorSequenceItem(x) for x in self._dataset.RecordedCompensatorSequence] + return None + + @RecordedCompensatorSequence.setter + def RecordedCompensatorSequence(self, value: Optional[List[RecordedCompensatorSequenceItem]]): + if value is None: + self._RecordedCompensatorSequence = [] + if "RecordedCompensatorSequence" in self._dataset: + del self._dataset.RecordedCompensatorSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedCompensatorSequenceItem) for item in value): + raise ValueError("RecordedCompensatorSequence must be a list of RecordedCompensatorSequenceItem objects") + else: + self._RecordedCompensatorSequence = value + if "RecordedCompensatorSequence" not in self._dataset: + self._dataset.RecordedCompensatorSequence = pydicom.Sequence() + self._dataset.RecordedCompensatorSequence.clear() + self._dataset.RecordedCompensatorSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedCompensator(self, item: RecordedCompensatorSequenceItem): + if not isinstance(item, RecordedCompensatorSequenceItem): + raise ValueError("Item must be an instance of RecordedCompensatorSequenceItem") + self._RecordedCompensatorSequence.append(item) + if "RecordedCompensatorSequence" not in self._dataset: + self._dataset.RecordedCompensatorSequence = pydicom.Sequence() + self._dataset.RecordedCompensatorSequence.append(item.to_dataset()) + + @property + def RecordedBlockSequence(self) -> Optional[List[RecordedBlockSequenceItem]]: + if "RecordedBlockSequence" in self._dataset: + if len(self._RecordedBlockSequence) == len(self._dataset.RecordedBlockSequence): + return self._RecordedBlockSequence + else: + return [RecordedBlockSequenceItem(x) for x in self._dataset.RecordedBlockSequence] + return None + + @RecordedBlockSequence.setter + def RecordedBlockSequence(self, value: Optional[List[RecordedBlockSequenceItem]]): + if value is None: + self._RecordedBlockSequence = [] + if "RecordedBlockSequence" in self._dataset: + del self._dataset.RecordedBlockSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedBlockSequenceItem) for item in value): + raise ValueError("RecordedBlockSequence must be a list of RecordedBlockSequenceItem objects") + else: + self._RecordedBlockSequence = value + if "RecordedBlockSequence" not in self._dataset: + self._dataset.RecordedBlockSequence = pydicom.Sequence() + self._dataset.RecordedBlockSequence.clear() + self._dataset.RecordedBlockSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedBlock(self, item: RecordedBlockSequenceItem): + if not isinstance(item, RecordedBlockSequenceItem): + raise ValueError("Item must be an instance of RecordedBlockSequenceItem") + self._RecordedBlockSequence.append(item) + if "RecordedBlockSequence" not in self._dataset: + self._dataset.RecordedBlockSequence = pydicom.Sequence() + self._dataset.RecordedBlockSequence.append(item.to_dataset()) + + @property + def RecordedSnoutSequence(self) -> Optional[List[RecordedSnoutSequenceItem]]: + if "RecordedSnoutSequence" in self._dataset: + if len(self._RecordedSnoutSequence) == len(self._dataset.RecordedSnoutSequence): + return self._RecordedSnoutSequence + else: + return [RecordedSnoutSequenceItem(x) for x in self._dataset.RecordedSnoutSequence] + return None + + @RecordedSnoutSequence.setter + def RecordedSnoutSequence(self, value: Optional[List[RecordedSnoutSequenceItem]]): + if value is None: + self._RecordedSnoutSequence = [] + if "RecordedSnoutSequence" in self._dataset: + del self._dataset.RecordedSnoutSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedSnoutSequenceItem) for item in value): + raise ValueError("RecordedSnoutSequence must be a list of RecordedSnoutSequenceItem objects") + else: + self._RecordedSnoutSequence = value + if "RecordedSnoutSequence" not in self._dataset: + self._dataset.RecordedSnoutSequence = pydicom.Sequence() + self._dataset.RecordedSnoutSequence.clear() + self._dataset.RecordedSnoutSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedSnout(self, item: RecordedSnoutSequenceItem): + if not isinstance(item, RecordedSnoutSequenceItem): + raise ValueError("Item must be an instance of RecordedSnoutSequenceItem") + self._RecordedSnoutSequence.append(item) + if "RecordedSnoutSequence" not in self._dataset: + self._dataset.RecordedSnoutSequence = pydicom.Sequence() + self._dataset.RecordedSnoutSequence.append(item.to_dataset()) + + @property + def RecordedRangeShifterSequence(self) -> Optional[List[RecordedRangeShifterSequenceItem]]: + if "RecordedRangeShifterSequence" in self._dataset: + if len(self._RecordedRangeShifterSequence) == len(self._dataset.RecordedRangeShifterSequence): + return self._RecordedRangeShifterSequence + else: + return [RecordedRangeShifterSequenceItem(x) for x in self._dataset.RecordedRangeShifterSequence] + return None + + @RecordedRangeShifterSequence.setter + def RecordedRangeShifterSequence(self, value: Optional[List[RecordedRangeShifterSequenceItem]]): + if value is None: + self._RecordedRangeShifterSequence = [] + if "RecordedRangeShifterSequence" in self._dataset: + del self._dataset.RecordedRangeShifterSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedRangeShifterSequenceItem) for item in value): + raise ValueError("RecordedRangeShifterSequence must be a list of RecordedRangeShifterSequenceItem objects") + else: + self._RecordedRangeShifterSequence = value + if "RecordedRangeShifterSequence" not in self._dataset: + self._dataset.RecordedRangeShifterSequence = pydicom.Sequence() + self._dataset.RecordedRangeShifterSequence.clear() + self._dataset.RecordedRangeShifterSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedRangeShifter(self, item: RecordedRangeShifterSequenceItem): + if not isinstance(item, RecordedRangeShifterSequenceItem): + raise ValueError("Item must be an instance of RecordedRangeShifterSequenceItem") + self._RecordedRangeShifterSequence.append(item) + if "RecordedRangeShifterSequence" not in self._dataset: + self._dataset.RecordedRangeShifterSequence = pydicom.Sequence() + self._dataset.RecordedRangeShifterSequence.append(item.to_dataset()) + + @property + def RecordedLateralSpreadingDeviceSequence(self) -> Optional[List[RecordedLateralSpreadingDeviceSequenceItem]]: + if "RecordedLateralSpreadingDeviceSequence" in self._dataset: + if len(self._RecordedLateralSpreadingDeviceSequence) == len(self._dataset.RecordedLateralSpreadingDeviceSequence): + return self._RecordedLateralSpreadingDeviceSequence + else: + return [ + RecordedLateralSpreadingDeviceSequenceItem(x) for x in self._dataset.RecordedLateralSpreadingDeviceSequence + ] + return None + + @RecordedLateralSpreadingDeviceSequence.setter + def RecordedLateralSpreadingDeviceSequence(self, value: Optional[List[RecordedLateralSpreadingDeviceSequenceItem]]): + if value is None: + self._RecordedLateralSpreadingDeviceSequence = [] + if "RecordedLateralSpreadingDeviceSequence" in self._dataset: + del self._dataset.RecordedLateralSpreadingDeviceSequence + elif not isinstance(value, list) or not all( + isinstance(item, RecordedLateralSpreadingDeviceSequenceItem) for item in value + ): + raise ValueError( + "RecordedLateralSpreadingDeviceSequence must be a list of RecordedLateralSpreadingDeviceSequenceItem objects" + ) + else: + self._RecordedLateralSpreadingDeviceSequence = value + if "RecordedLateralSpreadingDeviceSequence" not in self._dataset: + self._dataset.RecordedLateralSpreadingDeviceSequence = pydicom.Sequence() + self._dataset.RecordedLateralSpreadingDeviceSequence.clear() + self._dataset.RecordedLateralSpreadingDeviceSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedLateralSpreadingDevice(self, item: RecordedLateralSpreadingDeviceSequenceItem): + if not isinstance(item, RecordedLateralSpreadingDeviceSequenceItem): + raise ValueError("Item must be an instance of RecordedLateralSpreadingDeviceSequenceItem") + self._RecordedLateralSpreadingDeviceSequence.append(item) + if "RecordedLateralSpreadingDeviceSequence" not in self._dataset: + self._dataset.RecordedLateralSpreadingDeviceSequence = pydicom.Sequence() + self._dataset.RecordedLateralSpreadingDeviceSequence.append(item.to_dataset()) + + @property + def RecordedRangeModulatorSequence(self) -> Optional[List[RecordedRangeModulatorSequenceItem]]: + if "RecordedRangeModulatorSequence" in self._dataset: + if len(self._RecordedRangeModulatorSequence) == len(self._dataset.RecordedRangeModulatorSequence): + return self._RecordedRangeModulatorSequence + else: + return [RecordedRangeModulatorSequenceItem(x) for x in self._dataset.RecordedRangeModulatorSequence] + return None + + @RecordedRangeModulatorSequence.setter + def RecordedRangeModulatorSequence(self, value: Optional[List[RecordedRangeModulatorSequenceItem]]): + if value is None: + self._RecordedRangeModulatorSequence = [] + if "RecordedRangeModulatorSequence" in self._dataset: + del self._dataset.RecordedRangeModulatorSequence + elif not isinstance(value, list) or not all(isinstance(item, RecordedRangeModulatorSequenceItem) for item in value): + raise ValueError("RecordedRangeModulatorSequence must be a list of RecordedRangeModulatorSequenceItem objects") + else: + self._RecordedRangeModulatorSequence = value + if "RecordedRangeModulatorSequence" not in self._dataset: + self._dataset.RecordedRangeModulatorSequence = pydicom.Sequence() + self._dataset.RecordedRangeModulatorSequence.clear() + self._dataset.RecordedRangeModulatorSequence.extend([item.to_dataset() for item in value]) + + def add_RecordedRangeModulator(self, item: RecordedRangeModulatorSequenceItem): + if not isinstance(item, RecordedRangeModulatorSequenceItem): + raise ValueError("Item must be an instance of RecordedRangeModulatorSequenceItem") + self._RecordedRangeModulatorSequence.append(item) + if "RecordedRangeModulatorSequence" not in self._dataset: + self._dataset.RecordedRangeModulatorSequence = pydicom.Sequence() + self._dataset.RecordedRangeModulatorSequence.append(item.to_dataset()) + + @property + def BeamName(self) -> Optional[str]: + if "BeamName" in self._dataset: + return self._dataset.BeamName + return None + + @BeamName.setter + def BeamName(self, value: Optional[str]): + if value is None: + if "BeamName" in self._dataset: + del self._dataset.BeamName + else: + self._dataset.BeamName = value + + @property + def BeamDescription(self) -> Optional[str]: + if "BeamDescription" in self._dataset: + return self._dataset.BeamDescription + return None + + @BeamDescription.setter + def BeamDescription(self, value: Optional[str]): + if value is None: + if "BeamDescription" in self._dataset: + del self._dataset.BeamDescription + else: + self._dataset.BeamDescription = value + + @property + def BeamType(self) -> Optional[str]: + if "BeamType" in self._dataset: + return self._dataset.BeamType + return None + + @BeamType.setter + def BeamType(self, value: Optional[str]): + if value is None: + if "BeamType" in self._dataset: + del self._dataset.BeamType + else: + self._dataset.BeamType = value + + @property + def RadiationType(self) -> Optional[str]: + if "RadiationType" in self._dataset: + return self._dataset.RadiationType + return None + + @RadiationType.setter + def RadiationType(self, value: Optional[str]): + if value is None: + if "RadiationType" in self._dataset: + del self._dataset.RadiationType + else: + self._dataset.RadiationType = value + + @property + def TreatmentDeliveryType(self) -> Optional[str]: + if "TreatmentDeliveryType" in self._dataset: + return self._dataset.TreatmentDeliveryType + return None + + @TreatmentDeliveryType.setter + def TreatmentDeliveryType(self, value: Optional[str]): + if value is None: + if "TreatmentDeliveryType" in self._dataset: + del self._dataset.TreatmentDeliveryType + else: + self._dataset.TreatmentDeliveryType = value + + @property + def NumberOfWedges(self) -> Optional[int]: + if "NumberOfWedges" in self._dataset: + return self._dataset.NumberOfWedges + return None + + @NumberOfWedges.setter + def NumberOfWedges(self, value: Optional[int]): + if value is None: + if "NumberOfWedges" in self._dataset: + del self._dataset.NumberOfWedges + else: + self._dataset.NumberOfWedges = value + + @property + def NumberOfCompensators(self) -> Optional[int]: + if "NumberOfCompensators" in self._dataset: + return self._dataset.NumberOfCompensators + return None + + @NumberOfCompensators.setter + def NumberOfCompensators(self, value: Optional[int]): + if value is None: + if "NumberOfCompensators" in self._dataset: + del self._dataset.NumberOfCompensators + else: + self._dataset.NumberOfCompensators = value + + @property + def NumberOfBoli(self) -> Optional[int]: + if "NumberOfBoli" in self._dataset: + return self._dataset.NumberOfBoli + return None + + @NumberOfBoli.setter + def NumberOfBoli(self, value: Optional[int]): + if value is None: + if "NumberOfBoli" in self._dataset: + del self._dataset.NumberOfBoli + else: + self._dataset.NumberOfBoli = value + + @property + def NumberOfBlocks(self) -> Optional[int]: + if "NumberOfBlocks" in self._dataset: + return self._dataset.NumberOfBlocks + return None + + @NumberOfBlocks.setter + def NumberOfBlocks(self, value: Optional[int]): + if value is None: + if "NumberOfBlocks" in self._dataset: + del self._dataset.NumberOfBlocks + else: + self._dataset.NumberOfBlocks = value + + @property + def ApplicatorSequence(self) -> Optional[List[ApplicatorSequenceItem]]: + if "ApplicatorSequence" in self._dataset: + if len(self._ApplicatorSequence) == len(self._dataset.ApplicatorSequence): + return self._ApplicatorSequence + else: + return [ApplicatorSequenceItem(x) for x in self._dataset.ApplicatorSequence] + return None + + @ApplicatorSequence.setter + def ApplicatorSequence(self, value: Optional[List[ApplicatorSequenceItem]]): + if value is None: + self._ApplicatorSequence = [] + if "ApplicatorSequence" in self._dataset: + del self._dataset.ApplicatorSequence + elif not isinstance(value, list) or not all(isinstance(item, ApplicatorSequenceItem) for item in value): + raise ValueError("ApplicatorSequence must be a list of ApplicatorSequenceItem objects") + else: + self._ApplicatorSequence = value + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.clear() + self._dataset.ApplicatorSequence.extend([item.to_dataset() for item in value]) + + def add_Applicator(self, item: ApplicatorSequenceItem): + if not isinstance(item, ApplicatorSequenceItem): + raise ValueError("Item must be an instance of ApplicatorSequenceItem") + self._ApplicatorSequence.append(item) + if "ApplicatorSequence" not in self._dataset: + self._dataset.ApplicatorSequence = pydicom.Sequence() + self._dataset.ApplicatorSequence.append(item.to_dataset()) + + @property + def NumberOfControlPoints(self) -> Optional[int]: + if "NumberOfControlPoints" in self._dataset: + return self._dataset.NumberOfControlPoints + return None + + @NumberOfControlPoints.setter + def NumberOfControlPoints(self, value: Optional[int]): + if value is None: + if "NumberOfControlPoints" in self._dataset: + del self._dataset.NumberOfControlPoints + else: + self._dataset.NumberOfControlPoints = value + + @property + def FixationEye(self) -> Optional[str]: + if "FixationEye" in self._dataset: + return self._dataset.FixationEye + return None + + @FixationEye.setter + def FixationEye(self, value: Optional[str]): + if value is None: + if "FixationEye" in self._dataset: + del self._dataset.FixationEye + else: + self._dataset.FixationEye = value + + @property + def RadiationMassNumber(self) -> Optional[int]: + if "RadiationMassNumber" in self._dataset: + return self._dataset.RadiationMassNumber + return None + + @RadiationMassNumber.setter + def RadiationMassNumber(self, value: Optional[int]): + if value is None: + if "RadiationMassNumber" in self._dataset: + del self._dataset.RadiationMassNumber + else: + self._dataset.RadiationMassNumber = value + + @property + def RadiationAtomicNumber(self) -> Optional[int]: + if "RadiationAtomicNumber" in self._dataset: + return self._dataset.RadiationAtomicNumber + return None + + @RadiationAtomicNumber.setter + def RadiationAtomicNumber(self, value: Optional[int]): + if value is None: + if "RadiationAtomicNumber" in self._dataset: + del self._dataset.RadiationAtomicNumber + else: + self._dataset.RadiationAtomicNumber = value + + @property + def RadiationChargeState(self) -> Optional[int]: + if "RadiationChargeState" in self._dataset: + return self._dataset.RadiationChargeState + return None + + @RadiationChargeState.setter + def RadiationChargeState(self, value: Optional[int]): + if value is None: + if "RadiationChargeState" in self._dataset: + del self._dataset.RadiationChargeState + else: + self._dataset.RadiationChargeState = value + + @property + def ScanMode(self) -> Optional[str]: + if "ScanMode" in self._dataset: + return self._dataset.ScanMode + return None + + @ScanMode.setter + def ScanMode(self, value: Optional[str]): + if value is None: + if "ScanMode" in self._dataset: + del self._dataset.ScanMode + else: + self._dataset.ScanMode = value + + @property + def ModulatedScanModeType(self) -> Optional[str]: + if "ModulatedScanModeType" in self._dataset: + return self._dataset.ModulatedScanModeType + return None + + @ModulatedScanModeType.setter + def ModulatedScanModeType(self, value: Optional[str]): + if value is None: + if "ModulatedScanModeType" in self._dataset: + del self._dataset.ModulatedScanModeType + else: + self._dataset.ModulatedScanModeType = value + + @property + def NumberOfRangeShifters(self) -> Optional[int]: + if "NumberOfRangeShifters" in self._dataset: + return self._dataset.NumberOfRangeShifters + return None + + @NumberOfRangeShifters.setter + def NumberOfRangeShifters(self, value: Optional[int]): + if value is None: + if "NumberOfRangeShifters" in self._dataset: + del self._dataset.NumberOfRangeShifters + else: + self._dataset.NumberOfRangeShifters = value + + @property + def NumberOfLateralSpreadingDevices(self) -> Optional[int]: + if "NumberOfLateralSpreadingDevices" in self._dataset: + return self._dataset.NumberOfLateralSpreadingDevices + return None + + @NumberOfLateralSpreadingDevices.setter + def NumberOfLateralSpreadingDevices(self, value: Optional[int]): + if value is None: + if "NumberOfLateralSpreadingDevices" in self._dataset: + del self._dataset.NumberOfLateralSpreadingDevices + else: + self._dataset.NumberOfLateralSpreadingDevices = value + + @property + def NumberOfRangeModulators(self) -> Optional[int]: + if "NumberOfRangeModulators" in self._dataset: + return self._dataset.NumberOfRangeModulators + return None + + @NumberOfRangeModulators.setter + def NumberOfRangeModulators(self, value: Optional[int]): + if value is None: + if "NumberOfRangeModulators" in self._dataset: + del self._dataset.NumberOfRangeModulators + else: + self._dataset.NumberOfRangeModulators = value + + @property + def PatientSupportType(self) -> Optional[str]: + if "PatientSupportType" in self._dataset: + return self._dataset.PatientSupportType + return None + + @PatientSupportType.setter + def PatientSupportType(self, value: Optional[str]): + if value is None: + if "PatientSupportType" in self._dataset: + del self._dataset.PatientSupportType + else: + self._dataset.PatientSupportType = value + + @property + def PatientSupportID(self) -> Optional[str]: + if "PatientSupportID" in self._dataset: + return self._dataset.PatientSupportID + return None + + @PatientSupportID.setter + def PatientSupportID(self, value: Optional[str]): + if value is None: + if "PatientSupportID" in self._dataset: + del self._dataset.PatientSupportID + else: + self._dataset.PatientSupportID = value + + @property + def PatientSupportAccessoryCode(self) -> Optional[str]: + if "PatientSupportAccessoryCode" in self._dataset: + return self._dataset.PatientSupportAccessoryCode + return None + + @PatientSupportAccessoryCode.setter + def PatientSupportAccessoryCode(self, value: Optional[str]): + if value is None: + if "PatientSupportAccessoryCode" in self._dataset: + del self._dataset.PatientSupportAccessoryCode + else: + self._dataset.PatientSupportAccessoryCode = value + + @property + def FixationLightAzimuthalAngle(self) -> Optional[float]: + if "FixationLightAzimuthalAngle" in self._dataset: + return self._dataset.FixationLightAzimuthalAngle + return None + + @FixationLightAzimuthalAngle.setter + def FixationLightAzimuthalAngle(self, value: Optional[float]): + if value is None: + if "FixationLightAzimuthalAngle" in self._dataset: + del self._dataset.FixationLightAzimuthalAngle + else: + self._dataset.FixationLightAzimuthalAngle = value + + @property + def FixationLightPolarAngle(self) -> Optional[float]: + if "FixationLightPolarAngle" in self._dataset: + return self._dataset.FixationLightPolarAngle + return None + + @FixationLightPolarAngle.setter + def FixationLightPolarAngle(self, value: Optional[float]): + if value is None: + if "FixationLightPolarAngle" in self._dataset: + del self._dataset.FixationLightPolarAngle + else: + self._dataset.FixationLightPolarAngle = value + + @property + def GeneralAccessorySequence(self) -> Optional[List[GeneralAccessorySequenceItem]]: + if "GeneralAccessorySequence" in self._dataset: + if len(self._GeneralAccessorySequence) == len(self._dataset.GeneralAccessorySequence): + return self._GeneralAccessorySequence + else: + return [GeneralAccessorySequenceItem(x) for x in self._dataset.GeneralAccessorySequence] + return None + + @GeneralAccessorySequence.setter + def GeneralAccessorySequence(self, value: Optional[List[GeneralAccessorySequenceItem]]): + if value is None: + self._GeneralAccessorySequence = [] + if "GeneralAccessorySequence" in self._dataset: + del self._dataset.GeneralAccessorySequence + elif not isinstance(value, list) or not all(isinstance(item, GeneralAccessorySequenceItem) for item in value): + raise ValueError("GeneralAccessorySequence must be a list of GeneralAccessorySequenceItem objects") + else: + self._GeneralAccessorySequence = value + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.clear() + self._dataset.GeneralAccessorySequence.extend([item.to_dataset() for item in value]) + + def add_GeneralAccessory(self, item: GeneralAccessorySequenceItem): + if not isinstance(item, GeneralAccessorySequenceItem): + raise ValueError("Item must be an instance of GeneralAccessorySequenceItem") + self._GeneralAccessorySequence.append(item) + if "GeneralAccessorySequence" not in self._dataset: + self._dataset.GeneralAccessorySequence = pydicom.Sequence() + self._dataset.GeneralAccessorySequence.append(item.to_dataset()) + + @property + def DeliveredDepthDoseParametersSequence(self) -> Optional[List[DeliveredDepthDoseParametersSequenceItem]]: + if "DeliveredDepthDoseParametersSequence" in self._dataset: + if len(self._DeliveredDepthDoseParametersSequence) == len(self._dataset.DeliveredDepthDoseParametersSequence): + return self._DeliveredDepthDoseParametersSequence + else: + return [ + DeliveredDepthDoseParametersSequenceItem(x) for x in self._dataset.DeliveredDepthDoseParametersSequence + ] + return None + + @DeliveredDepthDoseParametersSequence.setter + def DeliveredDepthDoseParametersSequence(self, value: Optional[List[DeliveredDepthDoseParametersSequenceItem]]): + if value is None: + self._DeliveredDepthDoseParametersSequence = [] + if "DeliveredDepthDoseParametersSequence" in self._dataset: + del self._dataset.DeliveredDepthDoseParametersSequence + elif not isinstance(value, list) or not all( + isinstance(item, DeliveredDepthDoseParametersSequenceItem) for item in value + ): + raise ValueError( + "DeliveredDepthDoseParametersSequence must be a list of DeliveredDepthDoseParametersSequenceItem objects" + ) + else: + self._DeliveredDepthDoseParametersSequence = value + if "DeliveredDepthDoseParametersSequence" not in self._dataset: + self._dataset.DeliveredDepthDoseParametersSequence = pydicom.Sequence() + self._dataset.DeliveredDepthDoseParametersSequence.clear() + self._dataset.DeliveredDepthDoseParametersSequence.extend([item.to_dataset() for item in value]) + + def add_DeliveredDepthDoseParameters(self, item: DeliveredDepthDoseParametersSequenceItem): + if not isinstance(item, DeliveredDepthDoseParametersSequenceItem): + raise ValueError("Item must be an instance of DeliveredDepthDoseParametersSequenceItem") + self._DeliveredDepthDoseParametersSequence.append(item) + if "DeliveredDepthDoseParametersSequence" not in self._dataset: + self._dataset.DeliveredDepthDoseParametersSequence = pydicom.Sequence() + self._dataset.DeliveredDepthDoseParametersSequence.append(item.to_dataset()) + + @property + def RTTreatmentTerminationReasonCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + if len(self._RTTreatmentTerminationReasonCodeSequence) == len( + self._dataset.RTTreatmentTerminationReasonCodeSequence + ): + return self._RTTreatmentTerminationReasonCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RTTreatmentTerminationReasonCodeSequence] + return None + + @RTTreatmentTerminationReasonCodeSequence.setter + def RTTreatmentTerminationReasonCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RTTreatmentTerminationReasonCodeSequence = [] + if "RTTreatmentTerminationReasonCodeSequence" in self._dataset: + del self._dataset.RTTreatmentTerminationReasonCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RTTreatmentTerminationReasonCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RTTreatmentTerminationReasonCodeSequence = value + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.clear() + self._dataset.RTTreatmentTerminationReasonCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RTTreatmentTerminationReasonCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RTTreatmentTerminationReasonCodeSequence.append(item) + if "RTTreatmentTerminationReasonCodeSequence" not in self._dataset: + self._dataset.RTTreatmentTerminationReasonCodeSequence = pydicom.Sequence() + self._dataset.RTTreatmentTerminationReasonCodeSequence.append(item.to_dataset()) + + @property + def MachineSpecificTreatmentTerminationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + if len(self._MachineSpecificTreatmentTerminationCodeSequence) == len( + self._dataset.MachineSpecificTreatmentTerminationCodeSequence + ): + return self._MachineSpecificTreatmentTerminationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MachineSpecificTreatmentTerminationCodeSequence] + return None + + @MachineSpecificTreatmentTerminationCodeSequence.setter + def MachineSpecificTreatmentTerminationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MachineSpecificTreatmentTerminationCodeSequence = [] + if "MachineSpecificTreatmentTerminationCodeSequence" in self._dataset: + del self._dataset.MachineSpecificTreatmentTerminationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MachineSpecificTreatmentTerminationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MachineSpecificTreatmentTerminationCodeSequence = value + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.clear() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MachineSpecificTreatmentTerminationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MachineSpecificTreatmentTerminationCodeSequence.append(item) + if "MachineSpecificTreatmentTerminationCodeSequence" not in self._dataset: + self._dataset.MachineSpecificTreatmentTerminationCodeSequence = pydicom.Sequence() + self._dataset.MachineSpecificTreatmentTerminationCodeSequence.append(item.to_dataset()) + + @property + def TreatmentTerminationDescription(self) -> Optional[str]: + if "TreatmentTerminationDescription" in self._dataset: + return self._dataset.TreatmentTerminationDescription + return None + + @TreatmentTerminationDescription.setter + def TreatmentTerminationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentTerminationDescription" in self._dataset: + del self._dataset.TreatmentTerminationDescription + else: + self._dataset.TreatmentTerminationDescription = value + + @property + def InterlockSequence(self) -> Optional[List[InterlockSequenceItem]]: + if "InterlockSequence" in self._dataset: + if len(self._InterlockSequence) == len(self._dataset.InterlockSequence): + return self._InterlockSequence + else: + return [InterlockSequenceItem(x) for x in self._dataset.InterlockSequence] + return None + + @InterlockSequence.setter + def InterlockSequence(self, value: Optional[List[InterlockSequenceItem]]): + if value is None: + self._InterlockSequence = [] + if "InterlockSequence" in self._dataset: + del self._dataset.InterlockSequence + elif not isinstance(value, list) or not all(isinstance(item, InterlockSequenceItem) for item in value): + raise ValueError("InterlockSequence must be a list of InterlockSequenceItem objects") + else: + self._InterlockSequence = value + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.clear() + self._dataset.InterlockSequence.extend([item.to_dataset() for item in value]) + + def add_Interlock(self, item: InterlockSequenceItem): + if not isinstance(item, InterlockSequenceItem): + raise ValueError("Item must be an instance of InterlockSequenceItem") + self._InterlockSequence.append(item) + if "InterlockSequence" not in self._dataset: + self._dataset.InterlockSequence = pydicom.Sequence() + self._dataset.InterlockSequence.append(item.to_dataset()) + + @property + def ReferencedBeamNumber(self) -> Optional[int]: + if "ReferencedBeamNumber" in self._dataset: + return self._dataset.ReferencedBeamNumber + return None + + @ReferencedBeamNumber.setter + def ReferencedBeamNumber(self, value: Optional[int]): + if value is None: + if "ReferencedBeamNumber" in self._dataset: + del self._dataset.ReferencedBeamNumber + else: + self._dataset.ReferencedBeamNumber = value + + @property + def ReferencedVerificationImageSequence(self) -> Optional[List[ReferencedVerificationImageSequenceItem]]: + if "ReferencedVerificationImageSequence" in self._dataset: + if len(self._ReferencedVerificationImageSequence) == len(self._dataset.ReferencedVerificationImageSequence): + return self._ReferencedVerificationImageSequence + else: + return [ReferencedVerificationImageSequenceItem(x) for x in self._dataset.ReferencedVerificationImageSequence] + return None + + @ReferencedVerificationImageSequence.setter + def ReferencedVerificationImageSequence(self, value: Optional[List[ReferencedVerificationImageSequenceItem]]): + if value is None: + self._ReferencedVerificationImageSequence = [] + if "ReferencedVerificationImageSequence" in self._dataset: + del self._dataset.ReferencedVerificationImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedVerificationImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedVerificationImageSequence must be a list of ReferencedVerificationImageSequenceItem objects" + ) + else: + self._ReferencedVerificationImageSequence = value + if "ReferencedVerificationImageSequence" not in self._dataset: + self._dataset.ReferencedVerificationImageSequence = pydicom.Sequence() + self._dataset.ReferencedVerificationImageSequence.clear() + self._dataset.ReferencedVerificationImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedVerificationImage(self, item: ReferencedVerificationImageSequenceItem): + if not isinstance(item, ReferencedVerificationImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedVerificationImageSequenceItem") + self._ReferencedVerificationImageSequence.append(item) + if "ReferencedVerificationImageSequence" not in self._dataset: + self._dataset.ReferencedVerificationImageSequence = pydicom.Sequence() + self._dataset.ReferencedVerificationImageSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSetupNumber(self) -> Optional[int]: + if "ReferencedPatientSetupNumber" in self._dataset: + return self._dataset.ReferencedPatientSetupNumber + return None + + @ReferencedPatientSetupNumber.setter + def ReferencedPatientSetupNumber(self, value: Optional[int]): + if value is None: + if "ReferencedPatientSetupNumber" in self._dataset: + del self._dataset.ReferencedPatientSetupNumber + else: + self._dataset.ReferencedPatientSetupNumber = value + + @property + def ReferencedToleranceTableNumber(self) -> Optional[int]: + if "ReferencedToleranceTableNumber" in self._dataset: + return self._dataset.ReferencedToleranceTableNumber + return None + + @ReferencedToleranceTableNumber.setter + def ReferencedToleranceTableNumber(self, value: Optional[int]): + if value is None: + if "ReferencedToleranceTableNumber" in self._dataset: + del self._dataset.ReferencedToleranceTableNumber + else: + self._dataset.ReferencedToleranceTableNumber = value + + @property + def ReferencedBolusSequence(self) -> Optional[List[ReferencedBolusSequenceItem]]: + if "ReferencedBolusSequence" in self._dataset: + if len(self._ReferencedBolusSequence) == len(self._dataset.ReferencedBolusSequence): + return self._ReferencedBolusSequence + else: + return [ReferencedBolusSequenceItem(x) for x in self._dataset.ReferencedBolusSequence] + return None + + @ReferencedBolusSequence.setter + def ReferencedBolusSequence(self, value: Optional[List[ReferencedBolusSequenceItem]]): + if value is None: + self._ReferencedBolusSequence = [] + if "ReferencedBolusSequence" in self._dataset: + del self._dataset.ReferencedBolusSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedBolusSequenceItem) for item in value): + raise ValueError("ReferencedBolusSequence must be a list of ReferencedBolusSequenceItem objects") + else: + self._ReferencedBolusSequence = value + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.clear() + self._dataset.ReferencedBolusSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedBolus(self, item: ReferencedBolusSequenceItem): + if not isinstance(item, ReferencedBolusSequenceItem): + raise ValueError("Item must be an instance of ReferencedBolusSequenceItem") + self._ReferencedBolusSequence.append(item) + if "ReferencedBolusSequence" not in self._dataset: + self._dataset.ReferencedBolusSequence = pydicom.Sequence() + self._dataset.ReferencedBolusSequence.append(item.to_dataset()) + + @property + def EntityLongLabel(self) -> Optional[str]: + if "EntityLongLabel" in self._dataset: + return self._dataset.EntityLongLabel + return None + + @EntityLongLabel.setter + def EntityLongLabel(self, value: Optional[str]): + if value is None: + if "EntityLongLabel" in self._dataset: + del self._dataset.EntityLongLabel + else: + self._dataset.EntityLongLabel = value diff --git a/tdwii_plus_examples/domain_model/treatment_summary_calculated_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_summary_calculated_dose_reference_sequence_item.py new file mode 100644 index 0000000..63bf1f4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_summary_calculated_dose_reference_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class TreatmentSummaryCalculatedDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CumulativeDoseToDoseReference(self) -> Optional[Decimal]: + if "CumulativeDoseToDoseReference" in self._dataset: + return self._dataset.CumulativeDoseToDoseReference + return None + + @CumulativeDoseToDoseReference.setter + def CumulativeDoseToDoseReference(self, value: Optional[Decimal]): + if value is None: + if "CumulativeDoseToDoseReference" in self._dataset: + del self._dataset.CumulativeDoseToDoseReference + else: + self._dataset.CumulativeDoseToDoseReference = value + + @property + def DoseReferenceDescription(self) -> Optional[str]: + if "DoseReferenceDescription" in self._dataset: + return self._dataset.DoseReferenceDescription + return None + + @DoseReferenceDescription.setter + def DoseReferenceDescription(self, value: Optional[str]): + if value is None: + if "DoseReferenceDescription" in self._dataset: + del self._dataset.DoseReferenceDescription + else: + self._dataset.DoseReferenceDescription = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/treatment_summary_measured_dose_reference_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_summary_measured_dose_reference_sequence_item.py new file mode 100644 index 0000000..a7fe304 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_summary_measured_dose_reference_sequence_item.py @@ -0,0 +1,54 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class TreatmentSummaryMeasuredDoseReferenceSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CumulativeDoseToDoseReference(self) -> Optional[Decimal]: + if "CumulativeDoseToDoseReference" in self._dataset: + return self._dataset.CumulativeDoseToDoseReference + return None + + @CumulativeDoseToDoseReference.setter + def CumulativeDoseToDoseReference(self, value: Optional[Decimal]): + if value is None: + if "CumulativeDoseToDoseReference" in self._dataset: + del self._dataset.CumulativeDoseToDoseReference + else: + self._dataset.CumulativeDoseToDoseReference = value + + @property + def DoseReferenceDescription(self) -> Optional[str]: + if "DoseReferenceDescription" in self._dataset: + return self._dataset.DoseReferenceDescription + return None + + @DoseReferenceDescription.setter + def DoseReferenceDescription(self, value: Optional[str]): + if value is None: + if "DoseReferenceDescription" in self._dataset: + del self._dataset.DoseReferenceDescription + else: + self._dataset.DoseReferenceDescription = value + + @property + def ReferencedDoseReferenceNumber(self) -> Optional[int]: + if "ReferencedDoseReferenceNumber" in self._dataset: + return self._dataset.ReferencedDoseReferenceNumber + return None + + @ReferencedDoseReferenceNumber.setter + def ReferencedDoseReferenceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedDoseReferenceNumber" in self._dataset: + del self._dataset.ReferencedDoseReferenceNumber + else: + self._dataset.ReferencedDoseReferenceNumber = value diff --git a/tdwii_plus_examples/domain_model/treatment_tolerance_violation_attribute_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_tolerance_violation_attribute_sequence_item.py new file mode 100644 index 0000000..f69ef7c --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_tolerance_violation_attribute_sequence_item.py @@ -0,0 +1,137 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TreatmentToleranceViolationAttributeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SelectorAttribute(self) -> Optional[int]: + if "SelectorAttribute" in self._dataset: + return self._dataset.SelectorAttribute + return None + + @SelectorAttribute.setter + def SelectorAttribute(self, value: Optional[int]): + if value is None: + if "SelectorAttribute" in self._dataset: + del self._dataset.SelectorAttribute + else: + self._dataset.SelectorAttribute = value + + @property + def SelectorValueNumber(self) -> Optional[int]: + if "SelectorValueNumber" in self._dataset: + return self._dataset.SelectorValueNumber + return None + + @SelectorValueNumber.setter + def SelectorValueNumber(self, value: Optional[int]): + if value is None: + if "SelectorValueNumber" in self._dataset: + del self._dataset.SelectorValueNumber + else: + self._dataset.SelectorValueNumber = value + + @property + def SelectorAttributeVR(self) -> Optional[str]: + if "SelectorAttributeVR" in self._dataset: + return self._dataset.SelectorAttributeVR + return None + + @SelectorAttributeVR.setter + def SelectorAttributeVR(self, value: Optional[str]): + if value is None: + if "SelectorAttributeVR" in self._dataset: + del self._dataset.SelectorAttributeVR + else: + self._dataset.SelectorAttributeVR = value + + @property + def SelectorSequencePointer(self) -> Optional[List[int]]: + if "SelectorSequencePointer" in self._dataset: + return self._dataset.SelectorSequencePointer + return None + + @SelectorSequencePointer.setter + def SelectorSequencePointer(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointer" in self._dataset: + del self._dataset.SelectorSequencePointer + else: + self._dataset.SelectorSequencePointer = value + + @property + def SelectorSequencePointerPrivateCreator(self) -> Optional[List[str]]: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + return self._dataset.SelectorSequencePointerPrivateCreator + return None + + @SelectorSequencePointerPrivateCreator.setter + def SelectorSequencePointerPrivateCreator(self, value: Optional[List[str]]): + if value is None: + if "SelectorSequencePointerPrivateCreator" in self._dataset: + del self._dataset.SelectorSequencePointerPrivateCreator + else: + self._dataset.SelectorSequencePointerPrivateCreator = value + + @property + def SelectorAttributePrivateCreator(self) -> Optional[str]: + if "SelectorAttributePrivateCreator" in self._dataset: + return self._dataset.SelectorAttributePrivateCreator + return None + + @SelectorAttributePrivateCreator.setter + def SelectorAttributePrivateCreator(self, value: Optional[str]): + if value is None: + if "SelectorAttributePrivateCreator" in self._dataset: + del self._dataset.SelectorAttributePrivateCreator + else: + self._dataset.SelectorAttributePrivateCreator = value + + @property + def SelectorSequencePointerItems(self) -> Optional[List[int]]: + if "SelectorSequencePointerItems" in self._dataset: + return self._dataset.SelectorSequencePointerItems + return None + + @SelectorSequencePointerItems.setter + def SelectorSequencePointerItems(self, value: Optional[List[int]]): + if value is None: + if "SelectorSequencePointerItems" in self._dataset: + del self._dataset.SelectorSequencePointerItems + else: + self._dataset.SelectorSequencePointerItems = value + + @property + def SelectorAttributeName(self) -> Optional[str]: + if "SelectorAttributeName" in self._dataset: + return self._dataset.SelectorAttributeName + return None + + @SelectorAttributeName.setter + def SelectorAttributeName(self, value: Optional[str]): + if value is None: + if "SelectorAttributeName" in self._dataset: + del self._dataset.SelectorAttributeName + else: + self._dataset.SelectorAttributeName = value + + @property + def SelectorAttributeKeyword(self) -> Optional[str]: + if "SelectorAttributeKeyword" in self._dataset: + return self._dataset.SelectorAttributeKeyword + return None + + @SelectorAttributeKeyword.setter + def SelectorAttributeKeyword(self, value: Optional[str]): + if value is None: + if "SelectorAttributeKeyword" in self._dataset: + del self._dataset.SelectorAttributeKeyword + else: + self._dataset.SelectorAttributeKeyword = value diff --git a/tdwii_plus_examples/domain_model/treatment_tolerance_violation_sequence_item.py b/tdwii_plus_examples/domain_model/treatment_tolerance_violation_sequence_item.py new file mode 100644 index 0000000..4d24737 --- /dev/null +++ b/tdwii_plus_examples/domain_model/treatment_tolerance_violation_sequence_item.py @@ -0,0 +1,221 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .override_sequence_item import OverrideSequenceItem +from .treatment_tolerance_violation_attribute_sequence_item import ( + TreatmentToleranceViolationAttributeSequenceItem, +) + + +class TreatmentToleranceViolationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OverrideSequence: List[OverrideSequenceItem] = [] + self._TreatmentToleranceViolationAttributeSequence: List[TreatmentToleranceViolationAttributeSequenceItem] = [] + self._TreatmentToleranceViolationTypeCodeSequence: List[CodeSequenceItem] = [] + self._TreatmentToleranceViolationCauseCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OverrideSequence(self) -> Optional[List[OverrideSequenceItem]]: + if "OverrideSequence" in self._dataset: + if len(self._OverrideSequence) == len(self._dataset.OverrideSequence): + return self._OverrideSequence + else: + return [OverrideSequenceItem(x) for x in self._dataset.OverrideSequence] + return None + + @OverrideSequence.setter + def OverrideSequence(self, value: Optional[List[OverrideSequenceItem]]): + if value is None: + self._OverrideSequence = [] + if "OverrideSequence" in self._dataset: + del self._dataset.OverrideSequence + elif not isinstance(value, list) or not all(isinstance(item, OverrideSequenceItem) for item in value): + raise ValueError("OverrideSequence must be a list of OverrideSequenceItem objects") + else: + self._OverrideSequence = value + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.clear() + self._dataset.OverrideSequence.extend([item.to_dataset() for item in value]) + + def add_Override(self, item: OverrideSequenceItem): + if not isinstance(item, OverrideSequenceItem): + raise ValueError("Item must be an instance of OverrideSequenceItem") + self._OverrideSequence.append(item) + if "OverrideSequence" not in self._dataset: + self._dataset.OverrideSequence = pydicom.Sequence() + self._dataset.OverrideSequence.append(item.to_dataset()) + + @property + def TreatmentToleranceViolationCategory(self) -> Optional[str]: + if "TreatmentToleranceViolationCategory" in self._dataset: + return self._dataset.TreatmentToleranceViolationCategory + return None + + @TreatmentToleranceViolationCategory.setter + def TreatmentToleranceViolationCategory(self, value: Optional[str]): + if value is None: + if "TreatmentToleranceViolationCategory" in self._dataset: + del self._dataset.TreatmentToleranceViolationCategory + else: + self._dataset.TreatmentToleranceViolationCategory = value + + @property + def TreatmentToleranceViolationAttributeSequence(self) -> Optional[List[TreatmentToleranceViolationAttributeSequenceItem]]: + if "TreatmentToleranceViolationAttributeSequence" in self._dataset: + if len(self._TreatmentToleranceViolationAttributeSequence) == len( + self._dataset.TreatmentToleranceViolationAttributeSequence + ): + return self._TreatmentToleranceViolationAttributeSequence + else: + return [ + TreatmentToleranceViolationAttributeSequenceItem(x) + for x in self._dataset.TreatmentToleranceViolationAttributeSequence + ] + return None + + @TreatmentToleranceViolationAttributeSequence.setter + def TreatmentToleranceViolationAttributeSequence( + self, value: Optional[List[TreatmentToleranceViolationAttributeSequenceItem]] + ): + if value is None: + self._TreatmentToleranceViolationAttributeSequence = [] + if "TreatmentToleranceViolationAttributeSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationAttributeSequence + elif not isinstance(value, list) or not all( + isinstance(item, TreatmentToleranceViolationAttributeSequenceItem) for item in value + ): + raise ValueError( + "TreatmentToleranceViolationAttributeSequence must be a list of" + " TreatmentToleranceViolationAttributeSequenceItem objects" + ) + else: + self._TreatmentToleranceViolationAttributeSequence = value + if "TreatmentToleranceViolationAttributeSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationAttributeSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationAttributeSequence.clear() + self._dataset.TreatmentToleranceViolationAttributeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolationAttribute(self, item: TreatmentToleranceViolationAttributeSequenceItem): + if not isinstance(item, TreatmentToleranceViolationAttributeSequenceItem): + raise ValueError("Item must be an instance of TreatmentToleranceViolationAttributeSequenceItem") + self._TreatmentToleranceViolationAttributeSequence.append(item) + if "TreatmentToleranceViolationAttributeSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationAttributeSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationAttributeSequence.append(item.to_dataset()) + + @property + def TreatmentToleranceViolationDescription(self) -> Optional[str]: + if "TreatmentToleranceViolationDescription" in self._dataset: + return self._dataset.TreatmentToleranceViolationDescription + return None + + @TreatmentToleranceViolationDescription.setter + def TreatmentToleranceViolationDescription(self, value: Optional[str]): + if value is None: + if "TreatmentToleranceViolationDescription" in self._dataset: + del self._dataset.TreatmentToleranceViolationDescription + else: + self._dataset.TreatmentToleranceViolationDescription = value + + @property + def TreatmentToleranceViolationIdentification(self) -> Optional[str]: + if "TreatmentToleranceViolationIdentification" in self._dataset: + return self._dataset.TreatmentToleranceViolationIdentification + return None + + @TreatmentToleranceViolationIdentification.setter + def TreatmentToleranceViolationIdentification(self, value: Optional[str]): + if value is None: + if "TreatmentToleranceViolationIdentification" in self._dataset: + del self._dataset.TreatmentToleranceViolationIdentification + else: + self._dataset.TreatmentToleranceViolationIdentification = value + + @property + def TreatmentToleranceViolationDateTime(self) -> Optional[str]: + if "TreatmentToleranceViolationDateTime" in self._dataset: + return self._dataset.TreatmentToleranceViolationDateTime + return None + + @TreatmentToleranceViolationDateTime.setter + def TreatmentToleranceViolationDateTime(self, value: Optional[str]): + if value is None: + if "TreatmentToleranceViolationDateTime" in self._dataset: + del self._dataset.TreatmentToleranceViolationDateTime + else: + self._dataset.TreatmentToleranceViolationDateTime = value + + @property + def TreatmentToleranceViolationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentToleranceViolationTypeCodeSequence" in self._dataset: + if len(self._TreatmentToleranceViolationTypeCodeSequence) == len( + self._dataset.TreatmentToleranceViolationTypeCodeSequence + ): + return self._TreatmentToleranceViolationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentToleranceViolationTypeCodeSequence] + return None + + @TreatmentToleranceViolationTypeCodeSequence.setter + def TreatmentToleranceViolationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentToleranceViolationTypeCodeSequence = [] + if "TreatmentToleranceViolationTypeCodeSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentToleranceViolationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentToleranceViolationTypeCodeSequence = value + if "TreatmentToleranceViolationTypeCodeSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationTypeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationTypeCodeSequence.clear() + self._dataset.TreatmentToleranceViolationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentToleranceViolationTypeCodeSequence.append(item) + if "TreatmentToleranceViolationTypeCodeSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationTypeCodeSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationTypeCodeSequence.append(item.to_dataset()) + + @property + def TreatmentToleranceViolationCauseCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TreatmentToleranceViolationCauseCodeSequence" in self._dataset: + if len(self._TreatmentToleranceViolationCauseCodeSequence) == len( + self._dataset.TreatmentToleranceViolationCauseCodeSequence + ): + return self._TreatmentToleranceViolationCauseCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TreatmentToleranceViolationCauseCodeSequence] + return None + + @TreatmentToleranceViolationCauseCodeSequence.setter + def TreatmentToleranceViolationCauseCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TreatmentToleranceViolationCauseCodeSequence = [] + if "TreatmentToleranceViolationCauseCodeSequence" in self._dataset: + del self._dataset.TreatmentToleranceViolationCauseCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TreatmentToleranceViolationCauseCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TreatmentToleranceViolationCauseCodeSequence = value + if "TreatmentToleranceViolationCauseCodeSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationCauseCodeSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationCauseCodeSequence.clear() + self._dataset.TreatmentToleranceViolationCauseCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TreatmentToleranceViolationCauseCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TreatmentToleranceViolationCauseCodeSequence.append(item) + if "TreatmentToleranceViolationCauseCodeSequence" not in self._dataset: + self._dataset.TreatmentToleranceViolationCauseCodeSequence = pydicom.Sequence() + self._dataset.TreatmentToleranceViolationCauseCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/triangle_fan_sequence_item.py b/tdwii_plus_examples/domain_model/triangle_fan_sequence_item.py new file mode 100644 index 0000000..cacc091 --- /dev/null +++ b/tdwii_plus_examples/domain_model/triangle_fan_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TriangleFanSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LongPrimitivePointIndexList(self) -> Optional[bytes]: + if "LongPrimitivePointIndexList" in self._dataset: + return self._dataset.LongPrimitivePointIndexList + return None + + @LongPrimitivePointIndexList.setter + def LongPrimitivePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongPrimitivePointIndexList" in self._dataset: + del self._dataset.LongPrimitivePointIndexList + else: + self._dataset.LongPrimitivePointIndexList = value diff --git a/tdwii_plus_examples/domain_model/triangle_strip_sequence_item.py b/tdwii_plus_examples/domain_model/triangle_strip_sequence_item.py new file mode 100644 index 0000000..b952d94 --- /dev/null +++ b/tdwii_plus_examples/domain_model/triangle_strip_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TriangleStripSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LongPrimitivePointIndexList(self) -> Optional[bytes]: + if "LongPrimitivePointIndexList" in self._dataset: + return self._dataset.LongPrimitivePointIndexList + return None + + @LongPrimitivePointIndexList.setter + def LongPrimitivePointIndexList(self, value: Optional[bytes]): + if value is None: + if "LongPrimitivePointIndexList" in self._dataset: + del self._dataset.LongPrimitivePointIndexList + else: + self._dataset.LongPrimitivePointIndexList = value diff --git a/tdwii_plus_examples/domain_model/two_dimensional_to_three_dimensional_map_sequence_item.py b/tdwii_plus_examples/domain_model/two_dimensional_to_three_dimensional_map_sequence_item.py new file mode 100644 index 0000000..c7e63e8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/two_dimensional_to_three_dimensional_map_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class TwoDimensionalToThreeDimensionalMapSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedFrameNumber(self) -> Optional[List[int]]: + if "ReferencedFrameNumber" in self._dataset: + return self._dataset.ReferencedFrameNumber + return None + + @ReferencedFrameNumber.setter + def ReferencedFrameNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedFrameNumber" in self._dataset: + del self._dataset.ReferencedFrameNumber + else: + self._dataset.ReferencedFrameNumber = value + + @property + def NumberOfMapPoints(self) -> Optional[int]: + if "NumberOfMapPoints" in self._dataset: + return self._dataset.NumberOfMapPoints + return None + + @NumberOfMapPoints.setter + def NumberOfMapPoints(self, value: Optional[int]): + if value is None: + if "NumberOfMapPoints" in self._dataset: + del self._dataset.NumberOfMapPoints + else: + self._dataset.NumberOfMapPoints = value + + @property + def TwoDimensionalToThreeDimensionalMapData(self) -> Optional[bytes]: + if "TwoDimensionalToThreeDimensionalMapData" in self._dataset: + return self._dataset.TwoDimensionalToThreeDimensionalMapData + return None + + @TwoDimensionalToThreeDimensionalMapData.setter + def TwoDimensionalToThreeDimensionalMapData(self, value: Optional[bytes]): + if value is None: + if "TwoDimensionalToThreeDimensionalMapData" in self._dataset: + del self._dataset.TwoDimensionalToThreeDimensionalMapData + else: + self._dataset.TwoDimensionalToThreeDimensionalMapData = value diff --git a/tdwii_plus_examples/domain_model/udi_sequence_item.py b/tdwii_plus_examples/domain_model/udi_sequence_item.py new file mode 100644 index 0000000..62bb7b2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/udi_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class UDISequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def UniqueDeviceIdentifier(self) -> Optional[str]: + if "UniqueDeviceIdentifier" in self._dataset: + return self._dataset.UniqueDeviceIdentifier + return None + + @UniqueDeviceIdentifier.setter + def UniqueDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "UniqueDeviceIdentifier" in self._dataset: + del self._dataset.UniqueDeviceIdentifier + else: + self._dataset.UniqueDeviceIdentifier = value + + @property + def DeviceDescription(self) -> Optional[str]: + if "DeviceDescription" in self._dataset: + return self._dataset.DeviceDescription + return None + + @DeviceDescription.setter + def DeviceDescription(self, value: Optional[str]): + if value is None: + if "DeviceDescription" in self._dataset: + del self._dataset.DeviceDescription + else: + self._dataset.DeviceDescription = value diff --git a/tdwii_plus_examples/domain_model/ultrasound_image.py b/tdwii_plus_examples/domain_model/ultrasound_image.py new file mode 100644 index 0000000..a16c97b --- /dev/null +++ b/tdwii_plus_examples/domain_model/ultrasound_image.py @@ -0,0 +1,6826 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .transducer_identification_sequence_item import ( + TransducerIdentificationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class UltrasoundImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._TransducerIdentificationSequence: List[TransducerIdentificationSequenceItem] = [] + self._StageCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SequenceOfUltrasoundRegions(self) -> Optional[list]: + if "SequenceOfUltrasoundRegions" in self._dataset: + return self._dataset.SequenceOfUltrasoundRegions + return None + + @SequenceOfUltrasoundRegions.setter + def SequenceOfUltrasoundRegions(self, value: Optional[list]): + if value is None: + if "SequenceOfUltrasoundRegions" in self._dataset: + del self._dataset.SequenceOfUltrasoundRegions + else: + self._dataset.SequenceOfUltrasoundRegions = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def StageName(self) -> Optional[str]: + if "StageName" in self._dataset: + return self._dataset.StageName + return None + + @StageName.setter + def StageName(self, value: Optional[str]): + if value is None: + if "StageName" in self._dataset: + del self._dataset.StageName + else: + self._dataset.StageName = value + + @property + def StageNumber(self) -> Optional[int]: + if "StageNumber" in self._dataset: + return self._dataset.StageNumber + return None + + @StageNumber.setter + def StageNumber(self, value: Optional[int]): + if value is None: + if "StageNumber" in self._dataset: + del self._dataset.StageNumber + else: + self._dataset.StageNumber = value + + @property + def NumberOfStages(self) -> Optional[int]: + if "NumberOfStages" in self._dataset: + return self._dataset.NumberOfStages + return None + + @NumberOfStages.setter + def NumberOfStages(self, value: Optional[int]): + if value is None: + if "NumberOfStages" in self._dataset: + del self._dataset.NumberOfStages + else: + self._dataset.NumberOfStages = value + + @property + def ViewName(self) -> Optional[str]: + if "ViewName" in self._dataset: + return self._dataset.ViewName + return None + + @ViewName.setter + def ViewName(self, value: Optional[str]): + if value is None: + if "ViewName" in self._dataset: + del self._dataset.ViewName + else: + self._dataset.ViewName = value + + @property + def ViewNumber(self) -> Optional[int]: + if "ViewNumber" in self._dataset: + return self._dataset.ViewNumber + return None + + @ViewNumber.setter + def ViewNumber(self, value: Optional[int]): + if value is None: + if "ViewNumber" in self._dataset: + del self._dataset.ViewNumber + else: + self._dataset.ViewNumber = value + + @property + def NumberOfEventTimers(self) -> Optional[int]: + if "NumberOfEventTimers" in self._dataset: + return self._dataset.NumberOfEventTimers + return None + + @NumberOfEventTimers.setter + def NumberOfEventTimers(self, value: Optional[int]): + if value is None: + if "NumberOfEventTimers" in self._dataset: + del self._dataset.NumberOfEventTimers + else: + self._dataset.NumberOfEventTimers = value + + @property + def NumberOfViewsInStage(self) -> Optional[int]: + if "NumberOfViewsInStage" in self._dataset: + return self._dataset.NumberOfViewsInStage + return None + + @NumberOfViewsInStage.setter + def NumberOfViewsInStage(self, value: Optional[int]): + if value is None: + if "NumberOfViewsInStage" in self._dataset: + del self._dataset.NumberOfViewsInStage + else: + self._dataset.NumberOfViewsInStage = value + + @property + def EventElapsedTimes(self) -> Optional[List[Decimal]]: + if "EventElapsedTimes" in self._dataset: + return self._dataset.EventElapsedTimes + return None + + @EventElapsedTimes.setter + def EventElapsedTimes(self, value: Optional[List[Decimal]]): + if value is None: + if "EventElapsedTimes" in self._dataset: + del self._dataset.EventElapsedTimes + else: + self._dataset.EventElapsedTimes = value + + @property + def EventTimerNames(self) -> Optional[List[str]]: + if "EventTimerNames" in self._dataset: + return self._dataset.EventTimerNames + return None + + @EventTimerNames.setter + def EventTimerNames(self, value: Optional[List[str]]): + if value is None: + if "EventTimerNames" in self._dataset: + del self._dataset.EventTimerNames + else: + self._dataset.EventTimerNames = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def TriggerTime(self) -> Optional[Decimal]: + if "TriggerTime" in self._dataset: + return self._dataset.TriggerTime + return None + + @TriggerTime.setter + def TriggerTime(self, value: Optional[Decimal]): + if value is None: + if "TriggerTime" in self._dataset: + del self._dataset.TriggerTime + else: + self._dataset.TriggerTime = value + + @property + def NominalInterval(self) -> Optional[int]: + if "NominalInterval" in self._dataset: + return self._dataset.NominalInterval + return None + + @NominalInterval.setter + def NominalInterval(self, value: Optional[int]): + if value is None: + if "NominalInterval" in self._dataset: + del self._dataset.NominalInterval + else: + self._dataset.NominalInterval = value + + @property + def BeatRejectionFlag(self) -> Optional[str]: + if "BeatRejectionFlag" in self._dataset: + return self._dataset.BeatRejectionFlag + return None + + @BeatRejectionFlag.setter + def BeatRejectionFlag(self, value: Optional[str]): + if value is None: + if "BeatRejectionFlag" in self._dataset: + del self._dataset.BeatRejectionFlag + else: + self._dataset.BeatRejectionFlag = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def HeartRate(self) -> Optional[int]: + if "HeartRate" in self._dataset: + return self._dataset.HeartRate + return None + + @HeartRate.setter + def HeartRate(self, value: Optional[int]): + if value is None: + if "HeartRate" in self._dataset: + del self._dataset.HeartRate + else: + self._dataset.HeartRate = value + + @property + def IVUSAcquisition(self) -> Optional[str]: + if "IVUSAcquisition" in self._dataset: + return self._dataset.IVUSAcquisition + return None + + @IVUSAcquisition.setter + def IVUSAcquisition(self, value: Optional[str]): + if value is None: + if "IVUSAcquisition" in self._dataset: + del self._dataset.IVUSAcquisition + else: + self._dataset.IVUSAcquisition = value + + @property + def IVUSPullbackRate(self) -> Optional[Decimal]: + if "IVUSPullbackRate" in self._dataset: + return self._dataset.IVUSPullbackRate + return None + + @IVUSPullbackRate.setter + def IVUSPullbackRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSPullbackRate" in self._dataset: + del self._dataset.IVUSPullbackRate + else: + self._dataset.IVUSPullbackRate = value + + @property + def IVUSGatedRate(self) -> Optional[Decimal]: + if "IVUSGatedRate" in self._dataset: + return self._dataset.IVUSGatedRate + return None + + @IVUSGatedRate.setter + def IVUSGatedRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSGatedRate" in self._dataset: + del self._dataset.IVUSGatedRate + else: + self._dataset.IVUSGatedRate = value + + @property + def IVUSPullbackStartFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStartFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStartFrameNumber + return None + + @IVUSPullbackStartFrameNumber.setter + def IVUSPullbackStartFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStartFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStartFrameNumber + else: + self._dataset.IVUSPullbackStartFrameNumber = value + + @property + def IVUSPullbackStopFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStopFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStopFrameNumber + return None + + @IVUSPullbackStopFrameNumber.setter + def IVUSPullbackStopFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStopFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStopFrameNumber + else: + self._dataset.IVUSPullbackStopFrameNumber = value + + @property + def LesionNumber(self) -> Optional[List[int]]: + if "LesionNumber" in self._dataset: + return self._dataset.LesionNumber + return None + + @LesionNumber.setter + def LesionNumber(self, value: Optional[List[int]]): + if value is None: + if "LesionNumber" in self._dataset: + del self._dataset.LesionNumber + else: + self._dataset.LesionNumber = value + + @property + def OutputPower(self) -> Optional[List[str]]: + if "OutputPower" in self._dataset: + return self._dataset.OutputPower + return None + + @OutputPower.setter + def OutputPower(self, value: Optional[List[str]]): + if value is None: + if "OutputPower" in self._dataset: + del self._dataset.OutputPower + else: + self._dataset.OutputPower = value + + @property + def TransducerData(self) -> Optional[List[str]]: + if "TransducerData" in self._dataset: + return self._dataset.TransducerData + return None + + @TransducerData.setter + def TransducerData(self, value: Optional[List[str]]): + if value is None: + if "TransducerData" in self._dataset: + del self._dataset.TransducerData + else: + self._dataset.TransducerData = value + + @property + def TransducerIdentificationSequence(self) -> Optional[List[TransducerIdentificationSequenceItem]]: + if "TransducerIdentificationSequence" in self._dataset: + if len(self._TransducerIdentificationSequence) == len(self._dataset.TransducerIdentificationSequence): + return self._TransducerIdentificationSequence + else: + return [TransducerIdentificationSequenceItem(x) for x in self._dataset.TransducerIdentificationSequence] + return None + + @TransducerIdentificationSequence.setter + def TransducerIdentificationSequence(self, value: Optional[List[TransducerIdentificationSequenceItem]]): + if value is None: + self._TransducerIdentificationSequence = [] + if "TransducerIdentificationSequence" in self._dataset: + del self._dataset.TransducerIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, TransducerIdentificationSequenceItem) for item in value): + raise ValueError("TransducerIdentificationSequence must be a list of TransducerIdentificationSequenceItem objects") + else: + self._TransducerIdentificationSequence = value + if "TransducerIdentificationSequence" not in self._dataset: + self._dataset.TransducerIdentificationSequence = pydicom.Sequence() + self._dataset.TransducerIdentificationSequence.clear() + self._dataset.TransducerIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerIdentification(self, item: TransducerIdentificationSequenceItem): + if not isinstance(item, TransducerIdentificationSequenceItem): + raise ValueError("Item must be an instance of TransducerIdentificationSequenceItem") + self._TransducerIdentificationSequence.append(item) + if "TransducerIdentificationSequence" not in self._dataset: + self._dataset.TransducerIdentificationSequence = pydicom.Sequence() + self._dataset.TransducerIdentificationSequence.append(item.to_dataset()) + + @property + def FocusDepth(self) -> Optional[Decimal]: + if "FocusDepth" in self._dataset: + return self._dataset.FocusDepth + return None + + @FocusDepth.setter + def FocusDepth(self, value: Optional[Decimal]): + if value is None: + if "FocusDepth" in self._dataset: + del self._dataset.FocusDepth + else: + self._dataset.FocusDepth = value + + @property + def ProcessingFunction(self) -> Optional[str]: + if "ProcessingFunction" in self._dataset: + return self._dataset.ProcessingFunction + return None + + @ProcessingFunction.setter + def ProcessingFunction(self, value: Optional[str]): + if value is None: + if "ProcessingFunction" in self._dataset: + del self._dataset.ProcessingFunction + else: + self._dataset.ProcessingFunction = value + + @property + def MechanicalIndex(self) -> Optional[Decimal]: + if "MechanicalIndex" in self._dataset: + return self._dataset.MechanicalIndex + return None + + @MechanicalIndex.setter + def MechanicalIndex(self, value: Optional[Decimal]): + if value is None: + if "MechanicalIndex" in self._dataset: + del self._dataset.MechanicalIndex + else: + self._dataset.MechanicalIndex = value + + @property + def BoneThermalIndex(self) -> Optional[Decimal]: + if "BoneThermalIndex" in self._dataset: + return self._dataset.BoneThermalIndex + return None + + @BoneThermalIndex.setter + def BoneThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "BoneThermalIndex" in self._dataset: + del self._dataset.BoneThermalIndex + else: + self._dataset.BoneThermalIndex = value + + @property + def CranialThermalIndex(self) -> Optional[Decimal]: + if "CranialThermalIndex" in self._dataset: + return self._dataset.CranialThermalIndex + return None + + @CranialThermalIndex.setter + def CranialThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "CranialThermalIndex" in self._dataset: + del self._dataset.CranialThermalIndex + else: + self._dataset.CranialThermalIndex = value + + @property + def SoftTissueThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueThermalIndex" in self._dataset: + return self._dataset.SoftTissueThermalIndex + return None + + @SoftTissueThermalIndex.setter + def SoftTissueThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueThermalIndex" in self._dataset: + del self._dataset.SoftTissueThermalIndex + else: + self._dataset.SoftTissueThermalIndex = value + + @property + def SoftTissueFocusThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueFocusThermalIndex" in self._dataset: + return self._dataset.SoftTissueFocusThermalIndex + return None + + @SoftTissueFocusThermalIndex.setter + def SoftTissueFocusThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueFocusThermalIndex" in self._dataset: + del self._dataset.SoftTissueFocusThermalIndex + else: + self._dataset.SoftTissueFocusThermalIndex = value + + @property + def SoftTissueSurfaceThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueSurfaceThermalIndex" in self._dataset: + return self._dataset.SoftTissueSurfaceThermalIndex + return None + + @SoftTissueSurfaceThermalIndex.setter + def SoftTissueSurfaceThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueSurfaceThermalIndex" in self._dataset: + del self._dataset.SoftTissueSurfaceThermalIndex + else: + self._dataset.SoftTissueSurfaceThermalIndex = value + + @property + def DepthOfScanField(self) -> Optional[int]: + if "DepthOfScanField" in self._dataset: + return self._dataset.DepthOfScanField + return None + + @DepthOfScanField.setter + def DepthOfScanField(self, value: Optional[int]): + if value is None: + if "DepthOfScanField" in self._dataset: + del self._dataset.DepthOfScanField + else: + self._dataset.DepthOfScanField = value + + @property + def TransducerType(self) -> Optional[str]: + if "TransducerType" in self._dataset: + return self._dataset.TransducerType + return None + + @TransducerType.setter + def TransducerType(self, value: Optional[str]): + if value is None: + if "TransducerType" in self._dataset: + del self._dataset.TransducerType + else: + self._dataset.TransducerType = value + + @property + def RWaveTimeVector(self) -> Optional[List[float]]: + if "RWaveTimeVector" in self._dataset: + return self._dataset.RWaveTimeVector + return None + + @RWaveTimeVector.setter + def RWaveTimeVector(self, value: Optional[List[float]]): + if value is None: + if "RWaveTimeVector" in self._dataset: + del self._dataset.RWaveTimeVector + else: + self._dataset.RWaveTimeVector = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def UltrasoundColorDataPresent(self) -> Optional[int]: + if "UltrasoundColorDataPresent" in self._dataset: + return self._dataset.UltrasoundColorDataPresent + return None + + @UltrasoundColorDataPresent.setter + def UltrasoundColorDataPresent(self, value: Optional[int]): + if value is None: + if "UltrasoundColorDataPresent" in self._dataset: + del self._dataset.UltrasoundColorDataPresent + else: + self._dataset.UltrasoundColorDataPresent = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def StageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StageCodeSequence" in self._dataset: + if len(self._StageCodeSequence) == len(self._dataset.StageCodeSequence): + return self._StageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StageCodeSequence] + return None + + @StageCodeSequence.setter + def StageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StageCodeSequence = [] + if "StageCodeSequence" in self._dataset: + del self._dataset.StageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StageCodeSequence = value + if "StageCodeSequence" not in self._dataset: + self._dataset.StageCodeSequence = pydicom.Sequence() + self._dataset.StageCodeSequence.clear() + self._dataset.StageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StageCodeSequence.append(item) + if "StageCodeSequence" not in self._dataset: + self._dataset.StageCodeSequence = pydicom.Sequence() + self._dataset.StageCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ultrasound_multi_frame_image.py b/tdwii_plus_examples/domain_model/ultrasound_multi_frame_image.py new file mode 100644 index 0000000..758d522 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ultrasound_multi_frame_image.py @@ -0,0 +1,7189 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .transducer_identification_sequence_item import ( + TransducerIdentificationSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class UltrasoundMultiFrameImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._TransducerIdentificationSequence: List[TransducerIdentificationSequenceItem] = [] + self._StageCodeSequence: List[CodeSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def PaletteColorLookupTableUID(self) -> Optional[str]: + if "PaletteColorLookupTableUID" in self._dataset: + return self._dataset.PaletteColorLookupTableUID + return None + + @PaletteColorLookupTableUID.setter + def PaletteColorLookupTableUID(self, value: Optional[str]): + if value is None: + if "PaletteColorLookupTableUID" in self._dataset: + del self._dataset.PaletteColorLookupTableUID + else: + self._dataset.PaletteColorLookupTableUID = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def SegmentedRedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedRedPaletteColorLookupTableData + return None + + @SegmentedRedPaletteColorLookupTableData.setter + def SegmentedRedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedRedPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedRedPaletteColorLookupTableData + else: + self._dataset.SegmentedRedPaletteColorLookupTableData = value + + @property + def SegmentedGreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedGreenPaletteColorLookupTableData + return None + + @SegmentedGreenPaletteColorLookupTableData.setter + def SegmentedGreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedGreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedGreenPaletteColorLookupTableData + else: + self._dataset.SegmentedGreenPaletteColorLookupTableData = value + + @property + def SegmentedBluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + return self._dataset.SegmentedBluePaletteColorLookupTableData + return None + + @SegmentedBluePaletteColorLookupTableData.setter + def SegmentedBluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "SegmentedBluePaletteColorLookupTableData" in self._dataset: + del self._dataset.SegmentedBluePaletteColorLookupTableData + else: + self._dataset.SegmentedBluePaletteColorLookupTableData = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SequenceOfUltrasoundRegions(self) -> Optional[list]: + if "SequenceOfUltrasoundRegions" in self._dataset: + return self._dataset.SequenceOfUltrasoundRegions + return None + + @SequenceOfUltrasoundRegions.setter + def SequenceOfUltrasoundRegions(self, value: Optional[list]): + if value is None: + if "SequenceOfUltrasoundRegions" in self._dataset: + del self._dataset.SequenceOfUltrasoundRegions + else: + self._dataset.SequenceOfUltrasoundRegions = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def StageName(self) -> Optional[str]: + if "StageName" in self._dataset: + return self._dataset.StageName + return None + + @StageName.setter + def StageName(self, value: Optional[str]): + if value is None: + if "StageName" in self._dataset: + del self._dataset.StageName + else: + self._dataset.StageName = value + + @property + def StageNumber(self) -> Optional[int]: + if "StageNumber" in self._dataset: + return self._dataset.StageNumber + return None + + @StageNumber.setter + def StageNumber(self, value: Optional[int]): + if value is None: + if "StageNumber" in self._dataset: + del self._dataset.StageNumber + else: + self._dataset.StageNumber = value + + @property + def NumberOfStages(self) -> Optional[int]: + if "NumberOfStages" in self._dataset: + return self._dataset.NumberOfStages + return None + + @NumberOfStages.setter + def NumberOfStages(self, value: Optional[int]): + if value is None: + if "NumberOfStages" in self._dataset: + del self._dataset.NumberOfStages + else: + self._dataset.NumberOfStages = value + + @property + def ViewName(self) -> Optional[str]: + if "ViewName" in self._dataset: + return self._dataset.ViewName + return None + + @ViewName.setter + def ViewName(self, value: Optional[str]): + if value is None: + if "ViewName" in self._dataset: + del self._dataset.ViewName + else: + self._dataset.ViewName = value + + @property + def ViewNumber(self) -> Optional[int]: + if "ViewNumber" in self._dataset: + return self._dataset.ViewNumber + return None + + @ViewNumber.setter + def ViewNumber(self, value: Optional[int]): + if value is None: + if "ViewNumber" in self._dataset: + del self._dataset.ViewNumber + else: + self._dataset.ViewNumber = value + + @property + def NumberOfEventTimers(self) -> Optional[int]: + if "NumberOfEventTimers" in self._dataset: + return self._dataset.NumberOfEventTimers + return None + + @NumberOfEventTimers.setter + def NumberOfEventTimers(self, value: Optional[int]): + if value is None: + if "NumberOfEventTimers" in self._dataset: + del self._dataset.NumberOfEventTimers + else: + self._dataset.NumberOfEventTimers = value + + @property + def NumberOfViewsInStage(self) -> Optional[int]: + if "NumberOfViewsInStage" in self._dataset: + return self._dataset.NumberOfViewsInStage + return None + + @NumberOfViewsInStage.setter + def NumberOfViewsInStage(self, value: Optional[int]): + if value is None: + if "NumberOfViewsInStage" in self._dataset: + del self._dataset.NumberOfViewsInStage + else: + self._dataset.NumberOfViewsInStage = value + + @property + def EventElapsedTimes(self) -> Optional[List[Decimal]]: + if "EventElapsedTimes" in self._dataset: + return self._dataset.EventElapsedTimes + return None + + @EventElapsedTimes.setter + def EventElapsedTimes(self, value: Optional[List[Decimal]]): + if value is None: + if "EventElapsedTimes" in self._dataset: + del self._dataset.EventElapsedTimes + else: + self._dataset.EventElapsedTimes = value + + @property + def EventTimerNames(self) -> Optional[List[str]]: + if "EventTimerNames" in self._dataset: + return self._dataset.EventTimerNames + return None + + @EventTimerNames.setter + def EventTimerNames(self, value: Optional[List[str]]): + if value is None: + if "EventTimerNames" in self._dataset: + del self._dataset.EventTimerNames + else: + self._dataset.EventTimerNames = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def TriggerTime(self) -> Optional[Decimal]: + if "TriggerTime" in self._dataset: + return self._dataset.TriggerTime + return None + + @TriggerTime.setter + def TriggerTime(self, value: Optional[Decimal]): + if value is None: + if "TriggerTime" in self._dataset: + del self._dataset.TriggerTime + else: + self._dataset.TriggerTime = value + + @property + def NominalInterval(self) -> Optional[int]: + if "NominalInterval" in self._dataset: + return self._dataset.NominalInterval + return None + + @NominalInterval.setter + def NominalInterval(self, value: Optional[int]): + if value is None: + if "NominalInterval" in self._dataset: + del self._dataset.NominalInterval + else: + self._dataset.NominalInterval = value + + @property + def BeatRejectionFlag(self) -> Optional[str]: + if "BeatRejectionFlag" in self._dataset: + return self._dataset.BeatRejectionFlag + return None + + @BeatRejectionFlag.setter + def BeatRejectionFlag(self, value: Optional[str]): + if value is None: + if "BeatRejectionFlag" in self._dataset: + del self._dataset.BeatRejectionFlag + else: + self._dataset.BeatRejectionFlag = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def HeartRate(self) -> Optional[int]: + if "HeartRate" in self._dataset: + return self._dataset.HeartRate + return None + + @HeartRate.setter + def HeartRate(self, value: Optional[int]): + if value is None: + if "HeartRate" in self._dataset: + del self._dataset.HeartRate + else: + self._dataset.HeartRate = value + + @property + def IVUSAcquisition(self) -> Optional[str]: + if "IVUSAcquisition" in self._dataset: + return self._dataset.IVUSAcquisition + return None + + @IVUSAcquisition.setter + def IVUSAcquisition(self, value: Optional[str]): + if value is None: + if "IVUSAcquisition" in self._dataset: + del self._dataset.IVUSAcquisition + else: + self._dataset.IVUSAcquisition = value + + @property + def IVUSPullbackRate(self) -> Optional[Decimal]: + if "IVUSPullbackRate" in self._dataset: + return self._dataset.IVUSPullbackRate + return None + + @IVUSPullbackRate.setter + def IVUSPullbackRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSPullbackRate" in self._dataset: + del self._dataset.IVUSPullbackRate + else: + self._dataset.IVUSPullbackRate = value + + @property + def IVUSGatedRate(self) -> Optional[Decimal]: + if "IVUSGatedRate" in self._dataset: + return self._dataset.IVUSGatedRate + return None + + @IVUSGatedRate.setter + def IVUSGatedRate(self, value: Optional[Decimal]): + if value is None: + if "IVUSGatedRate" in self._dataset: + del self._dataset.IVUSGatedRate + else: + self._dataset.IVUSGatedRate = value + + @property + def IVUSPullbackStartFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStartFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStartFrameNumber + return None + + @IVUSPullbackStartFrameNumber.setter + def IVUSPullbackStartFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStartFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStartFrameNumber + else: + self._dataset.IVUSPullbackStartFrameNumber = value + + @property + def IVUSPullbackStopFrameNumber(self) -> Optional[int]: + if "IVUSPullbackStopFrameNumber" in self._dataset: + return self._dataset.IVUSPullbackStopFrameNumber + return None + + @IVUSPullbackStopFrameNumber.setter + def IVUSPullbackStopFrameNumber(self, value: Optional[int]): + if value is None: + if "IVUSPullbackStopFrameNumber" in self._dataset: + del self._dataset.IVUSPullbackStopFrameNumber + else: + self._dataset.IVUSPullbackStopFrameNumber = value + + @property + def LesionNumber(self) -> Optional[List[int]]: + if "LesionNumber" in self._dataset: + return self._dataset.LesionNumber + return None + + @LesionNumber.setter + def LesionNumber(self, value: Optional[List[int]]): + if value is None: + if "LesionNumber" in self._dataset: + del self._dataset.LesionNumber + else: + self._dataset.LesionNumber = value + + @property + def OutputPower(self) -> Optional[List[str]]: + if "OutputPower" in self._dataset: + return self._dataset.OutputPower + return None + + @OutputPower.setter + def OutputPower(self, value: Optional[List[str]]): + if value is None: + if "OutputPower" in self._dataset: + del self._dataset.OutputPower + else: + self._dataset.OutputPower = value + + @property + def TransducerData(self) -> Optional[List[str]]: + if "TransducerData" in self._dataset: + return self._dataset.TransducerData + return None + + @TransducerData.setter + def TransducerData(self, value: Optional[List[str]]): + if value is None: + if "TransducerData" in self._dataset: + del self._dataset.TransducerData + else: + self._dataset.TransducerData = value + + @property + def TransducerIdentificationSequence(self) -> Optional[List[TransducerIdentificationSequenceItem]]: + if "TransducerIdentificationSequence" in self._dataset: + if len(self._TransducerIdentificationSequence) == len(self._dataset.TransducerIdentificationSequence): + return self._TransducerIdentificationSequence + else: + return [TransducerIdentificationSequenceItem(x) for x in self._dataset.TransducerIdentificationSequence] + return None + + @TransducerIdentificationSequence.setter + def TransducerIdentificationSequence(self, value: Optional[List[TransducerIdentificationSequenceItem]]): + if value is None: + self._TransducerIdentificationSequence = [] + if "TransducerIdentificationSequence" in self._dataset: + del self._dataset.TransducerIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, TransducerIdentificationSequenceItem) for item in value): + raise ValueError("TransducerIdentificationSequence must be a list of TransducerIdentificationSequenceItem objects") + else: + self._TransducerIdentificationSequence = value + if "TransducerIdentificationSequence" not in self._dataset: + self._dataset.TransducerIdentificationSequence = pydicom.Sequence() + self._dataset.TransducerIdentificationSequence.clear() + self._dataset.TransducerIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_TransducerIdentification(self, item: TransducerIdentificationSequenceItem): + if not isinstance(item, TransducerIdentificationSequenceItem): + raise ValueError("Item must be an instance of TransducerIdentificationSequenceItem") + self._TransducerIdentificationSequence.append(item) + if "TransducerIdentificationSequence" not in self._dataset: + self._dataset.TransducerIdentificationSequence = pydicom.Sequence() + self._dataset.TransducerIdentificationSequence.append(item.to_dataset()) + + @property + def FocusDepth(self) -> Optional[Decimal]: + if "FocusDepth" in self._dataset: + return self._dataset.FocusDepth + return None + + @FocusDepth.setter + def FocusDepth(self, value: Optional[Decimal]): + if value is None: + if "FocusDepth" in self._dataset: + del self._dataset.FocusDepth + else: + self._dataset.FocusDepth = value + + @property + def ProcessingFunction(self) -> Optional[str]: + if "ProcessingFunction" in self._dataset: + return self._dataset.ProcessingFunction + return None + + @ProcessingFunction.setter + def ProcessingFunction(self, value: Optional[str]): + if value is None: + if "ProcessingFunction" in self._dataset: + del self._dataset.ProcessingFunction + else: + self._dataset.ProcessingFunction = value + + @property + def MechanicalIndex(self) -> Optional[Decimal]: + if "MechanicalIndex" in self._dataset: + return self._dataset.MechanicalIndex + return None + + @MechanicalIndex.setter + def MechanicalIndex(self, value: Optional[Decimal]): + if value is None: + if "MechanicalIndex" in self._dataset: + del self._dataset.MechanicalIndex + else: + self._dataset.MechanicalIndex = value + + @property + def BoneThermalIndex(self) -> Optional[Decimal]: + if "BoneThermalIndex" in self._dataset: + return self._dataset.BoneThermalIndex + return None + + @BoneThermalIndex.setter + def BoneThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "BoneThermalIndex" in self._dataset: + del self._dataset.BoneThermalIndex + else: + self._dataset.BoneThermalIndex = value + + @property + def CranialThermalIndex(self) -> Optional[Decimal]: + if "CranialThermalIndex" in self._dataset: + return self._dataset.CranialThermalIndex + return None + + @CranialThermalIndex.setter + def CranialThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "CranialThermalIndex" in self._dataset: + del self._dataset.CranialThermalIndex + else: + self._dataset.CranialThermalIndex = value + + @property + def SoftTissueThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueThermalIndex" in self._dataset: + return self._dataset.SoftTissueThermalIndex + return None + + @SoftTissueThermalIndex.setter + def SoftTissueThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueThermalIndex" in self._dataset: + del self._dataset.SoftTissueThermalIndex + else: + self._dataset.SoftTissueThermalIndex = value + + @property + def SoftTissueFocusThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueFocusThermalIndex" in self._dataset: + return self._dataset.SoftTissueFocusThermalIndex + return None + + @SoftTissueFocusThermalIndex.setter + def SoftTissueFocusThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueFocusThermalIndex" in self._dataset: + del self._dataset.SoftTissueFocusThermalIndex + else: + self._dataset.SoftTissueFocusThermalIndex = value + + @property + def SoftTissueSurfaceThermalIndex(self) -> Optional[Decimal]: + if "SoftTissueSurfaceThermalIndex" in self._dataset: + return self._dataset.SoftTissueSurfaceThermalIndex + return None + + @SoftTissueSurfaceThermalIndex.setter + def SoftTissueSurfaceThermalIndex(self, value: Optional[Decimal]): + if value is None: + if "SoftTissueSurfaceThermalIndex" in self._dataset: + del self._dataset.SoftTissueSurfaceThermalIndex + else: + self._dataset.SoftTissueSurfaceThermalIndex = value + + @property + def DepthOfScanField(self) -> Optional[int]: + if "DepthOfScanField" in self._dataset: + return self._dataset.DepthOfScanField + return None + + @DepthOfScanField.setter + def DepthOfScanField(self, value: Optional[int]): + if value is None: + if "DepthOfScanField" in self._dataset: + del self._dataset.DepthOfScanField + else: + self._dataset.DepthOfScanField = value + + @property + def TransducerType(self) -> Optional[str]: + if "TransducerType" in self._dataset: + return self._dataset.TransducerType + return None + + @TransducerType.setter + def TransducerType(self, value: Optional[str]): + if value is None: + if "TransducerType" in self._dataset: + del self._dataset.TransducerType + else: + self._dataset.TransducerType = value + + @property + def RWaveTimeVector(self) -> Optional[List[float]]: + if "RWaveTimeVector" in self._dataset: + return self._dataset.RWaveTimeVector + return None + + @RWaveTimeVector.setter + def RWaveTimeVector(self, value: Optional[List[float]]): + if value is None: + if "RWaveTimeVector" in self._dataset: + del self._dataset.RWaveTimeVector + else: + self._dataset.RWaveTimeVector = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def UltrasoundColorDataPresent(self) -> Optional[int]: + if "UltrasoundColorDataPresent" in self._dataset: + return self._dataset.UltrasoundColorDataPresent + return None + + @UltrasoundColorDataPresent.setter + def UltrasoundColorDataPresent(self, value: Optional[int]): + if value is None: + if "UltrasoundColorDataPresent" in self._dataset: + del self._dataset.UltrasoundColorDataPresent + else: + self._dataset.UltrasoundColorDataPresent = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def StageCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StageCodeSequence" in self._dataset: + if len(self._StageCodeSequence) == len(self._dataset.StageCodeSequence): + return self._StageCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StageCodeSequence] + return None + + @StageCodeSequence.setter + def StageCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StageCodeSequence = [] + if "StageCodeSequence" in self._dataset: + del self._dataset.StageCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StageCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StageCodeSequence = value + if "StageCodeSequence" not in self._dataset: + self._dataset.StageCodeSequence = pydicom.Sequence() + self._dataset.StageCodeSequence.clear() + self._dataset.StageCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StageCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StageCodeSequence.append(item) + if "StageCodeSequence" not in self._dataset: + self._dataset.StageCodeSequence = pydicom.Sequence() + self._dataset.StageCodeSequence.append(item.to_dataset()) + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SliceProgressionDirection(self) -> Optional[str]: + if "SliceProgressionDirection" in self._dataset: + return self._dataset.SliceProgressionDirection + return None + + @SliceProgressionDirection.setter + def SliceProgressionDirection(self, value: Optional[str]): + if value is None: + if "SliceProgressionDirection" in self._dataset: + del self._dataset.SliceProgressionDirection + else: + self._dataset.SliceProgressionDirection = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def NumberOfFramesInOverlay(self) -> Optional[int]: + if "NumberOfFramesInOverlay" in self._dataset: + return self._dataset.NumberOfFramesInOverlay + return None + + @NumberOfFramesInOverlay.setter + def NumberOfFramesInOverlay(self, value: Optional[int]): + if value is None: + if "NumberOfFramesInOverlay" in self._dataset: + del self._dataset.NumberOfFramesInOverlay + else: + self._dataset.NumberOfFramesInOverlay = value + + @property + def ImageFrameOrigin(self) -> Optional[int]: + if "ImageFrameOrigin" in self._dataset: + return self._dataset.ImageFrameOrigin + return None + + @ImageFrameOrigin.setter + def ImageFrameOrigin(self, value: Optional[int]): + if value is None: + if "ImageFrameOrigin" in self._dataset: + del self._dataset.ImageFrameOrigin + else: + self._dataset.ImageFrameOrigin = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/ultrasound_ophthalmic_axial_length_measurements_sequence_item.py b/tdwii_plus_examples/domain_model/ultrasound_ophthalmic_axial_length_measurements_sequence_item.py new file mode 100644 index 0000000..0e34809 --- /dev/null +++ b/tdwii_plus_examples/domain_model/ultrasound_ophthalmic_axial_length_measurements_sequence_item.py @@ -0,0 +1,90 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class UltrasoundOphthalmicAxialLengthMeasurementsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthDataSourceCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLengthVelocity(self) -> Optional[float]: + if "OphthalmicAxialLengthVelocity" in self._dataset: + return self._dataset.OphthalmicAxialLengthVelocity + return None + + @OphthalmicAxialLengthVelocity.setter + def OphthalmicAxialLengthVelocity(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLengthVelocity" in self._dataset: + del self._dataset.OphthalmicAxialLengthVelocity + else: + self._dataset.OphthalmicAxialLengthVelocity = value + + @property + def OphthalmicAxialLengthDataSourceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicAxialLengthDataSourceCodeSequence" in self._dataset: + if len(self._OphthalmicAxialLengthDataSourceCodeSequence) == len( + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence + ): + return self._OphthalmicAxialLengthDataSourceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthDataSourceCodeSequence] + return None + + @OphthalmicAxialLengthDataSourceCodeSequence.setter + def OphthalmicAxialLengthDataSourceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthDataSourceCodeSequence = [] + if "OphthalmicAxialLengthDataSourceCodeSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthDataSourceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicAxialLengthDataSourceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicAxialLengthDataSourceCodeSequence = value + if "OphthalmicAxialLengthDataSourceCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence.clear() + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthDataSourceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicAxialLengthDataSourceCodeSequence.append(item) + if "OphthalmicAxialLengthDataSourceCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthDataSourceCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthDataSourceDescription(self) -> Optional[str]: + if "OphthalmicAxialLengthDataSourceDescription" in self._dataset: + return self._dataset.OphthalmicAxialLengthDataSourceDescription + return None + + @OphthalmicAxialLengthDataSourceDescription.setter + def OphthalmicAxialLengthDataSourceDescription(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthDataSourceDescription" in self._dataset: + del self._dataset.OphthalmicAxialLengthDataSourceDescription + else: + self._dataset.OphthalmicAxialLengthDataSourceDescription = value + + @property + def ObserverType(self) -> Optional[str]: + if "ObserverType" in self._dataset: + return self._dataset.ObserverType + return None + + @ObserverType.setter + def ObserverType(self, value: Optional[str]): + if value is None: + if "ObserverType" in self._dataset: + del self._dataset.ObserverType + else: + self._dataset.ObserverType = value diff --git a/tdwii_plus_examples/domain_model/ultrasound_selected_ophthalmic_axial_length_sequence_item.py b/tdwii_plus_examples/domain_model/ultrasound_selected_ophthalmic_axial_length_sequence_item.py new file mode 100644 index 0000000..2194c7d --- /dev/null +++ b/tdwii_plus_examples/domain_model/ultrasound_selected_ophthalmic_axial_length_sequence_item.py @@ -0,0 +1,230 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .ophthalmic_axial_length_quality_metric_sequence_item import ( + OphthalmicAxialLengthQualityMetricSequenceItem, +) +from .referenced_ophthalmic_axial_length_measurement_qc_image_sequence_item import ( + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem, +) +from .selected_segmental_ophthalmic_axial_length_sequence_item import ( + SelectedSegmentalOphthalmicAxialLengthSequenceItem, +) + + +class UltrasoundSelectedOphthalmicAxialLengthSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._OphthalmicAxialLengthSelectionMethodCodeSequence: List[CodeSequenceItem] = [] + self._SelectedSegmentalOphthalmicAxialLengthSequence: List[SelectedSegmentalOphthalmicAxialLengthSequenceItem] = [] + self._OphthalmicAxialLengthQualityMetricSequence: List[OphthalmicAxialLengthQualityMetricSequenceItem] = [] + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence: List[ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def OphthalmicAxialLengthMeasurementsType(self) -> Optional[str]: + if "OphthalmicAxialLengthMeasurementsType" in self._dataset: + return self._dataset.OphthalmicAxialLengthMeasurementsType + return None + + @OphthalmicAxialLengthMeasurementsType.setter + def OphthalmicAxialLengthMeasurementsType(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMeasurementsType" in self._dataset: + del self._dataset.OphthalmicAxialLengthMeasurementsType + else: + self._dataset.OphthalmicAxialLengthMeasurementsType = value + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def OphthalmicAxialLengthSelectionMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "OphthalmicAxialLengthSelectionMethodCodeSequence" in self._dataset: + if len(self._OphthalmicAxialLengthSelectionMethodCodeSequence) == len( + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence + ): + return self._OphthalmicAxialLengthSelectionMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence] + return None + + @OphthalmicAxialLengthSelectionMethodCodeSequence.setter + def OphthalmicAxialLengthSelectionMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._OphthalmicAxialLengthSelectionMethodCodeSequence = [] + if "OphthalmicAxialLengthSelectionMethodCodeSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("OphthalmicAxialLengthSelectionMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._OphthalmicAxialLengthSelectionMethodCodeSequence = value + if "OphthalmicAxialLengthSelectionMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence.clear() + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthSelectionMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._OphthalmicAxialLengthSelectionMethodCodeSequence.append(item) + if "OphthalmicAxialLengthSelectionMethodCodeSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthSelectionMethodCodeSequence.append(item.to_dataset()) + + @property + def SelectedSegmentalOphthalmicAxialLengthSequence( + self, + ) -> Optional[List[SelectedSegmentalOphthalmicAxialLengthSequenceItem]]: + if "SelectedSegmentalOphthalmicAxialLengthSequence" in self._dataset: + if len(self._SelectedSegmentalOphthalmicAxialLengthSequence) == len( + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence + ): + return self._SelectedSegmentalOphthalmicAxialLengthSequence + else: + return [ + SelectedSegmentalOphthalmicAxialLengthSequenceItem(x) + for x in self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence + ] + return None + + @SelectedSegmentalOphthalmicAxialLengthSequence.setter + def SelectedSegmentalOphthalmicAxialLengthSequence( + self, value: Optional[List[SelectedSegmentalOphthalmicAxialLengthSequenceItem]] + ): + if value is None: + self._SelectedSegmentalOphthalmicAxialLengthSequence = [] + if "SelectedSegmentalOphthalmicAxialLengthSequence" in self._dataset: + del self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence + elif not isinstance(value, list) or not all( + isinstance(item, SelectedSegmentalOphthalmicAxialLengthSequenceItem) for item in value + ): + raise ValueError( + "SelectedSegmentalOphthalmicAxialLengthSequence must be a list of" + " SelectedSegmentalOphthalmicAxialLengthSequenceItem objects" + ) + else: + self._SelectedSegmentalOphthalmicAxialLengthSequence = value + if "SelectedSegmentalOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence.clear() + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence.extend([item.to_dataset() for item in value]) + + def add_SelectedSegmentalOphthalmicAxialLength(self, item: SelectedSegmentalOphthalmicAxialLengthSequenceItem): + if not isinstance(item, SelectedSegmentalOphthalmicAxialLengthSequenceItem): + raise ValueError("Item must be an instance of SelectedSegmentalOphthalmicAxialLengthSequenceItem") + self._SelectedSegmentalOphthalmicAxialLengthSequence.append(item) + if "SelectedSegmentalOphthalmicAxialLengthSequence" not in self._dataset: + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence = pydicom.Sequence() + self._dataset.SelectedSegmentalOphthalmicAxialLengthSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthQualityMetricSequence(self) -> Optional[List[OphthalmicAxialLengthQualityMetricSequenceItem]]: + if "OphthalmicAxialLengthQualityMetricSequence" in self._dataset: + if len(self._OphthalmicAxialLengthQualityMetricSequence) == len( + self._dataset.OphthalmicAxialLengthQualityMetricSequence + ): + return self._OphthalmicAxialLengthQualityMetricSequence + else: + return [ + OphthalmicAxialLengthQualityMetricSequenceItem(x) + for x in self._dataset.OphthalmicAxialLengthQualityMetricSequence + ] + return None + + @OphthalmicAxialLengthQualityMetricSequence.setter + def OphthalmicAxialLengthQualityMetricSequence( + self, value: Optional[List[OphthalmicAxialLengthQualityMetricSequenceItem]] + ): + if value is None: + self._OphthalmicAxialLengthQualityMetricSequence = [] + if "OphthalmicAxialLengthQualityMetricSequence" in self._dataset: + del self._dataset.OphthalmicAxialLengthQualityMetricSequence + elif not isinstance(value, list) or not all( + isinstance(item, OphthalmicAxialLengthQualityMetricSequenceItem) for item in value + ): + raise ValueError( + "OphthalmicAxialLengthQualityMetricSequence must be a list of OphthalmicAxialLengthQualityMetricSequenceItem" + " objects" + ) + else: + self._OphthalmicAxialLengthQualityMetricSequence = value + if "OphthalmicAxialLengthQualityMetricSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthQualityMetricSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthQualityMetricSequence.clear() + self._dataset.OphthalmicAxialLengthQualityMetricSequence.extend([item.to_dataset() for item in value]) + + def add_OphthalmicAxialLengthQualityMetric(self, item: OphthalmicAxialLengthQualityMetricSequenceItem): + if not isinstance(item, OphthalmicAxialLengthQualityMetricSequenceItem): + raise ValueError("Item must be an instance of OphthalmicAxialLengthQualityMetricSequenceItem") + self._OphthalmicAxialLengthQualityMetricSequence.append(item) + if "OphthalmicAxialLengthQualityMetricSequence" not in self._dataset: + self._dataset.OphthalmicAxialLengthQualityMetricSequence = pydicom.Sequence() + self._dataset.OphthalmicAxialLengthQualityMetricSequence.append(item.to_dataset()) + + @property + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, + ) -> Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]]: + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + if len(self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence) == len( + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ): + return self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + else: + return [ + ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem(x) + for x in self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + ] + return None + + @ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.setter + def ReferencedOphthalmicAxialLengthMeasurementQCImageSequence( + self, value: Optional[List[ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem]] + ): + if value is None: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = [] + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" in self._dataset: + del self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem) for item in value + ): + raise ValueError( + "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence must be a list of" + " ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem objects" + ) + else: + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = value + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.clear() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.extend( + [item.to_dataset() for item in value] + ) + + def add_ReferencedOphthalmicAxialLengthMeasurementQCImage( + self, item: ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem + ): + if not isinstance(item, ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedOphthalmicAxialLengthMeasurementQCImageSequenceItem") + self._ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item) + if "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence" not in self._dataset: + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence = pydicom.Sequence() + self._dataset.ReferencedOphthalmicAxialLengthMeasurementQCImageSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/unassigned_per_frame_converted_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/unassigned_per_frame_converted_attributes_sequence_item.py new file mode 100644 index 0000000..50308fe --- /dev/null +++ b/tdwii_plus_examples/domain_model/unassigned_per_frame_converted_attributes_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class UnassignedPerFrameConvertedAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/unassigned_shared_converted_attributes_sequence_item.py b/tdwii_plus_examples/domain_model/unassigned_shared_converted_attributes_sequence_item.py new file mode 100644 index 0000000..5941737 --- /dev/null +++ b/tdwii_plus_examples/domain_model/unassigned_shared_converted_attributes_sequence_item.py @@ -0,0 +1,11 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class UnassignedSharedConvertedAttributesSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset diff --git a/tdwii_plus_examples/domain_model/unspecified_laterality_lens_sequence_item.py b/tdwii_plus_examples/domain_model/unspecified_laterality_lens_sequence_item.py new file mode 100644 index 0000000..10c99f0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/unspecified_laterality_lens_sequence_item.py @@ -0,0 +1,204 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .add_intermediate_sequence_item import AddIntermediateSequenceItem +from .add_near_sequence_item import AddNearSequenceItem +from .cylinder_sequence_item import CylinderSequenceItem +from .prism_sequence_item import PrismSequenceItem + + +class UnspecifiedLateralityLensSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CylinderSequence: List[CylinderSequenceItem] = [] + self._PrismSequence: List[PrismSequenceItem] = [] + self._AddNearSequence: List[AddNearSequenceItem] = [] + self._AddIntermediateSequence: List[AddIntermediateSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def CylinderSequence(self) -> Optional[List[CylinderSequenceItem]]: + if "CylinderSequence" in self._dataset: + if len(self._CylinderSequence) == len(self._dataset.CylinderSequence): + return self._CylinderSequence + else: + return [CylinderSequenceItem(x) for x in self._dataset.CylinderSequence] + return None + + @CylinderSequence.setter + def CylinderSequence(self, value: Optional[List[CylinderSequenceItem]]): + if value is None: + self._CylinderSequence = [] + if "CylinderSequence" in self._dataset: + del self._dataset.CylinderSequence + elif not isinstance(value, list) or not all(isinstance(item, CylinderSequenceItem) for item in value): + raise ValueError("CylinderSequence must be a list of CylinderSequenceItem objects") + else: + self._CylinderSequence = value + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.clear() + self._dataset.CylinderSequence.extend([item.to_dataset() for item in value]) + + def add_Cylinder(self, item: CylinderSequenceItem): + if not isinstance(item, CylinderSequenceItem): + raise ValueError("Item must be an instance of CylinderSequenceItem") + self._CylinderSequence.append(item) + if "CylinderSequence" not in self._dataset: + self._dataset.CylinderSequence = pydicom.Sequence() + self._dataset.CylinderSequence.append(item.to_dataset()) + + @property + def PrismSequence(self) -> Optional[List[PrismSequenceItem]]: + if "PrismSequence" in self._dataset: + if len(self._PrismSequence) == len(self._dataset.PrismSequence): + return self._PrismSequence + else: + return [PrismSequenceItem(x) for x in self._dataset.PrismSequence] + return None + + @PrismSequence.setter + def PrismSequence(self, value: Optional[List[PrismSequenceItem]]): + if value is None: + self._PrismSequence = [] + if "PrismSequence" in self._dataset: + del self._dataset.PrismSequence + elif not isinstance(value, list) or not all(isinstance(item, PrismSequenceItem) for item in value): + raise ValueError("PrismSequence must be a list of PrismSequenceItem objects") + else: + self._PrismSequence = value + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.clear() + self._dataset.PrismSequence.extend([item.to_dataset() for item in value]) + + def add_Prism(self, item: PrismSequenceItem): + if not isinstance(item, PrismSequenceItem): + raise ValueError("Item must be an instance of PrismSequenceItem") + self._PrismSequence.append(item) + if "PrismSequence" not in self._dataset: + self._dataset.PrismSequence = pydicom.Sequence() + self._dataset.PrismSequence.append(item.to_dataset()) + + @property + def LensSegmentType(self) -> Optional[str]: + if "LensSegmentType" in self._dataset: + return self._dataset.LensSegmentType + return None + + @LensSegmentType.setter + def LensSegmentType(self, value: Optional[str]): + if value is None: + if "LensSegmentType" in self._dataset: + del self._dataset.LensSegmentType + else: + self._dataset.LensSegmentType = value + + @property + def OpticalTransmittance(self) -> Optional[float]: + if "OpticalTransmittance" in self._dataset: + return self._dataset.OpticalTransmittance + return None + + @OpticalTransmittance.setter + def OpticalTransmittance(self, value: Optional[float]): + if value is None: + if "OpticalTransmittance" in self._dataset: + del self._dataset.OpticalTransmittance + else: + self._dataset.OpticalTransmittance = value + + @property + def ChannelWidth(self) -> Optional[float]: + if "ChannelWidth" in self._dataset: + return self._dataset.ChannelWidth + return None + + @ChannelWidth.setter + def ChannelWidth(self, value: Optional[float]): + if value is None: + if "ChannelWidth" in self._dataset: + del self._dataset.ChannelWidth + else: + self._dataset.ChannelWidth = value + + @property + def AddNearSequence(self) -> Optional[List[AddNearSequenceItem]]: + if "AddNearSequence" in self._dataset: + if len(self._AddNearSequence) == len(self._dataset.AddNearSequence): + return self._AddNearSequence + else: + return [AddNearSequenceItem(x) for x in self._dataset.AddNearSequence] + return None + + @AddNearSequence.setter + def AddNearSequence(self, value: Optional[List[AddNearSequenceItem]]): + if value is None: + self._AddNearSequence = [] + if "AddNearSequence" in self._dataset: + del self._dataset.AddNearSequence + elif not isinstance(value, list) or not all(isinstance(item, AddNearSequenceItem) for item in value): + raise ValueError("AddNearSequence must be a list of AddNearSequenceItem objects") + else: + self._AddNearSequence = value + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.clear() + self._dataset.AddNearSequence.extend([item.to_dataset() for item in value]) + + def add_AddNear(self, item: AddNearSequenceItem): + if not isinstance(item, AddNearSequenceItem): + raise ValueError("Item must be an instance of AddNearSequenceItem") + self._AddNearSequence.append(item) + if "AddNearSequence" not in self._dataset: + self._dataset.AddNearSequence = pydicom.Sequence() + self._dataset.AddNearSequence.append(item.to_dataset()) + + @property + def AddIntermediateSequence(self) -> Optional[List[AddIntermediateSequenceItem]]: + if "AddIntermediateSequence" in self._dataset: + if len(self._AddIntermediateSequence) == len(self._dataset.AddIntermediateSequence): + return self._AddIntermediateSequence + else: + return [AddIntermediateSequenceItem(x) for x in self._dataset.AddIntermediateSequence] + return None + + @AddIntermediateSequence.setter + def AddIntermediateSequence(self, value: Optional[List[AddIntermediateSequenceItem]]): + if value is None: + self._AddIntermediateSequence = [] + if "AddIntermediateSequence" in self._dataset: + del self._dataset.AddIntermediateSequence + elif not isinstance(value, list) or not all(isinstance(item, AddIntermediateSequenceItem) for item in value): + raise ValueError("AddIntermediateSequence must be a list of AddIntermediateSequenceItem objects") + else: + self._AddIntermediateSequence = value + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.clear() + self._dataset.AddIntermediateSequence.extend([item.to_dataset() for item in value]) + + def add_AddIntermediate(self, item: AddIntermediateSequenceItem): + if not isinstance(item, AddIntermediateSequenceItem): + raise ValueError("Item must be an instance of AddIntermediateSequenceItem") + self._AddIntermediateSequence.append(item) + if "AddIntermediateSequence" not in self._dataset: + self._dataset.AddIntermediateSequence = pydicom.Sequence() + self._dataset.AddIntermediateSequence.append(item.to_dataset()) + + @property + def SpherePower(self) -> Optional[float]: + if "SpherePower" in self._dataset: + return self._dataset.SpherePower + return None + + @SpherePower.setter + def SpherePower(self, value: Optional[float]): + if value is None: + if "SpherePower" in self._dataset: + del self._dataset.SpherePower + else: + self._dataset.SpherePower = value diff --git a/tdwii_plus_examples/domain_model/us_image_description_sequence_item.py b/tdwii_plus_examples/domain_model/us_image_description_sequence_item.py new file mode 100644 index 0000000..0b40de4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/us_image_description_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class USImageDescriptionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value diff --git a/tdwii_plus_examples/domain_model/used_fiducials_sequence_item.py b/tdwii_plus_examples/domain_model/used_fiducials_sequence_item.py new file mode 100644 index 0000000..fceb6b0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/used_fiducials_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class UsedFiducialsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def FiducialUID(self) -> Optional[str]: + if "FiducialUID" in self._dataset: + return self._dataset.FiducialUID + return None + + @FiducialUID.setter + def FiducialUID(self, value: Optional[str]): + if value is None: + if "FiducialUID" in self._dataset: + del self._dataset.FiducialUID + else: + self._dataset.FiducialUID = value diff --git a/tdwii_plus_examples/domain_model/used_rt_structure_set_roi_sequence_item.py b/tdwii_plus_examples/domain_model/used_rt_structure_set_roi_sequence_item.py new file mode 100644 index 0000000..6f0eaa9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/used_rt_structure_set_roi_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class UsedRTStructureSetROISequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedROINumber(self) -> Optional[int]: + if "ReferencedROINumber" in self._dataset: + return self._dataset.ReferencedROINumber + return None + + @ReferencedROINumber.setter + def ReferencedROINumber(self, value: Optional[int]): + if value is None: + if "ReferencedROINumber" in self._dataset: + del self._dataset.ReferencedROINumber + else: + self._dataset.ReferencedROINumber = value diff --git a/tdwii_plus_examples/domain_model/used_segments_sequence_item.py b/tdwii_plus_examples/domain_model/used_segments_sequence_item.py new file mode 100644 index 0000000..9379578 --- /dev/null +++ b/tdwii_plus_examples/domain_model/used_segments_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class UsedSegmentsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSOPClassUID(self) -> Optional[str]: + if "ReferencedSOPClassUID" in self._dataset: + return self._dataset.ReferencedSOPClassUID + return None + + @ReferencedSOPClassUID.setter + def ReferencedSOPClassUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPClassUID" in self._dataset: + del self._dataset.ReferencedSOPClassUID + else: + self._dataset.ReferencedSOPClassUID = value + + @property + def ReferencedSOPInstanceUID(self) -> Optional[str]: + if "ReferencedSOPInstanceUID" in self._dataset: + return self._dataset.ReferencedSOPInstanceUID + return None + + @ReferencedSOPInstanceUID.setter + def ReferencedSOPInstanceUID(self, value: Optional[str]): + if value is None: + if "ReferencedSOPInstanceUID" in self._dataset: + del self._dataset.ReferencedSOPInstanceUID + else: + self._dataset.ReferencedSOPInstanceUID = value + + @property + def ReferencedSegmentNumber(self) -> Optional[List[int]]: + if "ReferencedSegmentNumber" in self._dataset: + return self._dataset.ReferencedSegmentNumber + return None + + @ReferencedSegmentNumber.setter + def ReferencedSegmentNumber(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSegmentNumber" in self._dataset: + del self._dataset.ReferencedSegmentNumber + else: + self._dataset.ReferencedSegmentNumber = value diff --git a/tdwii_plus_examples/domain_model/uv_mapping_sequence_item.py b/tdwii_plus_examples/domain_model/uv_mapping_sequence_item.py new file mode 100644 index 0000000..d396c3e --- /dev/null +++ b/tdwii_plus_examples/domain_model/uv_mapping_sequence_item.py @@ -0,0 +1,102 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_texture_sequence_item import ReferencedTextureSequenceItem + + +class UVMappingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedTextureSequence: List[ReferencedTextureSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedSurfaceNumber(self) -> Optional[int]: + if "ReferencedSurfaceNumber" in self._dataset: + return self._dataset.ReferencedSurfaceNumber + return None + + @ReferencedSurfaceNumber.setter + def ReferencedSurfaceNumber(self, value: Optional[int]): + if value is None: + if "ReferencedSurfaceNumber" in self._dataset: + del self._dataset.ReferencedSurfaceNumber + else: + self._dataset.ReferencedSurfaceNumber = value + + @property + def TextureLabel(self) -> Optional[str]: + if "TextureLabel" in self._dataset: + return self._dataset.TextureLabel + return None + + @TextureLabel.setter + def TextureLabel(self, value: Optional[str]): + if value is None: + if "TextureLabel" in self._dataset: + del self._dataset.TextureLabel + else: + self._dataset.TextureLabel = value + + @property + def UValueData(self) -> Optional[bytes]: + if "UValueData" in self._dataset: + return self._dataset.UValueData + return None + + @UValueData.setter + def UValueData(self, value: Optional[bytes]): + if value is None: + if "UValueData" in self._dataset: + del self._dataset.UValueData + else: + self._dataset.UValueData = value + + @property + def VValueData(self) -> Optional[bytes]: + if "VValueData" in self._dataset: + return self._dataset.VValueData + return None + + @VValueData.setter + def VValueData(self, value: Optional[bytes]): + if value is None: + if "VValueData" in self._dataset: + del self._dataset.VValueData + else: + self._dataset.VValueData = value + + @property + def ReferencedTextureSequence(self) -> Optional[List[ReferencedTextureSequenceItem]]: + if "ReferencedTextureSequence" in self._dataset: + if len(self._ReferencedTextureSequence) == len(self._dataset.ReferencedTextureSequence): + return self._ReferencedTextureSequence + else: + return [ReferencedTextureSequenceItem(x) for x in self._dataset.ReferencedTextureSequence] + return None + + @ReferencedTextureSequence.setter + def ReferencedTextureSequence(self, value: Optional[List[ReferencedTextureSequenceItem]]): + if value is None: + self._ReferencedTextureSequence = [] + if "ReferencedTextureSequence" in self._dataset: + del self._dataset.ReferencedTextureSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedTextureSequenceItem) for item in value): + raise ValueError("ReferencedTextureSequence must be a list of ReferencedTextureSequenceItem objects") + else: + self._ReferencedTextureSequence = value + if "ReferencedTextureSequence" not in self._dataset: + self._dataset.ReferencedTextureSequence = pydicom.Sequence() + self._dataset.ReferencedTextureSequence.clear() + self._dataset.ReferencedTextureSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedTexture(self, item: ReferencedTextureSequenceItem): + if not isinstance(item, ReferencedTextureSequenceItem): + raise ValueError("Item must be an instance of ReferencedTextureSequenceItem") + self._ReferencedTextureSequence.append(item) + if "ReferencedTextureSequence" not in self._dataset: + self._dataset.ReferencedTextureSequence = pydicom.Sequence() + self._dataset.ReferencedTextureSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/variable_modality_lut_sequence_item.py b/tdwii_plus_examples/domain_model/variable_modality_lut_sequence_item.py new file mode 100644 index 0000000..5e1899a --- /dev/null +++ b/tdwii_plus_examples/domain_model/variable_modality_lut_sequence_item.py @@ -0,0 +1,123 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class VariableModalityLUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/variable_modality_lut_softcopy_presentation_state.py b/tdwii_plus_examples/domain_model/variable_modality_lut_softcopy_presentation_state.py new file mode 100644 index 0000000..3ee8d1e --- /dev/null +++ b/tdwii_plus_examples/domain_model/variable_modality_lut_softcopy_presentation_state.py @@ -0,0 +1,5145 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .presentation_lut_sequence_item import PresentationLUTSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .softcopy_voilut_sequence_item import SoftcopyVOILUTSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .variable_modality_lut_sequence_item import VariableModalityLUTSequenceItem + + +class VariableModalityLutSoftcopyPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._VariableModalityLUTSequence: List[VariableModalityLUTSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._SoftcopyVOILUTSequence: List[SoftcopyVOILUTSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PresentationLUTSequence: List[PresentationLUTSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def OverlayActivationLayer(self) -> Optional[str]: + if "OverlayActivationLayer" in self._dataset: + return self._dataset.OverlayActivationLayer + return None + + @OverlayActivationLayer.setter + def OverlayActivationLayer(self, value: Optional[str]): + if value is None: + if "OverlayActivationLayer" in self._dataset: + del self._dataset.OverlayActivationLayer + else: + self._dataset.OverlayActivationLayer = value + + @property + def VariableModalityLUTSequence(self) -> Optional[List[VariableModalityLUTSequenceItem]]: + if "VariableModalityLUTSequence" in self._dataset: + if len(self._VariableModalityLUTSequence) == len(self._dataset.VariableModalityLUTSequence): + return self._VariableModalityLUTSequence + else: + return [VariableModalityLUTSequenceItem(x) for x in self._dataset.VariableModalityLUTSequence] + return None + + @VariableModalityLUTSequence.setter + def VariableModalityLUTSequence(self, value: Optional[List[VariableModalityLUTSequenceItem]]): + if value is None: + self._VariableModalityLUTSequence = [] + if "VariableModalityLUTSequence" in self._dataset: + del self._dataset.VariableModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VariableModalityLUTSequenceItem) for item in value): + raise ValueError("VariableModalityLUTSequence must be a list of VariableModalityLUTSequenceItem objects") + else: + self._VariableModalityLUTSequence = value + if "VariableModalityLUTSequence" not in self._dataset: + self._dataset.VariableModalityLUTSequence = pydicom.Sequence() + self._dataset.VariableModalityLUTSequence.clear() + self._dataset.VariableModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_VariableModalityLUT(self, item: VariableModalityLUTSequenceItem): + if not isinstance(item, VariableModalityLUTSequenceItem): + raise ValueError("Item must be an instance of VariableModalityLUTSequenceItem") + self._VariableModalityLUTSequence.append(item) + if "VariableModalityLUTSequence" not in self._dataset: + self._dataset.VariableModalityLUTSequence = pydicom.Sequence() + self._dataset.VariableModalityLUTSequence.append(item.to_dataset()) + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterOverlayGroup(self) -> Optional[int]: + if "ShutterOverlayGroup" in self._dataset: + return self._dataset.ShutterOverlayGroup + return None + + @ShutterOverlayGroup.setter + def ShutterOverlayGroup(self, value: Optional[int]): + if value is None: + if "ShutterOverlayGroup" in self._dataset: + del self._dataset.ShutterOverlayGroup + else: + self._dataset.ShutterOverlayGroup = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def SoftcopyVOILUTSequence(self) -> Optional[List[SoftcopyVOILUTSequenceItem]]: + if "SoftcopyVOILUTSequence" in self._dataset: + if len(self._SoftcopyVOILUTSequence) == len(self._dataset.SoftcopyVOILUTSequence): + return self._SoftcopyVOILUTSequence + else: + return [SoftcopyVOILUTSequenceItem(x) for x in self._dataset.SoftcopyVOILUTSequence] + return None + + @SoftcopyVOILUTSequence.setter + def SoftcopyVOILUTSequence(self, value: Optional[List[SoftcopyVOILUTSequenceItem]]): + if value is None: + self._SoftcopyVOILUTSequence = [] + if "SoftcopyVOILUTSequence" in self._dataset: + del self._dataset.SoftcopyVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, SoftcopyVOILUTSequenceItem) for item in value): + raise ValueError("SoftcopyVOILUTSequence must be a list of SoftcopyVOILUTSequenceItem objects") + else: + self._SoftcopyVOILUTSequence = value + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.clear() + self._dataset.SoftcopyVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_SoftcopyVOILUT(self, item: SoftcopyVOILUTSequenceItem): + if not isinstance(item, SoftcopyVOILUTSequenceItem): + raise ValueError("Item must be an instance of SoftcopyVOILUTSequenceItem") + self._SoftcopyVOILUTSequence.append(item) + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PresentationLUTSequence(self) -> Optional[List[PresentationLUTSequenceItem]]: + if "PresentationLUTSequence" in self._dataset: + if len(self._PresentationLUTSequence) == len(self._dataset.PresentationLUTSequence): + return self._PresentationLUTSequence + else: + return [PresentationLUTSequenceItem(x) for x in self._dataset.PresentationLUTSequence] + return None + + @PresentationLUTSequence.setter + def PresentationLUTSequence(self, value: Optional[List[PresentationLUTSequenceItem]]): + if value is None: + self._PresentationLUTSequence = [] + if "PresentationLUTSequence" in self._dataset: + del self._dataset.PresentationLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, PresentationLUTSequenceItem) for item in value): + raise ValueError("PresentationLUTSequence must be a list of PresentationLUTSequenceItem objects") + else: + self._PresentationLUTSequence = value + if "PresentationLUTSequence" not in self._dataset: + self._dataset.PresentationLUTSequence = pydicom.Sequence() + self._dataset.PresentationLUTSequence.clear() + self._dataset.PresentationLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationLUT(self, item: PresentationLUTSequenceItem): + if not isinstance(item, PresentationLUTSequenceItem): + raise ValueError("Item must be an instance of PresentationLUTSequenceItem") + self._PresentationLUTSequence.append(item) + if "PresentationLUTSequence" not in self._dataset: + self._dataset.PresentationLUTSequence = pydicom.Sequence() + self._dataset.PresentationLUTSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/velocity_encoding_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/velocity_encoding_acquisition_sequence_item.py new file mode 100644 index 0000000..9ad9def --- /dev/null +++ b/tdwii_plus_examples/domain_model/velocity_encoding_acquisition_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VelocityEncodingAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VelocityEncodingDirection(self) -> Optional[List[float]]: + if "VelocityEncodingDirection" in self._dataset: + return self._dataset.VelocityEncodingDirection + return None + + @VelocityEncodingDirection.setter + def VelocityEncodingDirection(self, value: Optional[List[float]]): + if value is None: + if "VelocityEncodingDirection" in self._dataset: + del self._dataset.VelocityEncodingDirection + else: + self._dataset.VelocityEncodingDirection = value diff --git a/tdwii_plus_examples/domain_model/verifying_observer_sequence_item.py b/tdwii_plus_examples/domain_model/verifying_observer_sequence_item.py new file mode 100644 index 0000000..7efe8ab --- /dev/null +++ b/tdwii_plus_examples/domain_model/verifying_observer_sequence_item.py @@ -0,0 +1,90 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class VerifyingObserverSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VerifyingObserverIdentificationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VerifyingOrganization(self) -> Optional[str]: + if "VerifyingOrganization" in self._dataset: + return self._dataset.VerifyingOrganization + return None + + @VerifyingOrganization.setter + def VerifyingOrganization(self, value: Optional[str]): + if value is None: + if "VerifyingOrganization" in self._dataset: + del self._dataset.VerifyingOrganization + else: + self._dataset.VerifyingOrganization = value + + @property + def VerificationDateTime(self) -> Optional[str]: + if "VerificationDateTime" in self._dataset: + return self._dataset.VerificationDateTime + return None + + @VerificationDateTime.setter + def VerificationDateTime(self, value: Optional[str]): + if value is None: + if "VerificationDateTime" in self._dataset: + del self._dataset.VerificationDateTime + else: + self._dataset.VerificationDateTime = value + + @property + def VerifyingObserverName(self) -> Optional[str]: + if "VerifyingObserverName" in self._dataset: + return self._dataset.VerifyingObserverName + return None + + @VerifyingObserverName.setter + def VerifyingObserverName(self, value: Optional[str]): + if value is None: + if "VerifyingObserverName" in self._dataset: + del self._dataset.VerifyingObserverName + else: + self._dataset.VerifyingObserverName = value + + @property + def VerifyingObserverIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "VerifyingObserverIdentificationCodeSequence" in self._dataset: + if len(self._VerifyingObserverIdentificationCodeSequence) == len( + self._dataset.VerifyingObserverIdentificationCodeSequence + ): + return self._VerifyingObserverIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.VerifyingObserverIdentificationCodeSequence] + return None + + @VerifyingObserverIdentificationCodeSequence.setter + def VerifyingObserverIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._VerifyingObserverIdentificationCodeSequence = [] + if "VerifyingObserverIdentificationCodeSequence" in self._dataset: + del self._dataset.VerifyingObserverIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("VerifyingObserverIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._VerifyingObserverIdentificationCodeSequence = value + if "VerifyingObserverIdentificationCodeSequence" not in self._dataset: + self._dataset.VerifyingObserverIdentificationCodeSequence = pydicom.Sequence() + self._dataset.VerifyingObserverIdentificationCodeSequence.clear() + self._dataset.VerifyingObserverIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_VerifyingObserverIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._VerifyingObserverIdentificationCodeSequence.append(item) + if "VerifyingObserverIdentificationCodeSequence" not in self._dataset: + self._dataset.VerifyingObserverIdentificationCodeSequence = pydicom.Sequence() + self._dataset.VerifyingObserverIdentificationCodeSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/video_endoscopic_image.py b/tdwii_plus_examples/domain_model/video_endoscopic_image.py new file mode 100644 index 0000000..ffb37eb --- /dev/null +++ b/tdwii_plus_examples/domain_model/video_endoscopic_image.py @@ -0,0 +1,5860 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VideoEndoscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/video_microscopic_image.py b/tdwii_plus_examples/domain_model/video_microscopic_image.py new file mode 100644 index 0000000..9abe56d --- /dev/null +++ b/tdwii_plus_examples/domain_model/video_microscopic_image.py @@ -0,0 +1,5860 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VideoMicroscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/video_photographic_image.py b/tdwii_plus_examples/domain_model/video_photographic_image.py new file mode 100644 index 0000000..c220f5e --- /dev/null +++ b/tdwii_plus_examples/domain_model/video_photographic_image.py @@ -0,0 +1,5972 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VideoPhotographicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/visual_acuity_both_eyes_open_sequence_item.py b/tdwii_plus_examples/domain_model/visual_acuity_both_eyes_open_sequence_item.py new file mode 100644 index 0000000..9af4514 --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_acuity_both_eyes_open_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VisualAcuityBothEyesOpenSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VisualAcuityModifiers(self) -> Optional[List[int]]: + if "VisualAcuityModifiers" in self._dataset: + return self._dataset.VisualAcuityModifiers + return None + + @VisualAcuityModifiers.setter + def VisualAcuityModifiers(self, value: Optional[List[int]]): + if value is None: + if "VisualAcuityModifiers" in self._dataset: + del self._dataset.VisualAcuityModifiers + else: + self._dataset.VisualAcuityModifiers = value + + @property + def DecimalVisualAcuity(self) -> Optional[float]: + if "DecimalVisualAcuity" in self._dataset: + return self._dataset.DecimalVisualAcuity + return None + + @DecimalVisualAcuity.setter + def DecimalVisualAcuity(self, value: Optional[float]): + if value is None: + if "DecimalVisualAcuity" in self._dataset: + del self._dataset.DecimalVisualAcuity + else: + self._dataset.DecimalVisualAcuity = value diff --git a/tdwii_plus_examples/domain_model/visual_acuity_left_eye_sequence_item.py b/tdwii_plus_examples/domain_model/visual_acuity_left_eye_sequence_item.py new file mode 100644 index 0000000..d207ddf --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_acuity_left_eye_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VisualAcuityLeftEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VisualAcuityModifiers(self) -> Optional[List[int]]: + if "VisualAcuityModifiers" in self._dataset: + return self._dataset.VisualAcuityModifiers + return None + + @VisualAcuityModifiers.setter + def VisualAcuityModifiers(self, value: Optional[List[int]]): + if value is None: + if "VisualAcuityModifiers" in self._dataset: + del self._dataset.VisualAcuityModifiers + else: + self._dataset.VisualAcuityModifiers = value + + @property + def DecimalVisualAcuity(self) -> Optional[float]: + if "DecimalVisualAcuity" in self._dataset: + return self._dataset.DecimalVisualAcuity + return None + + @DecimalVisualAcuity.setter + def DecimalVisualAcuity(self, value: Optional[float]): + if value is None: + if "DecimalVisualAcuity" in self._dataset: + del self._dataset.DecimalVisualAcuity + else: + self._dataset.DecimalVisualAcuity = value diff --git a/tdwii_plus_examples/domain_model/visual_acuity_measurement_sequence_item.py b/tdwii_plus_examples/domain_model/visual_acuity_measurement_sequence_item.py new file mode 100644 index 0000000..26f64b2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_acuity_measurement_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VisualAcuityMeasurementSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VisualAcuityModifiers(self) -> Optional[List[int]]: + if "VisualAcuityModifiers" in self._dataset: + return self._dataset.VisualAcuityModifiers + return None + + @VisualAcuityModifiers.setter + def VisualAcuityModifiers(self, value: Optional[List[int]]): + if value is None: + if "VisualAcuityModifiers" in self._dataset: + del self._dataset.VisualAcuityModifiers + else: + self._dataset.VisualAcuityModifiers = value + + @property + def DecimalVisualAcuity(self) -> Optional[float]: + if "DecimalVisualAcuity" in self._dataset: + return self._dataset.DecimalVisualAcuity + return None + + @DecimalVisualAcuity.setter + def DecimalVisualAcuity(self, value: Optional[float]): + if value is None: + if "DecimalVisualAcuity" in self._dataset: + del self._dataset.DecimalVisualAcuity + else: + self._dataset.DecimalVisualAcuity = value diff --git a/tdwii_plus_examples/domain_model/visual_acuity_measurements.py b/tdwii_plus_examples/domain_model/visual_acuity_measurements.py new file mode 100644 index 0000000..315a442 --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_acuity_measurements.py @@ -0,0 +1,4305 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_refractive_measurements_sequence_item import ( + ReferencedRefractiveMeasurementsSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem +from .visual_acuity_both_eyes_open_sequence_item import ( + VisualAcuityBothEyesOpenSequenceItem, +) +from .visual_acuity_left_eye_sequence_item import VisualAcuityLeftEyeSequenceItem +from .visual_acuity_right_eye_sequence_item import VisualAcuityRightEyeSequenceItem + + +class VisualAcuityMeasurements: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VisualAcuityTypeCodeSequence: List[CodeSequenceItem] = [] + self._VisualAcuityRightEyeSequence: List[VisualAcuityRightEyeSequenceItem] = [] + self._VisualAcuityLeftEyeSequence: List[VisualAcuityLeftEyeSequenceItem] = [] + self._VisualAcuityBothEyesOpenSequence: List[VisualAcuityBothEyesOpenSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReferencedRefractiveMeasurementsSequence: List[ReferencedRefractiveMeasurementsSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def BackgroundColor(self) -> Optional[str]: + if "BackgroundColor" in self._dataset: + return self._dataset.BackgroundColor + return None + + @BackgroundColor.setter + def BackgroundColor(self, value: Optional[str]): + if value is None: + if "BackgroundColor" in self._dataset: + del self._dataset.BackgroundColor + else: + self._dataset.BackgroundColor = value + + @property + def Optotype(self) -> Optional[str]: + if "Optotype" in self._dataset: + return self._dataset.Optotype + return None + + @Optotype.setter + def Optotype(self, value: Optional[str]): + if value is None: + if "Optotype" in self._dataset: + del self._dataset.Optotype + else: + self._dataset.Optotype = value + + @property + def OptotypePresentation(self) -> Optional[str]: + if "OptotypePresentation" in self._dataset: + return self._dataset.OptotypePresentation + return None + + @OptotypePresentation.setter + def OptotypePresentation(self, value: Optional[str]): + if value is None: + if "OptotypePresentation" in self._dataset: + del self._dataset.OptotypePresentation + else: + self._dataset.OptotypePresentation = value + + @property + def VisualAcuityTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "VisualAcuityTypeCodeSequence" in self._dataset: + if len(self._VisualAcuityTypeCodeSequence) == len(self._dataset.VisualAcuityTypeCodeSequence): + return self._VisualAcuityTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.VisualAcuityTypeCodeSequence] + return None + + @VisualAcuityTypeCodeSequence.setter + def VisualAcuityTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._VisualAcuityTypeCodeSequence = [] + if "VisualAcuityTypeCodeSequence" in self._dataset: + del self._dataset.VisualAcuityTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("VisualAcuityTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._VisualAcuityTypeCodeSequence = value + if "VisualAcuityTypeCodeSequence" not in self._dataset: + self._dataset.VisualAcuityTypeCodeSequence = pydicom.Sequence() + self._dataset.VisualAcuityTypeCodeSequence.clear() + self._dataset.VisualAcuityTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_VisualAcuityTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._VisualAcuityTypeCodeSequence.append(item) + if "VisualAcuityTypeCodeSequence" not in self._dataset: + self._dataset.VisualAcuityTypeCodeSequence = pydicom.Sequence() + self._dataset.VisualAcuityTypeCodeSequence.append(item.to_dataset()) + + @property + def VisualAcuityRightEyeSequence(self) -> Optional[List[VisualAcuityRightEyeSequenceItem]]: + if "VisualAcuityRightEyeSequence" in self._dataset: + if len(self._VisualAcuityRightEyeSequence) == len(self._dataset.VisualAcuityRightEyeSequence): + return self._VisualAcuityRightEyeSequence + else: + return [VisualAcuityRightEyeSequenceItem(x) for x in self._dataset.VisualAcuityRightEyeSequence] + return None + + @VisualAcuityRightEyeSequence.setter + def VisualAcuityRightEyeSequence(self, value: Optional[List[VisualAcuityRightEyeSequenceItem]]): + if value is None: + self._VisualAcuityRightEyeSequence = [] + if "VisualAcuityRightEyeSequence" in self._dataset: + del self._dataset.VisualAcuityRightEyeSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualAcuityRightEyeSequenceItem) for item in value): + raise ValueError("VisualAcuityRightEyeSequence must be a list of VisualAcuityRightEyeSequenceItem objects") + else: + self._VisualAcuityRightEyeSequence = value + if "VisualAcuityRightEyeSequence" not in self._dataset: + self._dataset.VisualAcuityRightEyeSequence = pydicom.Sequence() + self._dataset.VisualAcuityRightEyeSequence.clear() + self._dataset.VisualAcuityRightEyeSequence.extend([item.to_dataset() for item in value]) + + def add_VisualAcuityRightEye(self, item: VisualAcuityRightEyeSequenceItem): + if not isinstance(item, VisualAcuityRightEyeSequenceItem): + raise ValueError("Item must be an instance of VisualAcuityRightEyeSequenceItem") + self._VisualAcuityRightEyeSequence.append(item) + if "VisualAcuityRightEyeSequence" not in self._dataset: + self._dataset.VisualAcuityRightEyeSequence = pydicom.Sequence() + self._dataset.VisualAcuityRightEyeSequence.append(item.to_dataset()) + + @property + def VisualAcuityLeftEyeSequence(self) -> Optional[List[VisualAcuityLeftEyeSequenceItem]]: + if "VisualAcuityLeftEyeSequence" in self._dataset: + if len(self._VisualAcuityLeftEyeSequence) == len(self._dataset.VisualAcuityLeftEyeSequence): + return self._VisualAcuityLeftEyeSequence + else: + return [VisualAcuityLeftEyeSequenceItem(x) for x in self._dataset.VisualAcuityLeftEyeSequence] + return None + + @VisualAcuityLeftEyeSequence.setter + def VisualAcuityLeftEyeSequence(self, value: Optional[List[VisualAcuityLeftEyeSequenceItem]]): + if value is None: + self._VisualAcuityLeftEyeSequence = [] + if "VisualAcuityLeftEyeSequence" in self._dataset: + del self._dataset.VisualAcuityLeftEyeSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualAcuityLeftEyeSequenceItem) for item in value): + raise ValueError("VisualAcuityLeftEyeSequence must be a list of VisualAcuityLeftEyeSequenceItem objects") + else: + self._VisualAcuityLeftEyeSequence = value + if "VisualAcuityLeftEyeSequence" not in self._dataset: + self._dataset.VisualAcuityLeftEyeSequence = pydicom.Sequence() + self._dataset.VisualAcuityLeftEyeSequence.clear() + self._dataset.VisualAcuityLeftEyeSequence.extend([item.to_dataset() for item in value]) + + def add_VisualAcuityLeftEye(self, item: VisualAcuityLeftEyeSequenceItem): + if not isinstance(item, VisualAcuityLeftEyeSequenceItem): + raise ValueError("Item must be an instance of VisualAcuityLeftEyeSequenceItem") + self._VisualAcuityLeftEyeSequence.append(item) + if "VisualAcuityLeftEyeSequence" not in self._dataset: + self._dataset.VisualAcuityLeftEyeSequence = pydicom.Sequence() + self._dataset.VisualAcuityLeftEyeSequence.append(item.to_dataset()) + + @property + def VisualAcuityBothEyesOpenSequence(self) -> Optional[List[VisualAcuityBothEyesOpenSequenceItem]]: + if "VisualAcuityBothEyesOpenSequence" in self._dataset: + if len(self._VisualAcuityBothEyesOpenSequence) == len(self._dataset.VisualAcuityBothEyesOpenSequence): + return self._VisualAcuityBothEyesOpenSequence + else: + return [VisualAcuityBothEyesOpenSequenceItem(x) for x in self._dataset.VisualAcuityBothEyesOpenSequence] + return None + + @VisualAcuityBothEyesOpenSequence.setter + def VisualAcuityBothEyesOpenSequence(self, value: Optional[List[VisualAcuityBothEyesOpenSequenceItem]]): + if value is None: + self._VisualAcuityBothEyesOpenSequence = [] + if "VisualAcuityBothEyesOpenSequence" in self._dataset: + del self._dataset.VisualAcuityBothEyesOpenSequence + elif not isinstance(value, list) or not all(isinstance(item, VisualAcuityBothEyesOpenSequenceItem) for item in value): + raise ValueError("VisualAcuityBothEyesOpenSequence must be a list of VisualAcuityBothEyesOpenSequenceItem objects") + else: + self._VisualAcuityBothEyesOpenSequence = value + if "VisualAcuityBothEyesOpenSequence" not in self._dataset: + self._dataset.VisualAcuityBothEyesOpenSequence = pydicom.Sequence() + self._dataset.VisualAcuityBothEyesOpenSequence.clear() + self._dataset.VisualAcuityBothEyesOpenSequence.extend([item.to_dataset() for item in value]) + + def add_VisualAcuityBothEyesOpen(self, item: VisualAcuityBothEyesOpenSequenceItem): + if not isinstance(item, VisualAcuityBothEyesOpenSequenceItem): + raise ValueError("Item must be an instance of VisualAcuityBothEyesOpenSequenceItem") + self._VisualAcuityBothEyesOpenSequence.append(item) + if "VisualAcuityBothEyesOpenSequence" not in self._dataset: + self._dataset.VisualAcuityBothEyesOpenSequence = pydicom.Sequence() + self._dataset.VisualAcuityBothEyesOpenSequence.append(item.to_dataset()) + + @property + def ViewingDistanceType(self) -> Optional[str]: + if "ViewingDistanceType" in self._dataset: + return self._dataset.ViewingDistanceType + return None + + @ViewingDistanceType.setter + def ViewingDistanceType(self, value: Optional[str]): + if value is None: + if "ViewingDistanceType" in self._dataset: + del self._dataset.ViewingDistanceType + else: + self._dataset.ViewingDistanceType = value + + @property + def OptotypeDetailedDefinition(self) -> Optional[str]: + if "OptotypeDetailedDefinition" in self._dataset: + return self._dataset.OptotypeDetailedDefinition + return None + + @OptotypeDetailedDefinition.setter + def OptotypeDetailedDefinition(self, value: Optional[str]): + if value is None: + if "OptotypeDetailedDefinition" in self._dataset: + del self._dataset.OptotypeDetailedDefinition + else: + self._dataset.OptotypeDetailedDefinition = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def MeasurementLaterality(self) -> Optional[str]: + if "MeasurementLaterality" in self._dataset: + return self._dataset.MeasurementLaterality + return None + + @MeasurementLaterality.setter + def MeasurementLaterality(self, value: Optional[str]): + if value is None: + if "MeasurementLaterality" in self._dataset: + del self._dataset.MeasurementLaterality + else: + self._dataset.MeasurementLaterality = value + + @property + def ReferencedRefractiveMeasurementsSequence(self) -> Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]: + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + if len(self._ReferencedRefractiveMeasurementsSequence) == len( + self._dataset.ReferencedRefractiveMeasurementsSequence + ): + return self._ReferencedRefractiveMeasurementsSequence + else: + return [ + ReferencedRefractiveMeasurementsSequenceItem(x) + for x in self._dataset.ReferencedRefractiveMeasurementsSequence + ] + return None + + @ReferencedRefractiveMeasurementsSequence.setter + def ReferencedRefractiveMeasurementsSequence(self, value: Optional[List[ReferencedRefractiveMeasurementsSequenceItem]]): + if value is None: + self._ReferencedRefractiveMeasurementsSequence = [] + if "ReferencedRefractiveMeasurementsSequence" in self._dataset: + del self._dataset.ReferencedRefractiveMeasurementsSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedRefractiveMeasurementsSequenceItem) for item in value + ): + raise ValueError( + "ReferencedRefractiveMeasurementsSequence must be a list of ReferencedRefractiveMeasurementsSequenceItem" + " objects" + ) + else: + self._ReferencedRefractiveMeasurementsSequence = value + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.clear() + self._dataset.ReferencedRefractiveMeasurementsSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedRefractiveMeasurements(self, item: ReferencedRefractiveMeasurementsSequenceItem): + if not isinstance(item, ReferencedRefractiveMeasurementsSequenceItem): + raise ValueError("Item must be an instance of ReferencedRefractiveMeasurementsSequenceItem") + self._ReferencedRefractiveMeasurementsSequence.append(item) + if "ReferencedRefractiveMeasurementsSequence" not in self._dataset: + self._dataset.ReferencedRefractiveMeasurementsSequence = pydicom.Sequence() + self._dataset.ReferencedRefractiveMeasurementsSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/visual_acuity_right_eye_sequence_item.py b/tdwii_plus_examples/domain_model/visual_acuity_right_eye_sequence_item.py new file mode 100644 index 0000000..b44b700 --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_acuity_right_eye_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VisualAcuityRightEyeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VisualAcuityModifiers(self) -> Optional[List[int]]: + if "VisualAcuityModifiers" in self._dataset: + return self._dataset.VisualAcuityModifiers + return None + + @VisualAcuityModifiers.setter + def VisualAcuityModifiers(self, value: Optional[List[int]]): + if value is None: + if "VisualAcuityModifiers" in self._dataset: + del self._dataset.VisualAcuityModifiers + else: + self._dataset.VisualAcuityModifiers = value + + @property + def DecimalVisualAcuity(self) -> Optional[float]: + if "DecimalVisualAcuity" in self._dataset: + return self._dataset.DecimalVisualAcuity + return None + + @DecimalVisualAcuity.setter + def DecimalVisualAcuity(self, value: Optional[float]): + if value is None: + if "DecimalVisualAcuity" in self._dataset: + del self._dataset.DecimalVisualAcuity + else: + self._dataset.DecimalVisualAcuity = value diff --git a/tdwii_plus_examples/domain_model/visual_field_catch_trial_sequence_item.py b/tdwii_plus_examples/domain_model/visual_field_catch_trial_sequence_item.py new file mode 100644 index 0000000..aaf59ae --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_field_catch_trial_sequence_item.py @@ -0,0 +1,193 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VisualFieldCatchTrialSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FalseNegativesEstimateFlag(self) -> Optional[str]: + if "FalseNegativesEstimateFlag" in self._dataset: + return self._dataset.FalseNegativesEstimateFlag + return None + + @FalseNegativesEstimateFlag.setter + def FalseNegativesEstimateFlag(self, value: Optional[str]): + if value is None: + if "FalseNegativesEstimateFlag" in self._dataset: + del self._dataset.FalseNegativesEstimateFlag + else: + self._dataset.FalseNegativesEstimateFlag = value + + @property + def FalseNegativesEstimate(self) -> Optional[float]: + if "FalseNegativesEstimate" in self._dataset: + return self._dataset.FalseNegativesEstimate + return None + + @FalseNegativesEstimate.setter + def FalseNegativesEstimate(self, value: Optional[float]): + if value is None: + if "FalseNegativesEstimate" in self._dataset: + del self._dataset.FalseNegativesEstimate + else: + self._dataset.FalseNegativesEstimate = value + + @property + def NegativeCatchTrialsQuantity(self) -> Optional[int]: + if "NegativeCatchTrialsQuantity" in self._dataset: + return self._dataset.NegativeCatchTrialsQuantity + return None + + @NegativeCatchTrialsQuantity.setter + def NegativeCatchTrialsQuantity(self, value: Optional[int]): + if value is None: + if "NegativeCatchTrialsQuantity" in self._dataset: + del self._dataset.NegativeCatchTrialsQuantity + else: + self._dataset.NegativeCatchTrialsQuantity = value + + @property + def FalseNegativesQuantity(self) -> Optional[int]: + if "FalseNegativesQuantity" in self._dataset: + return self._dataset.FalseNegativesQuantity + return None + + @FalseNegativesQuantity.setter + def FalseNegativesQuantity(self, value: Optional[int]): + if value is None: + if "FalseNegativesQuantity" in self._dataset: + del self._dataset.FalseNegativesQuantity + else: + self._dataset.FalseNegativesQuantity = value + + @property + def ExcessiveFalseNegativesDataFlag(self) -> Optional[str]: + if "ExcessiveFalseNegativesDataFlag" in self._dataset: + return self._dataset.ExcessiveFalseNegativesDataFlag + return None + + @ExcessiveFalseNegativesDataFlag.setter + def ExcessiveFalseNegativesDataFlag(self, value: Optional[str]): + if value is None: + if "ExcessiveFalseNegativesDataFlag" in self._dataset: + del self._dataset.ExcessiveFalseNegativesDataFlag + else: + self._dataset.ExcessiveFalseNegativesDataFlag = value + + @property + def ExcessiveFalseNegatives(self) -> Optional[str]: + if "ExcessiveFalseNegatives" in self._dataset: + return self._dataset.ExcessiveFalseNegatives + return None + + @ExcessiveFalseNegatives.setter + def ExcessiveFalseNegatives(self, value: Optional[str]): + if value is None: + if "ExcessiveFalseNegatives" in self._dataset: + del self._dataset.ExcessiveFalseNegatives + else: + self._dataset.ExcessiveFalseNegatives = value + + @property + def FalsePositivesEstimateFlag(self) -> Optional[str]: + if "FalsePositivesEstimateFlag" in self._dataset: + return self._dataset.FalsePositivesEstimateFlag + return None + + @FalsePositivesEstimateFlag.setter + def FalsePositivesEstimateFlag(self, value: Optional[str]): + if value is None: + if "FalsePositivesEstimateFlag" in self._dataset: + del self._dataset.FalsePositivesEstimateFlag + else: + self._dataset.FalsePositivesEstimateFlag = value + + @property + def FalsePositivesEstimate(self) -> Optional[float]: + if "FalsePositivesEstimate" in self._dataset: + return self._dataset.FalsePositivesEstimate + return None + + @FalsePositivesEstimate.setter + def FalsePositivesEstimate(self, value: Optional[float]): + if value is None: + if "FalsePositivesEstimate" in self._dataset: + del self._dataset.FalsePositivesEstimate + else: + self._dataset.FalsePositivesEstimate = value + + @property + def CatchTrialsDataFlag(self) -> Optional[str]: + if "CatchTrialsDataFlag" in self._dataset: + return self._dataset.CatchTrialsDataFlag + return None + + @CatchTrialsDataFlag.setter + def CatchTrialsDataFlag(self, value: Optional[str]): + if value is None: + if "CatchTrialsDataFlag" in self._dataset: + del self._dataset.CatchTrialsDataFlag + else: + self._dataset.CatchTrialsDataFlag = value + + @property + def PositiveCatchTrialsQuantity(self) -> Optional[int]: + if "PositiveCatchTrialsQuantity" in self._dataset: + return self._dataset.PositiveCatchTrialsQuantity + return None + + @PositiveCatchTrialsQuantity.setter + def PositiveCatchTrialsQuantity(self, value: Optional[int]): + if value is None: + if "PositiveCatchTrialsQuantity" in self._dataset: + del self._dataset.PositiveCatchTrialsQuantity + else: + self._dataset.PositiveCatchTrialsQuantity = value + + @property + def FalsePositivesQuantity(self) -> Optional[int]: + if "FalsePositivesQuantity" in self._dataset: + return self._dataset.FalsePositivesQuantity + return None + + @FalsePositivesQuantity.setter + def FalsePositivesQuantity(self, value: Optional[int]): + if value is None: + if "FalsePositivesQuantity" in self._dataset: + del self._dataset.FalsePositivesQuantity + else: + self._dataset.FalsePositivesQuantity = value + + @property + def ExcessiveFalsePositivesDataFlag(self) -> Optional[str]: + if "ExcessiveFalsePositivesDataFlag" in self._dataset: + return self._dataset.ExcessiveFalsePositivesDataFlag + return None + + @ExcessiveFalsePositivesDataFlag.setter + def ExcessiveFalsePositivesDataFlag(self, value: Optional[str]): + if value is None: + if "ExcessiveFalsePositivesDataFlag" in self._dataset: + del self._dataset.ExcessiveFalsePositivesDataFlag + else: + self._dataset.ExcessiveFalsePositivesDataFlag = value + + @property + def ExcessiveFalsePositives(self) -> Optional[str]: + if "ExcessiveFalsePositives" in self._dataset: + return self._dataset.ExcessiveFalsePositives + return None + + @ExcessiveFalsePositives.setter + def ExcessiveFalsePositives(self, value: Optional[str]): + if value is None: + if "ExcessiveFalsePositives" in self._dataset: + del self._dataset.ExcessiveFalsePositives + else: + self._dataset.ExcessiveFalsePositives = value diff --git a/tdwii_plus_examples/domain_model/visual_field_global_results_index_sequence_item.py b/tdwii_plus_examples/domain_model/visual_field_global_results_index_sequence_item.py new file mode 100644 index 0000000..ac9f8d3 --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_field_global_results_index_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .data_observation_sequence_item import DataObservationSequenceItem +from .index_probability_sequence_item import IndexProbabilitySequenceItem + + +class VisualFieldGlobalResultsIndexSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DataObservationSequence: List[DataObservationSequenceItem] = [] + self._IndexProbabilitySequence: List[IndexProbabilitySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataObservationSequence(self) -> Optional[List[DataObservationSequenceItem]]: + if "DataObservationSequence" in self._dataset: + if len(self._DataObservationSequence) == len(self._dataset.DataObservationSequence): + return self._DataObservationSequence + else: + return [DataObservationSequenceItem(x) for x in self._dataset.DataObservationSequence] + return None + + @DataObservationSequence.setter + def DataObservationSequence(self, value: Optional[List[DataObservationSequenceItem]]): + if value is None: + self._DataObservationSequence = [] + if "DataObservationSequence" in self._dataset: + del self._dataset.DataObservationSequence + elif not isinstance(value, list) or not all(isinstance(item, DataObservationSequenceItem) for item in value): + raise ValueError("DataObservationSequence must be a list of DataObservationSequenceItem objects") + else: + self._DataObservationSequence = value + if "DataObservationSequence" not in self._dataset: + self._dataset.DataObservationSequence = pydicom.Sequence() + self._dataset.DataObservationSequence.clear() + self._dataset.DataObservationSequence.extend([item.to_dataset() for item in value]) + + def add_DataObservation(self, item: DataObservationSequenceItem): + if not isinstance(item, DataObservationSequenceItem): + raise ValueError("Item must be an instance of DataObservationSequenceItem") + self._DataObservationSequence.append(item) + if "DataObservationSequence" not in self._dataset: + self._dataset.DataObservationSequence = pydicom.Sequence() + self._dataset.DataObservationSequence.append(item.to_dataset()) + + @property + def IndexNormalsFlag(self) -> Optional[str]: + if "IndexNormalsFlag" in self._dataset: + return self._dataset.IndexNormalsFlag + return None + + @IndexNormalsFlag.setter + def IndexNormalsFlag(self, value: Optional[str]): + if value is None: + if "IndexNormalsFlag" in self._dataset: + del self._dataset.IndexNormalsFlag + else: + self._dataset.IndexNormalsFlag = value + + @property + def IndexProbabilitySequence(self) -> Optional[List[IndexProbabilitySequenceItem]]: + if "IndexProbabilitySequence" in self._dataset: + if len(self._IndexProbabilitySequence) == len(self._dataset.IndexProbabilitySequence): + return self._IndexProbabilitySequence + else: + return [IndexProbabilitySequenceItem(x) for x in self._dataset.IndexProbabilitySequence] + return None + + @IndexProbabilitySequence.setter + def IndexProbabilitySequence(self, value: Optional[List[IndexProbabilitySequenceItem]]): + if value is None: + self._IndexProbabilitySequence = [] + if "IndexProbabilitySequence" in self._dataset: + del self._dataset.IndexProbabilitySequence + elif not isinstance(value, list) or not all(isinstance(item, IndexProbabilitySequenceItem) for item in value): + raise ValueError("IndexProbabilitySequence must be a list of IndexProbabilitySequenceItem objects") + else: + self._IndexProbabilitySequence = value + if "IndexProbabilitySequence" not in self._dataset: + self._dataset.IndexProbabilitySequence = pydicom.Sequence() + self._dataset.IndexProbabilitySequence.clear() + self._dataset.IndexProbabilitySequence.extend([item.to_dataset() for item in value]) + + def add_IndexProbability(self, item: IndexProbabilitySequenceItem): + if not isinstance(item, IndexProbabilitySequenceItem): + raise ValueError("Item must be an instance of IndexProbabilitySequenceItem") + self._IndexProbabilitySequence.append(item) + if "IndexProbabilitySequence" not in self._dataset: + self._dataset.IndexProbabilitySequence = pydicom.Sequence() + self._dataset.IndexProbabilitySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/visual_field_test_point_normals_sequence_item.py b/tdwii_plus_examples/domain_model/visual_field_test_point_normals_sequence_item.py new file mode 100644 index 0000000..65abbbb --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_field_test_point_normals_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VisualFieldTestPointNormalsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def AgeCorrectedSensitivityDeviationValue(self) -> Optional[float]: + if "AgeCorrectedSensitivityDeviationValue" in self._dataset: + return self._dataset.AgeCorrectedSensitivityDeviationValue + return None + + @AgeCorrectedSensitivityDeviationValue.setter + def AgeCorrectedSensitivityDeviationValue(self, value: Optional[float]): + if value is None: + if "AgeCorrectedSensitivityDeviationValue" in self._dataset: + del self._dataset.AgeCorrectedSensitivityDeviationValue + else: + self._dataset.AgeCorrectedSensitivityDeviationValue = value + + @property + def AgeCorrectedSensitivityDeviationProbabilityValue(self) -> Optional[float]: + if "AgeCorrectedSensitivityDeviationProbabilityValue" in self._dataset: + return self._dataset.AgeCorrectedSensitivityDeviationProbabilityValue + return None + + @AgeCorrectedSensitivityDeviationProbabilityValue.setter + def AgeCorrectedSensitivityDeviationProbabilityValue(self, value: Optional[float]): + if value is None: + if "AgeCorrectedSensitivityDeviationProbabilityValue" in self._dataset: + del self._dataset.AgeCorrectedSensitivityDeviationProbabilityValue + else: + self._dataset.AgeCorrectedSensitivityDeviationProbabilityValue = value + + @property + def GeneralizedDefectCorrectedSensitivityDeviationFlag(self) -> Optional[str]: + if "GeneralizedDefectCorrectedSensitivityDeviationFlag" in self._dataset: + return self._dataset.GeneralizedDefectCorrectedSensitivityDeviationFlag + return None + + @GeneralizedDefectCorrectedSensitivityDeviationFlag.setter + def GeneralizedDefectCorrectedSensitivityDeviationFlag(self, value: Optional[str]): + if value is None: + if "GeneralizedDefectCorrectedSensitivityDeviationFlag" in self._dataset: + del self._dataset.GeneralizedDefectCorrectedSensitivityDeviationFlag + else: + self._dataset.GeneralizedDefectCorrectedSensitivityDeviationFlag = value + + @property + def GeneralizedDefectCorrectedSensitivityDeviationValue(self) -> Optional[float]: + if "GeneralizedDefectCorrectedSensitivityDeviationValue" in self._dataset: + return self._dataset.GeneralizedDefectCorrectedSensitivityDeviationValue + return None + + @GeneralizedDefectCorrectedSensitivityDeviationValue.setter + def GeneralizedDefectCorrectedSensitivityDeviationValue(self, value: Optional[float]): + if value is None: + if "GeneralizedDefectCorrectedSensitivityDeviationValue" in self._dataset: + del self._dataset.GeneralizedDefectCorrectedSensitivityDeviationValue + else: + self._dataset.GeneralizedDefectCorrectedSensitivityDeviationValue = value + + @property + def GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue(self) -> Optional[float]: + if "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue" in self._dataset: + return self._dataset.GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue + return None + + @GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue.setter + def GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue(self, value: Optional[float]): + if value is None: + if "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue" in self._dataset: + del self._dataset.GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue + else: + self._dataset.GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue = value diff --git a/tdwii_plus_examples/domain_model/visual_field_test_point_sequence_item.py b/tdwii_plus_examples/domain_model/visual_field_test_point_sequence_item.py new file mode 100644 index 0000000..a23e49f --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_field_test_point_sequence_item.py @@ -0,0 +1,150 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .visual_field_test_point_normals_sequence_item import ( + VisualFieldTestPointNormalsSequenceItem, +) + + +class VisualFieldTestPointSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VisualFieldTestPointNormalsSequence: List[VisualFieldTestPointNormalsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VisualFieldTestPointXCoordinate(self) -> Optional[float]: + if "VisualFieldTestPointXCoordinate" in self._dataset: + return self._dataset.VisualFieldTestPointXCoordinate + return None + + @VisualFieldTestPointXCoordinate.setter + def VisualFieldTestPointXCoordinate(self, value: Optional[float]): + if value is None: + if "VisualFieldTestPointXCoordinate" in self._dataset: + del self._dataset.VisualFieldTestPointXCoordinate + else: + self._dataset.VisualFieldTestPointXCoordinate = value + + @property + def VisualFieldTestPointYCoordinate(self) -> Optional[float]: + if "VisualFieldTestPointYCoordinate" in self._dataset: + return self._dataset.VisualFieldTestPointYCoordinate + return None + + @VisualFieldTestPointYCoordinate.setter + def VisualFieldTestPointYCoordinate(self, value: Optional[float]): + if value is None: + if "VisualFieldTestPointYCoordinate" in self._dataset: + del self._dataset.VisualFieldTestPointYCoordinate + else: + self._dataset.VisualFieldTestPointYCoordinate = value + + @property + def StimulusResults(self) -> Optional[str]: + if "StimulusResults" in self._dataset: + return self._dataset.StimulusResults + return None + + @StimulusResults.setter + def StimulusResults(self, value: Optional[str]): + if value is None: + if "StimulusResults" in self._dataset: + del self._dataset.StimulusResults + else: + self._dataset.StimulusResults = value + + @property + def SensitivityValue(self) -> Optional[float]: + if "SensitivityValue" in self._dataset: + return self._dataset.SensitivityValue + return None + + @SensitivityValue.setter + def SensitivityValue(self, value: Optional[float]): + if value is None: + if "SensitivityValue" in self._dataset: + del self._dataset.SensitivityValue + else: + self._dataset.SensitivityValue = value + + @property + def RetestStimulusSeen(self) -> Optional[str]: + if "RetestStimulusSeen" in self._dataset: + return self._dataset.RetestStimulusSeen + return None + + @RetestStimulusSeen.setter + def RetestStimulusSeen(self, value: Optional[str]): + if value is None: + if "RetestStimulusSeen" in self._dataset: + del self._dataset.RetestStimulusSeen + else: + self._dataset.RetestStimulusSeen = value + + @property + def RetestSensitivityValue(self) -> Optional[float]: + if "RetestSensitivityValue" in self._dataset: + return self._dataset.RetestSensitivityValue + return None + + @RetestSensitivityValue.setter + def RetestSensitivityValue(self, value: Optional[float]): + if value is None: + if "RetestSensitivityValue" in self._dataset: + del self._dataset.RetestSensitivityValue + else: + self._dataset.RetestSensitivityValue = value + + @property + def VisualFieldTestPointNormalsSequence(self) -> Optional[List[VisualFieldTestPointNormalsSequenceItem]]: + if "VisualFieldTestPointNormalsSequence" in self._dataset: + if len(self._VisualFieldTestPointNormalsSequence) == len(self._dataset.VisualFieldTestPointNormalsSequence): + return self._VisualFieldTestPointNormalsSequence + else: + return [VisualFieldTestPointNormalsSequenceItem(x) for x in self._dataset.VisualFieldTestPointNormalsSequence] + return None + + @VisualFieldTestPointNormalsSequence.setter + def VisualFieldTestPointNormalsSequence(self, value: Optional[List[VisualFieldTestPointNormalsSequenceItem]]): + if value is None: + self._VisualFieldTestPointNormalsSequence = [] + if "VisualFieldTestPointNormalsSequence" in self._dataset: + del self._dataset.VisualFieldTestPointNormalsSequence + elif not isinstance(value, list) or not all( + isinstance(item, VisualFieldTestPointNormalsSequenceItem) for item in value + ): + raise ValueError( + "VisualFieldTestPointNormalsSequence must be a list of VisualFieldTestPointNormalsSequenceItem objects" + ) + else: + self._VisualFieldTestPointNormalsSequence = value + if "VisualFieldTestPointNormalsSequence" not in self._dataset: + self._dataset.VisualFieldTestPointNormalsSequence = pydicom.Sequence() + self._dataset.VisualFieldTestPointNormalsSequence.clear() + self._dataset.VisualFieldTestPointNormalsSequence.extend([item.to_dataset() for item in value]) + + def add_VisualFieldTestPointNormals(self, item: VisualFieldTestPointNormalsSequenceItem): + if not isinstance(item, VisualFieldTestPointNormalsSequenceItem): + raise ValueError("Item must be an instance of VisualFieldTestPointNormalsSequenceItem") + self._VisualFieldTestPointNormalsSequence.append(item) + if "VisualFieldTestPointNormalsSequence" not in self._dataset: + self._dataset.VisualFieldTestPointNormalsSequence = pydicom.Sequence() + self._dataset.VisualFieldTestPointNormalsSequence.append(item.to_dataset()) + + @property + def QuantifiedDefect(self) -> Optional[float]: + if "QuantifiedDefect" in self._dataset: + return self._dataset.QuantifiedDefect + return None + + @QuantifiedDefect.setter + def QuantifiedDefect(self, value: Optional[float]): + if value is None: + if "QuantifiedDefect" in self._dataset: + del self._dataset.QuantifiedDefect + else: + self._dataset.QuantifiedDefect = value diff --git a/tdwii_plus_examples/domain_model/visual_field_test_reliability_global_index_sequence_item.py b/tdwii_plus_examples/domain_model/visual_field_test_reliability_global_index_sequence_item.py new file mode 100644 index 0000000..e088e9d --- /dev/null +++ b/tdwii_plus_examples/domain_model/visual_field_test_reliability_global_index_sequence_item.py @@ -0,0 +1,94 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .data_observation_sequence_item import DataObservationSequenceItem +from .index_probability_sequence_item import IndexProbabilitySequenceItem + + +class VisualFieldTestReliabilityGlobalIndexSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DataObservationSequence: List[DataObservationSequenceItem] = [] + self._IndexProbabilitySequence: List[IndexProbabilitySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DataObservationSequence(self) -> Optional[List[DataObservationSequenceItem]]: + if "DataObservationSequence" in self._dataset: + if len(self._DataObservationSequence) == len(self._dataset.DataObservationSequence): + return self._DataObservationSequence + else: + return [DataObservationSequenceItem(x) for x in self._dataset.DataObservationSequence] + return None + + @DataObservationSequence.setter + def DataObservationSequence(self, value: Optional[List[DataObservationSequenceItem]]): + if value is None: + self._DataObservationSequence = [] + if "DataObservationSequence" in self._dataset: + del self._dataset.DataObservationSequence + elif not isinstance(value, list) or not all(isinstance(item, DataObservationSequenceItem) for item in value): + raise ValueError("DataObservationSequence must be a list of DataObservationSequenceItem objects") + else: + self._DataObservationSequence = value + if "DataObservationSequence" not in self._dataset: + self._dataset.DataObservationSequence = pydicom.Sequence() + self._dataset.DataObservationSequence.clear() + self._dataset.DataObservationSequence.extend([item.to_dataset() for item in value]) + + def add_DataObservation(self, item: DataObservationSequenceItem): + if not isinstance(item, DataObservationSequenceItem): + raise ValueError("Item must be an instance of DataObservationSequenceItem") + self._DataObservationSequence.append(item) + if "DataObservationSequence" not in self._dataset: + self._dataset.DataObservationSequence = pydicom.Sequence() + self._dataset.DataObservationSequence.append(item.to_dataset()) + + @property + def IndexNormalsFlag(self) -> Optional[str]: + if "IndexNormalsFlag" in self._dataset: + return self._dataset.IndexNormalsFlag + return None + + @IndexNormalsFlag.setter + def IndexNormalsFlag(self, value: Optional[str]): + if value is None: + if "IndexNormalsFlag" in self._dataset: + del self._dataset.IndexNormalsFlag + else: + self._dataset.IndexNormalsFlag = value + + @property + def IndexProbabilitySequence(self) -> Optional[List[IndexProbabilitySequenceItem]]: + if "IndexProbabilitySequence" in self._dataset: + if len(self._IndexProbabilitySequence) == len(self._dataset.IndexProbabilitySequence): + return self._IndexProbabilitySequence + else: + return [IndexProbabilitySequenceItem(x) for x in self._dataset.IndexProbabilitySequence] + return None + + @IndexProbabilitySequence.setter + def IndexProbabilitySequence(self, value: Optional[List[IndexProbabilitySequenceItem]]): + if value is None: + self._IndexProbabilitySequence = [] + if "IndexProbabilitySequence" in self._dataset: + del self._dataset.IndexProbabilitySequence + elif not isinstance(value, list) or not all(isinstance(item, IndexProbabilitySequenceItem) for item in value): + raise ValueError("IndexProbabilitySequence must be a list of IndexProbabilitySequenceItem objects") + else: + self._IndexProbabilitySequence = value + if "IndexProbabilitySequence" not in self._dataset: + self._dataset.IndexProbabilitySequence = pydicom.Sequence() + self._dataset.IndexProbabilitySequence.clear() + self._dataset.IndexProbabilitySequence.extend([item.to_dataset() for item in value]) + + def add_IndexProbability(self, item: IndexProbabilitySequenceItem): + if not isinstance(item, IndexProbabilitySequenceItem): + raise ValueError("Item must be an instance of IndexProbabilitySequenceItem") + self._IndexProbabilitySequence.append(item) + if "IndexProbabilitySequence" not in self._dataset: + self._dataset.IndexProbabilitySequence = pydicom.Sequence() + self._dataset.IndexProbabilitySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/vl_endoscopic_image.py b/tdwii_plus_examples/domain_model/vl_endoscopic_image.py new file mode 100644 index 0000000..79a0247 --- /dev/null +++ b/tdwii_plus_examples/domain_model/vl_endoscopic_image.py @@ -0,0 +1,5763 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VlEndoscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/vl_microscopic_image.py b/tdwii_plus_examples/domain_model/vl_microscopic_image.py new file mode 100644 index 0000000..28d21da --- /dev/null +++ b/tdwii_plus_examples/domain_model/vl_microscopic_image.py @@ -0,0 +1,5811 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .optical_path_sequence_item import OpticalPathSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VlMicroscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._OpticalPathSequence: List[OpticalPathSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OpticalPathSequence(self) -> Optional[List[OpticalPathSequenceItem]]: + if "OpticalPathSequence" in self._dataset: + if len(self._OpticalPathSequence) == len(self._dataset.OpticalPathSequence): + return self._OpticalPathSequence + else: + return [OpticalPathSequenceItem(x) for x in self._dataset.OpticalPathSequence] + return None + + @OpticalPathSequence.setter + def OpticalPathSequence(self, value: Optional[List[OpticalPathSequenceItem]]): + if value is None: + self._OpticalPathSequence = [] + if "OpticalPathSequence" in self._dataset: + del self._dataset.OpticalPathSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathSequenceItem) for item in value): + raise ValueError("OpticalPathSequence must be a list of OpticalPathSequenceItem objects") + else: + self._OpticalPathSequence = value + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.clear() + self._dataset.OpticalPathSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPath(self, item: OpticalPathSequenceItem): + if not isinstance(item, OpticalPathSequenceItem): + raise ValueError("Item must be an instance of OpticalPathSequenceItem") + self._OpticalPathSequence.append(item) + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.append(item.to_dataset()) + + @property + def NumberOfOpticalPaths(self) -> Optional[int]: + if "NumberOfOpticalPaths" in self._dataset: + return self._dataset.NumberOfOpticalPaths + return None + + @NumberOfOpticalPaths.setter + def NumberOfOpticalPaths(self, value: Optional[int]): + if value is None: + if "NumberOfOpticalPaths" in self._dataset: + del self._dataset.NumberOfOpticalPaths + else: + self._dataset.NumberOfOpticalPaths = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/vl_photographic_image.py b/tdwii_plus_examples/domain_model/vl_photographic_image.py new file mode 100644 index 0000000..c399f48 --- /dev/null +++ b/tdwii_plus_examples/domain_model/vl_photographic_image.py @@ -0,0 +1,7233 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VlPhotographicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def WhitePoint(self) -> Optional[Decimal]: + if "WhitePoint" in self._dataset: + return self._dataset.WhitePoint + return None + + @WhitePoint.setter + def WhitePoint(self, value: Optional[Decimal]): + if value is None: + if "WhitePoint" in self._dataset: + del self._dataset.WhitePoint + else: + self._dataset.WhitePoint = value + + @property + def PrimaryChromaticities(self) -> Optional[List[Decimal]]: + if "PrimaryChromaticities" in self._dataset: + return self._dataset.PrimaryChromaticities + return None + + @PrimaryChromaticities.setter + def PrimaryChromaticities(self, value: Optional[List[Decimal]]): + if value is None: + if "PrimaryChromaticities" in self._dataset: + del self._dataset.PrimaryChromaticities + else: + self._dataset.PrimaryChromaticities = value + + @property + def BatteryLevel(self) -> Optional[str]: + if "BatteryLevel" in self._dataset: + return self._dataset.BatteryLevel + return None + + @BatteryLevel.setter + def BatteryLevel(self, value: Optional[str]): + if value is None: + if "BatteryLevel" in self._dataset: + del self._dataset.BatteryLevel + else: + self._dataset.BatteryLevel = value + + @property + def ExposureTimeInSeconds(self) -> Optional[Decimal]: + if "ExposureTimeInSeconds" in self._dataset: + return self._dataset.ExposureTimeInSeconds + return None + + @ExposureTimeInSeconds.setter + def ExposureTimeInSeconds(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInSeconds" in self._dataset: + del self._dataset.ExposureTimeInSeconds + else: + self._dataset.ExposureTimeInSeconds = value + + @property + def FNumber(self) -> Optional[Decimal]: + if "FNumber" in self._dataset: + return self._dataset.FNumber + return None + + @FNumber.setter + def FNumber(self, value: Optional[Decimal]): + if value is None: + if "FNumber" in self._dataset: + del self._dataset.FNumber + else: + self._dataset.FNumber = value + + @property + def OECFRows(self) -> Optional[int]: + if "OECFRows" in self._dataset: + return self._dataset.OECFRows + return None + + @OECFRows.setter + def OECFRows(self, value: Optional[int]): + if value is None: + if "OECFRows" in self._dataset: + del self._dataset.OECFRows + else: + self._dataset.OECFRows = value + + @property + def OECFColumns(self) -> Optional[int]: + if "OECFColumns" in self._dataset: + return self._dataset.OECFColumns + return None + + @OECFColumns.setter + def OECFColumns(self, value: Optional[int]): + if value is None: + if "OECFColumns" in self._dataset: + del self._dataset.OECFColumns + else: + self._dataset.OECFColumns = value + + @property + def OECFColumnNames(self) -> Optional[List[str]]: + if "OECFColumnNames" in self._dataset: + return self._dataset.OECFColumnNames + return None + + @OECFColumnNames.setter + def OECFColumnNames(self, value: Optional[List[str]]): + if value is None: + if "OECFColumnNames" in self._dataset: + del self._dataset.OECFColumnNames + else: + self._dataset.OECFColumnNames = value + + @property + def OECFValues(self) -> Optional[List[Decimal]]: + if "OECFValues" in self._dataset: + return self._dataset.OECFValues + return None + + @OECFValues.setter + def OECFValues(self, value: Optional[List[Decimal]]): + if value is None: + if "OECFValues" in self._dataset: + del self._dataset.OECFValues + else: + self._dataset.OECFValues = value + + @property + def SpatialFrequencyResponseRows(self) -> Optional[int]: + if "SpatialFrequencyResponseRows" in self._dataset: + return self._dataset.SpatialFrequencyResponseRows + return None + + @SpatialFrequencyResponseRows.setter + def SpatialFrequencyResponseRows(self, value: Optional[int]): + if value is None: + if "SpatialFrequencyResponseRows" in self._dataset: + del self._dataset.SpatialFrequencyResponseRows + else: + self._dataset.SpatialFrequencyResponseRows = value + + @property + def SpatialFrequencyResponseColumns(self) -> Optional[int]: + if "SpatialFrequencyResponseColumns" in self._dataset: + return self._dataset.SpatialFrequencyResponseColumns + return None + + @SpatialFrequencyResponseColumns.setter + def SpatialFrequencyResponseColumns(self, value: Optional[int]): + if value is None: + if "SpatialFrequencyResponseColumns" in self._dataset: + del self._dataset.SpatialFrequencyResponseColumns + else: + self._dataset.SpatialFrequencyResponseColumns = value + + @property + def SpatialFrequencyResponseColumnNames(self) -> Optional[List[str]]: + if "SpatialFrequencyResponseColumnNames" in self._dataset: + return self._dataset.SpatialFrequencyResponseColumnNames + return None + + @SpatialFrequencyResponseColumnNames.setter + def SpatialFrequencyResponseColumnNames(self, value: Optional[List[str]]): + if value is None: + if "SpatialFrequencyResponseColumnNames" in self._dataset: + del self._dataset.SpatialFrequencyResponseColumnNames + else: + self._dataset.SpatialFrequencyResponseColumnNames = value + + @property + def SpatialFrequencyResponseValues(self) -> Optional[List[Decimal]]: + if "SpatialFrequencyResponseValues" in self._dataset: + return self._dataset.SpatialFrequencyResponseValues + return None + + @SpatialFrequencyResponseValues.setter + def SpatialFrequencyResponseValues(self, value: Optional[List[Decimal]]): + if value is None: + if "SpatialFrequencyResponseValues" in self._dataset: + del self._dataset.SpatialFrequencyResponseValues + else: + self._dataset.SpatialFrequencyResponseValues = value + + @property + def ColorFilterArrayPatternRows(self) -> Optional[int]: + if "ColorFilterArrayPatternRows" in self._dataset: + return self._dataset.ColorFilterArrayPatternRows + return None + + @ColorFilterArrayPatternRows.setter + def ColorFilterArrayPatternRows(self, value: Optional[int]): + if value is None: + if "ColorFilterArrayPatternRows" in self._dataset: + del self._dataset.ColorFilterArrayPatternRows + else: + self._dataset.ColorFilterArrayPatternRows = value + + @property + def ColorFilterArrayPatternColumns(self) -> Optional[int]: + if "ColorFilterArrayPatternColumns" in self._dataset: + return self._dataset.ColorFilterArrayPatternColumns + return None + + @ColorFilterArrayPatternColumns.setter + def ColorFilterArrayPatternColumns(self, value: Optional[int]): + if value is None: + if "ColorFilterArrayPatternColumns" in self._dataset: + del self._dataset.ColorFilterArrayPatternColumns + else: + self._dataset.ColorFilterArrayPatternColumns = value + + @property + def ColorFilterArrayPatternValues(self) -> Optional[List[Decimal]]: + if "ColorFilterArrayPatternValues" in self._dataset: + return self._dataset.ColorFilterArrayPatternValues + return None + + @ColorFilterArrayPatternValues.setter + def ColorFilterArrayPatternValues(self, value: Optional[List[Decimal]]): + if value is None: + if "ColorFilterArrayPatternValues" in self._dataset: + del self._dataset.ColorFilterArrayPatternValues + else: + self._dataset.ColorFilterArrayPatternValues = value + + @property + def FlashFiringStatus(self) -> Optional[int]: + if "FlashFiringStatus" in self._dataset: + return self._dataset.FlashFiringStatus + return None + + @FlashFiringStatus.setter + def FlashFiringStatus(self, value: Optional[int]): + if value is None: + if "FlashFiringStatus" in self._dataset: + del self._dataset.FlashFiringStatus + else: + self._dataset.FlashFiringStatus = value + + @property + def FlashReturnStatus(self) -> Optional[int]: + if "FlashReturnStatus" in self._dataset: + return self._dataset.FlashReturnStatus + return None + + @FlashReturnStatus.setter + def FlashReturnStatus(self, value: Optional[int]): + if value is None: + if "FlashReturnStatus" in self._dataset: + del self._dataset.FlashReturnStatus + else: + self._dataset.FlashReturnStatus = value + + @property + def FlashMode(self) -> Optional[int]: + if "FlashMode" in self._dataset: + return self._dataset.FlashMode + return None + + @FlashMode.setter + def FlashMode(self, value: Optional[int]): + if value is None: + if "FlashMode" in self._dataset: + del self._dataset.FlashMode + else: + self._dataset.FlashMode = value + + @property + def FlashFunctionPresent(self) -> Optional[int]: + if "FlashFunctionPresent" in self._dataset: + return self._dataset.FlashFunctionPresent + return None + + @FlashFunctionPresent.setter + def FlashFunctionPresent(self, value: Optional[int]): + if value is None: + if "FlashFunctionPresent" in self._dataset: + del self._dataset.FlashFunctionPresent + else: + self._dataset.FlashFunctionPresent = value + + @property + def FlashRedEyeMode(self) -> Optional[int]: + if "FlashRedEyeMode" in self._dataset: + return self._dataset.FlashRedEyeMode + return None + + @FlashRedEyeMode.setter + def FlashRedEyeMode(self, value: Optional[int]): + if value is None: + if "FlashRedEyeMode" in self._dataset: + del self._dataset.FlashRedEyeMode + else: + self._dataset.FlashRedEyeMode = value + + @property + def ExposureProgram(self) -> Optional[int]: + if "ExposureProgram" in self._dataset: + return self._dataset.ExposureProgram + return None + + @ExposureProgram.setter + def ExposureProgram(self, value: Optional[int]): + if value is None: + if "ExposureProgram" in self._dataset: + del self._dataset.ExposureProgram + else: + self._dataset.ExposureProgram = value + + @property + def SpectralSensitivity(self) -> Optional[str]: + if "SpectralSensitivity" in self._dataset: + return self._dataset.SpectralSensitivity + return None + + @SpectralSensitivity.setter + def SpectralSensitivity(self, value: Optional[str]): + if value is None: + if "SpectralSensitivity" in self._dataset: + del self._dataset.SpectralSensitivity + else: + self._dataset.SpectralSensitivity = value + + @property + def PhotographicSensitivity(self) -> Optional[int]: + if "PhotographicSensitivity" in self._dataset: + return self._dataset.PhotographicSensitivity + return None + + @PhotographicSensitivity.setter + def PhotographicSensitivity(self, value: Optional[int]): + if value is None: + if "PhotographicSensitivity" in self._dataset: + del self._dataset.PhotographicSensitivity + else: + self._dataset.PhotographicSensitivity = value + + @property + def SelfTimerMode(self) -> Optional[int]: + if "SelfTimerMode" in self._dataset: + return self._dataset.SelfTimerMode + return None + + @SelfTimerMode.setter + def SelfTimerMode(self, value: Optional[int]): + if value is None: + if "SelfTimerMode" in self._dataset: + del self._dataset.SelfTimerMode + else: + self._dataset.SelfTimerMode = value + + @property + def SensitivityType(self) -> Optional[int]: + if "SensitivityType" in self._dataset: + return self._dataset.SensitivityType + return None + + @SensitivityType.setter + def SensitivityType(self, value: Optional[int]): + if value is None: + if "SensitivityType" in self._dataset: + del self._dataset.SensitivityType + else: + self._dataset.SensitivityType = value + + @property + def StandardOutputSensitivity(self) -> Optional[int]: + if "StandardOutputSensitivity" in self._dataset: + return self._dataset.StandardOutputSensitivity + return None + + @StandardOutputSensitivity.setter + def StandardOutputSensitivity(self, value: Optional[int]): + if value is None: + if "StandardOutputSensitivity" in self._dataset: + del self._dataset.StandardOutputSensitivity + else: + self._dataset.StandardOutputSensitivity = value + + @property + def RecommendedExposureIndex(self) -> Optional[int]: + if "RecommendedExposureIndex" in self._dataset: + return self._dataset.RecommendedExposureIndex + return None + + @RecommendedExposureIndex.setter + def RecommendedExposureIndex(self, value: Optional[int]): + if value is None: + if "RecommendedExposureIndex" in self._dataset: + del self._dataset.RecommendedExposureIndex + else: + self._dataset.RecommendedExposureIndex = value + + @property + def ISOSpeed(self) -> Optional[int]: + if "ISOSpeed" in self._dataset: + return self._dataset.ISOSpeed + return None + + @ISOSpeed.setter + def ISOSpeed(self, value: Optional[int]): + if value is None: + if "ISOSpeed" in self._dataset: + del self._dataset.ISOSpeed + else: + self._dataset.ISOSpeed = value + + @property + def ISOSpeedLatitudeyyy(self) -> Optional[int]: + if "ISOSpeedLatitudeyyy" in self._dataset: + return self._dataset.ISOSpeedLatitudeyyy + return None + + @ISOSpeedLatitudeyyy.setter + def ISOSpeedLatitudeyyy(self, value: Optional[int]): + if value is None: + if "ISOSpeedLatitudeyyy" in self._dataset: + del self._dataset.ISOSpeedLatitudeyyy + else: + self._dataset.ISOSpeedLatitudeyyy = value + + @property + def ISOSpeedLatitudezzz(self) -> Optional[int]: + if "ISOSpeedLatitudezzz" in self._dataset: + return self._dataset.ISOSpeedLatitudezzz + return None + + @ISOSpeedLatitudezzz.setter + def ISOSpeedLatitudezzz(self, value: Optional[int]): + if value is None: + if "ISOSpeedLatitudezzz" in self._dataset: + del self._dataset.ISOSpeedLatitudezzz + else: + self._dataset.ISOSpeedLatitudezzz = value + + @property + def EXIFVersion(self) -> Optional[str]: + if "EXIFVersion" in self._dataset: + return self._dataset.EXIFVersion + return None + + @EXIFVersion.setter + def EXIFVersion(self, value: Optional[str]): + if value is None: + if "EXIFVersion" in self._dataset: + del self._dataset.EXIFVersion + else: + self._dataset.EXIFVersion = value + + @property + def ShutterSpeedValue(self) -> Optional[Decimal]: + if "ShutterSpeedValue" in self._dataset: + return self._dataset.ShutterSpeedValue + return None + + @ShutterSpeedValue.setter + def ShutterSpeedValue(self, value: Optional[Decimal]): + if value is None: + if "ShutterSpeedValue" in self._dataset: + del self._dataset.ShutterSpeedValue + else: + self._dataset.ShutterSpeedValue = value + + @property + def ApertureValue(self) -> Optional[Decimal]: + if "ApertureValue" in self._dataset: + return self._dataset.ApertureValue + return None + + @ApertureValue.setter + def ApertureValue(self, value: Optional[Decimal]): + if value is None: + if "ApertureValue" in self._dataset: + del self._dataset.ApertureValue + else: + self._dataset.ApertureValue = value + + @property + def BrightnessValue(self) -> Optional[Decimal]: + if "BrightnessValue" in self._dataset: + return self._dataset.BrightnessValue + return None + + @BrightnessValue.setter + def BrightnessValue(self, value: Optional[Decimal]): + if value is None: + if "BrightnessValue" in self._dataset: + del self._dataset.BrightnessValue + else: + self._dataset.BrightnessValue = value + + @property + def ExposureBiasValue(self) -> Optional[Decimal]: + if "ExposureBiasValue" in self._dataset: + return self._dataset.ExposureBiasValue + return None + + @ExposureBiasValue.setter + def ExposureBiasValue(self, value: Optional[Decimal]): + if value is None: + if "ExposureBiasValue" in self._dataset: + del self._dataset.ExposureBiasValue + else: + self._dataset.ExposureBiasValue = value + + @property + def MaxApertureValue(self) -> Optional[Decimal]: + if "MaxApertureValue" in self._dataset: + return self._dataset.MaxApertureValue + return None + + @MaxApertureValue.setter + def MaxApertureValue(self, value: Optional[Decimal]): + if value is None: + if "MaxApertureValue" in self._dataset: + del self._dataset.MaxApertureValue + else: + self._dataset.MaxApertureValue = value + + @property + def SubjectDistance(self) -> Optional[Decimal]: + if "SubjectDistance" in self._dataset: + return self._dataset.SubjectDistance + return None + + @SubjectDistance.setter + def SubjectDistance(self, value: Optional[Decimal]): + if value is None: + if "SubjectDistance" in self._dataset: + del self._dataset.SubjectDistance + else: + self._dataset.SubjectDistance = value + + @property + def MeteringMode(self) -> Optional[int]: + if "MeteringMode" in self._dataset: + return self._dataset.MeteringMode + return None + + @MeteringMode.setter + def MeteringMode(self, value: Optional[int]): + if value is None: + if "MeteringMode" in self._dataset: + del self._dataset.MeteringMode + else: + self._dataset.MeteringMode = value + + @property + def LightSource(self) -> Optional[int]: + if "LightSource" in self._dataset: + return self._dataset.LightSource + return None + + @LightSource.setter + def LightSource(self, value: Optional[int]): + if value is None: + if "LightSource" in self._dataset: + del self._dataset.LightSource + else: + self._dataset.LightSource = value + + @property + def FocalLength(self) -> Optional[Decimal]: + if "FocalLength" in self._dataset: + return self._dataset.FocalLength + return None + + @FocalLength.setter + def FocalLength(self, value: Optional[Decimal]): + if value is None: + if "FocalLength" in self._dataset: + del self._dataset.FocalLength + else: + self._dataset.FocalLength = value + + @property + def SubjectArea(self) -> Optional[List[int]]: + if "SubjectArea" in self._dataset: + return self._dataset.SubjectArea + return None + + @SubjectArea.setter + def SubjectArea(self, value: Optional[List[int]]): + if value is None: + if "SubjectArea" in self._dataset: + del self._dataset.SubjectArea + else: + self._dataset.SubjectArea = value + + @property + def MakerNote(self) -> Optional[bytes]: + if "MakerNote" in self._dataset: + return self._dataset.MakerNote + return None + + @MakerNote.setter + def MakerNote(self, value: Optional[bytes]): + if value is None: + if "MakerNote" in self._dataset: + del self._dataset.MakerNote + else: + self._dataset.MakerNote = value + + @property + def Temperature(self) -> Optional[Decimal]: + if "Temperature" in self._dataset: + return self._dataset.Temperature + return None + + @Temperature.setter + def Temperature(self, value: Optional[Decimal]): + if value is None: + if "Temperature" in self._dataset: + del self._dataset.Temperature + else: + self._dataset.Temperature = value + + @property + def Humidity(self) -> Optional[Decimal]: + if "Humidity" in self._dataset: + return self._dataset.Humidity + return None + + @Humidity.setter + def Humidity(self, value: Optional[Decimal]): + if value is None: + if "Humidity" in self._dataset: + del self._dataset.Humidity + else: + self._dataset.Humidity = value + + @property + def Pressure(self) -> Optional[Decimal]: + if "Pressure" in self._dataset: + return self._dataset.Pressure + return None + + @Pressure.setter + def Pressure(self, value: Optional[Decimal]): + if value is None: + if "Pressure" in self._dataset: + del self._dataset.Pressure + else: + self._dataset.Pressure = value + + @property + def WaterDepth(self) -> Optional[Decimal]: + if "WaterDepth" in self._dataset: + return self._dataset.WaterDepth + return None + + @WaterDepth.setter + def WaterDepth(self, value: Optional[Decimal]): + if value is None: + if "WaterDepth" in self._dataset: + del self._dataset.WaterDepth + else: + self._dataset.WaterDepth = value + + @property + def Acceleration(self) -> Optional[Decimal]: + if "Acceleration" in self._dataset: + return self._dataset.Acceleration + return None + + @Acceleration.setter + def Acceleration(self, value: Optional[Decimal]): + if value is None: + if "Acceleration" in self._dataset: + del self._dataset.Acceleration + else: + self._dataset.Acceleration = value + + @property + def CameraElevationAngle(self) -> Optional[Decimal]: + if "CameraElevationAngle" in self._dataset: + return self._dataset.CameraElevationAngle + return None + + @CameraElevationAngle.setter + def CameraElevationAngle(self, value: Optional[Decimal]): + if value is None: + if "CameraElevationAngle" in self._dataset: + del self._dataset.CameraElevationAngle + else: + self._dataset.CameraElevationAngle = value + + @property + def FlashEnergy(self) -> Optional[List[Decimal]]: + if "FlashEnergy" in self._dataset: + return self._dataset.FlashEnergy + return None + + @FlashEnergy.setter + def FlashEnergy(self, value: Optional[List[Decimal]]): + if value is None: + if "FlashEnergy" in self._dataset: + del self._dataset.FlashEnergy + else: + self._dataset.FlashEnergy = value + + @property + def SubjectLocation(self) -> Optional[List[int]]: + if "SubjectLocation" in self._dataset: + return self._dataset.SubjectLocation + return None + + @SubjectLocation.setter + def SubjectLocation(self, value: Optional[List[int]]): + if value is None: + if "SubjectLocation" in self._dataset: + del self._dataset.SubjectLocation + else: + self._dataset.SubjectLocation = value + + @property + def PhotographicExposureIndex(self) -> Optional[Decimal]: + if "PhotographicExposureIndex" in self._dataset: + return self._dataset.PhotographicExposureIndex + return None + + @PhotographicExposureIndex.setter + def PhotographicExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "PhotographicExposureIndex" in self._dataset: + del self._dataset.PhotographicExposureIndex + else: + self._dataset.PhotographicExposureIndex = value + + @property + def SensingMethod(self) -> Optional[int]: + if "SensingMethod" in self._dataset: + return self._dataset.SensingMethod + return None + + @SensingMethod.setter + def SensingMethod(self, value: Optional[int]): + if value is None: + if "SensingMethod" in self._dataset: + del self._dataset.SensingMethod + else: + self._dataset.SensingMethod = value + + @property + def FileSource(self) -> Optional[int]: + if "FileSource" in self._dataset: + return self._dataset.FileSource + return None + + @FileSource.setter + def FileSource(self, value: Optional[int]): + if value is None: + if "FileSource" in self._dataset: + del self._dataset.FileSource + else: + self._dataset.FileSource = value + + @property + def SceneType(self) -> Optional[int]: + if "SceneType" in self._dataset: + return self._dataset.SceneType + return None + + @SceneType.setter + def SceneType(self, value: Optional[int]): + if value is None: + if "SceneType" in self._dataset: + del self._dataset.SceneType + else: + self._dataset.SceneType = value + + @property + def CustomRendered(self) -> Optional[int]: + if "CustomRendered" in self._dataset: + return self._dataset.CustomRendered + return None + + @CustomRendered.setter + def CustomRendered(self, value: Optional[int]): + if value is None: + if "CustomRendered" in self._dataset: + del self._dataset.CustomRendered + else: + self._dataset.CustomRendered = value + + @property + def ExposureMode(self) -> Optional[int]: + if "ExposureMode" in self._dataset: + return self._dataset.ExposureMode + return None + + @ExposureMode.setter + def ExposureMode(self, value: Optional[int]): + if value is None: + if "ExposureMode" in self._dataset: + del self._dataset.ExposureMode + else: + self._dataset.ExposureMode = value + + @property + def WhiteBalance(self) -> Optional[int]: + if "WhiteBalance" in self._dataset: + return self._dataset.WhiteBalance + return None + + @WhiteBalance.setter + def WhiteBalance(self, value: Optional[int]): + if value is None: + if "WhiteBalance" in self._dataset: + del self._dataset.WhiteBalance + else: + self._dataset.WhiteBalance = value + + @property + def DigitalZoomRatio(self) -> Optional[Decimal]: + if "DigitalZoomRatio" in self._dataset: + return self._dataset.DigitalZoomRatio + return None + + @DigitalZoomRatio.setter + def DigitalZoomRatio(self, value: Optional[Decimal]): + if value is None: + if "DigitalZoomRatio" in self._dataset: + del self._dataset.DigitalZoomRatio + else: + self._dataset.DigitalZoomRatio = value + + @property + def FocalLengthIn35mmFilm(self) -> Optional[int]: + if "FocalLengthIn35mmFilm" in self._dataset: + return self._dataset.FocalLengthIn35mmFilm + return None + + @FocalLengthIn35mmFilm.setter + def FocalLengthIn35mmFilm(self, value: Optional[int]): + if value is None: + if "FocalLengthIn35mmFilm" in self._dataset: + del self._dataset.FocalLengthIn35mmFilm + else: + self._dataset.FocalLengthIn35mmFilm = value + + @property + def SceneCaptureType(self) -> Optional[int]: + if "SceneCaptureType" in self._dataset: + return self._dataset.SceneCaptureType + return None + + @SceneCaptureType.setter + def SceneCaptureType(self, value: Optional[int]): + if value is None: + if "SceneCaptureType" in self._dataset: + del self._dataset.SceneCaptureType + else: + self._dataset.SceneCaptureType = value + + @property + def GainControl(self) -> Optional[int]: + if "GainControl" in self._dataset: + return self._dataset.GainControl + return None + + @GainControl.setter + def GainControl(self, value: Optional[int]): + if value is None: + if "GainControl" in self._dataset: + del self._dataset.GainControl + else: + self._dataset.GainControl = value + + @property + def Contrast(self) -> Optional[int]: + if "Contrast" in self._dataset: + return self._dataset.Contrast + return None + + @Contrast.setter + def Contrast(self, value: Optional[int]): + if value is None: + if "Contrast" in self._dataset: + del self._dataset.Contrast + else: + self._dataset.Contrast = value + + @property + def Saturation(self) -> Optional[int]: + if "Saturation" in self._dataset: + return self._dataset.Saturation + return None + + @Saturation.setter + def Saturation(self, value: Optional[int]): + if value is None: + if "Saturation" in self._dataset: + del self._dataset.Saturation + else: + self._dataset.Saturation = value + + @property + def Sharpness(self) -> Optional[int]: + if "Sharpness" in self._dataset: + return self._dataset.Sharpness + return None + + @Sharpness.setter + def Sharpness(self, value: Optional[int]): + if value is None: + if "Sharpness" in self._dataset: + del self._dataset.Sharpness + else: + self._dataset.Sharpness = value + + @property + def DeviceSettingDescription(self) -> Optional[bytes]: + if "DeviceSettingDescription" in self._dataset: + return self._dataset.DeviceSettingDescription + return None + + @DeviceSettingDescription.setter + def DeviceSettingDescription(self, value: Optional[bytes]): + if value is None: + if "DeviceSettingDescription" in self._dataset: + del self._dataset.DeviceSettingDescription + else: + self._dataset.DeviceSettingDescription = value + + @property + def SubjectDistanceRange(self) -> Optional[int]: + if "SubjectDistanceRange" in self._dataset: + return self._dataset.SubjectDistanceRange + return None + + @SubjectDistanceRange.setter + def SubjectDistanceRange(self, value: Optional[int]): + if value is None: + if "SubjectDistanceRange" in self._dataset: + del self._dataset.SubjectDistanceRange + else: + self._dataset.SubjectDistanceRange = value + + @property + def InteroperabilityIndex(self) -> Optional[str]: + if "InteroperabilityIndex" in self._dataset: + return self._dataset.InteroperabilityIndex + return None + + @InteroperabilityIndex.setter + def InteroperabilityIndex(self, value: Optional[str]): + if value is None: + if "InteroperabilityIndex" in self._dataset: + del self._dataset.InteroperabilityIndex + else: + self._dataset.InteroperabilityIndex = value + + @property + def InteroperabilityVersion(self) -> Optional[bytes]: + if "InteroperabilityVersion" in self._dataset: + return self._dataset.InteroperabilityVersion + return None + + @InteroperabilityVersion.setter + def InteroperabilityVersion(self, value: Optional[bytes]): + if value is None: + if "InteroperabilityVersion" in self._dataset: + del self._dataset.InteroperabilityVersion + else: + self._dataset.InteroperabilityVersion = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def GPSVersionID(self) -> Optional[bytes]: + if "GPSVersionID" in self._dataset: + return self._dataset.GPSVersionID + return None + + @GPSVersionID.setter + def GPSVersionID(self, value: Optional[bytes]): + if value is None: + if "GPSVersionID" in self._dataset: + del self._dataset.GPSVersionID + else: + self._dataset.GPSVersionID = value + + @property + def GPSLatitudeRef(self) -> Optional[str]: + if "GPSLatitudeRe" in self._dataset: + return self._dataset.GPSLatitudeRef + return None + + @GPSLatitudeRef.setter + def GPSLatitudeRef(self, value: Optional[str]): + if value is None: + if "GPSLatitudeRe" in self._dataset: + del self._dataset.GPSLatitudeRef + else: + self._dataset.GPSLatitudeRef = value + + @property + def GPSLatitude(self) -> Optional[List[Decimal]]: + if "GPSLatitude" in self._dataset: + return self._dataset.GPSLatitude + return None + + @GPSLatitude.setter + def GPSLatitude(self, value: Optional[List[Decimal]]): + if value is None: + if "GPSLatitude" in self._dataset: + del self._dataset.GPSLatitude + else: + self._dataset.GPSLatitude = value + + @property + def GPSLongitudeRef(self) -> Optional[str]: + if "GPSLongitudeRe" in self._dataset: + return self._dataset.GPSLongitudeRef + return None + + @GPSLongitudeRef.setter + def GPSLongitudeRef(self, value: Optional[str]): + if value is None: + if "GPSLongitudeRe" in self._dataset: + del self._dataset.GPSLongitudeRef + else: + self._dataset.GPSLongitudeRef = value + + @property + def GPSLongitude(self) -> Optional[List[Decimal]]: + if "GPSLongitude" in self._dataset: + return self._dataset.GPSLongitude + return None + + @GPSLongitude.setter + def GPSLongitude(self, value: Optional[List[Decimal]]): + if value is None: + if "GPSLongitude" in self._dataset: + del self._dataset.GPSLongitude + else: + self._dataset.GPSLongitude = value + + @property + def GPSAltitudeRef(self) -> Optional[int]: + if "GPSAltitudeRe" in self._dataset: + return self._dataset.GPSAltitudeRef + return None + + @GPSAltitudeRef.setter + def GPSAltitudeRef(self, value: Optional[int]): + if value is None: + if "GPSAltitudeRe" in self._dataset: + del self._dataset.GPSAltitudeRef + else: + self._dataset.GPSAltitudeRef = value + + @property + def GPSAltitude(self) -> Optional[Decimal]: + if "GPSAltitude" in self._dataset: + return self._dataset.GPSAltitude + return None + + @GPSAltitude.setter + def GPSAltitude(self, value: Optional[Decimal]): + if value is None: + if "GPSAltitude" in self._dataset: + del self._dataset.GPSAltitude + else: + self._dataset.GPSAltitude = value + + @property + def GPSTimeStamp(self) -> Optional[str]: + if "GPSTimeStamp" in self._dataset: + return self._dataset.GPSTimeStamp + return None + + @GPSTimeStamp.setter + def GPSTimeStamp(self, value: Optional[str]): + if value is None: + if "GPSTimeStamp" in self._dataset: + del self._dataset.GPSTimeStamp + else: + self._dataset.GPSTimeStamp = value + + @property + def GPSSatellites(self) -> Optional[str]: + if "GPSSatellites" in self._dataset: + return self._dataset.GPSSatellites + return None + + @GPSSatellites.setter + def GPSSatellites(self, value: Optional[str]): + if value is None: + if "GPSSatellites" in self._dataset: + del self._dataset.GPSSatellites + else: + self._dataset.GPSSatellites = value + + @property + def GPSStatus(self) -> Optional[str]: + if "GPSStatus" in self._dataset: + return self._dataset.GPSStatus + return None + + @GPSStatus.setter + def GPSStatus(self, value: Optional[str]): + if value is None: + if "GPSStatus" in self._dataset: + del self._dataset.GPSStatus + else: + self._dataset.GPSStatus = value + + @property + def GPSMeasureMode(self) -> Optional[str]: + if "GPSMeasureMode" in self._dataset: + return self._dataset.GPSMeasureMode + return None + + @GPSMeasureMode.setter + def GPSMeasureMode(self, value: Optional[str]): + if value is None: + if "GPSMeasureMode" in self._dataset: + del self._dataset.GPSMeasureMode + else: + self._dataset.GPSMeasureMode = value + + @property + def GPSDOP(self) -> Optional[Decimal]: + if "GPSDOP" in self._dataset: + return self._dataset.GPSDOP + return None + + @GPSDOP.setter + def GPSDOP(self, value: Optional[Decimal]): + if value is None: + if "GPSDOP" in self._dataset: + del self._dataset.GPSDOP + else: + self._dataset.GPSDOP = value + + @property + def GPSSpeedRef(self) -> Optional[str]: + if "GPSSpeedRe" in self._dataset: + return self._dataset.GPSSpeedRef + return None + + @GPSSpeedRef.setter + def GPSSpeedRef(self, value: Optional[str]): + if value is None: + if "GPSSpeedRe" in self._dataset: + del self._dataset.GPSSpeedRef + else: + self._dataset.GPSSpeedRef = value + + @property + def GPSSpeed(self) -> Optional[Decimal]: + if "GPSSpeed" in self._dataset: + return self._dataset.GPSSpeed + return None + + @GPSSpeed.setter + def GPSSpeed(self, value: Optional[Decimal]): + if value is None: + if "GPSSpeed" in self._dataset: + del self._dataset.GPSSpeed + else: + self._dataset.GPSSpeed = value + + @property + def GPSTrackRef(self) -> Optional[str]: + if "GPSTrackRe" in self._dataset: + return self._dataset.GPSTrackRef + return None + + @GPSTrackRef.setter + def GPSTrackRef(self, value: Optional[str]): + if value is None: + if "GPSTrackRe" in self._dataset: + del self._dataset.GPSTrackRef + else: + self._dataset.GPSTrackRef = value + + @property + def GPSTrack(self) -> Optional[Decimal]: + if "GPSTrack" in self._dataset: + return self._dataset.GPSTrack + return None + + @GPSTrack.setter + def GPSTrack(self, value: Optional[Decimal]): + if value is None: + if "GPSTrack" in self._dataset: + del self._dataset.GPSTrack + else: + self._dataset.GPSTrack = value + + @property + def GPSImgDirectionRef(self) -> Optional[str]: + if "GPSImgDirectionRe" in self._dataset: + return self._dataset.GPSImgDirectionRef + return None + + @GPSImgDirectionRef.setter + def GPSImgDirectionRef(self, value: Optional[str]): + if value is None: + if "GPSImgDirectionRe" in self._dataset: + del self._dataset.GPSImgDirectionRef + else: + self._dataset.GPSImgDirectionRef = value + + @property + def GPSImgDirection(self) -> Optional[Decimal]: + if "GPSImgDirection" in self._dataset: + return self._dataset.GPSImgDirection + return None + + @GPSImgDirection.setter + def GPSImgDirection(self, value: Optional[Decimal]): + if value is None: + if "GPSImgDirection" in self._dataset: + del self._dataset.GPSImgDirection + else: + self._dataset.GPSImgDirection = value + + @property + def GPSMapDatum(self) -> Optional[str]: + if "GPSMapDatum" in self._dataset: + return self._dataset.GPSMapDatum + return None + + @GPSMapDatum.setter + def GPSMapDatum(self, value: Optional[str]): + if value is None: + if "GPSMapDatum" in self._dataset: + del self._dataset.GPSMapDatum + else: + self._dataset.GPSMapDatum = value + + @property + def GPSDestLatitudeRef(self) -> Optional[str]: + if "GPSDestLatitudeRe" in self._dataset: + return self._dataset.GPSDestLatitudeRef + return None + + @GPSDestLatitudeRef.setter + def GPSDestLatitudeRef(self, value: Optional[str]): + if value is None: + if "GPSDestLatitudeRe" in self._dataset: + del self._dataset.GPSDestLatitudeRef + else: + self._dataset.GPSDestLatitudeRef = value + + @property + def GPSDestLatitude(self) -> Optional[List[Decimal]]: + if "GPSDestLatitude" in self._dataset: + return self._dataset.GPSDestLatitude + return None + + @GPSDestLatitude.setter + def GPSDestLatitude(self, value: Optional[List[Decimal]]): + if value is None: + if "GPSDestLatitude" in self._dataset: + del self._dataset.GPSDestLatitude + else: + self._dataset.GPSDestLatitude = value + + @property + def GPSDestLongitudeRef(self) -> Optional[str]: + if "GPSDestLongitudeRe" in self._dataset: + return self._dataset.GPSDestLongitudeRef + return None + + @GPSDestLongitudeRef.setter + def GPSDestLongitudeRef(self, value: Optional[str]): + if value is None: + if "GPSDestLongitudeRe" in self._dataset: + del self._dataset.GPSDestLongitudeRef + else: + self._dataset.GPSDestLongitudeRef = value + + @property + def GPSDestLongitude(self) -> Optional[List[Decimal]]: + if "GPSDestLongitude" in self._dataset: + return self._dataset.GPSDestLongitude + return None + + @GPSDestLongitude.setter + def GPSDestLongitude(self, value: Optional[List[Decimal]]): + if value is None: + if "GPSDestLongitude" in self._dataset: + del self._dataset.GPSDestLongitude + else: + self._dataset.GPSDestLongitude = value + + @property + def GPSDestBearingRef(self) -> Optional[str]: + if "GPSDestBearingRe" in self._dataset: + return self._dataset.GPSDestBearingRef + return None + + @GPSDestBearingRef.setter + def GPSDestBearingRef(self, value: Optional[str]): + if value is None: + if "GPSDestBearingRe" in self._dataset: + del self._dataset.GPSDestBearingRef + else: + self._dataset.GPSDestBearingRef = value + + @property + def GPSDestBearing(self) -> Optional[Decimal]: + if "GPSDestBearing" in self._dataset: + return self._dataset.GPSDestBearing + return None + + @GPSDestBearing.setter + def GPSDestBearing(self, value: Optional[Decimal]): + if value is None: + if "GPSDestBearing" in self._dataset: + del self._dataset.GPSDestBearing + else: + self._dataset.GPSDestBearing = value + + @property + def GPSDestDistanceRef(self) -> Optional[str]: + if "GPSDestDistanceRe" in self._dataset: + return self._dataset.GPSDestDistanceRef + return None + + @GPSDestDistanceRef.setter + def GPSDestDistanceRef(self, value: Optional[str]): + if value is None: + if "GPSDestDistanceRe" in self._dataset: + del self._dataset.GPSDestDistanceRef + else: + self._dataset.GPSDestDistanceRef = value + + @property + def GPSDestDistance(self) -> Optional[Decimal]: + if "GPSDestDistance" in self._dataset: + return self._dataset.GPSDestDistance + return None + + @GPSDestDistance.setter + def GPSDestDistance(self, value: Optional[Decimal]): + if value is None: + if "GPSDestDistance" in self._dataset: + del self._dataset.GPSDestDistance + else: + self._dataset.GPSDestDistance = value + + @property + def GPSProcessingMethod(self) -> Optional[bytes]: + if "GPSProcessingMethod" in self._dataset: + return self._dataset.GPSProcessingMethod + return None + + @GPSProcessingMethod.setter + def GPSProcessingMethod(self, value: Optional[bytes]): + if value is None: + if "GPSProcessingMethod" in self._dataset: + del self._dataset.GPSProcessingMethod + else: + self._dataset.GPSProcessingMethod = value + + @property + def GPSAreaInformation(self) -> Optional[bytes]: + if "GPSAreaInformation" in self._dataset: + return self._dataset.GPSAreaInformation + return None + + @GPSAreaInformation.setter + def GPSAreaInformation(self, value: Optional[bytes]): + if value is None: + if "GPSAreaInformation" in self._dataset: + del self._dataset.GPSAreaInformation + else: + self._dataset.GPSAreaInformation = value + + @property + def GPSDateStamp(self) -> Optional[str]: + if "GPSDateStamp" in self._dataset: + return self._dataset.GPSDateStamp + return None + + @GPSDateStamp.setter + def GPSDateStamp(self, value: Optional[str]): + if value is None: + if "GPSDateStamp" in self._dataset: + del self._dataset.GPSDateStamp + else: + self._dataset.GPSDateStamp = value + + @property + def GPSDifferential(self) -> Optional[int]: + if "GPSDifferential" in self._dataset: + return self._dataset.GPSDifferential + return None + + @GPSDifferential.setter + def GPSDifferential(self, value: Optional[int]): + if value is None: + if "GPSDifferential" in self._dataset: + del self._dataset.GPSDifferential + else: + self._dataset.GPSDifferential = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def CameraOwnerName(self) -> Optional[str]: + if "CameraOwnerName" in self._dataset: + return self._dataset.CameraOwnerName + return None + + @CameraOwnerName.setter + def CameraOwnerName(self, value: Optional[str]): + if value is None: + if "CameraOwnerName" in self._dataset: + del self._dataset.CameraOwnerName + else: + self._dataset.CameraOwnerName = value + + @property + def LensSpecification(self) -> Optional[List[Decimal]]: + if "LensSpecification" in self._dataset: + return self._dataset.LensSpecification + return None + + @LensSpecification.setter + def LensSpecification(self, value: Optional[List[Decimal]]): + if value is None: + if "LensSpecification" in self._dataset: + del self._dataset.LensSpecification + else: + self._dataset.LensSpecification = value + + @property + def LensMake(self) -> Optional[str]: + if "LensMake" in self._dataset: + return self._dataset.LensMake + return None + + @LensMake.setter + def LensMake(self, value: Optional[str]): + if value is None: + if "LensMake" in self._dataset: + del self._dataset.LensMake + else: + self._dataset.LensMake = value + + @property + def LensModel(self) -> Optional[str]: + if "LensModel" in self._dataset: + return self._dataset.LensModel + return None + + @LensModel.setter + def LensModel(self, value: Optional[str]): + if value is None: + if "LensModel" in self._dataset: + del self._dataset.LensModel + else: + self._dataset.LensModel = value + + @property + def LensSerialNumber(self) -> Optional[str]: + if "LensSerialNumber" in self._dataset: + return self._dataset.LensSerialNumber + return None + + @LensSerialNumber.setter + def LensSerialNumber(self, value: Optional[str]): + if value is None: + if "LensSerialNumber" in self._dataset: + del self._dataset.LensSerialNumber + else: + self._dataset.LensSerialNumber = value diff --git a/tdwii_plus_examples/domain_model/vl_slide_coordinates_microscopic_image.py b/tdwii_plus_examples/domain_model/vl_slide_coordinates_microscopic_image.py new file mode 100644 index 0000000..babfb90 --- /dev/null +++ b/tdwii_plus_examples/domain_model/vl_slide_coordinates_microscopic_image.py @@ -0,0 +1,5879 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .image_center_point_coordinates_sequence_item import ( + ImageCenterPointCoordinatesSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .optical_path_sequence_item import OpticalPathSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem + + +class VlSlideCoordinatesMicroscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._OpticalPathSequence: List[OpticalPathSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ImageCenterPointCoordinatesSequence: List[ImageCenterPointCoordinatesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OpticalPathSequence(self) -> Optional[List[OpticalPathSequenceItem]]: + if "OpticalPathSequence" in self._dataset: + if len(self._OpticalPathSequence) == len(self._dataset.OpticalPathSequence): + return self._OpticalPathSequence + else: + return [OpticalPathSequenceItem(x) for x in self._dataset.OpticalPathSequence] + return None + + @OpticalPathSequence.setter + def OpticalPathSequence(self, value: Optional[List[OpticalPathSequenceItem]]): + if value is None: + self._OpticalPathSequence = [] + if "OpticalPathSequence" in self._dataset: + del self._dataset.OpticalPathSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathSequenceItem) for item in value): + raise ValueError("OpticalPathSequence must be a list of OpticalPathSequenceItem objects") + else: + self._OpticalPathSequence = value + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.clear() + self._dataset.OpticalPathSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPath(self, item: OpticalPathSequenceItem): + if not isinstance(item, OpticalPathSequenceItem): + raise ValueError("Item must be an instance of OpticalPathSequenceItem") + self._OpticalPathSequence.append(item) + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.append(item.to_dataset()) + + @property + def NumberOfOpticalPaths(self) -> Optional[int]: + if "NumberOfOpticalPaths" in self._dataset: + return self._dataset.NumberOfOpticalPaths + return None + + @NumberOfOpticalPaths.setter + def NumberOfOpticalPaths(self, value: Optional[int]): + if value is None: + if "NumberOfOpticalPaths" in self._dataset: + del self._dataset.NumberOfOpticalPaths + else: + self._dataset.NumberOfOpticalPaths = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ImageCenterPointCoordinatesSequence(self) -> Optional[List[ImageCenterPointCoordinatesSequenceItem]]: + if "ImageCenterPointCoordinatesSequence" in self._dataset: + if len(self._ImageCenterPointCoordinatesSequence) == len(self._dataset.ImageCenterPointCoordinatesSequence): + return self._ImageCenterPointCoordinatesSequence + else: + return [ImageCenterPointCoordinatesSequenceItem(x) for x in self._dataset.ImageCenterPointCoordinatesSequence] + return None + + @ImageCenterPointCoordinatesSequence.setter + def ImageCenterPointCoordinatesSequence(self, value: Optional[List[ImageCenterPointCoordinatesSequenceItem]]): + if value is None: + self._ImageCenterPointCoordinatesSequence = [] + if "ImageCenterPointCoordinatesSequence" in self._dataset: + del self._dataset.ImageCenterPointCoordinatesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ImageCenterPointCoordinatesSequenceItem) for item in value + ): + raise ValueError( + "ImageCenterPointCoordinatesSequence must be a list of ImageCenterPointCoordinatesSequenceItem objects" + ) + else: + self._ImageCenterPointCoordinatesSequence = value + if "ImageCenterPointCoordinatesSequence" not in self._dataset: + self._dataset.ImageCenterPointCoordinatesSequence = pydicom.Sequence() + self._dataset.ImageCenterPointCoordinatesSequence.clear() + self._dataset.ImageCenterPointCoordinatesSequence.extend([item.to_dataset() for item in value]) + + def add_ImageCenterPointCoordinates(self, item: ImageCenterPointCoordinatesSequenceItem): + if not isinstance(item, ImageCenterPointCoordinatesSequenceItem): + raise ValueError("Item must be an instance of ImageCenterPointCoordinatesSequenceItem") + self._ImageCenterPointCoordinatesSequence.append(item) + if "ImageCenterPointCoordinatesSequence" not in self._dataset: + self._dataset.ImageCenterPointCoordinatesSequence = pydicom.Sequence() + self._dataset.ImageCenterPointCoordinatesSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/vl_whole_slide_microscopy_image.py b/tdwii_plus_examples/domain_model/vl_whole_slide_microscopy_image.py new file mode 100644 index 0000000..b78bbb9 --- /dev/null +++ b/tdwii_plus_examples/domain_model/vl_whole_slide_microscopy_image.py @@ -0,0 +1,6318 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .optical_path_sequence_item import OpticalPathSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .total_pixel_matrix_origin_sequence_item import TotalPixelMatrixOriginSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class VlWholeSlideMicroscopyImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._OpticalPathSequence: List[OpticalPathSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._TotalPixelMatrixOriginSequence: List[TotalPixelMatrixOriginSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def OpticalPathSequence(self) -> Optional[List[OpticalPathSequenceItem]]: + if "OpticalPathSequence" in self._dataset: + if len(self._OpticalPathSequence) == len(self._dataset.OpticalPathSequence): + return self._OpticalPathSequence + else: + return [OpticalPathSequenceItem(x) for x in self._dataset.OpticalPathSequence] + return None + + @OpticalPathSequence.setter + def OpticalPathSequence(self, value: Optional[List[OpticalPathSequenceItem]]): + if value is None: + self._OpticalPathSequence = [] + if "OpticalPathSequence" in self._dataset: + del self._dataset.OpticalPathSequence + elif not isinstance(value, list) or not all(isinstance(item, OpticalPathSequenceItem) for item in value): + raise ValueError("OpticalPathSequence must be a list of OpticalPathSequenceItem objects") + else: + self._OpticalPathSequence = value + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.clear() + self._dataset.OpticalPathSequence.extend([item.to_dataset() for item in value]) + + def add_OpticalPath(self, item: OpticalPathSequenceItem): + if not isinstance(item, OpticalPathSequenceItem): + raise ValueError("Item must be an instance of OpticalPathSequenceItem") + self._OpticalPathSequence.append(item) + if "OpticalPathSequence" not in self._dataset: + self._dataset.OpticalPathSequence = pydicom.Sequence() + self._dataset.OpticalPathSequence.append(item.to_dataset()) + + @property + def NumberOfOpticalPaths(self) -> Optional[int]: + if "NumberOfOpticalPaths" in self._dataset: + return self._dataset.NumberOfOpticalPaths + return None + + @NumberOfOpticalPaths.setter + def NumberOfOpticalPaths(self, value: Optional[int]): + if value is None: + if "NumberOfOpticalPaths" in self._dataset: + del self._dataset.NumberOfOpticalPaths + else: + self._dataset.NumberOfOpticalPaths = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def TotalPixelMatrixColumns(self) -> Optional[int]: + if "TotalPixelMatrixColumns" in self._dataset: + return self._dataset.TotalPixelMatrixColumns + return None + + @TotalPixelMatrixColumns.setter + def TotalPixelMatrixColumns(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixColumns" in self._dataset: + del self._dataset.TotalPixelMatrixColumns + else: + self._dataset.TotalPixelMatrixColumns = value + + @property + def TotalPixelMatrixRows(self) -> Optional[int]: + if "TotalPixelMatrixRows" in self._dataset: + return self._dataset.TotalPixelMatrixRows + return None + + @TotalPixelMatrixRows.setter + def TotalPixelMatrixRows(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixRows" in self._dataset: + del self._dataset.TotalPixelMatrixRows + else: + self._dataset.TotalPixelMatrixRows = value + + @property + def TotalPixelMatrixOriginSequence(self) -> Optional[List[TotalPixelMatrixOriginSequenceItem]]: + if "TotalPixelMatrixOriginSequence" in self._dataset: + if len(self._TotalPixelMatrixOriginSequence) == len(self._dataset.TotalPixelMatrixOriginSequence): + return self._TotalPixelMatrixOriginSequence + else: + return [TotalPixelMatrixOriginSequenceItem(x) for x in self._dataset.TotalPixelMatrixOriginSequence] + return None + + @TotalPixelMatrixOriginSequence.setter + def TotalPixelMatrixOriginSequence(self, value: Optional[List[TotalPixelMatrixOriginSequenceItem]]): + if value is None: + self._TotalPixelMatrixOriginSequence = [] + if "TotalPixelMatrixOriginSequence" in self._dataset: + del self._dataset.TotalPixelMatrixOriginSequence + elif not isinstance(value, list) or not all(isinstance(item, TotalPixelMatrixOriginSequenceItem) for item in value): + raise ValueError("TotalPixelMatrixOriginSequence must be a list of TotalPixelMatrixOriginSequenceItem objects") + else: + self._TotalPixelMatrixOriginSequence = value + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.clear() + self._dataset.TotalPixelMatrixOriginSequence.extend([item.to_dataset() for item in value]) + + def add_TotalPixelMatrixOrigin(self, item: TotalPixelMatrixOriginSequenceItem): + if not isinstance(item, TotalPixelMatrixOriginSequenceItem): + raise ValueError("Item must be an instance of TotalPixelMatrixOriginSequenceItem") + self._TotalPixelMatrixOriginSequence.append(item) + if "TotalPixelMatrixOriginSequence" not in self._dataset: + self._dataset.TotalPixelMatrixOriginSequence = pydicom.Sequence() + self._dataset.TotalPixelMatrixOriginSequence.append(item.to_dataset()) + + @property + def ImageOrientationSlide(self) -> Optional[List[Decimal]]: + if "ImageOrientationSlide" in self._dataset: + return self._dataset.ImageOrientationSlide + return None + + @ImageOrientationSlide.setter + def ImageOrientationSlide(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageOrientationSlide" in self._dataset: + del self._dataset.ImageOrientationSlide + else: + self._dataset.ImageOrientationSlide = value + + @property + def TotalPixelMatrixFocalPlanes(self) -> Optional[int]: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + return self._dataset.TotalPixelMatrixFocalPlanes + return None + + @TotalPixelMatrixFocalPlanes.setter + def TotalPixelMatrixFocalPlanes(self, value: Optional[int]): + if value is None: + if "TotalPixelMatrixFocalPlanes" in self._dataset: + del self._dataset.TotalPixelMatrixFocalPlanes + else: + self._dataset.TotalPixelMatrixFocalPlanes = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def LabelText(self) -> Optional[str]: + if "LabelText" in self._dataset: + return self._dataset.LabelText + return None + + @LabelText.setter + def LabelText(self, value: Optional[str]): + if value is None: + if "LabelText" in self._dataset: + del self._dataset.LabelText + else: + self._dataset.LabelText = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def ConvolutionKernel(self) -> Optional[List[str]]: + if "ConvolutionKernel" in self._dataset: + return self._dataset.ConvolutionKernel + return None + + @ConvolutionKernel.setter + def ConvolutionKernel(self, value: Optional[List[str]]): + if value is None: + if "ConvolutionKernel" in self._dataset: + del self._dataset.ConvolutionKernel + else: + self._dataset.ConvolutionKernel = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def ImagedVolumeWidth(self) -> Optional[float]: + if "ImagedVolumeWidth" in self._dataset: + return self._dataset.ImagedVolumeWidth + return None + + @ImagedVolumeWidth.setter + def ImagedVolumeWidth(self, value: Optional[float]): + if value is None: + if "ImagedVolumeWidth" in self._dataset: + del self._dataset.ImagedVolumeWidth + else: + self._dataset.ImagedVolumeWidth = value + + @property + def ImagedVolumeHeight(self) -> Optional[float]: + if "ImagedVolumeHeight" in self._dataset: + return self._dataset.ImagedVolumeHeight + return None + + @ImagedVolumeHeight.setter + def ImagedVolumeHeight(self, value: Optional[float]): + if value is None: + if "ImagedVolumeHeight" in self._dataset: + del self._dataset.ImagedVolumeHeight + else: + self._dataset.ImagedVolumeHeight = value + + @property + def ImagedVolumeDepth(self) -> Optional[float]: + if "ImagedVolumeDepth" in self._dataset: + return self._dataset.ImagedVolumeDepth + return None + + @ImagedVolumeDepth.setter + def ImagedVolumeDepth(self, value: Optional[float]): + if value is None: + if "ImagedVolumeDepth" in self._dataset: + del self._dataset.ImagedVolumeDepth + else: + self._dataset.ImagedVolumeDepth = value + + @property + def SpecimenLabelInImage(self) -> Optional[str]: + if "SpecimenLabelInImage" in self._dataset: + return self._dataset.SpecimenLabelInImage + return None + + @SpecimenLabelInImage.setter + def SpecimenLabelInImage(self, value: Optional[str]): + if value is None: + if "SpecimenLabelInImage" in self._dataset: + del self._dataset.SpecimenLabelInImage + else: + self._dataset.SpecimenLabelInImage = value + + @property + def FocusMethod(self) -> Optional[str]: + if "FocusMethod" in self._dataset: + return self._dataset.FocusMethod + return None + + @FocusMethod.setter + def FocusMethod(self, value: Optional[str]): + if value is None: + if "FocusMethod" in self._dataset: + del self._dataset.FocusMethod + else: + self._dataset.FocusMethod = value + + @property + def ExtendedDepthOfField(self) -> Optional[str]: + if "ExtendedDepthOfField" in self._dataset: + return self._dataset.ExtendedDepthOfField + return None + + @ExtendedDepthOfField.setter + def ExtendedDepthOfField(self, value: Optional[str]): + if value is None: + if "ExtendedDepthOfField" in self._dataset: + del self._dataset.ExtendedDepthOfField + else: + self._dataset.ExtendedDepthOfField = value + + @property + def NumberOfFocalPlanes(self) -> Optional[int]: + if "NumberOfFocalPlanes" in self._dataset: + return self._dataset.NumberOfFocalPlanes + return None + + @NumberOfFocalPlanes.setter + def NumberOfFocalPlanes(self, value: Optional[int]): + if value is None: + if "NumberOfFocalPlanes" in self._dataset: + del self._dataset.NumberOfFocalPlanes + else: + self._dataset.NumberOfFocalPlanes = value + + @property + def DistanceBetweenFocalPlanes(self) -> Optional[float]: + if "DistanceBetweenFocalPlanes" in self._dataset: + return self._dataset.DistanceBetweenFocalPlanes + return None + + @DistanceBetweenFocalPlanes.setter + def DistanceBetweenFocalPlanes(self, value: Optional[float]): + if value is None: + if "DistanceBetweenFocalPlanes" in self._dataset: + del self._dataset.DistanceBetweenFocalPlanes + else: + self._dataset.DistanceBetweenFocalPlanes = value + + @property + def RecommendedAbsentPixelCIELabValue(self) -> Optional[List[int]]: + if "RecommendedAbsentPixelCIELabValue" in self._dataset: + return self._dataset.RecommendedAbsentPixelCIELabValue + return None + + @RecommendedAbsentPixelCIELabValue.setter + def RecommendedAbsentPixelCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "RecommendedAbsentPixelCIELabValue" in self._dataset: + del self._dataset.RecommendedAbsentPixelCIELabValue + else: + self._dataset.RecommendedAbsentPixelCIELabValue = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def PyramidUID(self) -> Optional[str]: + if "PyramidUID" in self._dataset: + return self._dataset.PyramidUID + return None + + @PyramidUID.setter + def PyramidUID(self, value: Optional[str]): + if value is None: + if "PyramidUID" in self._dataset: + del self._dataset.PyramidUID + else: + self._dataset.PyramidUID = value + + @property + def PyramidDescription(self) -> Optional[str]: + if "PyramidDescription" in self._dataset: + return self._dataset.PyramidDescription + return None + + @PyramidDescription.setter + def PyramidDescription(self, value: Optional[str]): + if value is None: + if "PyramidDescription" in self._dataset: + del self._dataset.PyramidDescription + else: + self._dataset.PyramidDescription = value + + @property + def PyramidLabel(self) -> Optional[str]: + if "PyramidLabel" in self._dataset: + return self._dataset.PyramidLabel + return None + + @PyramidLabel.setter + def PyramidLabel(self, value: Optional[str]): + if value is None: + if "PyramidLabel" in self._dataset: + del self._dataset.PyramidLabel + else: + self._dataset.PyramidLabel = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/voilut_sequence_item.py b/tdwii_plus_examples/domain_model/voilut_sequence_item.py new file mode 100644 index 0000000..21b14d5 --- /dev/null +++ b/tdwii_plus_examples/domain_model/voilut_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VOILUTSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LUTDescriptor(self) -> Optional[List[int]]: + if "LUTDescriptor" in self._dataset: + return self._dataset.LUTDescriptor + return None + + @LUTDescriptor.setter + def LUTDescriptor(self, value: Optional[List[int]]): + if value is None: + if "LUTDescriptor" in self._dataset: + del self._dataset.LUTDescriptor + else: + self._dataset.LUTDescriptor = value + + @property + def LUTExplanation(self) -> Optional[str]: + if "LUTExplanation" in self._dataset: + return self._dataset.LUTExplanation + return None + + @LUTExplanation.setter + def LUTExplanation(self, value: Optional[str]): + if value is None: + if "LUTExplanation" in self._dataset: + del self._dataset.LUTExplanation + else: + self._dataset.LUTExplanation = value + + @property + def LUTData(self) -> Optional[List[int | bytes]]: + if "LUTData" in self._dataset: + return self._dataset.LUTData + return None + + @LUTData.setter + def LUTData(self, value: Optional[List[int | bytes]]): + if value is None: + if "LUTData" in self._dataset: + del self._dataset.LUTData + else: + self._dataset.LUTData = value diff --git a/tdwii_plus_examples/domain_model/volume_cropping_sequence_item.py b/tdwii_plus_examples/domain_model/volume_cropping_sequence_item.py new file mode 100644 index 0000000..3419e58 --- /dev/null +++ b/tdwii_plus_examples/domain_model/volume_cropping_sequence_item.py @@ -0,0 +1,122 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .oblique_cropping_plane_sequence_item import ObliqueCroppingPlaneSequenceItem +from .referenced_image_sequence_item import ReferencedImageSequenceItem + + +class VolumeCroppingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ObliqueCroppingPlaneSequence: List[ObliqueCroppingPlaneSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def VolumeCroppingMethod(self) -> Optional[str]: + if "VolumeCroppingMethod" in self._dataset: + return self._dataset.VolumeCroppingMethod + return None + + @VolumeCroppingMethod.setter + def VolumeCroppingMethod(self, value: Optional[str]): + if value is None: + if "VolumeCroppingMethod" in self._dataset: + del self._dataset.VolumeCroppingMethod + else: + self._dataset.VolumeCroppingMethod = value + + @property + def BoundingBoxCrop(self) -> Optional[List[float]]: + if "BoundingBoxCrop" in self._dataset: + return self._dataset.BoundingBoxCrop + return None + + @BoundingBoxCrop.setter + def BoundingBoxCrop(self, value: Optional[List[float]]): + if value is None: + if "BoundingBoxCrop" in self._dataset: + del self._dataset.BoundingBoxCrop + else: + self._dataset.BoundingBoxCrop = value + + @property + def ObliqueCroppingPlaneSequence(self) -> Optional[List[ObliqueCroppingPlaneSequenceItem]]: + if "ObliqueCroppingPlaneSequence" in self._dataset: + if len(self._ObliqueCroppingPlaneSequence) == len(self._dataset.ObliqueCroppingPlaneSequence): + return self._ObliqueCroppingPlaneSequence + else: + return [ObliqueCroppingPlaneSequenceItem(x) for x in self._dataset.ObliqueCroppingPlaneSequence] + return None + + @ObliqueCroppingPlaneSequence.setter + def ObliqueCroppingPlaneSequence(self, value: Optional[List[ObliqueCroppingPlaneSequenceItem]]): + if value is None: + self._ObliqueCroppingPlaneSequence = [] + if "ObliqueCroppingPlaneSequence" in self._dataset: + del self._dataset.ObliqueCroppingPlaneSequence + elif not isinstance(value, list) or not all(isinstance(item, ObliqueCroppingPlaneSequenceItem) for item in value): + raise ValueError("ObliqueCroppingPlaneSequence must be a list of ObliqueCroppingPlaneSequenceItem objects") + else: + self._ObliqueCroppingPlaneSequence = value + if "ObliqueCroppingPlaneSequence" not in self._dataset: + self._dataset.ObliqueCroppingPlaneSequence = pydicom.Sequence() + self._dataset.ObliqueCroppingPlaneSequence.clear() + self._dataset.ObliqueCroppingPlaneSequence.extend([item.to_dataset() for item in value]) + + def add_ObliqueCroppingPlane(self, item: ObliqueCroppingPlaneSequenceItem): + if not isinstance(item, ObliqueCroppingPlaneSequenceItem): + raise ValueError("Item must be an instance of ObliqueCroppingPlaneSequenceItem") + self._ObliqueCroppingPlaneSequence.append(item) + if "ObliqueCroppingPlaneSequence" not in self._dataset: + self._dataset.ObliqueCroppingPlaneSequence = pydicom.Sequence() + self._dataset.ObliqueCroppingPlaneSequence.append(item.to_dataset()) + + @property + def CroppingSpecificationNumber(self) -> Optional[int]: + if "CroppingSpecificationNumber" in self._dataset: + return self._dataset.CroppingSpecificationNumber + return None + + @CroppingSpecificationNumber.setter + def CroppingSpecificationNumber(self, value: Optional[int]): + if value is None: + if "CroppingSpecificationNumber" in self._dataset: + del self._dataset.CroppingSpecificationNumber + else: + self._dataset.CroppingSpecificationNumber = value diff --git a/tdwii_plus_examples/domain_model/volume_localization_sequence_item.py b/tdwii_plus_examples/domain_model/volume_localization_sequence_item.py new file mode 100644 index 0000000..7e9ed9a --- /dev/null +++ b/tdwii_plus_examples/domain_model/volume_localization_sequence_item.py @@ -0,0 +1,53 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class VolumeLocalizationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SlabThickness(self) -> Optional[float]: + if "SlabThickness" in self._dataset: + return self._dataset.SlabThickness + return None + + @SlabThickness.setter + def SlabThickness(self, value: Optional[float]): + if value is None: + if "SlabThickness" in self._dataset: + del self._dataset.SlabThickness + else: + self._dataset.SlabThickness = value + + @property + def SlabOrientation(self) -> Optional[List[float]]: + if "SlabOrientation" in self._dataset: + return self._dataset.SlabOrientation + return None + + @SlabOrientation.setter + def SlabOrientation(self, value: Optional[List[float]]): + if value is None: + if "SlabOrientation" in self._dataset: + del self._dataset.SlabOrientation + else: + self._dataset.SlabOrientation = value + + @property + def MidSlabPosition(self) -> Optional[List[float]]: + if "MidSlabPosition" in self._dataset: + return self._dataset.MidSlabPosition + return None + + @MidSlabPosition.setter + def MidSlabPosition(self, value: Optional[List[float]]): + if value is None: + if "MidSlabPosition" in self._dataset: + del self._dataset.MidSlabPosition + else: + self._dataset.MidSlabPosition = value diff --git a/tdwii_plus_examples/domain_model/volume_rendering_volumetric_presentation_state.py b/tdwii_plus_examples/domain_model/volume_rendering_volumetric_presentation_state.py new file mode 100644 index 0000000..13c8c11 --- /dev/null +++ b/tdwii_plus_examples/domain_model/volume_rendering_volumetric_presentation_state.py @@ -0,0 +1,5179 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .animation_curve_sequence_item import AnimationCurveSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_group_sequence_item import GraphicGroupSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .presentation_state_compositor_component_sequence_item import ( + PresentationStateCompositorComponentSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .rendered_image_reference_sequence_item import RenderedImageReferenceSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .volume_cropping_sequence_item import VolumeCroppingSequenceItem +from .volume_stream_sequence_item import VolumeStreamSequenceItem +from .volumetric_annotation_sequence_item import VolumetricAnnotationSequenceItem +from .volumetric_presentation_input_annotation_sequence_item import ( + VolumetricPresentationInputAnnotationSequenceItem, +) +from .volumetric_presentation_input_set_sequence_item import ( + VolumetricPresentationInputSetSequenceItem, +) +from .volumetric_presentation_state_input_sequence_item import ( + VolumetricPresentationStateInputSequenceItem, +) + + +class VolumeRenderingVolumetricPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._RenderedImageReferenceSequence: List[RenderedImageReferenceSequenceItem] = [] + self._AnimationCurveSequence: List[AnimationCurveSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._VolumeCroppingSequence: List[VolumeCroppingSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._PresentationStateCompositorComponentSequence: List[PresentationStateCompositorComponentSequenceItem] = [] + self._VolumeStreamSequence: List[VolumeStreamSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._VolumetricPresentationStateInputSequence: List[VolumetricPresentationStateInputSequenceItem] = [] + self._VolumetricPresentationInputSetSequence: List[VolumetricPresentationInputSetSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ViewCodeSequence: List[CodeSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._VolumetricAnnotationSequence: List[VolumetricAnnotationSequenceItem] = [] + self._VolumetricPresentationInputAnnotationSequence: List[VolumetricPresentationInputAnnotationSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._GraphicGroupSequence: List[GraphicGroupSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def PresentationDisplayCollectionUID(self) -> Optional[str]: + if "PresentationDisplayCollectionUID" in self._dataset: + return self._dataset.PresentationDisplayCollectionUID + return None + + @PresentationDisplayCollectionUID.setter + def PresentationDisplayCollectionUID(self, value: Optional[str]): + if value is None: + if "PresentationDisplayCollectionUID" in self._dataset: + del self._dataset.PresentationDisplayCollectionUID + else: + self._dataset.PresentationDisplayCollectionUID = value + + @property + def PresentationSequenceCollectionUID(self) -> Optional[str]: + if "PresentationSequenceCollectionUID" in self._dataset: + return self._dataset.PresentationSequenceCollectionUID + return None + + @PresentationSequenceCollectionUID.setter + def PresentationSequenceCollectionUID(self, value: Optional[str]): + if value is None: + if "PresentationSequenceCollectionUID" in self._dataset: + del self._dataset.PresentationSequenceCollectionUID + else: + self._dataset.PresentationSequenceCollectionUID = value + + @property + def PresentationSequencePositionIndex(self) -> Optional[int]: + if "PresentationSequencePositionIndex" in self._dataset: + return self._dataset.PresentationSequencePositionIndex + return None + + @PresentationSequencePositionIndex.setter + def PresentationSequencePositionIndex(self, value: Optional[int]): + if value is None: + if "PresentationSequencePositionIndex" in self._dataset: + del self._dataset.PresentationSequencePositionIndex + else: + self._dataset.PresentationSequencePositionIndex = value + + @property + def RenderedImageReferenceSequence(self) -> Optional[List[RenderedImageReferenceSequenceItem]]: + if "RenderedImageReferenceSequence" in self._dataset: + if len(self._RenderedImageReferenceSequence) == len(self._dataset.RenderedImageReferenceSequence): + return self._RenderedImageReferenceSequence + else: + return [RenderedImageReferenceSequenceItem(x) for x in self._dataset.RenderedImageReferenceSequence] + return None + + @RenderedImageReferenceSequence.setter + def RenderedImageReferenceSequence(self, value: Optional[List[RenderedImageReferenceSequenceItem]]): + if value is None: + self._RenderedImageReferenceSequence = [] + if "RenderedImageReferenceSequence" in self._dataset: + del self._dataset.RenderedImageReferenceSequence + elif not isinstance(value, list) or not all(isinstance(item, RenderedImageReferenceSequenceItem) for item in value): + raise ValueError("RenderedImageReferenceSequence must be a list of RenderedImageReferenceSequenceItem objects") + else: + self._RenderedImageReferenceSequence = value + if "RenderedImageReferenceSequence" not in self._dataset: + self._dataset.RenderedImageReferenceSequence = pydicom.Sequence() + self._dataset.RenderedImageReferenceSequence.clear() + self._dataset.RenderedImageReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_RenderedImageReference(self, item: RenderedImageReferenceSequenceItem): + if not isinstance(item, RenderedImageReferenceSequenceItem): + raise ValueError("Item must be an instance of RenderedImageReferenceSequenceItem") + self._RenderedImageReferenceSequence.append(item) + if "RenderedImageReferenceSequence" not in self._dataset: + self._dataset.RenderedImageReferenceSequence = pydicom.Sequence() + self._dataset.RenderedImageReferenceSequence.append(item.to_dataset()) + + @property + def PresentationAnimationStyle(self) -> Optional[str]: + if "PresentationAnimationStyle" in self._dataset: + return self._dataset.PresentationAnimationStyle + return None + + @PresentationAnimationStyle.setter + def PresentationAnimationStyle(self, value: Optional[str]): + if value is None: + if "PresentationAnimationStyle" in self._dataset: + del self._dataset.PresentationAnimationStyle + else: + self._dataset.PresentationAnimationStyle = value + + @property + def RecommendedAnimationRate(self) -> Optional[float]: + if "RecommendedAnimationRate" in self._dataset: + return self._dataset.RecommendedAnimationRate + return None + + @RecommendedAnimationRate.setter + def RecommendedAnimationRate(self, value: Optional[float]): + if value is None: + if "RecommendedAnimationRate" in self._dataset: + del self._dataset.RecommendedAnimationRate + else: + self._dataset.RecommendedAnimationRate = value + + @property + def AnimationCurveSequence(self) -> Optional[List[AnimationCurveSequenceItem]]: + if "AnimationCurveSequence" in self._dataset: + if len(self._AnimationCurveSequence) == len(self._dataset.AnimationCurveSequence): + return self._AnimationCurveSequence + else: + return [AnimationCurveSequenceItem(x) for x in self._dataset.AnimationCurveSequence] + return None + + @AnimationCurveSequence.setter + def AnimationCurveSequence(self, value: Optional[List[AnimationCurveSequenceItem]]): + if value is None: + self._AnimationCurveSequence = [] + if "AnimationCurveSequence" in self._dataset: + del self._dataset.AnimationCurveSequence + elif not isinstance(value, list) or not all(isinstance(item, AnimationCurveSequenceItem) for item in value): + raise ValueError("AnimationCurveSequence must be a list of AnimationCurveSequenceItem objects") + else: + self._AnimationCurveSequence = value + if "AnimationCurveSequence" not in self._dataset: + self._dataset.AnimationCurveSequence = pydicom.Sequence() + self._dataset.AnimationCurveSequence.clear() + self._dataset.AnimationCurveSequence.extend([item.to_dataset() for item in value]) + + def add_AnimationCurve(self, item: AnimationCurveSequenceItem): + if not isinstance(item, AnimationCurveSequenceItem): + raise ValueError("Item must be an instance of AnimationCurveSequenceItem") + self._AnimationCurveSequence.append(item) + if "AnimationCurveSequence" not in self._dataset: + self._dataset.AnimationCurveSequence = pydicom.Sequence() + self._dataset.AnimationCurveSequence.append(item.to_dataset()) + + @property + def AnimationStepSize(self) -> Optional[float]: + if "AnimationStepSize" in self._dataset: + return self._dataset.AnimationStepSize + return None + + @AnimationStepSize.setter + def AnimationStepSize(self, value: Optional[float]): + if value is None: + if "AnimationStepSize" in self._dataset: + del self._dataset.AnimationStepSize + else: + self._dataset.AnimationStepSize = value + + @property + def SwivelRange(self) -> Optional[float]: + if "SwivelRange" in self._dataset: + return self._dataset.SwivelRange + return None + + @SwivelRange.setter + def SwivelRange(self, value: Optional[float]): + if value is None: + if "SwivelRange" in self._dataset: + del self._dataset.SwivelRange + else: + self._dataset.SwivelRange = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def VolumeCroppingSequence(self) -> Optional[List[VolumeCroppingSequenceItem]]: + if "VolumeCroppingSequence" in self._dataset: + if len(self._VolumeCroppingSequence) == len(self._dataset.VolumeCroppingSequence): + return self._VolumeCroppingSequence + else: + return [VolumeCroppingSequenceItem(x) for x in self._dataset.VolumeCroppingSequence] + return None + + @VolumeCroppingSequence.setter + def VolumeCroppingSequence(self, value: Optional[List[VolumeCroppingSequenceItem]]): + if value is None: + self._VolumeCroppingSequence = [] + if "VolumeCroppingSequence" in self._dataset: + del self._dataset.VolumeCroppingSequence + elif not isinstance(value, list) or not all(isinstance(item, VolumeCroppingSequenceItem) for item in value): + raise ValueError("VolumeCroppingSequence must be a list of VolumeCroppingSequenceItem objects") + else: + self._VolumeCroppingSequence = value + if "VolumeCroppingSequence" not in self._dataset: + self._dataset.VolumeCroppingSequence = pydicom.Sequence() + self._dataset.VolumeCroppingSequence.clear() + self._dataset.VolumeCroppingSequence.extend([item.to_dataset() for item in value]) + + def add_VolumeCropping(self, item: VolumeCroppingSequenceItem): + if not isinstance(item, VolumeCroppingSequenceItem): + raise ValueError("Item must be an instance of VolumeCroppingSequenceItem") + self._VolumeCroppingSequence.append(item) + if "VolumeCroppingSequence" not in self._dataset: + self._dataset.VolumeCroppingSequence = pydicom.Sequence() + self._dataset.VolumeCroppingSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PresentationStateCompositorComponentSequence(self) -> Optional[List[PresentationStateCompositorComponentSequenceItem]]: + if "PresentationStateCompositorComponentSequence" in self._dataset: + if len(self._PresentationStateCompositorComponentSequence) == len( + self._dataset.PresentationStateCompositorComponentSequence + ): + return self._PresentationStateCompositorComponentSequence + else: + return [ + PresentationStateCompositorComponentSequenceItem(x) + for x in self._dataset.PresentationStateCompositorComponentSequence + ] + return None + + @PresentationStateCompositorComponentSequence.setter + def PresentationStateCompositorComponentSequence( + self, value: Optional[List[PresentationStateCompositorComponentSequenceItem]] + ): + if value is None: + self._PresentationStateCompositorComponentSequence = [] + if "PresentationStateCompositorComponentSequence" in self._dataset: + del self._dataset.PresentationStateCompositorComponentSequence + elif not isinstance(value, list) or not all( + isinstance(item, PresentationStateCompositorComponentSequenceItem) for item in value + ): + raise ValueError( + "PresentationStateCompositorComponentSequence must be a list of" + " PresentationStateCompositorComponentSequenceItem objects" + ) + else: + self._PresentationStateCompositorComponentSequence = value + if "PresentationStateCompositorComponentSequence" not in self._dataset: + self._dataset.PresentationStateCompositorComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateCompositorComponentSequence.clear() + self._dataset.PresentationStateCompositorComponentSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationStateCompositorComponent(self, item: PresentationStateCompositorComponentSequenceItem): + if not isinstance(item, PresentationStateCompositorComponentSequenceItem): + raise ValueError("Item must be an instance of PresentationStateCompositorComponentSequenceItem") + self._PresentationStateCompositorComponentSequence.append(item) + if "PresentationStateCompositorComponentSequence" not in self._dataset: + self._dataset.PresentationStateCompositorComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateCompositorComponentSequence.append(item.to_dataset()) + + @property + def VolumeStreamSequence(self) -> Optional[List[VolumeStreamSequenceItem]]: + if "VolumeStreamSequence" in self._dataset: + if len(self._VolumeStreamSequence) == len(self._dataset.VolumeStreamSequence): + return self._VolumeStreamSequence + else: + return [VolumeStreamSequenceItem(x) for x in self._dataset.VolumeStreamSequence] + return None + + @VolumeStreamSequence.setter + def VolumeStreamSequence(self, value: Optional[List[VolumeStreamSequenceItem]]): + if value is None: + self._VolumeStreamSequence = [] + if "VolumeStreamSequence" in self._dataset: + del self._dataset.VolumeStreamSequence + elif not isinstance(value, list) or not all(isinstance(item, VolumeStreamSequenceItem) for item in value): + raise ValueError("VolumeStreamSequence must be a list of VolumeStreamSequenceItem objects") + else: + self._VolumeStreamSequence = value + if "VolumeStreamSequence" not in self._dataset: + self._dataset.VolumeStreamSequence = pydicom.Sequence() + self._dataset.VolumeStreamSequence.clear() + self._dataset.VolumeStreamSequence.extend([item.to_dataset() for item in value]) + + def add_VolumeStream(self, item: VolumeStreamSequenceItem): + if not isinstance(item, VolumeStreamSequenceItem): + raise ValueError("Item must be an instance of VolumeStreamSequenceItem") + self._VolumeStreamSequence.append(item) + if "VolumeStreamSequence" not in self._dataset: + self._dataset.VolumeStreamSequence = pydicom.Sequence() + self._dataset.VolumeStreamSequence.append(item.to_dataset()) + + @property + def ShadingStyle(self) -> Optional[str]: + if "ShadingStyle" in self._dataset: + return self._dataset.ShadingStyle + return None + + @ShadingStyle.setter + def ShadingStyle(self, value: Optional[str]): + if value is None: + if "ShadingStyle" in self._dataset: + del self._dataset.ShadingStyle + else: + self._dataset.ShadingStyle = value + + @property + def AmbientReflectionIntensity(self) -> Optional[float]: + if "AmbientReflectionIntensity" in self._dataset: + return self._dataset.AmbientReflectionIntensity + return None + + @AmbientReflectionIntensity.setter + def AmbientReflectionIntensity(self, value: Optional[float]): + if value is None: + if "AmbientReflectionIntensity" in self._dataset: + del self._dataset.AmbientReflectionIntensity + else: + self._dataset.AmbientReflectionIntensity = value + + @property + def LightDirection(self) -> Optional[List[float]]: + if "LightDirection" in self._dataset: + return self._dataset.LightDirection + return None + + @LightDirection.setter + def LightDirection(self, value: Optional[List[float]]): + if value is None: + if "LightDirection" in self._dataset: + del self._dataset.LightDirection + else: + self._dataset.LightDirection = value + + @property + def DiffuseReflectionIntensity(self) -> Optional[float]: + if "DiffuseReflectionIntensity" in self._dataset: + return self._dataset.DiffuseReflectionIntensity + return None + + @DiffuseReflectionIntensity.setter + def DiffuseReflectionIntensity(self, value: Optional[float]): + if value is None: + if "DiffuseReflectionIntensity" in self._dataset: + del self._dataset.DiffuseReflectionIntensity + else: + self._dataset.DiffuseReflectionIntensity = value + + @property + def SpecularReflectionIntensity(self) -> Optional[float]: + if "SpecularReflectionIntensity" in self._dataset: + return self._dataset.SpecularReflectionIntensity + return None + + @SpecularReflectionIntensity.setter + def SpecularReflectionIntensity(self, value: Optional[float]): + if value is None: + if "SpecularReflectionIntensity" in self._dataset: + del self._dataset.SpecularReflectionIntensity + else: + self._dataset.SpecularReflectionIntensity = value + + @property + def Shininess(self) -> Optional[float]: + if "Shininess" in self._dataset: + return self._dataset.Shininess + return None + + @Shininess.setter + def Shininess(self, value: Optional[float]): + if value is None: + if "Shininess" in self._dataset: + del self._dataset.Shininess + else: + self._dataset.Shininess = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def RenderingMethod(self) -> Optional[str]: + if "RenderingMethod" in self._dataset: + return self._dataset.RenderingMethod + return None + + @RenderingMethod.setter + def RenderingMethod(self, value: Optional[str]): + if value is None: + if "RenderingMethod" in self._dataset: + del self._dataset.RenderingMethod + else: + self._dataset.RenderingMethod = value + + @property + def RenderProjection(self) -> Optional[str]: + if "RenderProjection" in self._dataset: + return self._dataset.RenderProjection + return None + + @RenderProjection.setter + def RenderProjection(self, value: Optional[str]): + if value is None: + if "RenderProjection" in self._dataset: + del self._dataset.RenderProjection + else: + self._dataset.RenderProjection = value + + @property + def ViewpointPosition(self) -> Optional[List[float]]: + if "ViewpointPosition" in self._dataset: + return self._dataset.ViewpointPosition + return None + + @ViewpointPosition.setter + def ViewpointPosition(self, value: Optional[List[float]]): + if value is None: + if "ViewpointPosition" in self._dataset: + del self._dataset.ViewpointPosition + else: + self._dataset.ViewpointPosition = value + + @property + def ViewpointLookAtPoint(self) -> Optional[List[float]]: + if "ViewpointLookAtPoint" in self._dataset: + return self._dataset.ViewpointLookAtPoint + return None + + @ViewpointLookAtPoint.setter + def ViewpointLookAtPoint(self, value: Optional[List[float]]): + if value is None: + if "ViewpointLookAtPoint" in self._dataset: + del self._dataset.ViewpointLookAtPoint + else: + self._dataset.ViewpointLookAtPoint = value + + @property + def ViewpointUpDirection(self) -> Optional[List[float]]: + if "ViewpointUpDirection" in self._dataset: + return self._dataset.ViewpointUpDirection + return None + + @ViewpointUpDirection.setter + def ViewpointUpDirection(self, value: Optional[List[float]]): + if value is None: + if "ViewpointUpDirection" in self._dataset: + del self._dataset.ViewpointUpDirection + else: + self._dataset.ViewpointUpDirection = value + + @property + def RenderFieldOfView(self) -> Optional[List[float]]: + if "RenderFieldOfView" in self._dataset: + return self._dataset.RenderFieldOfView + return None + + @RenderFieldOfView.setter + def RenderFieldOfView(self, value: Optional[List[float]]): + if value is None: + if "RenderFieldOfView" in self._dataset: + del self._dataset.RenderFieldOfView + else: + self._dataset.RenderFieldOfView = value + + @property + def SamplingStepSize(self) -> Optional[float]: + if "SamplingStepSize" in self._dataset: + return self._dataset.SamplingStepSize + return None + + @SamplingStepSize.setter + def SamplingStepSize(self, value: Optional[float]): + if value is None: + if "SamplingStepSize" in self._dataset: + del self._dataset.SamplingStepSize + else: + self._dataset.SamplingStepSize = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationStateInputSequence(self) -> Optional[List[VolumetricPresentationStateInputSequenceItem]]: + if "VolumetricPresentationStateInputSequence" in self._dataset: + if len(self._VolumetricPresentationStateInputSequence) == len( + self._dataset.VolumetricPresentationStateInputSequence + ): + return self._VolumetricPresentationStateInputSequence + else: + return [ + VolumetricPresentationStateInputSequenceItem(x) + for x in self._dataset.VolumetricPresentationStateInputSequence + ] + return None + + @VolumetricPresentationStateInputSequence.setter + def VolumetricPresentationStateInputSequence(self, value: Optional[List[VolumetricPresentationStateInputSequenceItem]]): + if value is None: + self._VolumetricPresentationStateInputSequence = [] + if "VolumetricPresentationStateInputSequence" in self._dataset: + del self._dataset.VolumetricPresentationStateInputSequence + elif not isinstance(value, list) or not all( + isinstance(item, VolumetricPresentationStateInputSequenceItem) for item in value + ): + raise ValueError( + "VolumetricPresentationStateInputSequence must be a list of VolumetricPresentationStateInputSequenceItem" + " objects" + ) + else: + self._VolumetricPresentationStateInputSequence = value + if "VolumetricPresentationStateInputSequence" not in self._dataset: + self._dataset.VolumetricPresentationStateInputSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationStateInputSequence.clear() + self._dataset.VolumetricPresentationStateInputSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricPresentationStateInput(self, item: VolumetricPresentationStateInputSequenceItem): + if not isinstance(item, VolumetricPresentationStateInputSequenceItem): + raise ValueError("Item must be an instance of VolumetricPresentationStateInputSequenceItem") + self._VolumetricPresentationStateInputSequence.append(item) + if "VolumetricPresentationStateInputSequence" not in self._dataset: + self._dataset.VolumetricPresentationStateInputSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationStateInputSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationInputSetSequence(self) -> Optional[List[VolumetricPresentationInputSetSequenceItem]]: + if "VolumetricPresentationInputSetSequence" in self._dataset: + if len(self._VolumetricPresentationInputSetSequence) == len(self._dataset.VolumetricPresentationInputSetSequence): + return self._VolumetricPresentationInputSetSequence + else: + return [ + VolumetricPresentationInputSetSequenceItem(x) for x in self._dataset.VolumetricPresentationInputSetSequence + ] + return None + + @VolumetricPresentationInputSetSequence.setter + def VolumetricPresentationInputSetSequence(self, value: Optional[List[VolumetricPresentationInputSetSequenceItem]]): + if value is None: + self._VolumetricPresentationInputSetSequence = [] + if "VolumetricPresentationInputSetSequence" in self._dataset: + del self._dataset.VolumetricPresentationInputSetSequence + elif not isinstance(value, list) or not all( + isinstance(item, VolumetricPresentationInputSetSequenceItem) for item in value + ): + raise ValueError( + "VolumetricPresentationInputSetSequence must be a list of VolumetricPresentationInputSetSequenceItem objects" + ) + else: + self._VolumetricPresentationInputSetSequence = value + if "VolumetricPresentationInputSetSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputSetSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputSetSequence.clear() + self._dataset.VolumetricPresentationInputSetSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricPresentationInputSet(self, item: VolumetricPresentationInputSetSequenceItem): + if not isinstance(item, VolumetricPresentationInputSetSequenceItem): + raise ValueError("Item must be an instance of VolumetricPresentationInputSetSequenceItem") + self._VolumetricPresentationInputSetSequence.append(item) + if "VolumetricPresentationInputSetSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputSetSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputSetSequence.append(item.to_dataset()) + + @property + def GlobalCrop(self) -> Optional[str]: + if "GlobalCrop" in self._dataset: + return self._dataset.GlobalCrop + return None + + @GlobalCrop.setter + def GlobalCrop(self, value: Optional[str]): + if value is None: + if "GlobalCrop" in self._dataset: + del self._dataset.GlobalCrop + else: + self._dataset.GlobalCrop = value + + @property + def GlobalCroppingSpecificationIndex(self) -> Optional[List[int]]: + if "GlobalCroppingSpecificationIndex" in self._dataset: + return self._dataset.GlobalCroppingSpecificationIndex + return None + + @GlobalCroppingSpecificationIndex.setter + def GlobalCroppingSpecificationIndex(self, value: Optional[List[int]]): + if value is None: + if "GlobalCroppingSpecificationIndex" in self._dataset: + del self._dataset.GlobalCroppingSpecificationIndex + else: + self._dataset.GlobalCroppingSpecificationIndex = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ViewCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ViewCodeSequence" in self._dataset: + if len(self._ViewCodeSequence) == len(self._dataset.ViewCodeSequence): + return self._ViewCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ViewCodeSequence] + return None + + @ViewCodeSequence.setter + def ViewCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ViewCodeSequence = [] + if "ViewCodeSequence" in self._dataset: + del self._dataset.ViewCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ViewCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ViewCodeSequence = value + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.clear() + self._dataset.ViewCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ViewCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ViewCodeSequence.append(item) + if "ViewCodeSequence" not in self._dataset: + self._dataset.ViewCodeSequence = pydicom.Sequence() + self._dataset.ViewCodeSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def VolumetricAnnotationSequence(self) -> Optional[List[VolumetricAnnotationSequenceItem]]: + if "VolumetricAnnotationSequence" in self._dataset: + if len(self._VolumetricAnnotationSequence) == len(self._dataset.VolumetricAnnotationSequence): + return self._VolumetricAnnotationSequence + else: + return [VolumetricAnnotationSequenceItem(x) for x in self._dataset.VolumetricAnnotationSequence] + return None + + @VolumetricAnnotationSequence.setter + def VolumetricAnnotationSequence(self, value: Optional[List[VolumetricAnnotationSequenceItem]]): + if value is None: + self._VolumetricAnnotationSequence = [] + if "VolumetricAnnotationSequence" in self._dataset: + del self._dataset.VolumetricAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, VolumetricAnnotationSequenceItem) for item in value): + raise ValueError("VolumetricAnnotationSequence must be a list of VolumetricAnnotationSequenceItem objects") + else: + self._VolumetricAnnotationSequence = value + if "VolumetricAnnotationSequence" not in self._dataset: + self._dataset.VolumetricAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricAnnotationSequence.clear() + self._dataset.VolumetricAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricAnnotation(self, item: VolumetricAnnotationSequenceItem): + if not isinstance(item, VolumetricAnnotationSequenceItem): + raise ValueError("Item must be an instance of VolumetricAnnotationSequenceItem") + self._VolumetricAnnotationSequence.append(item) + if "VolumetricAnnotationSequence" not in self._dataset: + self._dataset.VolumetricAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricAnnotationSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationInputAnnotationSequence( + self, + ) -> Optional[List[VolumetricPresentationInputAnnotationSequenceItem]]: + if "VolumetricPresentationInputAnnotationSequence" in self._dataset: + if len(self._VolumetricPresentationInputAnnotationSequence) == len( + self._dataset.VolumetricPresentationInputAnnotationSequence + ): + return self._VolumetricPresentationInputAnnotationSequence + else: + return [ + VolumetricPresentationInputAnnotationSequenceItem(x) + for x in self._dataset.VolumetricPresentationInputAnnotationSequence + ] + return None + + @VolumetricPresentationInputAnnotationSequence.setter + def VolumetricPresentationInputAnnotationSequence( + self, value: Optional[List[VolumetricPresentationInputAnnotationSequenceItem]] + ): + if value is None: + self._VolumetricPresentationInputAnnotationSequence = [] + if "VolumetricPresentationInputAnnotationSequence" in self._dataset: + del self._dataset.VolumetricPresentationInputAnnotationSequence + elif not isinstance(value, list) or not all( + isinstance(item, VolumetricPresentationInputAnnotationSequenceItem) for item in value + ): + raise ValueError( + "VolumetricPresentationInputAnnotationSequence must be a list of" + " VolumetricPresentationInputAnnotationSequenceItem objects" + ) + else: + self._VolumetricPresentationInputAnnotationSequence = value + if "VolumetricPresentationInputAnnotationSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputAnnotationSequence.clear() + self._dataset.VolumetricPresentationInputAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_VolumetricPresentationInputAnnotation(self, item: VolumetricPresentationInputAnnotationSequenceItem): + if not isinstance(item, VolumetricPresentationInputAnnotationSequenceItem): + raise ValueError("Item must be an instance of VolumetricPresentationInputAnnotationSequenceItem") + self._VolumetricPresentationInputAnnotationSequence.append(item) + if "VolumetricPresentationInputAnnotationSequence" not in self._dataset: + self._dataset.VolumetricPresentationInputAnnotationSequence = pydicom.Sequence() + self._dataset.VolumetricPresentationInputAnnotationSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def GraphicGroupSequence(self) -> Optional[List[GraphicGroupSequenceItem]]: + if "GraphicGroupSequence" in self._dataset: + if len(self._GraphicGroupSequence) == len(self._dataset.GraphicGroupSequence): + return self._GraphicGroupSequence + else: + return [GraphicGroupSequenceItem(x) for x in self._dataset.GraphicGroupSequence] + return None + + @GraphicGroupSequence.setter + def GraphicGroupSequence(self, value: Optional[List[GraphicGroupSequenceItem]]): + if value is None: + self._GraphicGroupSequence = [] + if "GraphicGroupSequence" in self._dataset: + del self._dataset.GraphicGroupSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicGroupSequenceItem) for item in value): + raise ValueError("GraphicGroupSequence must be a list of GraphicGroupSequenceItem objects") + else: + self._GraphicGroupSequence = value + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.clear() + self._dataset.GraphicGroupSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicGroup(self, item: GraphicGroupSequenceItem): + if not isinstance(item, GraphicGroupSequenceItem): + raise ValueError("Item must be an instance of GraphicGroupSequenceItem") + self._GraphicGroupSequence.append(item) + if "GraphicGroupSequence" not in self._dataset: + self._dataset.GraphicGroupSequence = pydicom.Sequence() + self._dataset.GraphicGroupSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/volume_stream_sequence_item.py b/tdwii_plus_examples/domain_model/volume_stream_sequence_item.py new file mode 100644 index 0000000..031c292 --- /dev/null +++ b/tdwii_plus_examples/domain_model/volume_stream_sequence_item.py @@ -0,0 +1,76 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .presentation_state_classification_component_sequence_item import ( + PresentationStateClassificationComponentSequenceItem, +) + + +class VolumeStreamSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._PresentationStateClassificationComponentSequence: List[PresentationStateClassificationComponentSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def VolumetricPresentationInputSetUID(self) -> Optional[str]: + if "VolumetricPresentationInputSetUID" in self._dataset: + return self._dataset.VolumetricPresentationInputSetUID + return None + + @VolumetricPresentationInputSetUID.setter + def VolumetricPresentationInputSetUID(self, value: Optional[str]): + if value is None: + if "VolumetricPresentationInputSetUID" in self._dataset: + del self._dataset.VolumetricPresentationInputSetUID + else: + self._dataset.VolumetricPresentationInputSetUID = value + + @property + def PresentationStateClassificationComponentSequence( + self, + ) -> Optional[List[PresentationStateClassificationComponentSequenceItem]]: + if "PresentationStateClassificationComponentSequence" in self._dataset: + if len(self._PresentationStateClassificationComponentSequence) == len( + self._dataset.PresentationStateClassificationComponentSequence + ): + return self._PresentationStateClassificationComponentSequence + else: + return [ + PresentationStateClassificationComponentSequenceItem(x) + for x in self._dataset.PresentationStateClassificationComponentSequence + ] + return None + + @PresentationStateClassificationComponentSequence.setter + def PresentationStateClassificationComponentSequence( + self, value: Optional[List[PresentationStateClassificationComponentSequenceItem]] + ): + if value is None: + self._PresentationStateClassificationComponentSequence = [] + if "PresentationStateClassificationComponentSequence" in self._dataset: + del self._dataset.PresentationStateClassificationComponentSequence + elif not isinstance(value, list) or not all( + isinstance(item, PresentationStateClassificationComponentSequenceItem) for item in value + ): + raise ValueError( + "PresentationStateClassificationComponentSequence must be a list of" + " PresentationStateClassificationComponentSequenceItem objects" + ) + else: + self._PresentationStateClassificationComponentSequence = value + if "PresentationStateClassificationComponentSequence" not in self._dataset: + self._dataset.PresentationStateClassificationComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateClassificationComponentSequence.clear() + self._dataset.PresentationStateClassificationComponentSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationStateClassificationComponent(self, item: PresentationStateClassificationComponentSequenceItem): + if not isinstance(item, PresentationStateClassificationComponentSequenceItem): + raise ValueError("Item must be an instance of PresentationStateClassificationComponentSequenceItem") + self._PresentationStateClassificationComponentSequence.append(item) + if "PresentationStateClassificationComponentSequence" not in self._dataset: + self._dataset.PresentationStateClassificationComponentSequence = pydicom.Sequence() + self._dataset.PresentationStateClassificationComponentSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/volumetric_annotation_sequence_item.py b/tdwii_plus_examples/domain_model/volumetric_annotation_sequence_item.py new file mode 100644 index 0000000..415d1a0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/volumetric_annotation_sequence_item.py @@ -0,0 +1,142 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_structured_context_sequence_item import ( + ReferencedStructuredContextSequenceItem, +) +from .text_object_sequence_item import TextObjectSequenceItem + + +class VolumetricAnnotationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TextObjectSequence: List[TextObjectSequenceItem] = [] + self._ReferencedStructuredContextSequence: List[ReferencedStructuredContextSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GraphicLayer(self) -> Optional[str]: + if "GraphicLayer" in self._dataset: + return self._dataset.GraphicLayer + return None + + @GraphicLayer.setter + def GraphicLayer(self, value: Optional[str]): + if value is None: + if "GraphicLayer" in self._dataset: + del self._dataset.GraphicLayer + else: + self._dataset.GraphicLayer = value + + @property + def TextObjectSequence(self) -> Optional[List[TextObjectSequenceItem]]: + if "TextObjectSequence" in self._dataset: + if len(self._TextObjectSequence) == len(self._dataset.TextObjectSequence): + return self._TextObjectSequence + else: + return [TextObjectSequenceItem(x) for x in self._dataset.TextObjectSequence] + return None + + @TextObjectSequence.setter + def TextObjectSequence(self, value: Optional[List[TextObjectSequenceItem]]): + if value is None: + self._TextObjectSequence = [] + if "TextObjectSequence" in self._dataset: + del self._dataset.TextObjectSequence + elif not isinstance(value, list) or not all(isinstance(item, TextObjectSequenceItem) for item in value): + raise ValueError("TextObjectSequence must be a list of TextObjectSequenceItem objects") + else: + self._TextObjectSequence = value + if "TextObjectSequence" not in self._dataset: + self._dataset.TextObjectSequence = pydicom.Sequence() + self._dataset.TextObjectSequence.clear() + self._dataset.TextObjectSequence.extend([item.to_dataset() for item in value]) + + def add_TextObject(self, item: TextObjectSequenceItem): + if not isinstance(item, TextObjectSequenceItem): + raise ValueError("Item must be an instance of TextObjectSequenceItem") + self._TextObjectSequence.append(item) + if "TextObjectSequence" not in self._dataset: + self._dataset.TextObjectSequence = pydicom.Sequence() + self._dataset.TextObjectSequence.append(item.to_dataset()) + + @property + def GraphicData(self) -> Optional[List[float]]: + if "GraphicData" in self._dataset: + return self._dataset.GraphicData + return None + + @GraphicData.setter + def GraphicData(self, value: Optional[List[float]]): + if value is None: + if "GraphicData" in self._dataset: + del self._dataset.GraphicData + else: + self._dataset.GraphicData = value + + @property + def GraphicType(self) -> Optional[str]: + if "GraphicType" in self._dataset: + return self._dataset.GraphicType + return None + + @GraphicType.setter + def GraphicType(self, value: Optional[str]): + if value is None: + if "GraphicType" in self._dataset: + del self._dataset.GraphicType + else: + self._dataset.GraphicType = value + + @property + def ReferencedStructuredContextSequence(self) -> Optional[List[ReferencedStructuredContextSequenceItem]]: + if "ReferencedStructuredContextSequence" in self._dataset: + if len(self._ReferencedStructuredContextSequence) == len(self._dataset.ReferencedStructuredContextSequence): + return self._ReferencedStructuredContextSequence + else: + return [ReferencedStructuredContextSequenceItem(x) for x in self._dataset.ReferencedStructuredContextSequence] + return None + + @ReferencedStructuredContextSequence.setter + def ReferencedStructuredContextSequence(self, value: Optional[List[ReferencedStructuredContextSequenceItem]]): + if value is None: + self._ReferencedStructuredContextSequence = [] + if "ReferencedStructuredContextSequence" in self._dataset: + del self._dataset.ReferencedStructuredContextSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedStructuredContextSequenceItem) for item in value + ): + raise ValueError( + "ReferencedStructuredContextSequence must be a list of ReferencedStructuredContextSequenceItem objects" + ) + else: + self._ReferencedStructuredContextSequence = value + if "ReferencedStructuredContextSequence" not in self._dataset: + self._dataset.ReferencedStructuredContextSequence = pydicom.Sequence() + self._dataset.ReferencedStructuredContextSequence.clear() + self._dataset.ReferencedStructuredContextSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStructuredContext(self, item: ReferencedStructuredContextSequenceItem): + if not isinstance(item, ReferencedStructuredContextSequenceItem): + raise ValueError("Item must be an instance of ReferencedStructuredContextSequenceItem") + self._ReferencedStructuredContextSequence.append(item) + if "ReferencedStructuredContextSequence" not in self._dataset: + self._dataset.ReferencedStructuredContextSequence = pydicom.Sequence() + self._dataset.ReferencedStructuredContextSequence.append(item.to_dataset()) + + @property + def AnnotationClipping(self) -> Optional[str]: + if "AnnotationClipping" in self._dataset: + return self._dataset.AnnotationClipping + return None + + @AnnotationClipping.setter + def AnnotationClipping(self, value: Optional[str]): + if value is None: + if "AnnotationClipping" in self._dataset: + del self._dataset.AnnotationClipping + else: + self._dataset.AnnotationClipping = value diff --git a/tdwii_plus_examples/domain_model/volumetric_presentation_input_annotation_sequence_item.py b/tdwii_plus_examples/domain_model/volumetric_presentation_input_annotation_sequence_item.py new file mode 100644 index 0000000..bd6839b --- /dev/null +++ b/tdwii_plus_examples/domain_model/volumetric_presentation_input_annotation_sequence_item.py @@ -0,0 +1,114 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_structured_context_sequence_item import ( + ReferencedStructuredContextSequenceItem, +) +from .text_object_sequence_item import TextObjectSequenceItem + + +class VolumetricPresentationInputAnnotationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._TextObjectSequence: List[TextObjectSequenceItem] = [] + self._ReferencedStructuredContextSequence: List[ReferencedStructuredContextSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def GraphicLayer(self) -> Optional[str]: + if "GraphicLayer" in self._dataset: + return self._dataset.GraphicLayer + return None + + @GraphicLayer.setter + def GraphicLayer(self, value: Optional[str]): + if value is None: + if "GraphicLayer" in self._dataset: + del self._dataset.GraphicLayer + else: + self._dataset.GraphicLayer = value + + @property + def TextObjectSequence(self) -> Optional[List[TextObjectSequenceItem]]: + if "TextObjectSequence" in self._dataset: + if len(self._TextObjectSequence) == len(self._dataset.TextObjectSequence): + return self._TextObjectSequence + else: + return [TextObjectSequenceItem(x) for x in self._dataset.TextObjectSequence] + return None + + @TextObjectSequence.setter + def TextObjectSequence(self, value: Optional[List[TextObjectSequenceItem]]): + if value is None: + self._TextObjectSequence = [] + if "TextObjectSequence" in self._dataset: + del self._dataset.TextObjectSequence + elif not isinstance(value, list) or not all(isinstance(item, TextObjectSequenceItem) for item in value): + raise ValueError("TextObjectSequence must be a list of TextObjectSequenceItem objects") + else: + self._TextObjectSequence = value + if "TextObjectSequence" not in self._dataset: + self._dataset.TextObjectSequence = pydicom.Sequence() + self._dataset.TextObjectSequence.clear() + self._dataset.TextObjectSequence.extend([item.to_dataset() for item in value]) + + def add_TextObject(self, item: TextObjectSequenceItem): + if not isinstance(item, TextObjectSequenceItem): + raise ValueError("Item must be an instance of TextObjectSequenceItem") + self._TextObjectSequence.append(item) + if "TextObjectSequence" not in self._dataset: + self._dataset.TextObjectSequence = pydicom.Sequence() + self._dataset.TextObjectSequence.append(item.to_dataset()) + + @property + def VolumetricPresentationInputIndex(self) -> Optional[int]: + if "VolumetricPresentationInputIndex" in self._dataset: + return self._dataset.VolumetricPresentationInputIndex + return None + + @VolumetricPresentationInputIndex.setter + def VolumetricPresentationInputIndex(self, value: Optional[int]): + if value is None: + if "VolumetricPresentationInputIndex" in self._dataset: + del self._dataset.VolumetricPresentationInputIndex + else: + self._dataset.VolumetricPresentationInputIndex = value + + @property + def ReferencedStructuredContextSequence(self) -> Optional[List[ReferencedStructuredContextSequenceItem]]: + if "ReferencedStructuredContextSequence" in self._dataset: + if len(self._ReferencedStructuredContextSequence) == len(self._dataset.ReferencedStructuredContextSequence): + return self._ReferencedStructuredContextSequence + else: + return [ReferencedStructuredContextSequenceItem(x) for x in self._dataset.ReferencedStructuredContextSequence] + return None + + @ReferencedStructuredContextSequence.setter + def ReferencedStructuredContextSequence(self, value: Optional[List[ReferencedStructuredContextSequenceItem]]): + if value is None: + self._ReferencedStructuredContextSequence = [] + if "ReferencedStructuredContextSequence" in self._dataset: + del self._dataset.ReferencedStructuredContextSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedStructuredContextSequenceItem) for item in value + ): + raise ValueError( + "ReferencedStructuredContextSequence must be a list of ReferencedStructuredContextSequenceItem objects" + ) + else: + self._ReferencedStructuredContextSequence = value + if "ReferencedStructuredContextSequence" not in self._dataset: + self._dataset.ReferencedStructuredContextSequence = pydicom.Sequence() + self._dataset.ReferencedStructuredContextSequence.clear() + self._dataset.ReferencedStructuredContextSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStructuredContext(self, item: ReferencedStructuredContextSequenceItem): + if not isinstance(item, ReferencedStructuredContextSequenceItem): + raise ValueError("Item must be an instance of ReferencedStructuredContextSequenceItem") + self._ReferencedStructuredContextSequence.append(item) + if "ReferencedStructuredContextSequence" not in self._dataset: + self._dataset.ReferencedStructuredContextSequence = pydicom.Sequence() + self._dataset.ReferencedStructuredContextSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/volumetric_presentation_input_set_sequence_item.py b/tdwii_plus_examples/domain_model/volumetric_presentation_input_set_sequence_item.py new file mode 100644 index 0000000..a931c9b --- /dev/null +++ b/tdwii_plus_examples/domain_model/volumetric_presentation_input_set_sequence_item.py @@ -0,0 +1,116 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_spatial_registration_sequence_item import ( + ReferencedSpatialRegistrationSequenceItem, +) + + +class VolumetricPresentationInputSetSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedSpatialRegistrationSequence: List[ReferencedSpatialRegistrationSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedSpatialRegistrationSequence(self) -> Optional[List[ReferencedSpatialRegistrationSequenceItem]]: + if "ReferencedSpatialRegistrationSequence" in self._dataset: + if len(self._ReferencedSpatialRegistrationSequence) == len(self._dataset.ReferencedSpatialRegistrationSequence): + return self._ReferencedSpatialRegistrationSequence + else: + return [ + ReferencedSpatialRegistrationSequenceItem(x) for x in self._dataset.ReferencedSpatialRegistrationSequence + ] + return None + + @ReferencedSpatialRegistrationSequence.setter + def ReferencedSpatialRegistrationSequence(self, value: Optional[List[ReferencedSpatialRegistrationSequenceItem]]): + if value is None: + self._ReferencedSpatialRegistrationSequence = [] + if "ReferencedSpatialRegistrationSequence" in self._dataset: + del self._dataset.ReferencedSpatialRegistrationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedSpatialRegistrationSequenceItem) for item in value + ): + raise ValueError( + "ReferencedSpatialRegistrationSequence must be a list of ReferencedSpatialRegistrationSequenceItem objects" + ) + else: + self._ReferencedSpatialRegistrationSequence = value + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.clear() + self._dataset.ReferencedSpatialRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSpatialRegistration(self, item: ReferencedSpatialRegistrationSequenceItem): + if not isinstance(item, ReferencedSpatialRegistrationSequenceItem): + raise ValueError("Item must be an instance of ReferencedSpatialRegistrationSequenceItem") + self._ReferencedSpatialRegistrationSequence.append(item) + if "ReferencedSpatialRegistrationSequence" not in self._dataset: + self._dataset.ReferencedSpatialRegistrationSequence = pydicom.Sequence() + self._dataset.ReferencedSpatialRegistrationSequence.append(item.to_dataset()) + + @property + def PresentationInputType(self) -> Optional[str]: + if "PresentationInputType" in self._dataset: + return self._dataset.PresentationInputType + return None + + @PresentationInputType.setter + def PresentationInputType(self, value: Optional[str]): + if value is None: + if "PresentationInputType" in self._dataset: + del self._dataset.PresentationInputType + else: + self._dataset.PresentationInputType = value + + @property + def VolumetricPresentationInputSetUID(self) -> Optional[str]: + if "VolumetricPresentationInputSetUID" in self._dataset: + return self._dataset.VolumetricPresentationInputSetUID + return None + + @VolumetricPresentationInputSetUID.setter + def VolumetricPresentationInputSetUID(self, value: Optional[str]): + if value is None: + if "VolumetricPresentationInputSetUID" in self._dataset: + del self._dataset.VolumetricPresentationInputSetUID + else: + self._dataset.VolumetricPresentationInputSetUID = value diff --git a/tdwii_plus_examples/domain_model/volumetric_presentation_state_input_sequence_item.py b/tdwii_plus_examples/domain_model/volumetric_presentation_state_input_sequence_item.py new file mode 100644 index 0000000..8d17e24 --- /dev/null +++ b/tdwii_plus_examples/domain_model/volumetric_presentation_state_input_sequence_item.py @@ -0,0 +1,187 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .voilut_sequence_item import VOILUTSequenceItem + + +class VolumetricPresentationStateInputSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def InputSequencePositionIndex(self) -> Optional[int]: + if "InputSequencePositionIndex" in self._dataset: + return self._dataset.InputSequencePositionIndex + return None + + @InputSequencePositionIndex.setter + def InputSequencePositionIndex(self, value: Optional[int]): + if value is None: + if "InputSequencePositionIndex" in self._dataset: + del self._dataset.InputSequencePositionIndex + else: + self._dataset.InputSequencePositionIndex = value + + @property + def Crop(self) -> Optional[str]: + if "Crop" in self._dataset: + return self._dataset.Crop + return None + + @Crop.setter + def Crop(self, value: Optional[str]): + if value is None: + if "Crop" in self._dataset: + del self._dataset.Crop + else: + self._dataset.Crop = value + + @property + def CroppingSpecificationIndex(self) -> Optional[List[int]]: + if "CroppingSpecificationIndex" in self._dataset: + return self._dataset.CroppingSpecificationIndex + return None + + @CroppingSpecificationIndex.setter + def CroppingSpecificationIndex(self, value: Optional[List[int]]): + if value is None: + if "CroppingSpecificationIndex" in self._dataset: + del self._dataset.CroppingSpecificationIndex + else: + self._dataset.CroppingSpecificationIndex = value + + @property + def VolumetricPresentationInputNumber(self) -> Optional[int]: + if "VolumetricPresentationInputNumber" in self._dataset: + return self._dataset.VolumetricPresentationInputNumber + return None + + @VolumetricPresentationInputNumber.setter + def VolumetricPresentationInputNumber(self, value: Optional[int]): + if value is None: + if "VolumetricPresentationInputNumber" in self._dataset: + del self._dataset.VolumetricPresentationInputNumber + else: + self._dataset.VolumetricPresentationInputNumber = value + + @property + def VolumetricPresentationInputSetUID(self) -> Optional[str]: + if "VolumetricPresentationInputSetUID" in self._dataset: + return self._dataset.VolumetricPresentationInputSetUID + return None + + @VolumetricPresentationInputSetUID.setter + def VolumetricPresentationInputSetUID(self, value: Optional[str]): + if value is None: + if "VolumetricPresentationInputSetUID" in self._dataset: + del self._dataset.VolumetricPresentationInputSetUID + else: + self._dataset.VolumetricPresentationInputSetUID = value + + @property + def RenderingMethod(self) -> Optional[str]: + if "RenderingMethod" in self._dataset: + return self._dataset.RenderingMethod + return None + + @RenderingMethod.setter + def RenderingMethod(self, value: Optional[str]): + if value is None: + if "RenderingMethod" in self._dataset: + del self._dataset.RenderingMethod + else: + self._dataset.RenderingMethod = value diff --git a/tdwii_plus_examples/domain_model/wado_retrieval_sequence_item.py b/tdwii_plus_examples/domain_model/wado_retrieval_sequence_item.py new file mode 100644 index 0000000..f7a83ed --- /dev/null +++ b/tdwii_plus_examples/domain_model/wado_retrieval_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WADORetrievalSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RetrieveURI(self) -> Optional[str]: + if "RetrieveURI" in self._dataset: + return self._dataset.RetrieveURI + return None + + @RetrieveURI.setter + def RetrieveURI(self, value: Optional[str]): + if value is None: + if "RetrieveURI" in self._dataset: + del self._dataset.RetrieveURI + else: + self._dataset.RetrieveURI = value diff --git a/tdwii_plus_examples/domain_model/wadors_retrieval_sequence_item.py b/tdwii_plus_examples/domain_model/wadors_retrieval_sequence_item.py new file mode 100644 index 0000000..f4f4668 --- /dev/null +++ b/tdwii_plus_examples/domain_model/wadors_retrieval_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WADORSRetrievalSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RetrieveURL(self) -> Optional[str]: + if "RetrieveURL" in self._dataset: + return self._dataset.RetrieveURL + return None + + @RetrieveURL.setter + def RetrieveURL(self, value: Optional[str]): + if value is None: + if "RetrieveURL" in self._dataset: + del self._dataset.RetrieveURL + else: + self._dataset.RetrieveURL = value diff --git a/tdwii_plus_examples/domain_model/waveform_annotation_sequence_item.py b/tdwii_plus_examples/domain_model/waveform_annotation_sequence_item.py new file mode 100644 index 0000000..606b07f --- /dev/null +++ b/tdwii_plus_examples/domain_model/waveform_annotation_sequence_item.py @@ -0,0 +1,225 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class WaveformAnnotationSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ConceptCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ReferencedWaveformChannels(self) -> Optional[List[int]]: + if "ReferencedWaveformChannels" in self._dataset: + return self._dataset.ReferencedWaveformChannels + return None + + @ReferencedWaveformChannels.setter + def ReferencedWaveformChannels(self, value: Optional[List[int]]): + if value is None: + if "ReferencedWaveformChannels" in self._dataset: + del self._dataset.ReferencedWaveformChannels + else: + self._dataset.ReferencedWaveformChannels = value + + @property + def TemporalRangeType(self) -> Optional[str]: + if "TemporalRangeType" in self._dataset: + return self._dataset.TemporalRangeType + return None + + @TemporalRangeType.setter + def TemporalRangeType(self, value: Optional[str]): + if value is None: + if "TemporalRangeType" in self._dataset: + del self._dataset.TemporalRangeType + else: + self._dataset.TemporalRangeType = value + + @property + def ReferencedSamplePositions(self) -> Optional[List[int]]: + if "ReferencedSamplePositions" in self._dataset: + return self._dataset.ReferencedSamplePositions + return None + + @ReferencedSamplePositions.setter + def ReferencedSamplePositions(self, value: Optional[List[int]]): + if value is None: + if "ReferencedSamplePositions" in self._dataset: + del self._dataset.ReferencedSamplePositions + else: + self._dataset.ReferencedSamplePositions = value + + @property + def ReferencedTimeOffsets(self) -> Optional[List[Decimal]]: + if "ReferencedTimeOffsets" in self._dataset: + return self._dataset.ReferencedTimeOffsets + return None + + @ReferencedTimeOffsets.setter + def ReferencedTimeOffsets(self, value: Optional[List[Decimal]]): + if value is None: + if "ReferencedTimeOffsets" in self._dataset: + del self._dataset.ReferencedTimeOffsets + else: + self._dataset.ReferencedTimeOffsets = value + + @property + def ReferencedDateTime(self) -> Optional[List[str]]: + if "ReferencedDateTime" in self._dataset: + return self._dataset.ReferencedDateTime + return None + + @ReferencedDateTime.setter + def ReferencedDateTime(self, value: Optional[List[str]]): + if value is None: + if "ReferencedDateTime" in self._dataset: + del self._dataset.ReferencedDateTime + else: + self._dataset.ReferencedDateTime = value + + @property + def ConceptCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptCodeSequence" in self._dataset: + if len(self._ConceptCodeSequence) == len(self._dataset.ConceptCodeSequence): + return self._ConceptCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptCodeSequence] + return None + + @ConceptCodeSequence.setter + def ConceptCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptCodeSequence = [] + if "ConceptCodeSequence" in self._dataset: + del self._dataset.ConceptCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptCodeSequence = value + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.clear() + self._dataset.ConceptCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptCodeSequence.append(item) + if "ConceptCodeSequence" not in self._dataset: + self._dataset.ConceptCodeSequence = pydicom.Sequence() + self._dataset.ConceptCodeSequence.append(item.to_dataset()) + + @property + def AnnotationGroupNumber(self) -> Optional[int]: + if "AnnotationGroupNumber" in self._dataset: + return self._dataset.AnnotationGroupNumber + return None + + @AnnotationGroupNumber.setter + def AnnotationGroupNumber(self, value: Optional[int]): + if value is None: + if "AnnotationGroupNumber" in self._dataset: + del self._dataset.AnnotationGroupNumber + else: + self._dataset.AnnotationGroupNumber = value + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value + + @property + def UnformattedTextValue(self) -> Optional[str]: + if "UnformattedTextValue" in self._dataset: + return self._dataset.UnformattedTextValue + return None + + @UnformattedTextValue.setter + def UnformattedTextValue(self, value: Optional[str]): + if value is None: + if "UnformattedTextValue" in self._dataset: + del self._dataset.UnformattedTextValue + else: + self._dataset.UnformattedTextValue = value diff --git a/tdwii_plus_examples/domain_model/waveform_presentation_group_sequence_item.py b/tdwii_plus_examples/domain_model/waveform_presentation_group_sequence_item.py new file mode 100644 index 0000000..626bad2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/waveform_presentation_group_sequence_item.py @@ -0,0 +1,60 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .channel_display_sequence_item import ChannelDisplaySequenceItem + + +class WaveformPresentationGroupSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ChannelDisplaySequence: List[ChannelDisplaySequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PresentationGroupNumber(self) -> Optional[int]: + if "PresentationGroupNumber" in self._dataset: + return self._dataset.PresentationGroupNumber + return None + + @PresentationGroupNumber.setter + def PresentationGroupNumber(self, value: Optional[int]): + if value is None: + if "PresentationGroupNumber" in self._dataset: + del self._dataset.PresentationGroupNumber + else: + self._dataset.PresentationGroupNumber = value + + @property + def ChannelDisplaySequence(self) -> Optional[List[ChannelDisplaySequenceItem]]: + if "ChannelDisplaySequence" in self._dataset: + if len(self._ChannelDisplaySequence) == len(self._dataset.ChannelDisplaySequence): + return self._ChannelDisplaySequence + else: + return [ChannelDisplaySequenceItem(x) for x in self._dataset.ChannelDisplaySequence] + return None + + @ChannelDisplaySequence.setter + def ChannelDisplaySequence(self, value: Optional[List[ChannelDisplaySequenceItem]]): + if value is None: + self._ChannelDisplaySequence = [] + if "ChannelDisplaySequence" in self._dataset: + del self._dataset.ChannelDisplaySequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelDisplaySequenceItem) for item in value): + raise ValueError("ChannelDisplaySequence must be a list of ChannelDisplaySequenceItem objects") + else: + self._ChannelDisplaySequence = value + if "ChannelDisplaySequence" not in self._dataset: + self._dataset.ChannelDisplaySequence = pydicom.Sequence() + self._dataset.ChannelDisplaySequence.clear() + self._dataset.ChannelDisplaySequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDisplay(self, item: ChannelDisplaySequenceItem): + if not isinstance(item, ChannelDisplaySequenceItem): + raise ValueError("Item must be an instance of ChannelDisplaySequenceItem") + self._ChannelDisplaySequence.append(item) + if "ChannelDisplaySequence" not in self._dataset: + self._dataset.ChannelDisplaySequence = pydicom.Sequence() + self._dataset.ChannelDisplaySequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/waveform_sequence_item.py b/tdwii_plus_examples/domain_model/waveform_sequence_item.py new file mode 100644 index 0000000..bc120fd --- /dev/null +++ b/tdwii_plus_examples/domain_model/waveform_sequence_item.py @@ -0,0 +1,243 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .channel_definition_sequence_item import ChannelDefinitionSequenceItem + + +class WaveformSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ChannelDefinitionSequence: List[ChannelDefinitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def MultiplexGroupTimeOffset(self) -> Optional[Decimal]: + if "MultiplexGroupTimeOffset" in self._dataset: + return self._dataset.MultiplexGroupTimeOffset + return None + + @MultiplexGroupTimeOffset.setter + def MultiplexGroupTimeOffset(self, value: Optional[Decimal]): + if value is None: + if "MultiplexGroupTimeOffset" in self._dataset: + del self._dataset.MultiplexGroupTimeOffset + else: + self._dataset.MultiplexGroupTimeOffset = value + + @property + def TriggerTimeOffset(self) -> Optional[Decimal]: + if "TriggerTimeOffset" in self._dataset: + return self._dataset.TriggerTimeOffset + return None + + @TriggerTimeOffset.setter + def TriggerTimeOffset(self, value: Optional[Decimal]): + if value is None: + if "TriggerTimeOffset" in self._dataset: + del self._dataset.TriggerTimeOffset + else: + self._dataset.TriggerTimeOffset = value + + @property + def TriggerSamplePosition(self) -> Optional[int]: + if "TriggerSamplePosition" in self._dataset: + return self._dataset.TriggerSamplePosition + return None + + @TriggerSamplePosition.setter + def TriggerSamplePosition(self, value: Optional[int]): + if value is None: + if "TriggerSamplePosition" in self._dataset: + del self._dataset.TriggerSamplePosition + else: + self._dataset.TriggerSamplePosition = value + + @property + def WaveformOriginality(self) -> Optional[str]: + if "WaveformOriginality" in self._dataset: + return self._dataset.WaveformOriginality + return None + + @WaveformOriginality.setter + def WaveformOriginality(self, value: Optional[str]): + if value is None: + if "WaveformOriginality" in self._dataset: + del self._dataset.WaveformOriginality + else: + self._dataset.WaveformOriginality = value + + @property + def NumberOfWaveformChannels(self) -> Optional[int]: + if "NumberOfWaveformChannels" in self._dataset: + return self._dataset.NumberOfWaveformChannels + return None + + @NumberOfWaveformChannels.setter + def NumberOfWaveformChannels(self, value: Optional[int]): + if value is None: + if "NumberOfWaveformChannels" in self._dataset: + del self._dataset.NumberOfWaveformChannels + else: + self._dataset.NumberOfWaveformChannels = value + + @property + def NumberOfWaveformSamples(self) -> Optional[int]: + if "NumberOfWaveformSamples" in self._dataset: + return self._dataset.NumberOfWaveformSamples + return None + + @NumberOfWaveformSamples.setter + def NumberOfWaveformSamples(self, value: Optional[int]): + if value is None: + if "NumberOfWaveformSamples" in self._dataset: + del self._dataset.NumberOfWaveformSamples + else: + self._dataset.NumberOfWaveformSamples = value + + @property + def SamplingFrequency(self) -> Optional[Decimal]: + if "SamplingFrequency" in self._dataset: + return self._dataset.SamplingFrequency + return None + + @SamplingFrequency.setter + def SamplingFrequency(self, value: Optional[Decimal]): + if value is None: + if "SamplingFrequency" in self._dataset: + del self._dataset.SamplingFrequency + else: + self._dataset.SamplingFrequency = value + + @property + def MultiplexGroupLabel(self) -> Optional[str]: + if "MultiplexGroupLabel" in self._dataset: + return self._dataset.MultiplexGroupLabel + return None + + @MultiplexGroupLabel.setter + def MultiplexGroupLabel(self, value: Optional[str]): + if value is None: + if "MultiplexGroupLabel" in self._dataset: + del self._dataset.MultiplexGroupLabel + else: + self._dataset.MultiplexGroupLabel = value + + @property + def ChannelDefinitionSequence(self) -> Optional[List[ChannelDefinitionSequenceItem]]: + if "ChannelDefinitionSequence" in self._dataset: + if len(self._ChannelDefinitionSequence) == len(self._dataset.ChannelDefinitionSequence): + return self._ChannelDefinitionSequence + else: + return [ChannelDefinitionSequenceItem(x) for x in self._dataset.ChannelDefinitionSequence] + return None + + @ChannelDefinitionSequence.setter + def ChannelDefinitionSequence(self, value: Optional[List[ChannelDefinitionSequenceItem]]): + if value is None: + self._ChannelDefinitionSequence = [] + if "ChannelDefinitionSequence" in self._dataset: + del self._dataset.ChannelDefinitionSequence + elif not isinstance(value, list) or not all(isinstance(item, ChannelDefinitionSequenceItem) for item in value): + raise ValueError("ChannelDefinitionSequence must be a list of ChannelDefinitionSequenceItem objects") + else: + self._ChannelDefinitionSequence = value + if "ChannelDefinitionSequence" not in self._dataset: + self._dataset.ChannelDefinitionSequence = pydicom.Sequence() + self._dataset.ChannelDefinitionSequence.clear() + self._dataset.ChannelDefinitionSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDefinition(self, item: ChannelDefinitionSequenceItem): + if not isinstance(item, ChannelDefinitionSequenceItem): + raise ValueError("Item must be an instance of ChannelDefinitionSequenceItem") + self._ChannelDefinitionSequence.append(item) + if "ChannelDefinitionSequence" not in self._dataset: + self._dataset.ChannelDefinitionSequence = pydicom.Sequence() + self._dataset.ChannelDefinitionSequence.append(item.to_dataset()) + + @property + def MultiplexGroupUID(self) -> Optional[str]: + if "MultiplexGroupUID" in self._dataset: + return self._dataset.MultiplexGroupUID + return None + + @MultiplexGroupUID.setter + def MultiplexGroupUID(self, value: Optional[str]): + if value is None: + if "MultiplexGroupUID" in self._dataset: + del self._dataset.MultiplexGroupUID + else: + self._dataset.MultiplexGroupUID = value + + @property + def PowerlineFrequency(self) -> Optional[Decimal]: + if "PowerlineFrequency" in self._dataset: + return self._dataset.PowerlineFrequency + return None + + @PowerlineFrequency.setter + def PowerlineFrequency(self, value: Optional[Decimal]): + if value is None: + if "PowerlineFrequency" in self._dataset: + del self._dataset.PowerlineFrequency + else: + self._dataset.PowerlineFrequency = value + + @property + def WaveformBitsAllocated(self) -> Optional[int]: + if "WaveformBitsAllocated" in self._dataset: + return self._dataset.WaveformBitsAllocated + return None + + @WaveformBitsAllocated.setter + def WaveformBitsAllocated(self, value: Optional[int]): + if value is None: + if "WaveformBitsAllocated" in self._dataset: + del self._dataset.WaveformBitsAllocated + else: + self._dataset.WaveformBitsAllocated = value + + @property + def WaveformSampleInterpretation(self) -> Optional[str]: + if "WaveformSampleInterpretation" in self._dataset: + return self._dataset.WaveformSampleInterpretation + return None + + @WaveformSampleInterpretation.setter + def WaveformSampleInterpretation(self, value: Optional[str]): + if value is None: + if "WaveformSampleInterpretation" in self._dataset: + del self._dataset.WaveformSampleInterpretation + else: + self._dataset.WaveformSampleInterpretation = value + + @property + def WaveformPaddingValue(self) -> Optional[bytes]: + if "WaveformPaddingValue" in self._dataset: + return self._dataset.WaveformPaddingValue + return None + + @WaveformPaddingValue.setter + def WaveformPaddingValue(self, value: Optional[bytes]): + if value is None: + if "WaveformPaddingValue" in self._dataset: + del self._dataset.WaveformPaddingValue + else: + self._dataset.WaveformPaddingValue = value + + @property + def WaveformData(self) -> Optional[bytes]: + if "WaveformData" in self._dataset: + return self._dataset.WaveformData + return None + + @WaveformData.setter + def WaveformData(self, value: Optional[bytes]): + if value is None: + if "WaveformData" in self._dataset: + del self._dataset.WaveformData + else: + self._dataset.WaveformData = value diff --git a/tdwii_plus_examples/domain_model/wedge_definition_sequence_item.py b/tdwii_plus_examples/domain_model/wedge_definition_sequence_item.py new file mode 100644 index 0000000..2b25c3f --- /dev/null +++ b/tdwii_plus_examples/domain_model/wedge_definition_sequence_item.py @@ -0,0 +1,388 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class WedgeDefinitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._UDISequence: List[UDISequenceItem] = [] + self._DeviceTypeCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def LongDeviceDescription(self) -> Optional[str]: + if "LongDeviceDescription" in self._dataset: + return self._dataset.LongDeviceDescription + return None + + @LongDeviceDescription.setter + def LongDeviceDescription(self, value: Optional[str]): + if value is None: + if "LongDeviceDescription" in self._dataset: + del self._dataset.LongDeviceDescription + else: + self._dataset.LongDeviceDescription = value + + @property + def ReferencedDefinedDeviceIndex(self) -> Optional[int]: + if "ReferencedDefinedDeviceIndex" in self._dataset: + return self._dataset.ReferencedDefinedDeviceIndex + return None + + @ReferencedDefinedDeviceIndex.setter + def ReferencedDefinedDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedDefinedDeviceIndex" in self._dataset: + del self._dataset.ReferencedDefinedDeviceIndex + else: + self._dataset.ReferencedDefinedDeviceIndex = value + + @property + def ReferencedRTAccessoryHolderDeviceIndex(self) -> Optional[int]: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + return self._dataset.ReferencedRTAccessoryHolderDeviceIndex + return None + + @ReferencedRTAccessoryHolderDeviceIndex.setter + def ReferencedRTAccessoryHolderDeviceIndex(self, value: Optional[int]): + if value is None: + if "ReferencedRTAccessoryHolderDeviceIndex" in self._dataset: + del self._dataset.ReferencedRTAccessoryHolderDeviceIndex + else: + self._dataset.ReferencedRTAccessoryHolderDeviceIndex = value + + @property + def RTAccessoryHolderSlotID(self) -> Optional[str]: + if "RTAccessoryHolderSlotID" in self._dataset: + return self._dataset.RTAccessoryHolderSlotID + return None + + @RTAccessoryHolderSlotID.setter + def RTAccessoryHolderSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryHolderSlotID" in self._dataset: + del self._dataset.RTAccessoryHolderSlotID + else: + self._dataset.RTAccessoryHolderSlotID = value + + @property + def RTAccessorySlotDistance(self) -> Optional[float]: + if "RTAccessorySlotDistance" in self._dataset: + return self._dataset.RTAccessorySlotDistance + return None + + @RTAccessorySlotDistance.setter + def RTAccessorySlotDistance(self, value: Optional[float]): + if value is None: + if "RTAccessorySlotDistance" in self._dataset: + del self._dataset.RTAccessorySlotDistance + else: + self._dataset.RTAccessorySlotDistance = value + + @property + def RTAccessoryDeviceSlotID(self) -> Optional[str]: + if "RTAccessoryDeviceSlotID" in self._dataset: + return self._dataset.RTAccessoryDeviceSlotID + return None + + @RTAccessoryDeviceSlotID.setter + def RTAccessoryDeviceSlotID(self, value: Optional[str]): + if value is None: + if "RTAccessoryDeviceSlotID" in self._dataset: + del self._dataset.RTAccessoryDeviceSlotID + else: + self._dataset.RTAccessoryDeviceSlotID = value + + @property + def BeamModifierOrientationAngle(self) -> Optional[float]: + if "BeamModifierOrientationAngle" in self._dataset: + return self._dataset.BeamModifierOrientationAngle + return None + + @BeamModifierOrientationAngle.setter + def BeamModifierOrientationAngle(self, value: Optional[float]): + if value is None: + if "BeamModifierOrientationAngle" in self._dataset: + del self._dataset.BeamModifierOrientationAngle + else: + self._dataset.BeamModifierOrientationAngle = value + + @property + def RadiationBeamWedgeAngle(self) -> Optional[float]: + if "RadiationBeamWedgeAngle" in self._dataset: + return self._dataset.RadiationBeamWedgeAngle + return None + + @RadiationBeamWedgeAngle.setter + def RadiationBeamWedgeAngle(self, value: Optional[float]): + if value is None: + if "RadiationBeamWedgeAngle" in self._dataset: + del self._dataset.RadiationBeamWedgeAngle + else: + self._dataset.RadiationBeamWedgeAngle = value + + @property + def RadiationBeamEffectiveWedgeAngle(self) -> Optional[float]: + if "RadiationBeamEffectiveWedgeAngle" in self._dataset: + return self._dataset.RadiationBeamEffectiveWedgeAngle + return None + + @RadiationBeamEffectiveWedgeAngle.setter + def RadiationBeamEffectiveWedgeAngle(self, value: Optional[float]): + if value is None: + if "RadiationBeamEffectiveWedgeAngle" in self._dataset: + del self._dataset.RadiationBeamEffectiveWedgeAngle + else: + self._dataset.RadiationBeamEffectiveWedgeAngle = value + + @property + def ManufacturerModelVersion(self) -> Optional[str]: + if "ManufacturerModelVersion" in self._dataset: + return self._dataset.ManufacturerModelVersion + return None + + @ManufacturerModelVersion.setter + def ManufacturerModelVersion(self, value: Optional[str]): + if value is None: + if "ManufacturerModelVersion" in self._dataset: + del self._dataset.ManufacturerModelVersion + else: + self._dataset.ManufacturerModelVersion = value + + @property + def DeviceAlternateIdentifier(self) -> Optional[str]: + if "DeviceAlternateIdentifier" in self._dataset: + return self._dataset.DeviceAlternateIdentifier + return None + + @DeviceAlternateIdentifier.setter + def DeviceAlternateIdentifier(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifier" in self._dataset: + del self._dataset.DeviceAlternateIdentifier + else: + self._dataset.DeviceAlternateIdentifier = value + + @property + def DeviceAlternateIdentifierType(self) -> Optional[str]: + if "DeviceAlternateIdentifierType" in self._dataset: + return self._dataset.DeviceAlternateIdentifierType + return None + + @DeviceAlternateIdentifierType.setter + def DeviceAlternateIdentifierType(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierType" in self._dataset: + del self._dataset.DeviceAlternateIdentifierType + else: + self._dataset.DeviceAlternateIdentifierType = value + + @property + def DeviceAlternateIdentifierFormat(self) -> Optional[str]: + if "DeviceAlternateIdentifierFormat" in self._dataset: + return self._dataset.DeviceAlternateIdentifierFormat + return None + + @DeviceAlternateIdentifierFormat.setter + def DeviceAlternateIdentifierFormat(self, value: Optional[str]): + if value is None: + if "DeviceAlternateIdentifierFormat" in self._dataset: + del self._dataset.DeviceAlternateIdentifierFormat + else: + self._dataset.DeviceAlternateIdentifierFormat = value + + @property + def DeviceLabel(self) -> Optional[str]: + if "DeviceLabel" in self._dataset: + return self._dataset.DeviceLabel + return None + + @DeviceLabel.setter + def DeviceLabel(self, value: Optional[str]): + if value is None: + if "DeviceLabel" in self._dataset: + del self._dataset.DeviceLabel + else: + self._dataset.DeviceLabel = value + + @property + def DeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeviceTypeCodeSequence" in self._dataset: + if len(self._DeviceTypeCodeSequence) == len(self._dataset.DeviceTypeCodeSequence): + return self._DeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeviceTypeCodeSequence] + return None + + @DeviceTypeCodeSequence.setter + def DeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeviceTypeCodeSequence = [] + if "DeviceTypeCodeSequence" in self._dataset: + del self._dataset.DeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeviceTypeCodeSequence = value + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.clear() + self._dataset.DeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeviceTypeCodeSequence.append(item) + if "DeviceTypeCodeSequence" not in self._dataset: + self._dataset.DeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.DeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def DeviceIndex(self) -> Optional[int]: + if "DeviceIndex" in self._dataset: + return self._dataset.DeviceIndex + return None + + @DeviceIndex.setter + def DeviceIndex(self, value: Optional[int]): + if value is None: + if "DeviceIndex" in self._dataset: + del self._dataset.DeviceIndex + else: + self._dataset.DeviceIndex = value + + @property + def ManufacturerDeviceIdentifier(self) -> Optional[str]: + if "ManufacturerDeviceIdentifier" in self._dataset: + return self._dataset.ManufacturerDeviceIdentifier + return None + + @ManufacturerDeviceIdentifier.setter + def ManufacturerDeviceIdentifier(self, value: Optional[str]): + if value is None: + if "ManufacturerDeviceIdentifier" in self._dataset: + del self._dataset.ManufacturerDeviceIdentifier + else: + self._dataset.ManufacturerDeviceIdentifier = value diff --git a/tdwii_plus_examples/domain_model/wedge_position_sequence_item.py b/tdwii_plus_examples/domain_model/wedge_position_sequence_item.py new file mode 100644 index 0000000..d023c11 --- /dev/null +++ b/tdwii_plus_examples/domain_model/wedge_position_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WedgePositionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WedgePosition(self) -> Optional[str]: + if "WedgePosition" in self._dataset: + return self._dataset.WedgePosition + return None + + @WedgePosition.setter + def WedgePosition(self, value: Optional[str]): + if value is None: + if "WedgePosition" in self._dataset: + del self._dataset.WedgePosition + else: + self._dataset.WedgePosition = value + + @property + def ReferencedWedgeNumber(self) -> Optional[int]: + if "ReferencedWedgeNumber" in self._dataset: + return self._dataset.ReferencedWedgeNumber + return None + + @ReferencedWedgeNumber.setter + def ReferencedWedgeNumber(self, value: Optional[int]): + if value is None: + if "ReferencedWedgeNumber" in self._dataset: + del self._dataset.ReferencedWedgeNumber + else: + self._dataset.ReferencedWedgeNumber = value diff --git a/tdwii_plus_examples/domain_model/wedge_sequence_item.py b/tdwii_plus_examples/domain_model/wedge_sequence_item.py new file mode 100644 index 0000000..265bfe2 --- /dev/null +++ b/tdwii_plus_examples/domain_model/wedge_sequence_item.py @@ -0,0 +1,138 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class WedgeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WedgeNumber(self) -> Optional[int]: + if "WedgeNumber" in self._dataset: + return self._dataset.WedgeNumber + return None + + @WedgeNumber.setter + def WedgeNumber(self, value: Optional[int]): + if value is None: + if "WedgeNumber" in self._dataset: + del self._dataset.WedgeNumber + else: + self._dataset.WedgeNumber = value + + @property + def WedgeType(self) -> Optional[str]: + if "WedgeType" in self._dataset: + return self._dataset.WedgeType + return None + + @WedgeType.setter + def WedgeType(self, value: Optional[str]): + if value is None: + if "WedgeType" in self._dataset: + del self._dataset.WedgeType + else: + self._dataset.WedgeType = value + + @property + def WedgeID(self) -> Optional[str]: + if "WedgeID" in self._dataset: + return self._dataset.WedgeID + return None + + @WedgeID.setter + def WedgeID(self, value: Optional[str]): + if value is None: + if "WedgeID" in self._dataset: + del self._dataset.WedgeID + else: + self._dataset.WedgeID = value + + @property + def WedgeAngle(self) -> Optional[int]: + if "WedgeAngle" in self._dataset: + return self._dataset.WedgeAngle + return None + + @WedgeAngle.setter + def WedgeAngle(self, value: Optional[int]): + if value is None: + if "WedgeAngle" in self._dataset: + del self._dataset.WedgeAngle + else: + self._dataset.WedgeAngle = value + + @property + def WedgeFactor(self) -> Optional[Decimal]: + if "WedgeFactor" in self._dataset: + return self._dataset.WedgeFactor + return None + + @WedgeFactor.setter + def WedgeFactor(self, value: Optional[Decimal]): + if value is None: + if "WedgeFactor" in self._dataset: + del self._dataset.WedgeFactor + else: + self._dataset.WedgeFactor = value + + @property + def WedgeOrientation(self) -> Optional[Decimal]: + if "WedgeOrientation" in self._dataset: + return self._dataset.WedgeOrientation + return None + + @WedgeOrientation.setter + def WedgeOrientation(self, value: Optional[Decimal]): + if value is None: + if "WedgeOrientation" in self._dataset: + del self._dataset.WedgeOrientation + else: + self._dataset.WedgeOrientation = value + + @property + def SourceToWedgeTrayDistance(self) -> Optional[Decimal]: + if "SourceToWedgeTrayDistance" in self._dataset: + return self._dataset.SourceToWedgeTrayDistance + return None + + @SourceToWedgeTrayDistance.setter + def SourceToWedgeTrayDistance(self, value: Optional[Decimal]): + if value is None: + if "SourceToWedgeTrayDistance" in self._dataset: + del self._dataset.SourceToWedgeTrayDistance + else: + self._dataset.SourceToWedgeTrayDistance = value + + @property + def EffectiveWedgeAngle(self) -> Optional[Decimal]: + if "EffectiveWedgeAngle" in self._dataset: + return self._dataset.EffectiveWedgeAngle + return None + + @EffectiveWedgeAngle.setter + def EffectiveWedgeAngle(self, value: Optional[Decimal]): + if value is None: + if "EffectiveWedgeAngle" in self._dataset: + del self._dataset.EffectiveWedgeAngle + else: + self._dataset.EffectiveWedgeAngle = value + + @property + def AccessoryCode(self) -> Optional[str]: + if "AccessoryCode" in self._dataset: + return self._dataset.AccessoryCode + return None + + @AccessoryCode.setter + def AccessoryCode(self, value: Optional[str]): + if value is None: + if "AccessoryCode" in self._dataset: + del self._dataset.AccessoryCode + else: + self._dataset.AccessoryCode = value diff --git a/tdwii_plus_examples/domain_model/weekday_fraction_pattern_sequence_item.py b/tdwii_plus_examples/domain_model/weekday_fraction_pattern_sequence_item.py new file mode 100644 index 0000000..37d02f8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/weekday_fraction_pattern_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WeekdayFractionPatternSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FractionPattern(self) -> Optional[str]: + if "FractionPattern" in self._dataset: + return self._dataset.FractionPattern + return None + + @FractionPattern.setter + def FractionPattern(self, value: Optional[str]): + if value is None: + if "FractionPattern" in self._dataset: + del self._dataset.FractionPattern + else: + self._dataset.FractionPattern = value + + @property + def IntendedStartDayOfWeek(self) -> Optional[str]: + if "IntendedStartDayOfWeek" in self._dataset: + return self._dataset.IntendedStartDayOfWeek + return None + + @IntendedStartDayOfWeek.setter + def IntendedStartDayOfWeek(self, value: Optional[str]): + if value is None: + if "IntendedStartDayOfWeek" in self._dataset: + del self._dataset.IntendedStartDayOfWeek + else: + self._dataset.IntendedStartDayOfWeek = value diff --git a/tdwii_plus_examples/domain_model/weighting_transfer_function_sequence_item.py b/tdwii_plus_examples/domain_model/weighting_transfer_function_sequence_item.py new file mode 100644 index 0000000..46957c0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/weighting_transfer_function_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WeightingTransferFunctionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def LUTDescriptor(self) -> Optional[List[int]]: + if "LUTDescriptor" in self._dataset: + return self._dataset.LUTDescriptor + return None + + @LUTDescriptor.setter + def LUTDescriptor(self, value: Optional[List[int]]): + if value is None: + if "LUTDescriptor" in self._dataset: + del self._dataset.LUTDescriptor + else: + self._dataset.LUTDescriptor = value + + @property + def LUTData(self) -> Optional[List[int | bytes]]: + if "LUTData" in self._dataset: + return self._dataset.LUTData + return None + + @LUTData.setter + def LUTData(self, value: Optional[List[int | bytes]]): + if value is None: + if "LUTData" in self._dataset: + del self._dataset.LUTData + else: + self._dataset.LUTData = value diff --git a/tdwii_plus_examples/domain_model/whole_slide_microscopy_image_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/whole_slide_microscopy_image_frame_type_sequence_item.py new file mode 100644 index 0000000..4da704d --- /dev/null +++ b/tdwii_plus_examples/domain_model/whole_slide_microscopy_image_frame_type_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WholeSlideMicroscopyImageFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value diff --git a/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography3d_coordinates_image.py b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography3d_coordinates_image.py new file mode 100644 index 0000000..656c2e6 --- /dev/null +++ b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography3d_coordinates_image.py @@ -0,0 +1,6665 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .transformation_algorithm_sequence_item import TransformationAlgorithmSequenceItem +from .two_dimensional_to_three_dimensional_map_sequence_item import ( + TwoDimensionalToThreeDimensionalMapSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .wide_field_ophthalmic_photography_quality_rating_sequence_item import ( + WideFieldOphthalmicPhotographyQualityRatingSequenceItem, +) + + +class WideFieldOphthalmicPhotography3dCoordinatesImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._WideFieldOphthalmicPhotographyQualityRatingSequence: List[ + WideFieldOphthalmicPhotographyQualityRatingSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._TransformationMethodCodeSequence: List[CodeSequenceItem] = [] + self._TransformationAlgorithmSequence: List[TransformationAlgorithmSequenceItem] = [] + self._TwoDimensionalToThreeDimensionalMapSequence: List[TwoDimensionalToThreeDimensionalMapSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._PatientEyeMovementCommandCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AcquisitionDeviceTypeCodeSequence: List[CodeSequenceItem] = [] + self._IlluminationTypeCodeSequence: List[CodeSequenceItem] = [] + self._LightPathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._ImagePathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._LensesCodeSequence: List[CodeSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def WideFieldOphthalmicPhotographyQualityRatingSequence( + self, + ) -> Optional[List[WideFieldOphthalmicPhotographyQualityRatingSequenceItem]]: + if "WideFieldOphthalmicPhotographyQualityRatingSequence" in self._dataset: + if len(self._WideFieldOphthalmicPhotographyQualityRatingSequence) == len( + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence + ): + return self._WideFieldOphthalmicPhotographyQualityRatingSequence + else: + return [ + WideFieldOphthalmicPhotographyQualityRatingSequenceItem(x) + for x in self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence + ] + return None + + @WideFieldOphthalmicPhotographyQualityRatingSequence.setter + def WideFieldOphthalmicPhotographyQualityRatingSequence( + self, value: Optional[List[WideFieldOphthalmicPhotographyQualityRatingSequenceItem]] + ): + if value is None: + self._WideFieldOphthalmicPhotographyQualityRatingSequence = [] + if "WideFieldOphthalmicPhotographyQualityRatingSequence" in self._dataset: + del self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence + elif not isinstance(value, list) or not all( + isinstance(item, WideFieldOphthalmicPhotographyQualityRatingSequenceItem) for item in value + ): + raise ValueError( + "WideFieldOphthalmicPhotographyQualityRatingSequence must be a list of" + " WideFieldOphthalmicPhotographyQualityRatingSequenceItem objects" + ) + else: + self._WideFieldOphthalmicPhotographyQualityRatingSequence = value + if "WideFieldOphthalmicPhotographyQualityRatingSequence" not in self._dataset: + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence = pydicom.Sequence() + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence.clear() + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence.extend([item.to_dataset() for item in value]) + + def add_WideFieldOphthalmicPhotographyQualityRating(self, item: WideFieldOphthalmicPhotographyQualityRatingSequenceItem): + if not isinstance(item, WideFieldOphthalmicPhotographyQualityRatingSequenceItem): + raise ValueError("Item must be an instance of WideFieldOphthalmicPhotographyQualityRatingSequenceItem") + self._WideFieldOphthalmicPhotographyQualityRatingSequence.append(item) + if "WideFieldOphthalmicPhotographyQualityRatingSequence" not in self._dataset: + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence = pydicom.Sequence() + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def TransformationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "TransformationMethodCodeSequence" in self._dataset: + if len(self._TransformationMethodCodeSequence) == len(self._dataset.TransformationMethodCodeSequence): + return self._TransformationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.TransformationMethodCodeSequence] + return None + + @TransformationMethodCodeSequence.setter + def TransformationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._TransformationMethodCodeSequence = [] + if "TransformationMethodCodeSequence" in self._dataset: + del self._dataset.TransformationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("TransformationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._TransformationMethodCodeSequence = value + if "TransformationMethodCodeSequence" not in self._dataset: + self._dataset.TransformationMethodCodeSequence = pydicom.Sequence() + self._dataset.TransformationMethodCodeSequence.clear() + self._dataset.TransformationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_TransformationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._TransformationMethodCodeSequence.append(item) + if "TransformationMethodCodeSequence" not in self._dataset: + self._dataset.TransformationMethodCodeSequence = pydicom.Sequence() + self._dataset.TransformationMethodCodeSequence.append(item.to_dataset()) + + @property + def TransformationAlgorithmSequence(self) -> Optional[List[TransformationAlgorithmSequenceItem]]: + if "TransformationAlgorithmSequence" in self._dataset: + if len(self._TransformationAlgorithmSequence) == len(self._dataset.TransformationAlgorithmSequence): + return self._TransformationAlgorithmSequence + else: + return [TransformationAlgorithmSequenceItem(x) for x in self._dataset.TransformationAlgorithmSequence] + return None + + @TransformationAlgorithmSequence.setter + def TransformationAlgorithmSequence(self, value: Optional[List[TransformationAlgorithmSequenceItem]]): + if value is None: + self._TransformationAlgorithmSequence = [] + if "TransformationAlgorithmSequence" in self._dataset: + del self._dataset.TransformationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, TransformationAlgorithmSequenceItem) for item in value): + raise ValueError("TransformationAlgorithmSequence must be a list of TransformationAlgorithmSequenceItem objects") + else: + self._TransformationAlgorithmSequence = value + if "TransformationAlgorithmSequence" not in self._dataset: + self._dataset.TransformationAlgorithmSequence = pydicom.Sequence() + self._dataset.TransformationAlgorithmSequence.clear() + self._dataset.TransformationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_TransformationAlgorithm(self, item: TransformationAlgorithmSequenceItem): + if not isinstance(item, TransformationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of TransformationAlgorithmSequenceItem") + self._TransformationAlgorithmSequence.append(item) + if "TransformationAlgorithmSequence" not in self._dataset: + self._dataset.TransformationAlgorithmSequence = pydicom.Sequence() + self._dataset.TransformationAlgorithmSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMethod(self) -> Optional[str]: + if "OphthalmicAxialLengthMethod" in self._dataset: + return self._dataset.OphthalmicAxialLengthMethod + return None + + @OphthalmicAxialLengthMethod.setter + def OphthalmicAxialLengthMethod(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMethod" in self._dataset: + del self._dataset.OphthalmicAxialLengthMethod + else: + self._dataset.OphthalmicAxialLengthMethod = value + + @property + def OphthalmicFOV(self) -> Optional[float]: + if "OphthalmicFOV" in self._dataset: + return self._dataset.OphthalmicFOV + return None + + @OphthalmicFOV.setter + def OphthalmicFOV(self, value: Optional[float]): + if value is None: + if "OphthalmicFOV" in self._dataset: + del self._dataset.OphthalmicFOV + else: + self._dataset.OphthalmicFOV = value + + @property + def TwoDimensionalToThreeDimensionalMapSequence(self) -> Optional[List[TwoDimensionalToThreeDimensionalMapSequenceItem]]: + if "TwoDimensionalToThreeDimensionalMapSequence" in self._dataset: + if len(self._TwoDimensionalToThreeDimensionalMapSequence) == len( + self._dataset.TwoDimensionalToThreeDimensionalMapSequence + ): + return self._TwoDimensionalToThreeDimensionalMapSequence + else: + return [ + TwoDimensionalToThreeDimensionalMapSequenceItem(x) + for x in self._dataset.TwoDimensionalToThreeDimensionalMapSequence + ] + return None + + @TwoDimensionalToThreeDimensionalMapSequence.setter + def TwoDimensionalToThreeDimensionalMapSequence( + self, value: Optional[List[TwoDimensionalToThreeDimensionalMapSequenceItem]] + ): + if value is None: + self._TwoDimensionalToThreeDimensionalMapSequence = [] + if "TwoDimensionalToThreeDimensionalMapSequence" in self._dataset: + del self._dataset.TwoDimensionalToThreeDimensionalMapSequence + elif not isinstance(value, list) or not all( + isinstance(item, TwoDimensionalToThreeDimensionalMapSequenceItem) for item in value + ): + raise ValueError( + "TwoDimensionalToThreeDimensionalMapSequence must be a list of TwoDimensionalToThreeDimensionalMapSequenceItem" + " objects" + ) + else: + self._TwoDimensionalToThreeDimensionalMapSequence = value + if "TwoDimensionalToThreeDimensionalMapSequence" not in self._dataset: + self._dataset.TwoDimensionalToThreeDimensionalMapSequence = pydicom.Sequence() + self._dataset.TwoDimensionalToThreeDimensionalMapSequence.clear() + self._dataset.TwoDimensionalToThreeDimensionalMapSequence.extend([item.to_dataset() for item in value]) + + def add_TwoDimensionalToThreeDimensionalMap(self, item: TwoDimensionalToThreeDimensionalMapSequenceItem): + if not isinstance(item, TwoDimensionalToThreeDimensionalMapSequenceItem): + raise ValueError("Item must be an instance of TwoDimensionalToThreeDimensionalMapSequenceItem") + self._TwoDimensionalToThreeDimensionalMapSequence.append(item) + if "TwoDimensionalToThreeDimensionalMapSequence" not in self._dataset: + self._dataset.TwoDimensionalToThreeDimensionalMapSequence = pydicom.Sequence() + self._dataset.TwoDimensionalToThreeDimensionalMapSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def PatientEyeMovementCommanded(self) -> Optional[str]: + if "PatientEyeMovementCommanded" in self._dataset: + return self._dataset.PatientEyeMovementCommanded + return None + + @PatientEyeMovementCommanded.setter + def PatientEyeMovementCommanded(self, value: Optional[str]): + if value is None: + if "PatientEyeMovementCommanded" in self._dataset: + del self._dataset.PatientEyeMovementCommanded + else: + self._dataset.PatientEyeMovementCommanded = value + + @property + def PatientEyeMovementCommandCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + if len(self._PatientEyeMovementCommandCodeSequence) == len(self._dataset.PatientEyeMovementCommandCodeSequence): + return self._PatientEyeMovementCommandCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEyeMovementCommandCodeSequence] + return None + + @PatientEyeMovementCommandCodeSequence.setter + def PatientEyeMovementCommandCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEyeMovementCommandCodeSequence = [] + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + del self._dataset.PatientEyeMovementCommandCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEyeMovementCommandCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEyeMovementCommandCodeSequence = value + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.clear() + self._dataset.PatientEyeMovementCommandCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEyeMovementCommandCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEyeMovementCommandCodeSequence.append(item) + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.append(item.to_dataset()) + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAnatomicReferencePointXCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointXCoordinate + return None + + @OphthalmicAnatomicReferencePointXCoordinate.setter + def OphthalmicAnatomicReferencePointXCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointXCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointXCoordinate = value + + @property + def OphthalmicAnatomicReferencePointYCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointYCoordinate + return None + + @OphthalmicAnatomicReferencePointYCoordinate.setter + def OphthalmicAnatomicReferencePointYCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointYCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointYCoordinate = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def LightPathFilterPassThroughWavelength(self) -> Optional[int]: + if "LightPathFilterPassThroughWavelength" in self._dataset: + return self._dataset.LightPathFilterPassThroughWavelength + return None + + @LightPathFilterPassThroughWavelength.setter + def LightPathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "LightPathFilterPassThroughWavelength" in self._dataset: + del self._dataset.LightPathFilterPassThroughWavelength + else: + self._dataset.LightPathFilterPassThroughWavelength = value + + @property + def LightPathFilterPassBand(self) -> Optional[List[int]]: + if "LightPathFilterPassBand" in self._dataset: + return self._dataset.LightPathFilterPassBand + return None + + @LightPathFilterPassBand.setter + def LightPathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "LightPathFilterPassBand" in self._dataset: + del self._dataset.LightPathFilterPassBand + else: + self._dataset.LightPathFilterPassBand = value + + @property + def ImagePathFilterPassThroughWavelength(self) -> Optional[int]: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + return self._dataset.ImagePathFilterPassThroughWavelength + return None + + @ImagePathFilterPassThroughWavelength.setter + def ImagePathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + del self._dataset.ImagePathFilterPassThroughWavelength + else: + self._dataset.ImagePathFilterPassThroughWavelength = value + + @property + def ImagePathFilterPassBand(self) -> Optional[List[int]]: + if "ImagePathFilterPassBand" in self._dataset: + return self._dataset.ImagePathFilterPassBand + return None + + @ImagePathFilterPassBand.setter + def ImagePathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "ImagePathFilterPassBand" in self._dataset: + del self._dataset.ImagePathFilterPassBand + else: + self._dataset.ImagePathFilterPassBand = value + + @property + def AcquisitionDeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + if len(self._AcquisitionDeviceTypeCodeSequence) == len(self._dataset.AcquisitionDeviceTypeCodeSequence): + return self._AcquisitionDeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionDeviceTypeCodeSequence] + return None + + @AcquisitionDeviceTypeCodeSequence.setter + def AcquisitionDeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionDeviceTypeCodeSequence = [] + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + del self._dataset.AcquisitionDeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionDeviceTypeCodeSequence = value + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.clear() + self._dataset.AcquisitionDeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionDeviceTypeCodeSequence.append(item) + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def IlluminationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationTypeCodeSequence" in self._dataset: + if len(self._IlluminationTypeCodeSequence) == len(self._dataset.IlluminationTypeCodeSequence): + return self._IlluminationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationTypeCodeSequence] + return None + + @IlluminationTypeCodeSequence.setter + def IlluminationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationTypeCodeSequence = [] + if "IlluminationTypeCodeSequence" in self._dataset: + del self._dataset.IlluminationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationTypeCodeSequence = value + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.clear() + self._dataset.IlluminationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationTypeCodeSequence.append(item) + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.append(item.to_dataset()) + + @property + def LightPathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + if len(self._LightPathFilterTypeStackCodeSequence) == len(self._dataset.LightPathFilterTypeStackCodeSequence): + return self._LightPathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LightPathFilterTypeStackCodeSequence] + return None + + @LightPathFilterTypeStackCodeSequence.setter + def LightPathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LightPathFilterTypeStackCodeSequence = [] + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.LightPathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LightPathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LightPathFilterTypeStackCodeSequence = value + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.clear() + self._dataset.LightPathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LightPathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LightPathFilterTypeStackCodeSequence.append(item) + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def ImagePathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + if len(self._ImagePathFilterTypeStackCodeSequence) == len(self._dataset.ImagePathFilterTypeStackCodeSequence): + return self._ImagePathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ImagePathFilterTypeStackCodeSequence] + return None + + @ImagePathFilterTypeStackCodeSequence.setter + def ImagePathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ImagePathFilterTypeStackCodeSequence = [] + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.ImagePathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ImagePathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ImagePathFilterTypeStackCodeSequence = value + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.clear() + self._dataset.ImagePathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ImagePathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ImagePathFilterTypeStackCodeSequence.append(item) + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def LensesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensesCodeSequence" in self._dataset: + if len(self._LensesCodeSequence) == len(self._dataset.LensesCodeSequence): + return self._LensesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensesCodeSequence] + return None + + @LensesCodeSequence.setter + def LensesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensesCodeSequence = [] + if "LensesCodeSequence" in self._dataset: + del self._dataset.LensesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensesCodeSequence = value + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.clear() + self._dataset.LensesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensesCodeSequence.append(item) + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.append(item.to_dataset()) + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def CameraAngleOfView(self) -> Optional[float]: + if "CameraAngleOfView" in self._dataset: + return self._dataset.CameraAngleOfView + return None + + @CameraAngleOfView.setter + def CameraAngleOfView(self, value: Optional[float]): + if value is None: + if "CameraAngleOfView" in self._dataset: + del self._dataset.CameraAngleOfView + else: + self._dataset.CameraAngleOfView = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def SamplesPerPixelUsed(self) -> Optional[int]: + if "SamplesPerPixelUsed" in self._dataset: + return self._dataset.SamplesPerPixelUsed + return None + + @SamplesPerPixelUsed.setter + def SamplesPerPixelUsed(self, value: Optional[int]): + if value is None: + if "SamplesPerPixelUsed" in self._dataset: + del self._dataset.SamplesPerPixelUsed + else: + self._dataset.SamplesPerPixelUsed = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_rating_sequence_item.py b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_rating_sequence_item.py new file mode 100644 index 0000000..657a96a --- /dev/null +++ b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_rating_sequence_item.py @@ -0,0 +1,270 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem +from .wide_field_ophthalmic_photography_quality_threshold_sequence_item import ( + WideFieldOphthalmicPhotographyQualityThresholdSequenceItem, +) + + +class WideFieldOphthalmicPhotographyQualityRatingSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._WideFieldOphthalmicPhotographyQualityThresholdSequence: List[ + WideFieldOphthalmicPhotographyQualityThresholdSequenceItem + ] = [] + self._MeasurementUnitsCodeSequence: List[CodeSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmFamilyCodeSequence: List[CodeSequenceItem] = [] + self._AlgorithmNameCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WideFieldOphthalmicPhotographyQualityThresholdSequence( + self, + ) -> Optional[List[WideFieldOphthalmicPhotographyQualityThresholdSequenceItem]]: + if "WideFieldOphthalmicPhotographyQualityThresholdSequence" in self._dataset: + if len(self._WideFieldOphthalmicPhotographyQualityThresholdSequence) == len( + self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence + ): + return self._WideFieldOphthalmicPhotographyQualityThresholdSequence + else: + return [ + WideFieldOphthalmicPhotographyQualityThresholdSequenceItem(x) + for x in self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence + ] + return None + + @WideFieldOphthalmicPhotographyQualityThresholdSequence.setter + def WideFieldOphthalmicPhotographyQualityThresholdSequence( + self, value: Optional[List[WideFieldOphthalmicPhotographyQualityThresholdSequenceItem]] + ): + if value is None: + self._WideFieldOphthalmicPhotographyQualityThresholdSequence = [] + if "WideFieldOphthalmicPhotographyQualityThresholdSequence" in self._dataset: + del self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence + elif not isinstance(value, list) or not all( + isinstance(item, WideFieldOphthalmicPhotographyQualityThresholdSequenceItem) for item in value + ): + raise ValueError( + "WideFieldOphthalmicPhotographyQualityThresholdSequence must be a list of" + " WideFieldOphthalmicPhotographyQualityThresholdSequenceItem objects" + ) + else: + self._WideFieldOphthalmicPhotographyQualityThresholdSequence = value + if "WideFieldOphthalmicPhotographyQualityThresholdSequence" not in self._dataset: + self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence = pydicom.Sequence() + self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence.clear() + self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence.extend([item.to_dataset() for item in value]) + + def add_WideFieldOphthalmicPhotographyQualityThreshold( + self, item: WideFieldOphthalmicPhotographyQualityThresholdSequenceItem + ): + if not isinstance(item, WideFieldOphthalmicPhotographyQualityThresholdSequenceItem): + raise ValueError("Item must be an instance of WideFieldOphthalmicPhotographyQualityThresholdSequenceItem") + self._WideFieldOphthalmicPhotographyQualityThresholdSequence.append(item) + if "WideFieldOphthalmicPhotographyQualityThresholdSequence" not in self._dataset: + self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence = pydicom.Sequence() + self._dataset.WideFieldOphthalmicPhotographyQualityThresholdSequence.append(item.to_dataset()) + + @property + def AlgorithmSource(self) -> Optional[str]: + if "AlgorithmSource" in self._dataset: + return self._dataset.AlgorithmSource + return None + + @AlgorithmSource.setter + def AlgorithmSource(self, value: Optional[str]): + if value is None: + if "AlgorithmSource" in self._dataset: + del self._dataset.AlgorithmSource + else: + self._dataset.AlgorithmSource = value + + @property + def MeasurementUnitsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MeasurementUnitsCodeSequence" in self._dataset: + if len(self._MeasurementUnitsCodeSequence) == len(self._dataset.MeasurementUnitsCodeSequence): + return self._MeasurementUnitsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MeasurementUnitsCodeSequence] + return None + + @MeasurementUnitsCodeSequence.setter + def MeasurementUnitsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MeasurementUnitsCodeSequence = [] + if "MeasurementUnitsCodeSequence" in self._dataset: + del self._dataset.MeasurementUnitsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MeasurementUnitsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MeasurementUnitsCodeSequence = value + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.clear() + self._dataset.MeasurementUnitsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MeasurementUnitsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MeasurementUnitsCodeSequence.append(item) + if "MeasurementUnitsCodeSequence" not in self._dataset: + self._dataset.MeasurementUnitsCodeSequence = pydicom.Sequence() + self._dataset.MeasurementUnitsCodeSequence.append(item.to_dataset()) + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def NumericValue(self) -> Optional[List[Decimal]]: + if "NumericValue" in self._dataset: + return self._dataset.NumericValue + return None + + @NumericValue.setter + def NumericValue(self, value: Optional[List[Decimal]]): + if value is None: + if "NumericValue" in self._dataset: + del self._dataset.NumericValue + else: + self._dataset.NumericValue = value + + @property + def AlgorithmFamilyCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmFamilyCodeSequence" in self._dataset: + if len(self._AlgorithmFamilyCodeSequence) == len(self._dataset.AlgorithmFamilyCodeSequence): + return self._AlgorithmFamilyCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmFamilyCodeSequence] + return None + + @AlgorithmFamilyCodeSequence.setter + def AlgorithmFamilyCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmFamilyCodeSequence = [] + if "AlgorithmFamilyCodeSequence" in self._dataset: + del self._dataset.AlgorithmFamilyCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmFamilyCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmFamilyCodeSequence = value + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.clear() + self._dataset.AlgorithmFamilyCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmFamilyCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmFamilyCodeSequence.append(item) + if "AlgorithmFamilyCodeSequence" not in self._dataset: + self._dataset.AlgorithmFamilyCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmFamilyCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AlgorithmNameCodeSequence" in self._dataset: + if len(self._AlgorithmNameCodeSequence) == len(self._dataset.AlgorithmNameCodeSequence): + return self._AlgorithmNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AlgorithmNameCodeSequence] + return None + + @AlgorithmNameCodeSequence.setter + def AlgorithmNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AlgorithmNameCodeSequence = [] + if "AlgorithmNameCodeSequence" in self._dataset: + del self._dataset.AlgorithmNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AlgorithmNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AlgorithmNameCodeSequence = value + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.clear() + self._dataset.AlgorithmNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AlgorithmNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AlgorithmNameCodeSequence.append(item) + if "AlgorithmNameCodeSequence" not in self._dataset: + self._dataset.AlgorithmNameCodeSequence = pydicom.Sequence() + self._dataset.AlgorithmNameCodeSequence.append(item.to_dataset()) + + @property + def AlgorithmVersion(self) -> Optional[str]: + if "AlgorithmVersion" in self._dataset: + return self._dataset.AlgorithmVersion + return None + + @AlgorithmVersion.setter + def AlgorithmVersion(self, value: Optional[str]): + if value is None: + if "AlgorithmVersion" in self._dataset: + del self._dataset.AlgorithmVersion + else: + self._dataset.AlgorithmVersion = value + + @property + def AlgorithmParameters(self) -> Optional[str]: + if "AlgorithmParameters" in self._dataset: + return self._dataset.AlgorithmParameters + return None + + @AlgorithmParameters.setter + def AlgorithmParameters(self, value: Optional[str]): + if value is None: + if "AlgorithmParameters" in self._dataset: + del self._dataset.AlgorithmParameters + else: + self._dataset.AlgorithmParameters = value + + @property + def AlgorithmName(self) -> Optional[str]: + if "AlgorithmName" in self._dataset: + return self._dataset.AlgorithmName + return None + + @AlgorithmName.setter + def AlgorithmName(self, value: Optional[str]): + if value is None: + if "AlgorithmName" in self._dataset: + del self._dataset.AlgorithmName + else: + self._dataset.AlgorithmName = value diff --git a/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_threshold_sequence_item.py b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_threshold_sequence_item.py new file mode 100644 index 0000000..9a42c72 --- /dev/null +++ b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_quality_threshold_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class WideFieldOphthalmicPhotographyQualityThresholdSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def WideFieldOphthalmicPhotographyThresholdQualityRating(self) -> Optional[float]: + if "WideFieldOphthalmicPhotographyThresholdQualityRating" in self._dataset: + return self._dataset.WideFieldOphthalmicPhotographyThresholdQualityRating + return None + + @WideFieldOphthalmicPhotographyThresholdQualityRating.setter + def WideFieldOphthalmicPhotographyThresholdQualityRating(self, value: Optional[float]): + if value is None: + if "WideFieldOphthalmicPhotographyThresholdQualityRating" in self._dataset: + del self._dataset.WideFieldOphthalmicPhotographyThresholdQualityRating + else: + self._dataset.WideFieldOphthalmicPhotographyThresholdQualityRating = value diff --git a/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_stereographic_projection_image.py b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_stereographic_projection_image.py new file mode 100644 index 0000000..60c4e3f --- /dev/null +++ b/tdwii_plus_examples/domain_model/wide_field_ophthalmic_photography_stereographic_projection_image.py @@ -0,0 +1,6612 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mydriatic_agent_sequence_item import MydriaticAgentSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .refractive_state_sequence_item import RefractiveStateSequenceItem +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .transformation_algorithm_sequence_item import TransformationAlgorithmSequenceItem +from .udi_sequence_item import UDISequenceItem +from .wide_field_ophthalmic_photography_quality_rating_sequence_item import ( + WideFieldOphthalmicPhotographyQualityRatingSequenceItem, +) + + +class WideFieldOphthalmicPhotographyStereographicProjectionImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._WideFieldOphthalmicPhotographyQualityRatingSequence: List[ + WideFieldOphthalmicPhotographyQualityRatingSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._PatientEyeMovementCommandCodeSequence: List[CodeSequenceItem] = [] + self._RefractiveStateSequence: List[RefractiveStateSequenceItem] = [] + self._MydriaticAgentSequence: List[MydriaticAgentSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RelativeImagePositionCodeSequence: List[CodeSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AcquisitionDeviceTypeCodeSequence: List[CodeSequenceItem] = [] + self._IlluminationTypeCodeSequence: List[CodeSequenceItem] = [] + self._LightPathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._ImagePathFilterTypeStackCodeSequence: List[CodeSequenceItem] = [] + self._LensesCodeSequence: List[CodeSequenceItem] = [] + self._ChannelDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._TransformationAlgorithmSequence: List[TransformationAlgorithmSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def WideFieldOphthalmicPhotographyQualityRatingSequence( + self, + ) -> Optional[List[WideFieldOphthalmicPhotographyQualityRatingSequenceItem]]: + if "WideFieldOphthalmicPhotographyQualityRatingSequence" in self._dataset: + if len(self._WideFieldOphthalmicPhotographyQualityRatingSequence) == len( + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence + ): + return self._WideFieldOphthalmicPhotographyQualityRatingSequence + else: + return [ + WideFieldOphthalmicPhotographyQualityRatingSequenceItem(x) + for x in self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence + ] + return None + + @WideFieldOphthalmicPhotographyQualityRatingSequence.setter + def WideFieldOphthalmicPhotographyQualityRatingSequence( + self, value: Optional[List[WideFieldOphthalmicPhotographyQualityRatingSequenceItem]] + ): + if value is None: + self._WideFieldOphthalmicPhotographyQualityRatingSequence = [] + if "WideFieldOphthalmicPhotographyQualityRatingSequence" in self._dataset: + del self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence + elif not isinstance(value, list) or not all( + isinstance(item, WideFieldOphthalmicPhotographyQualityRatingSequenceItem) for item in value + ): + raise ValueError( + "WideFieldOphthalmicPhotographyQualityRatingSequence must be a list of" + " WideFieldOphthalmicPhotographyQualityRatingSequenceItem objects" + ) + else: + self._WideFieldOphthalmicPhotographyQualityRatingSequence = value + if "WideFieldOphthalmicPhotographyQualityRatingSequence" not in self._dataset: + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence = pydicom.Sequence() + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence.clear() + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence.extend([item.to_dataset() for item in value]) + + def add_WideFieldOphthalmicPhotographyQualityRating(self, item: WideFieldOphthalmicPhotographyQualityRatingSequenceItem): + if not isinstance(item, WideFieldOphthalmicPhotographyQualityRatingSequenceItem): + raise ValueError("Item must be an instance of WideFieldOphthalmicPhotographyQualityRatingSequenceItem") + self._WideFieldOphthalmicPhotographyQualityRatingSequence.append(item) + if "WideFieldOphthalmicPhotographyQualityRatingSequence" not in self._dataset: + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence = pydicom.Sequence() + self._dataset.WideFieldOphthalmicPhotographyQualityRatingSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def PatientEyeMovementCommanded(self) -> Optional[str]: + if "PatientEyeMovementCommanded" in self._dataset: + return self._dataset.PatientEyeMovementCommanded + return None + + @PatientEyeMovementCommanded.setter + def PatientEyeMovementCommanded(self, value: Optional[str]): + if value is None: + if "PatientEyeMovementCommanded" in self._dataset: + del self._dataset.PatientEyeMovementCommanded + else: + self._dataset.PatientEyeMovementCommanded = value + + @property + def PatientEyeMovementCommandCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + if len(self._PatientEyeMovementCommandCodeSequence) == len(self._dataset.PatientEyeMovementCommandCodeSequence): + return self._PatientEyeMovementCommandCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientEyeMovementCommandCodeSequence] + return None + + @PatientEyeMovementCommandCodeSequence.setter + def PatientEyeMovementCommandCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientEyeMovementCommandCodeSequence = [] + if "PatientEyeMovementCommandCodeSequence" in self._dataset: + del self._dataset.PatientEyeMovementCommandCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientEyeMovementCommandCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientEyeMovementCommandCodeSequence = value + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.clear() + self._dataset.PatientEyeMovementCommandCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientEyeMovementCommandCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientEyeMovementCommandCodeSequence.append(item) + if "PatientEyeMovementCommandCodeSequence" not in self._dataset: + self._dataset.PatientEyeMovementCommandCodeSequence = pydicom.Sequence() + self._dataset.PatientEyeMovementCommandCodeSequence.append(item.to_dataset()) + + @property + def EmmetropicMagnification(self) -> Optional[float]: + if "EmmetropicMagnification" in self._dataset: + return self._dataset.EmmetropicMagnification + return None + + @EmmetropicMagnification.setter + def EmmetropicMagnification(self, value: Optional[float]): + if value is None: + if "EmmetropicMagnification" in self._dataset: + del self._dataset.EmmetropicMagnification + else: + self._dataset.EmmetropicMagnification = value + + @property + def IntraOcularPressure(self) -> Optional[float]: + if "IntraOcularPressure" in self._dataset: + return self._dataset.IntraOcularPressure + return None + + @IntraOcularPressure.setter + def IntraOcularPressure(self, value: Optional[float]): + if value is None: + if "IntraOcularPressure" in self._dataset: + del self._dataset.IntraOcularPressure + else: + self._dataset.IntraOcularPressure = value + + @property + def HorizontalFieldOfView(self) -> Optional[float]: + if "HorizontalFieldOfView" in self._dataset: + return self._dataset.HorizontalFieldOfView + return None + + @HorizontalFieldOfView.setter + def HorizontalFieldOfView(self, value: Optional[float]): + if value is None: + if "HorizontalFieldOfView" in self._dataset: + del self._dataset.HorizontalFieldOfView + else: + self._dataset.HorizontalFieldOfView = value + + @property + def PupilDilated(self) -> Optional[str]: + if "PupilDilated" in self._dataset: + return self._dataset.PupilDilated + return None + + @PupilDilated.setter + def PupilDilated(self, value: Optional[str]): + if value is None: + if "PupilDilated" in self._dataset: + del self._dataset.PupilDilated + else: + self._dataset.PupilDilated = value + + @property + def DegreeOfDilation(self) -> Optional[float]: + if "DegreeOfDilation" in self._dataset: + return self._dataset.DegreeOfDilation + return None + + @DegreeOfDilation.setter + def DegreeOfDilation(self, value: Optional[float]): + if value is None: + if "DegreeOfDilation" in self._dataset: + del self._dataset.DegreeOfDilation + else: + self._dataset.DegreeOfDilation = value + + @property + def RefractiveStateSequence(self) -> Optional[List[RefractiveStateSequenceItem]]: + if "RefractiveStateSequence" in self._dataset: + if len(self._RefractiveStateSequence) == len(self._dataset.RefractiveStateSequence): + return self._RefractiveStateSequence + else: + return [RefractiveStateSequenceItem(x) for x in self._dataset.RefractiveStateSequence] + return None + + @RefractiveStateSequence.setter + def RefractiveStateSequence(self, value: Optional[List[RefractiveStateSequenceItem]]): + if value is None: + self._RefractiveStateSequence = [] + if "RefractiveStateSequence" in self._dataset: + del self._dataset.RefractiveStateSequence + elif not isinstance(value, list) or not all(isinstance(item, RefractiveStateSequenceItem) for item in value): + raise ValueError("RefractiveStateSequence must be a list of RefractiveStateSequenceItem objects") + else: + self._RefractiveStateSequence = value + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.clear() + self._dataset.RefractiveStateSequence.extend([item.to_dataset() for item in value]) + + def add_RefractiveState(self, item: RefractiveStateSequenceItem): + if not isinstance(item, RefractiveStateSequenceItem): + raise ValueError("Item must be an instance of RefractiveStateSequenceItem") + self._RefractiveStateSequence.append(item) + if "RefractiveStateSequence" not in self._dataset: + self._dataset.RefractiveStateSequence = pydicom.Sequence() + self._dataset.RefractiveStateSequence.append(item.to_dataset()) + + @property + def MydriaticAgentSequence(self) -> Optional[List[MydriaticAgentSequenceItem]]: + if "MydriaticAgentSequence" in self._dataset: + if len(self._MydriaticAgentSequence) == len(self._dataset.MydriaticAgentSequence): + return self._MydriaticAgentSequence + else: + return [MydriaticAgentSequenceItem(x) for x in self._dataset.MydriaticAgentSequence] + return None + + @MydriaticAgentSequence.setter + def MydriaticAgentSequence(self, value: Optional[List[MydriaticAgentSequenceItem]]): + if value is None: + self._MydriaticAgentSequence = [] + if "MydriaticAgentSequence" in self._dataset: + del self._dataset.MydriaticAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, MydriaticAgentSequenceItem) for item in value): + raise ValueError("MydriaticAgentSequence must be a list of MydriaticAgentSequenceItem objects") + else: + self._MydriaticAgentSequence = value + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.clear() + self._dataset.MydriaticAgentSequence.extend([item.to_dataset() for item in value]) + + def add_MydriaticAgent(self, item: MydriaticAgentSequenceItem): + if not isinstance(item, MydriaticAgentSequenceItem): + raise ValueError("Item must be an instance of MydriaticAgentSequenceItem") + self._MydriaticAgentSequence.append(item) + if "MydriaticAgentSequence" not in self._dataset: + self._dataset.MydriaticAgentSequence = pydicom.Sequence() + self._dataset.MydriaticAgentSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def RelativeImagePositionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RelativeImagePositionCodeSequence" in self._dataset: + if len(self._RelativeImagePositionCodeSequence) == len(self._dataset.RelativeImagePositionCodeSequence): + return self._RelativeImagePositionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RelativeImagePositionCodeSequence] + return None + + @RelativeImagePositionCodeSequence.setter + def RelativeImagePositionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RelativeImagePositionCodeSequence = [] + if "RelativeImagePositionCodeSequence" in self._dataset: + del self._dataset.RelativeImagePositionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RelativeImagePositionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RelativeImagePositionCodeSequence = value + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.clear() + self._dataset.RelativeImagePositionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RelativeImagePositionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RelativeImagePositionCodeSequence.append(item) + if "RelativeImagePositionCodeSequence" not in self._dataset: + self._dataset.RelativeImagePositionCodeSequence = pydicom.Sequence() + self._dataset.RelativeImagePositionCodeSequence.append(item.to_dataset()) + + @property + def OphthalmicAnatomicReferencePointXCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointXCoordinate + return None + + @OphthalmicAnatomicReferencePointXCoordinate.setter + def OphthalmicAnatomicReferencePointXCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointXCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointXCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointXCoordinate = value + + @property + def OphthalmicAnatomicReferencePointYCoordinate(self) -> Optional[float]: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + return self._dataset.OphthalmicAnatomicReferencePointYCoordinate + return None + + @OphthalmicAnatomicReferencePointYCoordinate.setter + def OphthalmicAnatomicReferencePointYCoordinate(self, value: Optional[float]): + if value is None: + if "OphthalmicAnatomicReferencePointYCoordinate" in self._dataset: + del self._dataset.OphthalmicAnatomicReferencePointYCoordinate + else: + self._dataset.OphthalmicAnatomicReferencePointYCoordinate = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def LightPathFilterPassThroughWavelength(self) -> Optional[int]: + if "LightPathFilterPassThroughWavelength" in self._dataset: + return self._dataset.LightPathFilterPassThroughWavelength + return None + + @LightPathFilterPassThroughWavelength.setter + def LightPathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "LightPathFilterPassThroughWavelength" in self._dataset: + del self._dataset.LightPathFilterPassThroughWavelength + else: + self._dataset.LightPathFilterPassThroughWavelength = value + + @property + def LightPathFilterPassBand(self) -> Optional[List[int]]: + if "LightPathFilterPassBand" in self._dataset: + return self._dataset.LightPathFilterPassBand + return None + + @LightPathFilterPassBand.setter + def LightPathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "LightPathFilterPassBand" in self._dataset: + del self._dataset.LightPathFilterPassBand + else: + self._dataset.LightPathFilterPassBand = value + + @property + def ImagePathFilterPassThroughWavelength(self) -> Optional[int]: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + return self._dataset.ImagePathFilterPassThroughWavelength + return None + + @ImagePathFilterPassThroughWavelength.setter + def ImagePathFilterPassThroughWavelength(self, value: Optional[int]): + if value is None: + if "ImagePathFilterPassThroughWavelength" in self._dataset: + del self._dataset.ImagePathFilterPassThroughWavelength + else: + self._dataset.ImagePathFilterPassThroughWavelength = value + + @property + def ImagePathFilterPassBand(self) -> Optional[List[int]]: + if "ImagePathFilterPassBand" in self._dataset: + return self._dataset.ImagePathFilterPassBand + return None + + @ImagePathFilterPassBand.setter + def ImagePathFilterPassBand(self, value: Optional[List[int]]): + if value is None: + if "ImagePathFilterPassBand" in self._dataset: + del self._dataset.ImagePathFilterPassBand + else: + self._dataset.ImagePathFilterPassBand = value + + @property + def AcquisitionDeviceTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + if len(self._AcquisitionDeviceTypeCodeSequence) == len(self._dataset.AcquisitionDeviceTypeCodeSequence): + return self._AcquisitionDeviceTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AcquisitionDeviceTypeCodeSequence] + return None + + @AcquisitionDeviceTypeCodeSequence.setter + def AcquisitionDeviceTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AcquisitionDeviceTypeCodeSequence = [] + if "AcquisitionDeviceTypeCodeSequence" in self._dataset: + del self._dataset.AcquisitionDeviceTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AcquisitionDeviceTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AcquisitionDeviceTypeCodeSequence = value + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.clear() + self._dataset.AcquisitionDeviceTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionDeviceTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AcquisitionDeviceTypeCodeSequence.append(item) + if "AcquisitionDeviceTypeCodeSequence" not in self._dataset: + self._dataset.AcquisitionDeviceTypeCodeSequence = pydicom.Sequence() + self._dataset.AcquisitionDeviceTypeCodeSequence.append(item.to_dataset()) + + @property + def IlluminationTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "IlluminationTypeCodeSequence" in self._dataset: + if len(self._IlluminationTypeCodeSequence) == len(self._dataset.IlluminationTypeCodeSequence): + return self._IlluminationTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.IlluminationTypeCodeSequence] + return None + + @IlluminationTypeCodeSequence.setter + def IlluminationTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._IlluminationTypeCodeSequence = [] + if "IlluminationTypeCodeSequence" in self._dataset: + del self._dataset.IlluminationTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("IlluminationTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._IlluminationTypeCodeSequence = value + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.clear() + self._dataset.IlluminationTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_IlluminationTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._IlluminationTypeCodeSequence.append(item) + if "IlluminationTypeCodeSequence" not in self._dataset: + self._dataset.IlluminationTypeCodeSequence = pydicom.Sequence() + self._dataset.IlluminationTypeCodeSequence.append(item.to_dataset()) + + @property + def LightPathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + if len(self._LightPathFilterTypeStackCodeSequence) == len(self._dataset.LightPathFilterTypeStackCodeSequence): + return self._LightPathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LightPathFilterTypeStackCodeSequence] + return None + + @LightPathFilterTypeStackCodeSequence.setter + def LightPathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LightPathFilterTypeStackCodeSequence = [] + if "LightPathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.LightPathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LightPathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LightPathFilterTypeStackCodeSequence = value + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.clear() + self._dataset.LightPathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LightPathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LightPathFilterTypeStackCodeSequence.append(item) + if "LightPathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.LightPathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.LightPathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def ImagePathFilterTypeStackCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + if len(self._ImagePathFilterTypeStackCodeSequence) == len(self._dataset.ImagePathFilterTypeStackCodeSequence): + return self._ImagePathFilterTypeStackCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ImagePathFilterTypeStackCodeSequence] + return None + + @ImagePathFilterTypeStackCodeSequence.setter + def ImagePathFilterTypeStackCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ImagePathFilterTypeStackCodeSequence = [] + if "ImagePathFilterTypeStackCodeSequence" in self._dataset: + del self._dataset.ImagePathFilterTypeStackCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ImagePathFilterTypeStackCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ImagePathFilterTypeStackCodeSequence = value + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.clear() + self._dataset.ImagePathFilterTypeStackCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ImagePathFilterTypeStackCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ImagePathFilterTypeStackCodeSequence.append(item) + if "ImagePathFilterTypeStackCodeSequence" not in self._dataset: + self._dataset.ImagePathFilterTypeStackCodeSequence = pydicom.Sequence() + self._dataset.ImagePathFilterTypeStackCodeSequence.append(item.to_dataset()) + + @property + def LensesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "LensesCodeSequence" in self._dataset: + if len(self._LensesCodeSequence) == len(self._dataset.LensesCodeSequence): + return self._LensesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.LensesCodeSequence] + return None + + @LensesCodeSequence.setter + def LensesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._LensesCodeSequence = [] + if "LensesCodeSequence" in self._dataset: + del self._dataset.LensesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("LensesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._LensesCodeSequence = value + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.clear() + self._dataset.LensesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_LensesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._LensesCodeSequence.append(item) + if "LensesCodeSequence" not in self._dataset: + self._dataset.LensesCodeSequence = pydicom.Sequence() + self._dataset.LensesCodeSequence.append(item.to_dataset()) + + @property + def ChannelDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ChannelDescriptionCodeSequence" in self._dataset: + if len(self._ChannelDescriptionCodeSequence) == len(self._dataset.ChannelDescriptionCodeSequence): + return self._ChannelDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ChannelDescriptionCodeSequence] + return None + + @ChannelDescriptionCodeSequence.setter + def ChannelDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ChannelDescriptionCodeSequence = [] + if "ChannelDescriptionCodeSequence" in self._dataset: + del self._dataset.ChannelDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ChannelDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ChannelDescriptionCodeSequence = value + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.clear() + self._dataset.ChannelDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ChannelDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ChannelDescriptionCodeSequence.append(item) + if "ChannelDescriptionCodeSequence" not in self._dataset: + self._dataset.ChannelDescriptionCodeSequence = pydicom.Sequence() + self._dataset.ChannelDescriptionCodeSequence.append(item.to_dataset()) + + @property + def CameraAngleOfView(self) -> Optional[float]: + if "CameraAngleOfView" in self._dataset: + return self._dataset.CameraAngleOfView + return None + + @CameraAngleOfView.setter + def CameraAngleOfView(self, value: Optional[float]): + if value is None: + if "CameraAngleOfView" in self._dataset: + del self._dataset.CameraAngleOfView + else: + self._dataset.CameraAngleOfView = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def SamplesPerPixelUsed(self) -> Optional[int]: + if "SamplesPerPixelUsed" in self._dataset: + return self._dataset.SamplesPerPixelUsed + return None + + @SamplesPerPixelUsed.setter + def SamplesPerPixelUsed(self, value: Optional[int]): + if value is None: + if "SamplesPerPixelUsed" in self._dataset: + del self._dataset.SamplesPerPixelUsed + else: + self._dataset.SamplesPerPixelUsed = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def OphthalmicAxialLength(self) -> Optional[float]: + if "OphthalmicAxialLength" in self._dataset: + return self._dataset.OphthalmicAxialLength + return None + + @OphthalmicAxialLength.setter + def OphthalmicAxialLength(self, value: Optional[float]): + if value is None: + if "OphthalmicAxialLength" in self._dataset: + del self._dataset.OphthalmicAxialLength + else: + self._dataset.OphthalmicAxialLength = value + + @property + def TransformationAlgorithmSequence(self) -> Optional[List[TransformationAlgorithmSequenceItem]]: + if "TransformationAlgorithmSequence" in self._dataset: + if len(self._TransformationAlgorithmSequence) == len(self._dataset.TransformationAlgorithmSequence): + return self._TransformationAlgorithmSequence + else: + return [TransformationAlgorithmSequenceItem(x) for x in self._dataset.TransformationAlgorithmSequence] + return None + + @TransformationAlgorithmSequence.setter + def TransformationAlgorithmSequence(self, value: Optional[List[TransformationAlgorithmSequenceItem]]): + if value is None: + self._TransformationAlgorithmSequence = [] + if "TransformationAlgorithmSequence" in self._dataset: + del self._dataset.TransformationAlgorithmSequence + elif not isinstance(value, list) or not all(isinstance(item, TransformationAlgorithmSequenceItem) for item in value): + raise ValueError("TransformationAlgorithmSequence must be a list of TransformationAlgorithmSequenceItem objects") + else: + self._TransformationAlgorithmSequence = value + if "TransformationAlgorithmSequence" not in self._dataset: + self._dataset.TransformationAlgorithmSequence = pydicom.Sequence() + self._dataset.TransformationAlgorithmSequence.clear() + self._dataset.TransformationAlgorithmSequence.extend([item.to_dataset() for item in value]) + + def add_TransformationAlgorithm(self, item: TransformationAlgorithmSequenceItem): + if not isinstance(item, TransformationAlgorithmSequenceItem): + raise ValueError("Item must be an instance of TransformationAlgorithmSequenceItem") + self._TransformationAlgorithmSequence.append(item) + if "TransformationAlgorithmSequence" not in self._dataset: + self._dataset.TransformationAlgorithmSequence = pydicom.Sequence() + self._dataset.TransformationAlgorithmSequence.append(item.to_dataset()) + + @property + def OphthalmicAxialLengthMethod(self) -> Optional[str]: + if "OphthalmicAxialLengthMethod" in self._dataset: + return self._dataset.OphthalmicAxialLengthMethod + return None + + @OphthalmicAxialLengthMethod.setter + def OphthalmicAxialLengthMethod(self, value: Optional[str]): + if value is None: + if "OphthalmicAxialLengthMethod" in self._dataset: + del self._dataset.OphthalmicAxialLengthMethod + else: + self._dataset.OphthalmicAxialLengthMethod = value + + @property + def OphthalmicFOV(self) -> Optional[float]: + if "OphthalmicFOV" in self._dataset: + return self._dataset.OphthalmicFOV + return None + + @OphthalmicFOV.setter + def OphthalmicFOV(self, value: Optional[float]): + if value is None: + if "OphthalmicFOV" in self._dataset: + del self._dataset.OphthalmicFOV + else: + self._dataset.OphthalmicFOV = value + + @property + def XCoordinatesCenterPixelViewAngle(self) -> Optional[float]: + if "XCoordinatesCenterPixelViewAngle" in self._dataset: + return self._dataset.XCoordinatesCenterPixelViewAngle + return None + + @XCoordinatesCenterPixelViewAngle.setter + def XCoordinatesCenterPixelViewAngle(self, value: Optional[float]): + if value is None: + if "XCoordinatesCenterPixelViewAngle" in self._dataset: + del self._dataset.XCoordinatesCenterPixelViewAngle + else: + self._dataset.XCoordinatesCenterPixelViewAngle = value + + @property + def YCoordinatesCenterPixelViewAngle(self) -> Optional[float]: + if "YCoordinatesCenterPixelViewAngle" in self._dataset: + return self._dataset.YCoordinatesCenterPixelViewAngle + return None + + @YCoordinatesCenterPixelViewAngle.setter + def YCoordinatesCenterPixelViewAngle(self, value: Optional[float]): + if value is None: + if "YCoordinatesCenterPixelViewAngle" in self._dataset: + del self._dataset.YCoordinatesCenterPixelViewAngle + else: + self._dataset.YCoordinatesCenterPixelViewAngle = value diff --git a/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item.py new file mode 100644 index 0000000..772bd87 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item.py @@ -0,0 +1,1111 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .per_projection_acquisition_sequence_item import ( + PerProjectionAcquisitionSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem + + +class XRay3DAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._PerProjectionAcquisitionSequence: List[PerProjectionAcquisitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def DistanceSourceToIsocenter(self) -> Optional[float]: + if "DistanceSourceToIsocenter" in self._dataset: + return self._dataset.DistanceSourceToIsocenter + return None + + @DistanceSourceToIsocenter.setter + def DistanceSourceToIsocenter(self, value: Optional[float]): + if value is None: + if "DistanceSourceToIsocenter" in self._dataset: + del self._dataset.DistanceSourceToIsocenter + else: + self._dataset.DistanceSourceToIsocenter = value + + @property + def XRayReceptorType(self) -> Optional[str]: + if "XRayReceptorType" in self._dataset: + return self._dataset.XRayReceptorType + return None + + @XRayReceptorType.setter + def XRayReceptorType(self, value: Optional[str]): + if value is None: + if "XRayReceptorType" in self._dataset: + del self._dataset.XRayReceptorType + else: + self._dataset.XRayReceptorType = value + + @property + def PhysicalDetectorSize(self) -> Optional[List[float]]: + if "PhysicalDetectorSize" in self._dataset: + return self._dataset.PhysicalDetectorSize + return None + + @PhysicalDetectorSize.setter + def PhysicalDetectorSize(self, value: Optional[List[float]]): + if value is None: + if "PhysicalDetectorSize" in self._dataset: + del self._dataset.PhysicalDetectorSize + else: + self._dataset.PhysicalDetectorSize = value + + @property + def PositionOfIsocenterProjection(self) -> Optional[List[float]]: + if "PositionOfIsocenterProjection" in self._dataset: + return self._dataset.PositionOfIsocenterProjection + return None + + @PositionOfIsocenterProjection.setter + def PositionOfIsocenterProjection(self, value: Optional[List[float]]): + if value is None: + if "PositionOfIsocenterProjection" in self._dataset: + del self._dataset.PositionOfIsocenterProjection + else: + self._dataset.PositionOfIsocenterProjection = value + + @property + def FieldOfViewDimensionsInFloat(self) -> Optional[List[float]]: + if "FieldOfViewDimensionsInFloat" in self._dataset: + return self._dataset.FieldOfViewDimensionsInFloat + return None + + @FieldOfViewDimensionsInFloat.setter + def FieldOfViewDimensionsInFloat(self, value: Optional[List[float]]): + if value is None: + if "FieldOfViewDimensionsInFloat" in self._dataset: + del self._dataset.FieldOfViewDimensionsInFloat + else: + self._dataset.FieldOfViewDimensionsInFloat = value + + @property + def TableXPositionToIsocenter(self) -> Optional[float]: + if "TableXPositionToIsocenter" in self._dataset: + return self._dataset.TableXPositionToIsocenter + return None + + @TableXPositionToIsocenter.setter + def TableXPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "TableXPositionToIsocenter" in self._dataset: + del self._dataset.TableXPositionToIsocenter + else: + self._dataset.TableXPositionToIsocenter = value + + @property + def TableYPositionToIsocenter(self) -> Optional[float]: + if "TableYPositionToIsocenter" in self._dataset: + return self._dataset.TableYPositionToIsocenter + return None + + @TableYPositionToIsocenter.setter + def TableYPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "TableYPositionToIsocenter" in self._dataset: + del self._dataset.TableYPositionToIsocenter + else: + self._dataset.TableYPositionToIsocenter = value + + @property + def TableZPositionToIsocenter(self) -> Optional[float]: + if "TableZPositionToIsocenter" in self._dataset: + return self._dataset.TableZPositionToIsocenter + return None + + @TableZPositionToIsocenter.setter + def TableZPositionToIsocenter(self, value: Optional[float]): + if value is None: + if "TableZPositionToIsocenter" in self._dataset: + del self._dataset.TableZPositionToIsocenter + else: + self._dataset.TableZPositionToIsocenter = value + + @property + def TableHorizontalRotationAngle(self) -> Optional[float]: + if "TableHorizontalRotationAngle" in self._dataset: + return self._dataset.TableHorizontalRotationAngle + return None + + @TableHorizontalRotationAngle.setter + def TableHorizontalRotationAngle(self, value: Optional[float]): + if value is None: + if "TableHorizontalRotationAngle" in self._dataset: + del self._dataset.TableHorizontalRotationAngle + else: + self._dataset.TableHorizontalRotationAngle = value + + @property + def TableHeadTiltAngle(self) -> Optional[float]: + if "TableHeadTiltAngle" in self._dataset: + return self._dataset.TableHeadTiltAngle + return None + + @TableHeadTiltAngle.setter + def TableHeadTiltAngle(self, value: Optional[float]): + if value is None: + if "TableHeadTiltAngle" in self._dataset: + del self._dataset.TableHeadTiltAngle + else: + self._dataset.TableHeadTiltAngle = value + + @property + def TableCradleTiltAngle(self) -> Optional[float]: + if "TableCradleTiltAngle" in self._dataset: + return self._dataset.TableCradleTiltAngle + return None + + @TableCradleTiltAngle.setter + def TableCradleTiltAngle(self, value: Optional[float]): + if value is None: + if "TableCradleTiltAngle" in self._dataset: + del self._dataset.TableCradleTiltAngle + else: + self._dataset.TableCradleTiltAngle = value + + @property + def PrimaryPositionerScanArc(self) -> Optional[float]: + if "PrimaryPositionerScanArc" in self._dataset: + return self._dataset.PrimaryPositionerScanArc + return None + + @PrimaryPositionerScanArc.setter + def PrimaryPositionerScanArc(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerScanArc" in self._dataset: + del self._dataset.PrimaryPositionerScanArc + else: + self._dataset.PrimaryPositionerScanArc = value + + @property + def SecondaryPositionerScanArc(self) -> Optional[float]: + if "SecondaryPositionerScanArc" in self._dataset: + return self._dataset.SecondaryPositionerScanArc + return None + + @SecondaryPositionerScanArc.setter + def SecondaryPositionerScanArc(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerScanArc" in self._dataset: + del self._dataset.SecondaryPositionerScanArc + else: + self._dataset.SecondaryPositionerScanArc = value + + @property + def PrimaryPositionerScanStartAngle(self) -> Optional[float]: + if "PrimaryPositionerScanStartAngle" in self._dataset: + return self._dataset.PrimaryPositionerScanStartAngle + return None + + @PrimaryPositionerScanStartAngle.setter + def PrimaryPositionerScanStartAngle(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerScanStartAngle" in self._dataset: + del self._dataset.PrimaryPositionerScanStartAngle + else: + self._dataset.PrimaryPositionerScanStartAngle = value + + @property + def SecondaryPositionerScanStartAngle(self) -> Optional[float]: + if "SecondaryPositionerScanStartAngle" in self._dataset: + return self._dataset.SecondaryPositionerScanStartAngle + return None + + @SecondaryPositionerScanStartAngle.setter + def SecondaryPositionerScanStartAngle(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerScanStartAngle" in self._dataset: + del self._dataset.SecondaryPositionerScanStartAngle + else: + self._dataset.SecondaryPositionerScanStartAngle = value + + @property + def PrimaryPositionerIncrement(self) -> Optional[float]: + if "PrimaryPositionerIncrement" in self._dataset: + return self._dataset.PrimaryPositionerIncrement + return None + + @PrimaryPositionerIncrement.setter + def PrimaryPositionerIncrement(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerIncrement" in self._dataset: + del self._dataset.PrimaryPositionerIncrement + else: + self._dataset.PrimaryPositionerIncrement = value + + @property + def SecondaryPositionerIncrement(self) -> Optional[float]: + if "SecondaryPositionerIncrement" in self._dataset: + return self._dataset.SecondaryPositionerIncrement + return None + + @SecondaryPositionerIncrement.setter + def SecondaryPositionerIncrement(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerIncrement" in self._dataset: + del self._dataset.SecondaryPositionerIncrement + else: + self._dataset.SecondaryPositionerIncrement = value + + @property + def StartAcquisitionDateTime(self) -> Optional[str]: + if "StartAcquisitionDateTime" in self._dataset: + return self._dataset.StartAcquisitionDateTime + return None + + @StartAcquisitionDateTime.setter + def StartAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "StartAcquisitionDateTime" in self._dataset: + del self._dataset.StartAcquisitionDateTime + else: + self._dataset.StartAcquisitionDateTime = value + + @property + def EndAcquisitionDateTime(self) -> Optional[str]: + if "EndAcquisitionDateTime" in self._dataset: + return self._dataset.EndAcquisitionDateTime + return None + + @EndAcquisitionDateTime.setter + def EndAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "EndAcquisitionDateTime" in self._dataset: + del self._dataset.EndAcquisitionDateTime + else: + self._dataset.EndAcquisitionDateTime = value + + @property + def PrimaryPositionerIncrementSign(self) -> Optional[int]: + if "PrimaryPositionerIncrementSign" in self._dataset: + return self._dataset.PrimaryPositionerIncrementSign + return None + + @PrimaryPositionerIncrementSign.setter + def PrimaryPositionerIncrementSign(self, value: Optional[int]): + if value is None: + if "PrimaryPositionerIncrementSign" in self._dataset: + del self._dataset.PrimaryPositionerIncrementSign + else: + self._dataset.PrimaryPositionerIncrementSign = value + + @property + def SecondaryPositionerIncrementSign(self) -> Optional[int]: + if "SecondaryPositionerIncrementSign" in self._dataset: + return self._dataset.SecondaryPositionerIncrementSign + return None + + @SecondaryPositionerIncrementSign.setter + def SecondaryPositionerIncrementSign(self, value: Optional[int]): + if value is None: + if "SecondaryPositionerIncrementSign" in self._dataset: + del self._dataset.SecondaryPositionerIncrementSign + else: + self._dataset.SecondaryPositionerIncrementSign = value + + @property + def PerProjectionAcquisitionSequence(self) -> Optional[List[PerProjectionAcquisitionSequenceItem]]: + if "PerProjectionAcquisitionSequence" in self._dataset: + if len(self._PerProjectionAcquisitionSequence) == len(self._dataset.PerProjectionAcquisitionSequence): + return self._PerProjectionAcquisitionSequence + else: + return [PerProjectionAcquisitionSequenceItem(x) for x in self._dataset.PerProjectionAcquisitionSequence] + return None + + @PerProjectionAcquisitionSequence.setter + def PerProjectionAcquisitionSequence(self, value: Optional[List[PerProjectionAcquisitionSequenceItem]]): + if value is None: + self._PerProjectionAcquisitionSequence = [] + if "PerProjectionAcquisitionSequence" in self._dataset: + del self._dataset.PerProjectionAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, PerProjectionAcquisitionSequenceItem) for item in value): + raise ValueError("PerProjectionAcquisitionSequence must be a list of PerProjectionAcquisitionSequenceItem objects") + else: + self._PerProjectionAcquisitionSequence = value + if "PerProjectionAcquisitionSequence" not in self._dataset: + self._dataset.PerProjectionAcquisitionSequence = pydicom.Sequence() + self._dataset.PerProjectionAcquisitionSequence.clear() + self._dataset.PerProjectionAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_PerProjectionAcquisition(self, item: PerProjectionAcquisitionSequenceItem): + if not isinstance(item, PerProjectionAcquisitionSequenceItem): + raise ValueError("Item must be an instance of PerProjectionAcquisitionSequenceItem") + self._PerProjectionAcquisitionSequence.append(item) + if "PerProjectionAcquisitionSequence" not in self._dataset: + self._dataset.PerProjectionAcquisitionSequence = pydicom.Sequence() + self._dataset.PerProjectionAcquisitionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_1.py b/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_1.py new file mode 100644 index 0000000..f78bdb4 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_1.py @@ -0,0 +1,761 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .per_projection_acquisition_sequence_item import ( + PerProjectionAcquisitionSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem + + +class XRay3DAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._PerProjectionAcquisitionSequence: List[PerProjectionAcquisitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def XRayReceptorType(self) -> Optional[str]: + if "XRayReceptorType" in self._dataset: + return self._dataset.XRayReceptorType + return None + + @XRayReceptorType.setter + def XRayReceptorType(self, value: Optional[str]): + if value is None: + if "XRayReceptorType" in self._dataset: + del self._dataset.XRayReceptorType + else: + self._dataset.XRayReceptorType = value + + @property + def FieldOfViewDimensionsInFloat(self) -> Optional[List[float]]: + if "FieldOfViewDimensionsInFloat" in self._dataset: + return self._dataset.FieldOfViewDimensionsInFloat + return None + + @FieldOfViewDimensionsInFloat.setter + def FieldOfViewDimensionsInFloat(self, value: Optional[List[float]]): + if value is None: + if "FieldOfViewDimensionsInFloat" in self._dataset: + del self._dataset.FieldOfViewDimensionsInFloat + else: + self._dataset.FieldOfViewDimensionsInFloat = value + + @property + def StartAcquisitionDateTime(self) -> Optional[str]: + if "StartAcquisitionDateTime" in self._dataset: + return self._dataset.StartAcquisitionDateTime + return None + + @StartAcquisitionDateTime.setter + def StartAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "StartAcquisitionDateTime" in self._dataset: + del self._dataset.StartAcquisitionDateTime + else: + self._dataset.StartAcquisitionDateTime = value + + @property + def EndAcquisitionDateTime(self) -> Optional[str]: + if "EndAcquisitionDateTime" in self._dataset: + return self._dataset.EndAcquisitionDateTime + return None + + @EndAcquisitionDateTime.setter + def EndAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "EndAcquisitionDateTime" in self._dataset: + del self._dataset.EndAcquisitionDateTime + else: + self._dataset.EndAcquisitionDateTime = value + + @property + def PerProjectionAcquisitionSequence(self) -> Optional[List[PerProjectionAcquisitionSequenceItem]]: + if "PerProjectionAcquisitionSequence" in self._dataset: + if len(self._PerProjectionAcquisitionSequence) == len(self._dataset.PerProjectionAcquisitionSequence): + return self._PerProjectionAcquisitionSequence + else: + return [PerProjectionAcquisitionSequenceItem(x) for x in self._dataset.PerProjectionAcquisitionSequence] + return None + + @PerProjectionAcquisitionSequence.setter + def PerProjectionAcquisitionSequence(self, value: Optional[List[PerProjectionAcquisitionSequenceItem]]): + if value is None: + self._PerProjectionAcquisitionSequence = [] + if "PerProjectionAcquisitionSequence" in self._dataset: + del self._dataset.PerProjectionAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, PerProjectionAcquisitionSequenceItem) for item in value): + raise ValueError("PerProjectionAcquisitionSequence must be a list of PerProjectionAcquisitionSequenceItem objects") + else: + self._PerProjectionAcquisitionSequence = value + if "PerProjectionAcquisitionSequence" not in self._dataset: + self._dataset.PerProjectionAcquisitionSequence = pydicom.Sequence() + self._dataset.PerProjectionAcquisitionSequence.clear() + self._dataset.PerProjectionAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_PerProjectionAcquisition(self, item: PerProjectionAcquisitionSequenceItem): + if not isinstance(item, PerProjectionAcquisitionSequenceItem): + raise ValueError("Item must be an instance of PerProjectionAcquisitionSequenceItem") + self._PerProjectionAcquisitionSequence.append(item) + if "PerProjectionAcquisitionSequence" not in self._dataset: + self._dataset.PerProjectionAcquisitionSequence = pydicom.Sequence() + self._dataset.PerProjectionAcquisitionSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_2.py b/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_2.py new file mode 100644 index 0000000..373963c --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3_d_acquisition_sequence_item_2.py @@ -0,0 +1,873 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .per_projection_acquisition_sequence_item import ( + PerProjectionAcquisitionSequenceItem, +) +from .source_image_sequence_item import SourceImageSequenceItem + + +class XRay3DAcquisitionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._PerProjectionAcquisitionSequence: List[PerProjectionAcquisitionSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def GridID(self) -> Optional[str]: + if "GridID" in self._dataset: + return self._dataset.GridID + return None + + @GridID.setter + def GridID(self, value: Optional[str]): + if value is None: + if "GridID" in self._dataset: + del self._dataset.GridID + else: + self._dataset.GridID = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def EstimatedRadiographicMagnificationFactor(self) -> Optional[Decimal]: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + return self._dataset.EstimatedRadiographicMagnificationFactor + return None + + @EstimatedRadiographicMagnificationFactor.setter + def EstimatedRadiographicMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + del self._dataset.EstimatedRadiographicMagnificationFactor + else: + self._dataset.EstimatedRadiographicMagnificationFactor = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AnodeTargetMaterial(self) -> Optional[str]: + if "AnodeTargetMaterial" in self._dataset: + return self._dataset.AnodeTargetMaterial + return None + + @AnodeTargetMaterial.setter + def AnodeTargetMaterial(self, value: Optional[str]): + if value is None: + if "AnodeTargetMaterial" in self._dataset: + del self._dataset.AnodeTargetMaterial + else: + self._dataset.AnodeTargetMaterial = value + + @property + def BodyPartThickness(self) -> Optional[Decimal]: + if "BodyPartThickness" in self._dataset: + return self._dataset.BodyPartThickness + return None + + @BodyPartThickness.setter + def BodyPartThickness(self, value: Optional[Decimal]): + if value is None: + if "BodyPartThickness" in self._dataset: + del self._dataset.BodyPartThickness + else: + self._dataset.BodyPartThickness = value + + @property + def CompressionForce(self) -> Optional[Decimal]: + if "CompressionForce" in self._dataset: + return self._dataset.CompressionForce + return None + + @CompressionForce.setter + def CompressionForce(self, value: Optional[Decimal]): + if value is None: + if "CompressionForce" in self._dataset: + del self._dataset.CompressionForce + else: + self._dataset.CompressionForce = value + + @property + def CompressionPressure(self) -> Optional[Decimal]: + if "CompressionPressure" in self._dataset: + return self._dataset.CompressionPressure + return None + + @CompressionPressure.setter + def CompressionPressure(self, value: Optional[Decimal]): + if value is None: + if "CompressionPressure" in self._dataset: + del self._dataset.CompressionPressure + else: + self._dataset.CompressionPressure = value + + @property + def PaddleDescription(self) -> Optional[str]: + if "PaddleDescription" in self._dataset: + return self._dataset.PaddleDescription + return None + + @PaddleDescription.setter + def PaddleDescription(self, value: Optional[str]): + if value is None: + if "PaddleDescription" in self._dataset: + del self._dataset.PaddleDescription + else: + self._dataset.PaddleDescription = value + + @property + def CompressionContactArea(self) -> Optional[Decimal]: + if "CompressionContactArea" in self._dataset: + return self._dataset.CompressionContactArea + return None + + @CompressionContactArea.setter + def CompressionContactArea(self, value: Optional[Decimal]): + if value is None: + if "CompressionContactArea" in self._dataset: + del self._dataset.CompressionContactArea + else: + self._dataset.CompressionContactArea = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def GridAbsorbingMaterial(self) -> Optional[str]: + if "GridAbsorbingMaterial" in self._dataset: + return self._dataset.GridAbsorbingMaterial + return None + + @GridAbsorbingMaterial.setter + def GridAbsorbingMaterial(self, value: Optional[str]): + if value is None: + if "GridAbsorbingMaterial" in self._dataset: + del self._dataset.GridAbsorbingMaterial + else: + self._dataset.GridAbsorbingMaterial = value + + @property + def GridSpacingMaterial(self) -> Optional[str]: + if "GridSpacingMaterial" in self._dataset: + return self._dataset.GridSpacingMaterial + return None + + @GridSpacingMaterial.setter + def GridSpacingMaterial(self, value: Optional[str]): + if value is None: + if "GridSpacingMaterial" in self._dataset: + del self._dataset.GridSpacingMaterial + else: + self._dataset.GridSpacingMaterial = value + + @property + def GridThickness(self) -> Optional[Decimal]: + if "GridThickness" in self._dataset: + return self._dataset.GridThickness + return None + + @GridThickness.setter + def GridThickness(self, value: Optional[Decimal]): + if value is None: + if "GridThickness" in self._dataset: + del self._dataset.GridThickness + else: + self._dataset.GridThickness = value + + @property + def GridPitch(self) -> Optional[Decimal]: + if "GridPitch" in self._dataset: + return self._dataset.GridPitch + return None + + @GridPitch.setter + def GridPitch(self, value: Optional[Decimal]): + if value is None: + if "GridPitch" in self._dataset: + del self._dataset.GridPitch + else: + self._dataset.GridPitch = value + + @property + def GridAspectRatio(self) -> Optional[List[int]]: + if "GridAspectRatio" in self._dataset: + return self._dataset.GridAspectRatio + return None + + @GridAspectRatio.setter + def GridAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "GridAspectRatio" in self._dataset: + del self._dataset.GridAspectRatio + else: + self._dataset.GridAspectRatio = value + + @property + def GridPeriod(self) -> Optional[Decimal]: + if "GridPeriod" in self._dataset: + return self._dataset.GridPeriod + return None + + @GridPeriod.setter + def GridPeriod(self, value: Optional[Decimal]): + if value is None: + if "GridPeriod" in self._dataset: + del self._dataset.GridPeriod + else: + self._dataset.GridPeriod = value + + @property + def GridFocalDistance(self) -> Optional[Decimal]: + if "GridFocalDistance" in self._dataset: + return self._dataset.GridFocalDistance + return None + + @GridFocalDistance.setter + def GridFocalDistance(self, value: Optional[Decimal]): + if value is None: + if "GridFocalDistance" in self._dataset: + del self._dataset.GridFocalDistance + else: + self._dataset.GridFocalDistance = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value + + @property + def ExposureControlMode(self) -> Optional[str]: + if "ExposureControlMode" in self._dataset: + return self._dataset.ExposureControlMode + return None + + @ExposureControlMode.setter + def ExposureControlMode(self, value: Optional[str]): + if value is None: + if "ExposureControlMode" in self._dataset: + del self._dataset.ExposureControlMode + else: + self._dataset.ExposureControlMode = value + + @property + def ExposureControlModeDescription(self) -> Optional[str]: + if "ExposureControlModeDescription" in self._dataset: + return self._dataset.ExposureControlModeDescription + return None + + @ExposureControlModeDescription.setter + def ExposureControlModeDescription(self, value: Optional[str]): + if value is None: + if "ExposureControlModeDescription" in self._dataset: + del self._dataset.ExposureControlModeDescription + else: + self._dataset.ExposureControlModeDescription = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def XRayReceptorType(self) -> Optional[str]: + if "XRayReceptorType" in self._dataset: + return self._dataset.XRayReceptorType + return None + + @XRayReceptorType.setter + def XRayReceptorType(self, value: Optional[str]): + if value is None: + if "XRayReceptorType" in self._dataset: + del self._dataset.XRayReceptorType + else: + self._dataset.XRayReceptorType = value + + @property + def FieldOfViewDimensionsInFloat(self) -> Optional[List[float]]: + if "FieldOfViewDimensionsInFloat" in self._dataset: + return self._dataset.FieldOfViewDimensionsInFloat + return None + + @FieldOfViewDimensionsInFloat.setter + def FieldOfViewDimensionsInFloat(self, value: Optional[List[float]]): + if value is None: + if "FieldOfViewDimensionsInFloat" in self._dataset: + del self._dataset.FieldOfViewDimensionsInFloat + else: + self._dataset.FieldOfViewDimensionsInFloat = value + + @property + def PrimaryPositionerScanArc(self) -> Optional[float]: + if "PrimaryPositionerScanArc" in self._dataset: + return self._dataset.PrimaryPositionerScanArc + return None + + @PrimaryPositionerScanArc.setter + def PrimaryPositionerScanArc(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerScanArc" in self._dataset: + del self._dataset.PrimaryPositionerScanArc + else: + self._dataset.PrimaryPositionerScanArc = value + + @property + def SecondaryPositionerScanArc(self) -> Optional[float]: + if "SecondaryPositionerScanArc" in self._dataset: + return self._dataset.SecondaryPositionerScanArc + return None + + @SecondaryPositionerScanArc.setter + def SecondaryPositionerScanArc(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerScanArc" in self._dataset: + del self._dataset.SecondaryPositionerScanArc + else: + self._dataset.SecondaryPositionerScanArc = value + + @property + def PrimaryPositionerScanStartAngle(self) -> Optional[float]: + if "PrimaryPositionerScanStartAngle" in self._dataset: + return self._dataset.PrimaryPositionerScanStartAngle + return None + + @PrimaryPositionerScanStartAngle.setter + def PrimaryPositionerScanStartAngle(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerScanStartAngle" in self._dataset: + del self._dataset.PrimaryPositionerScanStartAngle + else: + self._dataset.PrimaryPositionerScanStartAngle = value + + @property + def SecondaryPositionerScanStartAngle(self) -> Optional[float]: + if "SecondaryPositionerScanStartAngle" in self._dataset: + return self._dataset.SecondaryPositionerScanStartAngle + return None + + @SecondaryPositionerScanStartAngle.setter + def SecondaryPositionerScanStartAngle(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerScanStartAngle" in self._dataset: + del self._dataset.SecondaryPositionerScanStartAngle + else: + self._dataset.SecondaryPositionerScanStartAngle = value + + @property + def PrimaryPositionerIncrement(self) -> Optional[float]: + if "PrimaryPositionerIncrement" in self._dataset: + return self._dataset.PrimaryPositionerIncrement + return None + + @PrimaryPositionerIncrement.setter + def PrimaryPositionerIncrement(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerIncrement" in self._dataset: + del self._dataset.PrimaryPositionerIncrement + else: + self._dataset.PrimaryPositionerIncrement = value + + @property + def SecondaryPositionerIncrement(self) -> Optional[float]: + if "SecondaryPositionerIncrement" in self._dataset: + return self._dataset.SecondaryPositionerIncrement + return None + + @SecondaryPositionerIncrement.setter + def SecondaryPositionerIncrement(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerIncrement" in self._dataset: + del self._dataset.SecondaryPositionerIncrement + else: + self._dataset.SecondaryPositionerIncrement = value + + @property + def StartAcquisitionDateTime(self) -> Optional[str]: + if "StartAcquisitionDateTime" in self._dataset: + return self._dataset.StartAcquisitionDateTime + return None + + @StartAcquisitionDateTime.setter + def StartAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "StartAcquisitionDateTime" in self._dataset: + del self._dataset.StartAcquisitionDateTime + else: + self._dataset.StartAcquisitionDateTime = value + + @property + def EndAcquisitionDateTime(self) -> Optional[str]: + if "EndAcquisitionDateTime" in self._dataset: + return self._dataset.EndAcquisitionDateTime + return None + + @EndAcquisitionDateTime.setter + def EndAcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "EndAcquisitionDateTime" in self._dataset: + del self._dataset.EndAcquisitionDateTime + else: + self._dataset.EndAcquisitionDateTime = value + + @property + def PrimaryPositionerIncrementSign(self) -> Optional[int]: + if "PrimaryPositionerIncrementSign" in self._dataset: + return self._dataset.PrimaryPositionerIncrementSign + return None + + @PrimaryPositionerIncrementSign.setter + def PrimaryPositionerIncrementSign(self, value: Optional[int]): + if value is None: + if "PrimaryPositionerIncrementSign" in self._dataset: + del self._dataset.PrimaryPositionerIncrementSign + else: + self._dataset.PrimaryPositionerIncrementSign = value + + @property + def SecondaryPositionerIncrementSign(self) -> Optional[int]: + if "SecondaryPositionerIncrementSign" in self._dataset: + return self._dataset.SecondaryPositionerIncrementSign + return None + + @SecondaryPositionerIncrementSign.setter + def SecondaryPositionerIncrementSign(self, value: Optional[int]): + if value is None: + if "SecondaryPositionerIncrementSign" in self._dataset: + del self._dataset.SecondaryPositionerIncrementSign + else: + self._dataset.SecondaryPositionerIncrementSign = value + + @property + def PerProjectionAcquisitionSequence(self) -> Optional[List[PerProjectionAcquisitionSequenceItem]]: + if "PerProjectionAcquisitionSequence" in self._dataset: + if len(self._PerProjectionAcquisitionSequence) == len(self._dataset.PerProjectionAcquisitionSequence): + return self._PerProjectionAcquisitionSequence + else: + return [PerProjectionAcquisitionSequenceItem(x) for x in self._dataset.PerProjectionAcquisitionSequence] + return None + + @PerProjectionAcquisitionSequence.setter + def PerProjectionAcquisitionSequence(self, value: Optional[List[PerProjectionAcquisitionSequenceItem]]): + if value is None: + self._PerProjectionAcquisitionSequence = [] + if "PerProjectionAcquisitionSequence" in self._dataset: + del self._dataset.PerProjectionAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, PerProjectionAcquisitionSequenceItem) for item in value): + raise ValueError("PerProjectionAcquisitionSequence must be a list of PerProjectionAcquisitionSequenceItem objects") + else: + self._PerProjectionAcquisitionSequence = value + if "PerProjectionAcquisitionSequence" not in self._dataset: + self._dataset.PerProjectionAcquisitionSequence = pydicom.Sequence() + self._dataset.PerProjectionAcquisitionSequence.clear() + self._dataset.PerProjectionAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_PerProjectionAcquisition(self, item: PerProjectionAcquisitionSequenceItem): + if not isinstance(item, PerProjectionAcquisitionSequenceItem): + raise ValueError("Item must be an instance of PerProjectionAcquisitionSequenceItem") + self._PerProjectionAcquisitionSequence.append(item) + if "PerProjectionAcquisitionSequence" not in self._dataset: + self._dataset.PerProjectionAcquisitionSequence = pydicom.Sequence() + self._dataset.PerProjectionAcquisitionSequence.append(item.to_dataset()) + + @property + def HalfValueLayer(self) -> Optional[Decimal]: + if "HalfValueLayer" in self._dataset: + return self._dataset.HalfValueLayer + return None + + @HalfValueLayer.setter + def HalfValueLayer(self, value: Optional[Decimal]): + if value is None: + if "HalfValueLayer" in self._dataset: + del self._dataset.HalfValueLayer + else: + self._dataset.HalfValueLayer = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value diff --git a/tdwii_plus_examples/domain_model/x_ray3_d_frame_type_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray3_d_frame_type_sequence_item.py new file mode 100644 index 0000000..4cc6ad7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3_d_frame_type_sequence_item.py @@ -0,0 +1,81 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRay3DFrameTypeSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FrameType(self) -> Optional[List[str]]: + if "FrameType" in self._dataset: + return self._dataset.FrameType + return None + + @FrameType.setter + def FrameType(self, value: Optional[List[str]]): + if value is None: + if "FrameType" in self._dataset: + del self._dataset.FrameType + else: + self._dataset.FrameType = value + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ReconstructionIndex(self) -> Optional[int]: + if "ReconstructionIndex" in self._dataset: + return self._dataset.ReconstructionIndex + return None + + @ReconstructionIndex.setter + def ReconstructionIndex(self, value: Optional[int]): + if value is None: + if "ReconstructionIndex" in self._dataset: + del self._dataset.ReconstructionIndex + else: + self._dataset.ReconstructionIndex = value diff --git a/tdwii_plus_examples/domain_model/x_ray3_d_reconstruction_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray3_d_reconstruction_sequence_item.py new file mode 100644 index 0000000..bcffe8d --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3_d_reconstruction_sequence_item.py @@ -0,0 +1,109 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRay3DReconstructionSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ApplicationName(self) -> Optional[str]: + if "ApplicationName" in self._dataset: + return self._dataset.ApplicationName + return None + + @ApplicationName.setter + def ApplicationName(self, value: Optional[str]): + if value is None: + if "ApplicationName" in self._dataset: + del self._dataset.ApplicationName + else: + self._dataset.ApplicationName = value + + @property + def ApplicationVersion(self) -> Optional[str]: + if "ApplicationVersion" in self._dataset: + return self._dataset.ApplicationVersion + return None + + @ApplicationVersion.setter + def ApplicationVersion(self, value: Optional[str]): + if value is None: + if "ApplicationVersion" in self._dataset: + del self._dataset.ApplicationVersion + else: + self._dataset.ApplicationVersion = value + + @property + def ApplicationManufacturer(self) -> Optional[str]: + if "ApplicationManufacturer" in self._dataset: + return self._dataset.ApplicationManufacturer + return None + + @ApplicationManufacturer.setter + def ApplicationManufacturer(self, value: Optional[str]): + if value is None: + if "ApplicationManufacturer" in self._dataset: + del self._dataset.ApplicationManufacturer + else: + self._dataset.ApplicationManufacturer = value + + @property + def AlgorithmType(self) -> Optional[str]: + if "AlgorithmType" in self._dataset: + return self._dataset.AlgorithmType + return None + + @AlgorithmType.setter + def AlgorithmType(self, value: Optional[str]): + if value is None: + if "AlgorithmType" in self._dataset: + del self._dataset.AlgorithmType + else: + self._dataset.AlgorithmType = value + + @property + def AlgorithmDescription(self) -> Optional[str]: + if "AlgorithmDescription" in self._dataset: + return self._dataset.AlgorithmDescription + return None + + @AlgorithmDescription.setter + def AlgorithmDescription(self, value: Optional[str]): + if value is None: + if "AlgorithmDescription" in self._dataset: + del self._dataset.AlgorithmDescription + else: + self._dataset.AlgorithmDescription = value + + @property + def ReconstructionDescription(self) -> Optional[str]: + if "ReconstructionDescription" in self._dataset: + return self._dataset.ReconstructionDescription + return None + + @ReconstructionDescription.setter + def ReconstructionDescription(self, value: Optional[str]): + if value is None: + if "ReconstructionDescription" in self._dataset: + del self._dataset.ReconstructionDescription + else: + self._dataset.ReconstructionDescription = value + + @property + def AcquisitionIndex(self) -> Optional[List[int]]: + if "AcquisitionIndex" in self._dataset: + return self._dataset.AcquisitionIndex + return None + + @AcquisitionIndex.setter + def AcquisitionIndex(self, value: Optional[List[int]]): + if value is None: + if "AcquisitionIndex" in self._dataset: + del self._dataset.AcquisitionIndex + else: + self._dataset.AcquisitionIndex = value diff --git a/tdwii_plus_examples/domain_model/x_ray3d_angiographic_image.py b/tdwii_plus_examples/domain_model/x_ray3d_angiographic_image.py new file mode 100644 index 0000000..6e0f8b8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3d_angiographic_image.py @@ -0,0 +1,6075 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .contributing_sources_sequence_item import ContributingSourcesSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_irradiation_event_sequence_item import SourceIrradiationEventSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .x_ray3_d_acquisition_sequence_item import XRay3DAcquisitionSequenceItem +from .x_ray3_d_reconstruction_sequence_item import XRay3DReconstructionSequenceItem + + +class XRay3dAngiographicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._XRay3DReconstructionSequence: List[XRay3DReconstructionSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._XRay3DAcquisitionSequence: List[XRay3DAcquisitionSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._SourceIrradiationEventSequence: List[SourceIrradiationEventSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._ContributingSourcesSequence: List[ContributingSourcesSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RespiratoryMotionCompensationTechnique(self) -> Optional[str]: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + return self._dataset.RespiratoryMotionCompensationTechnique + return None + + @RespiratoryMotionCompensationTechnique.setter + def RespiratoryMotionCompensationTechnique(self, value: Optional[str]): + if value is None: + if "RespiratoryMotionCompensationTechnique" in self._dataset: + del self._dataset.RespiratoryMotionCompensationTechnique + else: + self._dataset.RespiratoryMotionCompensationTechnique = value + + @property + def RespiratorySignalSource(self) -> Optional[str]: + if "RespiratorySignalSource" in self._dataset: + return self._dataset.RespiratorySignalSource + return None + + @RespiratorySignalSource.setter + def RespiratorySignalSource(self, value: Optional[str]): + if value is None: + if "RespiratorySignalSource" in self._dataset: + del self._dataset.RespiratorySignalSource + else: + self._dataset.RespiratorySignalSource = value + + @property + def RespiratoryTriggerType(self) -> Optional[str]: + if "RespiratoryTriggerType" in self._dataset: + return self._dataset.RespiratoryTriggerType + return None + + @RespiratoryTriggerType.setter + def RespiratoryTriggerType(self, value: Optional[str]): + if value is None: + if "RespiratoryTriggerType" in self._dataset: + del self._dataset.RespiratoryTriggerType + else: + self._dataset.RespiratoryTriggerType = value + + @property + def RespiratoryTriggerDelayThreshold(self) -> Optional[float]: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + return self._dataset.RespiratoryTriggerDelayThreshold + return None + + @RespiratoryTriggerDelayThreshold.setter + def RespiratoryTriggerDelayThreshold(self, value: Optional[float]): + if value is None: + if "RespiratoryTriggerDelayThreshold" in self._dataset: + del self._dataset.RespiratoryTriggerDelayThreshold + else: + self._dataset.RespiratoryTriggerDelayThreshold = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def XRay3DReconstructionSequence(self) -> Optional[List[XRay3DReconstructionSequenceItem]]: + if "XRay3DReconstructionSequence" in self._dataset: + if len(self._XRay3DReconstructionSequence) == len(self._dataset.XRay3DReconstructionSequence): + return self._XRay3DReconstructionSequence + else: + return [XRay3DReconstructionSequenceItem(x) for x in self._dataset.XRay3DReconstructionSequence] + return None + + @XRay3DReconstructionSequence.setter + def XRay3DReconstructionSequence(self, value: Optional[List[XRay3DReconstructionSequenceItem]]): + if value is None: + self._XRay3DReconstructionSequence = [] + if "XRay3DReconstructionSequence" in self._dataset: + del self._dataset.XRay3DReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DReconstructionSequenceItem) for item in value): + raise ValueError("XRay3DReconstructionSequence must be a list of XRay3DReconstructionSequenceItem objects") + else: + self._XRay3DReconstructionSequence = value + if "XRay3DReconstructionSequence" not in self._dataset: + self._dataset.XRay3DReconstructionSequence = pydicom.Sequence() + self._dataset.XRay3DReconstructionSequence.clear() + self._dataset.XRay3DReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DReconstruction(self, item: XRay3DReconstructionSequenceItem): + if not isinstance(item, XRay3DReconstructionSequenceItem): + raise ValueError("Item must be an instance of XRay3DReconstructionSequenceItem") + self._XRay3DReconstructionSequence.append(item) + if "XRay3DReconstructionSequence" not in self._dataset: + self._dataset.XRay3DReconstructionSequence = pydicom.Sequence() + self._dataset.XRay3DReconstructionSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageToEquipmentMappingMatrix(self) -> Optional[List[Decimal]]: + if "ImageToEquipmentMappingMatrix" in self._dataset: + return self._dataset.ImageToEquipmentMappingMatrix + return None + + @ImageToEquipmentMappingMatrix.setter + def ImageToEquipmentMappingMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageToEquipmentMappingMatrix" in self._dataset: + del self._dataset.ImageToEquipmentMappingMatrix + else: + self._dataset.ImageToEquipmentMappingMatrix = value + + @property + def EquipmentCoordinateSystemIdentification(self) -> Optional[str]: + if "EquipmentCoordinateSystemIdentification" in self._dataset: + return self._dataset.EquipmentCoordinateSystemIdentification + return None + + @EquipmentCoordinateSystemIdentification.setter + def EquipmentCoordinateSystemIdentification(self, value: Optional[str]): + if value is None: + if "EquipmentCoordinateSystemIdentification" in self._dataset: + del self._dataset.EquipmentCoordinateSystemIdentification + else: + self._dataset.EquipmentCoordinateSystemIdentification = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def XRay3DAcquisitionSequence(self) -> Optional[List[XRay3DAcquisitionSequenceItem]]: + if "XRay3DAcquisitionSequence" in self._dataset: + if len(self._XRay3DAcquisitionSequence) == len(self._dataset.XRay3DAcquisitionSequence): + return self._XRay3DAcquisitionSequence + else: + return [XRay3DAcquisitionSequenceItem(x) for x in self._dataset.XRay3DAcquisitionSequence] + return None + + @XRay3DAcquisitionSequence.setter + def XRay3DAcquisitionSequence(self, value: Optional[List[XRay3DAcquisitionSequenceItem]]): + if value is None: + self._XRay3DAcquisitionSequence = [] + if "XRay3DAcquisitionSequence" in self._dataset: + del self._dataset.XRay3DAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DAcquisitionSequenceItem) for item in value): + raise ValueError("XRay3DAcquisitionSequence must be a list of XRay3DAcquisitionSequenceItem objects") + else: + self._XRay3DAcquisitionSequence = value + if "XRay3DAcquisitionSequence" not in self._dataset: + self._dataset.XRay3DAcquisitionSequence = pydicom.Sequence() + self._dataset.XRay3DAcquisitionSequence.clear() + self._dataset.XRay3DAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DAcquisition(self, item: XRay3DAcquisitionSequenceItem): + if not isinstance(item, XRay3DAcquisitionSequenceItem): + raise ValueError("Item must be an instance of XRay3DAcquisitionSequenceItem") + self._XRay3DAcquisitionSequence.append(item) + if "XRay3DAcquisitionSequence" not in self._dataset: + self._dataset.XRay3DAcquisitionSequence = pydicom.Sequence() + self._dataset.XRay3DAcquisitionSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def SourceIrradiationEventSequence(self) -> Optional[List[SourceIrradiationEventSequenceItem]]: + if "SourceIrradiationEventSequence" in self._dataset: + if len(self._SourceIrradiationEventSequence) == len(self._dataset.SourceIrradiationEventSequence): + return self._SourceIrradiationEventSequence + else: + return [SourceIrradiationEventSequenceItem(x) for x in self._dataset.SourceIrradiationEventSequence] + return None + + @SourceIrradiationEventSequence.setter + def SourceIrradiationEventSequence(self, value: Optional[List[SourceIrradiationEventSequenceItem]]): + if value is None: + self._SourceIrradiationEventSequence = [] + if "SourceIrradiationEventSequence" in self._dataset: + del self._dataset.SourceIrradiationEventSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceIrradiationEventSequenceItem) for item in value): + raise ValueError("SourceIrradiationEventSequence must be a list of SourceIrradiationEventSequenceItem objects") + else: + self._SourceIrradiationEventSequence = value + if "SourceIrradiationEventSequence" not in self._dataset: + self._dataset.SourceIrradiationEventSequence = pydicom.Sequence() + self._dataset.SourceIrradiationEventSequence.clear() + self._dataset.SourceIrradiationEventSequence.extend([item.to_dataset() for item in value]) + + def add_SourceIrradiationEvent(self, item: SourceIrradiationEventSequenceItem): + if not isinstance(item, SourceIrradiationEventSequenceItem): + raise ValueError("Item must be an instance of SourceIrradiationEventSequenceItem") + self._SourceIrradiationEventSequence.append(item) + if "SourceIrradiationEventSequence" not in self._dataset: + self._dataset.SourceIrradiationEventSequence = pydicom.Sequence() + self._dataset.SourceIrradiationEventSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def ContributingSourcesSequence(self) -> Optional[List[ContributingSourcesSequenceItem]]: + if "ContributingSourcesSequence" in self._dataset: + if len(self._ContributingSourcesSequence) == len(self._dataset.ContributingSourcesSequence): + return self._ContributingSourcesSequence + else: + return [ContributingSourcesSequenceItem(x) for x in self._dataset.ContributingSourcesSequence] + return None + + @ContributingSourcesSequence.setter + def ContributingSourcesSequence(self, value: Optional[List[ContributingSourcesSequenceItem]]): + if value is None: + self._ContributingSourcesSequence = [] + if "ContributingSourcesSequence" in self._dataset: + del self._dataset.ContributingSourcesSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingSourcesSequenceItem) for item in value): + raise ValueError("ContributingSourcesSequence must be a list of ContributingSourcesSequenceItem objects") + else: + self._ContributingSourcesSequence = value + if "ContributingSourcesSequence" not in self._dataset: + self._dataset.ContributingSourcesSequence = pydicom.Sequence() + self._dataset.ContributingSourcesSequence.clear() + self._dataset.ContributingSourcesSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingSources(self, item: ContributingSourcesSequenceItem): + if not isinstance(item, ContributingSourcesSequenceItem): + raise ValueError("Item must be an instance of ContributingSourcesSequenceItem") + self._ContributingSourcesSequence.append(item) + if "ContributingSourcesSequence" not in self._dataset: + self._dataset.ContributingSourcesSequence = pydicom.Sequence() + self._dataset.ContributingSourcesSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def CardiacFramingType(self) -> Optional[str]: + if "CardiacFramingType" in self._dataset: + return self._dataset.CardiacFramingType + return None + + @CardiacFramingType.setter + def CardiacFramingType(self, value: Optional[str]): + if value is None: + if "CardiacFramingType" in self._dataset: + del self._dataset.CardiacFramingType + else: + self._dataset.CardiacFramingType = value + + @property + def LowRRValue(self) -> Optional[int]: + if "LowRRValue" in self._dataset: + return self._dataset.LowRRValue + return None + + @LowRRValue.setter + def LowRRValue(self, value: Optional[int]): + if value is None: + if "LowRRValue" in self._dataset: + del self._dataset.LowRRValue + else: + self._dataset.LowRRValue = value + + @property + def HighRRValue(self) -> Optional[int]: + if "HighRRValue" in self._dataset: + return self._dataset.HighRRValue + return None + + @HighRRValue.setter + def HighRRValue(self, value: Optional[int]): + if value is None: + if "HighRRValue" in self._dataset: + del self._dataset.HighRRValue + else: + self._dataset.HighRRValue = value + + @property + def IntervalsAcquired(self) -> Optional[int]: + if "IntervalsAcquired" in self._dataset: + return self._dataset.IntervalsAcquired + return None + + @IntervalsAcquired.setter + def IntervalsAcquired(self, value: Optional[int]): + if value is None: + if "IntervalsAcquired" in self._dataset: + del self._dataset.IntervalsAcquired + else: + self._dataset.IntervalsAcquired = value + + @property + def IntervalsRejected(self) -> Optional[int]: + if "IntervalsRejected" in self._dataset: + return self._dataset.IntervalsRejected + return None + + @IntervalsRejected.setter + def IntervalsRejected(self, value: Optional[int]): + if value is None: + if "IntervalsRejected" in self._dataset: + del self._dataset.IntervalsRejected + else: + self._dataset.IntervalsRejected = value + + @property + def SkipBeats(self) -> Optional[int]: + if "SkipBeats" in self._dataset: + return self._dataset.SkipBeats + return None + + @SkipBeats.setter + def SkipBeats(self, value: Optional[int]): + if value is None: + if "SkipBeats" in self._dataset: + del self._dataset.SkipBeats + else: + self._dataset.SkipBeats = value + + @property + def CardiacSynchronizationTechnique(self) -> Optional[str]: + if "CardiacSynchronizationTechnique" in self._dataset: + return self._dataset.CardiacSynchronizationTechnique + return None + + @CardiacSynchronizationTechnique.setter + def CardiacSynchronizationTechnique(self, value: Optional[str]): + if value is None: + if "CardiacSynchronizationTechnique" in self._dataset: + del self._dataset.CardiacSynchronizationTechnique + else: + self._dataset.CardiacSynchronizationTechnique = value + + @property + def CardiacRRIntervalSpecified(self) -> Optional[float]: + if "CardiacRRIntervalSpecified" in self._dataset: + return self._dataset.CardiacRRIntervalSpecified + return None + + @CardiacRRIntervalSpecified.setter + def CardiacRRIntervalSpecified(self, value: Optional[float]): + if value is None: + if "CardiacRRIntervalSpecified" in self._dataset: + del self._dataset.CardiacRRIntervalSpecified + else: + self._dataset.CardiacRRIntervalSpecified = value + + @property + def CardiacSignalSource(self) -> Optional[str]: + if "CardiacSignalSource" in self._dataset: + return self._dataset.CardiacSignalSource + return None + + @CardiacSignalSource.setter + def CardiacSignalSource(self, value: Optional[str]): + if value is None: + if "CardiacSignalSource" in self._dataset: + del self._dataset.CardiacSignalSource + else: + self._dataset.CardiacSignalSource = value + + @property + def CardiacBeatRejectionTechnique(self) -> Optional[str]: + if "CardiacBeatRejectionTechnique" in self._dataset: + return self._dataset.CardiacBeatRejectionTechnique + return None + + @CardiacBeatRejectionTechnique.setter + def CardiacBeatRejectionTechnique(self, value: Optional[str]): + if value is None: + if "CardiacBeatRejectionTechnique" in self._dataset: + del self._dataset.CardiacBeatRejectionTechnique + else: + self._dataset.CardiacBeatRejectionTechnique = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/x_ray3d_craniofacial_image.py b/tdwii_plus_examples/domain_model/x_ray3d_craniofacial_image.py new file mode 100644 index 0000000..a8725b7 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray3d_craniofacial_image.py @@ -0,0 +1,5767 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_context_sequence_item import AcquisitionContextSequenceItem +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .contributing_sources_sequence_item import ContributingSourcesSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .dimension_index_sequence_item import DimensionIndexSequenceItem +from .dimension_organization_sequence_item import DimensionOrganizationSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .per_frame_functional_groups_sequence_item import ( + PerFrameFunctionalGroupsSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_evidence_sequence_item import ReferencedImageEvidenceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .shared_functional_groups_sequence_item import SharedFunctionalGroupsSequenceItem +from .source_irradiation_event_sequence_item import SourceIrradiationEventSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .x_ray3_d_acquisition_sequence_item import XRay3DAcquisitionSequenceItem +from .x_ray3_d_reconstruction_sequence_item import XRay3DReconstructionSequenceItem + + +class XRay3dCraniofacialImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._PatientOrientationCodeSequence: List[CodeSequenceItem] = [] + self._PatientGantryRelationshipCodeSequence: List[CodeSequenceItem] = [] + self._XRay3DReconstructionSequence: List[XRay3DReconstructionSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._XRay3DAcquisitionSequence: List[XRay3DAcquisitionSequenceItem] = [] + self._AcquisitionContextSequence: List[AcquisitionContextSequenceItem] = [] + self._DimensionOrganizationSequence: List[DimensionOrganizationSequenceItem] = [] + self._DimensionIndexSequence: List[DimensionIndexSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._ContributingSourcesSequence: List[ContributingSourcesSequenceItem] = [] + self._SharedFunctionalGroupsSequence: List[SharedFunctionalGroupsSequenceItem] = [] + self._PerFrameFunctionalGroupsSequence: List[PerFrameFunctionalGroupsSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._SourceIrradiationEventSequence: List[SourceIrradiationEventSequenceItem] = [] + self._ReferencedImageEvidenceSequence: List[ReferencedImageEvidenceSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def PatientOrientationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientOrientationCodeSequence" in self._dataset: + if len(self._PatientOrientationCodeSequence) == len(self._dataset.PatientOrientationCodeSequence): + return self._PatientOrientationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientOrientationCodeSequence] + return None + + @PatientOrientationCodeSequence.setter + def PatientOrientationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientOrientationCodeSequence = [] + if "PatientOrientationCodeSequence" in self._dataset: + del self._dataset.PatientOrientationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientOrientationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientOrientationCodeSequence = value + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.clear() + self._dataset.PatientOrientationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientOrientationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientOrientationCodeSequence.append(item) + if "PatientOrientationCodeSequence" not in self._dataset: + self._dataset.PatientOrientationCodeSequence = pydicom.Sequence() + self._dataset.PatientOrientationCodeSequence.append(item.to_dataset()) + + @property + def PatientGantryRelationshipCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientGantryRelationshipCodeSequence" in self._dataset: + if len(self._PatientGantryRelationshipCodeSequence) == len(self._dataset.PatientGantryRelationshipCodeSequence): + return self._PatientGantryRelationshipCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientGantryRelationshipCodeSequence] + return None + + @PatientGantryRelationshipCodeSequence.setter + def PatientGantryRelationshipCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientGantryRelationshipCodeSequence = [] + if "PatientGantryRelationshipCodeSequence" in self._dataset: + del self._dataset.PatientGantryRelationshipCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientGantryRelationshipCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientGantryRelationshipCodeSequence = value + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.clear() + self._dataset.PatientGantryRelationshipCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientGantryRelationshipCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientGantryRelationshipCodeSequence.append(item) + if "PatientGantryRelationshipCodeSequence" not in self._dataset: + self._dataset.PatientGantryRelationshipCodeSequence = pydicom.Sequence() + self._dataset.PatientGantryRelationshipCodeSequence.append(item.to_dataset()) + + @property + def XRay3DReconstructionSequence(self) -> Optional[List[XRay3DReconstructionSequenceItem]]: + if "XRay3DReconstructionSequence" in self._dataset: + if len(self._XRay3DReconstructionSequence) == len(self._dataset.XRay3DReconstructionSequence): + return self._XRay3DReconstructionSequence + else: + return [XRay3DReconstructionSequenceItem(x) for x in self._dataset.XRay3DReconstructionSequence] + return None + + @XRay3DReconstructionSequence.setter + def XRay3DReconstructionSequence(self, value: Optional[List[XRay3DReconstructionSequenceItem]]): + if value is None: + self._XRay3DReconstructionSequence = [] + if "XRay3DReconstructionSequence" in self._dataset: + del self._dataset.XRay3DReconstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DReconstructionSequenceItem) for item in value): + raise ValueError("XRay3DReconstructionSequence must be a list of XRay3DReconstructionSequenceItem objects") + else: + self._XRay3DReconstructionSequence = value + if "XRay3DReconstructionSequence" not in self._dataset: + self._dataset.XRay3DReconstructionSequence = pydicom.Sequence() + self._dataset.XRay3DReconstructionSequence.clear() + self._dataset.XRay3DReconstructionSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DReconstruction(self, item: XRay3DReconstructionSequenceItem): + if not isinstance(item, XRay3DReconstructionSequenceItem): + raise ValueError("Item must be an instance of XRay3DReconstructionSequenceItem") + self._XRay3DReconstructionSequence.append(item) + if "XRay3DReconstructionSequence" not in self._dataset: + self._dataset.XRay3DReconstructionSequence = pydicom.Sequence() + self._dataset.XRay3DReconstructionSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def XRay3DAcquisitionSequence(self) -> Optional[List[XRay3DAcquisitionSequenceItem]]: + if "XRay3DAcquisitionSequence" in self._dataset: + if len(self._XRay3DAcquisitionSequence) == len(self._dataset.XRay3DAcquisitionSequence): + return self._XRay3DAcquisitionSequence + else: + return [XRay3DAcquisitionSequenceItem(x) for x in self._dataset.XRay3DAcquisitionSequence] + return None + + @XRay3DAcquisitionSequence.setter + def XRay3DAcquisitionSequence(self, value: Optional[List[XRay3DAcquisitionSequenceItem]]): + if value is None: + self._XRay3DAcquisitionSequence = [] + if "XRay3DAcquisitionSequence" in self._dataset: + del self._dataset.XRay3DAcquisitionSequence + elif not isinstance(value, list) or not all(isinstance(item, XRay3DAcquisitionSequenceItem) for item in value): + raise ValueError("XRay3DAcquisitionSequence must be a list of XRay3DAcquisitionSequenceItem objects") + else: + self._XRay3DAcquisitionSequence = value + if "XRay3DAcquisitionSequence" not in self._dataset: + self._dataset.XRay3DAcquisitionSequence = pydicom.Sequence() + self._dataset.XRay3DAcquisitionSequence.clear() + self._dataset.XRay3DAcquisitionSequence.extend([item.to_dataset() for item in value]) + + def add_XRay3DAcquisition(self, item: XRay3DAcquisitionSequenceItem): + if not isinstance(item, XRay3DAcquisitionSequenceItem): + raise ValueError("Item must be an instance of XRay3DAcquisitionSequenceItem") + self._XRay3DAcquisitionSequence.append(item) + if "XRay3DAcquisitionSequence" not in self._dataset: + self._dataset.XRay3DAcquisitionSequence = pydicom.Sequence() + self._dataset.XRay3DAcquisitionSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def AcquisitionContextSequence(self) -> Optional[List[AcquisitionContextSequenceItem]]: + if "AcquisitionContextSequence" in self._dataset: + if len(self._AcquisitionContextSequence) == len(self._dataset.AcquisitionContextSequence): + return self._AcquisitionContextSequence + else: + return [AcquisitionContextSequenceItem(x) for x in self._dataset.AcquisitionContextSequence] + return None + + @AcquisitionContextSequence.setter + def AcquisitionContextSequence(self, value: Optional[List[AcquisitionContextSequenceItem]]): + if value is None: + self._AcquisitionContextSequence = [] + if "AcquisitionContextSequence" in self._dataset: + del self._dataset.AcquisitionContextSequence + elif not isinstance(value, list) or not all(isinstance(item, AcquisitionContextSequenceItem) for item in value): + raise ValueError("AcquisitionContextSequence must be a list of AcquisitionContextSequenceItem objects") + else: + self._AcquisitionContextSequence = value + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.clear() + self._dataset.AcquisitionContextSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionContext(self, item: AcquisitionContextSequenceItem): + if not isinstance(item, AcquisitionContextSequenceItem): + raise ValueError("Item must be an instance of AcquisitionContextSequenceItem") + self._AcquisitionContextSequence.append(item) + if "AcquisitionContextSequence" not in self._dataset: + self._dataset.AcquisitionContextSequence = pydicom.Sequence() + self._dataset.AcquisitionContextSequence.append(item.to_dataset()) + + @property + def AcquisitionContextDescription(self) -> Optional[str]: + if "AcquisitionContextDescription" in self._dataset: + return self._dataset.AcquisitionContextDescription + return None + + @AcquisitionContextDescription.setter + def AcquisitionContextDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionContextDescription" in self._dataset: + del self._dataset.AcquisitionContextDescription + else: + self._dataset.AcquisitionContextDescription = value + + @property + def ImageToEquipmentMappingMatrix(self) -> Optional[List[Decimal]]: + if "ImageToEquipmentMappingMatrix" in self._dataset: + return self._dataset.ImageToEquipmentMappingMatrix + return None + + @ImageToEquipmentMappingMatrix.setter + def ImageToEquipmentMappingMatrix(self, value: Optional[List[Decimal]]): + if value is None: + if "ImageToEquipmentMappingMatrix" in self._dataset: + del self._dataset.ImageToEquipmentMappingMatrix + else: + self._dataset.ImageToEquipmentMappingMatrix = value + + @property + def EquipmentCoordinateSystemIdentification(self) -> Optional[str]: + if "EquipmentCoordinateSystemIdentification" in self._dataset: + return self._dataset.EquipmentCoordinateSystemIdentification + return None + + @EquipmentCoordinateSystemIdentification.setter + def EquipmentCoordinateSystemIdentification(self, value: Optional[str]): + if value is None: + if "EquipmentCoordinateSystemIdentification" in self._dataset: + del self._dataset.EquipmentCoordinateSystemIdentification + else: + self._dataset.EquipmentCoordinateSystemIdentification = value + + @property + def DimensionOrganizationSequence(self) -> Optional[List[DimensionOrganizationSequenceItem]]: + if "DimensionOrganizationSequence" in self._dataset: + if len(self._DimensionOrganizationSequence) == len(self._dataset.DimensionOrganizationSequence): + return self._DimensionOrganizationSequence + else: + return [DimensionOrganizationSequenceItem(x) for x in self._dataset.DimensionOrganizationSequence] + return None + + @DimensionOrganizationSequence.setter + def DimensionOrganizationSequence(self, value: Optional[List[DimensionOrganizationSequenceItem]]): + if value is None: + self._DimensionOrganizationSequence = [] + if "DimensionOrganizationSequence" in self._dataset: + del self._dataset.DimensionOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionOrganizationSequenceItem) for item in value): + raise ValueError("DimensionOrganizationSequence must be a list of DimensionOrganizationSequenceItem objects") + else: + self._DimensionOrganizationSequence = value + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.clear() + self._dataset.DimensionOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionOrganization(self, item: DimensionOrganizationSequenceItem): + if not isinstance(item, DimensionOrganizationSequenceItem): + raise ValueError("Item must be an instance of DimensionOrganizationSequenceItem") + self._DimensionOrganizationSequence.append(item) + if "DimensionOrganizationSequence" not in self._dataset: + self._dataset.DimensionOrganizationSequence = pydicom.Sequence() + self._dataset.DimensionOrganizationSequence.append(item.to_dataset()) + + @property + def DimensionIndexSequence(self) -> Optional[List[DimensionIndexSequenceItem]]: + if "DimensionIndexSequence" in self._dataset: + if len(self._DimensionIndexSequence) == len(self._dataset.DimensionIndexSequence): + return self._DimensionIndexSequence + else: + return [DimensionIndexSequenceItem(x) for x in self._dataset.DimensionIndexSequence] + return None + + @DimensionIndexSequence.setter + def DimensionIndexSequence(self, value: Optional[List[DimensionIndexSequenceItem]]): + if value is None: + self._DimensionIndexSequence = [] + if "DimensionIndexSequence" in self._dataset: + del self._dataset.DimensionIndexSequence + elif not isinstance(value, list) or not all(isinstance(item, DimensionIndexSequenceItem) for item in value): + raise ValueError("DimensionIndexSequence must be a list of DimensionIndexSequenceItem objects") + else: + self._DimensionIndexSequence = value + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.clear() + self._dataset.DimensionIndexSequence.extend([item.to_dataset() for item in value]) + + def add_DimensionIndex(self, item: DimensionIndexSequenceItem): + if not isinstance(item, DimensionIndexSequenceItem): + raise ValueError("Item must be an instance of DimensionIndexSequenceItem") + self._DimensionIndexSequence.append(item) + if "DimensionIndexSequence" not in self._dataset: + self._dataset.DimensionIndexSequence = pydicom.Sequence() + self._dataset.DimensionIndexSequence.append(item.to_dataset()) + + @property + def DimensionOrganizationType(self) -> Optional[str]: + if "DimensionOrganizationType" in self._dataset: + return self._dataset.DimensionOrganizationType + return None + + @DimensionOrganizationType.setter + def DimensionOrganizationType(self, value: Optional[str]): + if value is None: + if "DimensionOrganizationType" in self._dataset: + del self._dataset.DimensionOrganizationType + else: + self._dataset.DimensionOrganizationType = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def ContributingSourcesSequence(self) -> Optional[List[ContributingSourcesSequenceItem]]: + if "ContributingSourcesSequence" in self._dataset: + if len(self._ContributingSourcesSequence) == len(self._dataset.ContributingSourcesSequence): + return self._ContributingSourcesSequence + else: + return [ContributingSourcesSequenceItem(x) for x in self._dataset.ContributingSourcesSequence] + return None + + @ContributingSourcesSequence.setter + def ContributingSourcesSequence(self, value: Optional[List[ContributingSourcesSequenceItem]]): + if value is None: + self._ContributingSourcesSequence = [] + if "ContributingSourcesSequence" in self._dataset: + del self._dataset.ContributingSourcesSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingSourcesSequenceItem) for item in value): + raise ValueError("ContributingSourcesSequence must be a list of ContributingSourcesSequenceItem objects") + else: + self._ContributingSourcesSequence = value + if "ContributingSourcesSequence" not in self._dataset: + self._dataset.ContributingSourcesSequence = pydicom.Sequence() + self._dataset.ContributingSourcesSequence.clear() + self._dataset.ContributingSourcesSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingSources(self, item: ContributingSourcesSequenceItem): + if not isinstance(item, ContributingSourcesSequenceItem): + raise ValueError("Item must be an instance of ContributingSourcesSequenceItem") + self._ContributingSourcesSequence.append(item) + if "ContributingSourcesSequence" not in self._dataset: + self._dataset.ContributingSourcesSequence = pydicom.Sequence() + self._dataset.ContributingSourcesSequence.append(item.to_dataset()) + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def SOPInstanceUIDOfConcatenationSource(self) -> Optional[str]: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + return self._dataset.SOPInstanceUIDOfConcatenationSource + return None + + @SOPInstanceUIDOfConcatenationSource.setter + def SOPInstanceUIDOfConcatenationSource(self, value: Optional[str]): + if value is None: + if "SOPInstanceUIDOfConcatenationSource" in self._dataset: + del self._dataset.SOPInstanceUIDOfConcatenationSource + else: + self._dataset.SOPInstanceUIDOfConcatenationSource = value + + @property + def ConcatenationUID(self) -> Optional[str]: + if "ConcatenationUID" in self._dataset: + return self._dataset.ConcatenationUID + return None + + @ConcatenationUID.setter + def ConcatenationUID(self, value: Optional[str]): + if value is None: + if "ConcatenationUID" in self._dataset: + del self._dataset.ConcatenationUID + else: + self._dataset.ConcatenationUID = value + + @property + def InConcatenationNumber(self) -> Optional[int]: + if "InConcatenationNumber" in self._dataset: + return self._dataset.InConcatenationNumber + return None + + @InConcatenationNumber.setter + def InConcatenationNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationNumber" in self._dataset: + del self._dataset.InConcatenationNumber + else: + self._dataset.InConcatenationNumber = value + + @property + def InConcatenationTotalNumber(self) -> Optional[int]: + if "InConcatenationTotalNumber" in self._dataset: + return self._dataset.InConcatenationTotalNumber + return None + + @InConcatenationTotalNumber.setter + def InConcatenationTotalNumber(self, value: Optional[int]): + if value is None: + if "InConcatenationTotalNumber" in self._dataset: + del self._dataset.InConcatenationTotalNumber + else: + self._dataset.InConcatenationTotalNumber = value + + @property + def ConcatenationFrameOffsetNumber(self) -> Optional[int]: + if "ConcatenationFrameOffsetNumber" in self._dataset: + return self._dataset.ConcatenationFrameOffsetNumber + return None + + @ConcatenationFrameOffsetNumber.setter + def ConcatenationFrameOffsetNumber(self, value: Optional[int]): + if value is None: + if "ConcatenationFrameOffsetNumber" in self._dataset: + del self._dataset.ConcatenationFrameOffsetNumber + else: + self._dataset.ConcatenationFrameOffsetNumber = value + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def SharedFunctionalGroupsSequence(self) -> Optional[List[SharedFunctionalGroupsSequenceItem]]: + if "SharedFunctionalGroupsSequence" in self._dataset: + if len(self._SharedFunctionalGroupsSequence) == len(self._dataset.SharedFunctionalGroupsSequence): + return self._SharedFunctionalGroupsSequence + else: + return [SharedFunctionalGroupsSequenceItem(x) for x in self._dataset.SharedFunctionalGroupsSequence] + return None + + @SharedFunctionalGroupsSequence.setter + def SharedFunctionalGroupsSequence(self, value: Optional[List[SharedFunctionalGroupsSequenceItem]]): + if value is None: + self._SharedFunctionalGroupsSequence = [] + if "SharedFunctionalGroupsSequence" in self._dataset: + del self._dataset.SharedFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, SharedFunctionalGroupsSequenceItem) for item in value): + raise ValueError("SharedFunctionalGroupsSequence must be a list of SharedFunctionalGroupsSequenceItem objects") + else: + self._SharedFunctionalGroupsSequence = value + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.clear() + self._dataset.SharedFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_SharedFunctionalGroups(self, item: SharedFunctionalGroupsSequenceItem): + if not isinstance(item, SharedFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of SharedFunctionalGroupsSequenceItem") + self._SharedFunctionalGroupsSequence.append(item) + if "SharedFunctionalGroupsSequence" not in self._dataset: + self._dataset.SharedFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.SharedFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def PerFrameFunctionalGroupsSequence(self) -> Optional[List[PerFrameFunctionalGroupsSequenceItem]]: + if "PerFrameFunctionalGroupsSequence" in self._dataset: + if len(self._PerFrameFunctionalGroupsSequence) == len(self._dataset.PerFrameFunctionalGroupsSequence): + return self._PerFrameFunctionalGroupsSequence + else: + return [PerFrameFunctionalGroupsSequenceItem(x) for x in self._dataset.PerFrameFunctionalGroupsSequence] + return None + + @PerFrameFunctionalGroupsSequence.setter + def PerFrameFunctionalGroupsSequence(self, value: Optional[List[PerFrameFunctionalGroupsSequenceItem]]): + if value is None: + self._PerFrameFunctionalGroupsSequence = [] + if "PerFrameFunctionalGroupsSequence" in self._dataset: + del self._dataset.PerFrameFunctionalGroupsSequence + elif not isinstance(value, list) or not all(isinstance(item, PerFrameFunctionalGroupsSequenceItem) for item in value): + raise ValueError("PerFrameFunctionalGroupsSequence must be a list of PerFrameFunctionalGroupsSequenceItem objects") + else: + self._PerFrameFunctionalGroupsSequence = value + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.clear() + self._dataset.PerFrameFunctionalGroupsSequence.extend([item.to_dataset() for item in value]) + + def add_PerFrameFunctionalGroups(self, item: PerFrameFunctionalGroupsSequenceItem): + if not isinstance(item, PerFrameFunctionalGroupsSequenceItem): + raise ValueError("Item must be an instance of PerFrameFunctionalGroupsSequenceItem") + self._PerFrameFunctionalGroupsSequence.append(item) + if "PerFrameFunctionalGroupsSequence" not in self._dataset: + self._dataset.PerFrameFunctionalGroupsSequence = pydicom.Sequence() + self._dataset.PerFrameFunctionalGroupsSequence.append(item.to_dataset()) + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def SourceIrradiationEventSequence(self) -> Optional[List[SourceIrradiationEventSequenceItem]]: + if "SourceIrradiationEventSequence" in self._dataset: + if len(self._SourceIrradiationEventSequence) == len(self._dataset.SourceIrradiationEventSequence): + return self._SourceIrradiationEventSequence + else: + return [SourceIrradiationEventSequenceItem(x) for x in self._dataset.SourceIrradiationEventSequence] + return None + + @SourceIrradiationEventSequence.setter + def SourceIrradiationEventSequence(self, value: Optional[List[SourceIrradiationEventSequenceItem]]): + if value is None: + self._SourceIrradiationEventSequence = [] + if "SourceIrradiationEventSequence" in self._dataset: + del self._dataset.SourceIrradiationEventSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceIrradiationEventSequenceItem) for item in value): + raise ValueError("SourceIrradiationEventSequence must be a list of SourceIrradiationEventSequenceItem objects") + else: + self._SourceIrradiationEventSequence = value + if "SourceIrradiationEventSequence" not in self._dataset: + self._dataset.SourceIrradiationEventSequence = pydicom.Sequence() + self._dataset.SourceIrradiationEventSequence.clear() + self._dataset.SourceIrradiationEventSequence.extend([item.to_dataset() for item in value]) + + def add_SourceIrradiationEvent(self, item: SourceIrradiationEventSequenceItem): + if not isinstance(item, SourceIrradiationEventSequenceItem): + raise ValueError("Item must be an instance of SourceIrradiationEventSequenceItem") + self._SourceIrradiationEventSequence.append(item) + if "SourceIrradiationEventSequence" not in self._dataset: + self._dataset.SourceIrradiationEventSequence = pydicom.Sequence() + self._dataset.SourceIrradiationEventSequence.append(item.to_dataset()) + + @property + def ReferencedImageEvidenceSequence(self) -> Optional[List[ReferencedImageEvidenceSequenceItem]]: + if "ReferencedImageEvidenceSequence" in self._dataset: + if len(self._ReferencedImageEvidenceSequence) == len(self._dataset.ReferencedImageEvidenceSequence): + return self._ReferencedImageEvidenceSequence + else: + return [ReferencedImageEvidenceSequenceItem(x) for x in self._dataset.ReferencedImageEvidenceSequence] + return None + + @ReferencedImageEvidenceSequence.setter + def ReferencedImageEvidenceSequence(self, value: Optional[List[ReferencedImageEvidenceSequenceItem]]): + if value is None: + self._ReferencedImageEvidenceSequence = [] + if "ReferencedImageEvidenceSequence" in self._dataset: + del self._dataset.ReferencedImageEvidenceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageEvidenceSequenceItem) for item in value): + raise ValueError("ReferencedImageEvidenceSequence must be a list of ReferencedImageEvidenceSequenceItem objects") + else: + self._ReferencedImageEvidenceSequence = value + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.clear() + self._dataset.ReferencedImageEvidenceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImageEvidence(self, item: ReferencedImageEvidenceSequenceItem): + if not isinstance(item, ReferencedImageEvidenceSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageEvidenceSequenceItem") + self._ReferencedImageEvidenceSequence.append(item) + if "ReferencedImageEvidenceSequence" not in self._dataset: + self._dataset.ReferencedImageEvidenceSequence = pydicom.Sequence() + self._dataset.ReferencedImageEvidenceSequence.append(item.to_dataset()) + + @property + def PixelPresentation(self) -> Optional[str]: + if "PixelPresentation" in self._dataset: + return self._dataset.PixelPresentation + return None + + @PixelPresentation.setter + def PixelPresentation(self, value: Optional[str]): + if value is None: + if "PixelPresentation" in self._dataset: + del self._dataset.PixelPresentation + else: + self._dataset.PixelPresentation = value + + @property + def VolumetricProperties(self) -> Optional[str]: + if "VolumetricProperties" in self._dataset: + return self._dataset.VolumetricProperties + return None + + @VolumetricProperties.setter + def VolumetricProperties(self, value: Optional[str]): + if value is None: + if "VolumetricProperties" in self._dataset: + del self._dataset.VolumetricProperties + else: + self._dataset.VolumetricProperties = value + + @property + def VolumeBasedCalculationTechnique(self) -> Optional[str]: + if "VolumeBasedCalculationTechnique" in self._dataset: + return self._dataset.VolumeBasedCalculationTechnique + return None + + @VolumeBasedCalculationTechnique.setter + def VolumeBasedCalculationTechnique(self, value: Optional[str]): + if value is None: + if "VolumeBasedCalculationTechnique" in self._dataset: + del self._dataset.VolumeBasedCalculationTechnique + else: + self._dataset.VolumeBasedCalculationTechnique = value + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/x_ray_acquisition_dose_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray_acquisition_dose_sequence_item.py new file mode 100644 index 0000000..79f5214 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_acquisition_dose_sequence_item.py @@ -0,0 +1,110 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRayAcquisitionDoseSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RelativeXRayExposure(self) -> Optional[int]: + if "RelativeXRayExposure" in self._dataset: + return self._dataset.RelativeXRayExposure + return None + + @RelativeXRayExposure.setter + def RelativeXRayExposure(self, value: Optional[int]): + if value is None: + if "RelativeXRayExposure" in self._dataset: + del self._dataset.RelativeXRayExposure + else: + self._dataset.RelativeXRayExposure = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def HalfValueLayer(self) -> Optional[Decimal]: + if "HalfValueLayer" in self._dataset: + return self._dataset.HalfValueLayer + return None + + @HalfValueLayer.setter + def HalfValueLayer(self, value: Optional[Decimal]): + if value is None: + if "HalfValueLayer" in self._dataset: + del self._dataset.HalfValueLayer + else: + self._dataset.HalfValueLayer = value + + @property + def OrganDose(self) -> Optional[Decimal]: + if "OrganDose" in self._dataset: + return self._dataset.OrganDose + return None + + @OrganDose.setter + def OrganDose(self, value: Optional[Decimal]): + if value is None: + if "OrganDose" in self._dataset: + del self._dataset.OrganDose + else: + self._dataset.OrganDose = value + + @property + def EntranceDoseInmGy(self) -> Optional[Decimal]: + if "EntranceDoseInmGy" in self._dataset: + return self._dataset.EntranceDoseInmGy + return None + + @EntranceDoseInmGy.setter + def EntranceDoseInmGy(self, value: Optional[Decimal]): + if value is None: + if "EntranceDoseInmGy" in self._dataset: + del self._dataset.EntranceDoseInmGy + else: + self._dataset.EntranceDoseInmGy = value + + @property + def EntranceDoseDerivation(self) -> Optional[str]: + if "EntranceDoseDerivation" in self._dataset: + return self._dataset.EntranceDoseDerivation + return None + + @EntranceDoseDerivation.setter + def EntranceDoseDerivation(self, value: Optional[str]): + if value is None: + if "EntranceDoseDerivation" in self._dataset: + del self._dataset.EntranceDoseDerivation + else: + self._dataset.EntranceDoseDerivation = value diff --git a/tdwii_plus_examples/domain_model/x_ray_angiographic_image.py b/tdwii_plus_examples/domain_model/x_ray_angiographic_image.py new file mode 100644 index 0000000..f9feb1e --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_angiographic_image.py @@ -0,0 +1,7953 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class XRayAngiographicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PlateID(self) -> Optional[str]: + if "PlateID" in self._dataset: + return self._dataset.PlateID + return None + + @PlateID.setter + def PlateID(self, value: Optional[str]): + if value is None: + if "PlateID" in self._dataset: + del self._dataset.PlateID + else: + self._dataset.PlateID = value + + @property + def CassetteID(self) -> Optional[str]: + if "CassetteID" in self._dataset: + return self._dataset.CassetteID + return None + + @CassetteID.setter + def CassetteID(self, value: Optional[str]): + if value is None: + if "CassetteID" in self._dataset: + del self._dataset.CassetteID + else: + self._dataset.CassetteID = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorActiveTime(self) -> Optional[Decimal]: + if "DetectorActiveTime" in self._dataset: + return self._dataset.DetectorActiveTime + return None + + @DetectorActiveTime.setter + def DetectorActiveTime(self, value: Optional[Decimal]): + if value is None: + if "DetectorActiveTime" in self._dataset: + del self._dataset.DetectorActiveTime + else: + self._dataset.DetectorActiveTime = value + + @property + def DetectorActivationOffsetFromExposure(self) -> Optional[Decimal]: + if "DetectorActivationOffsetFromExposure" in self._dataset: + return self._dataset.DetectorActivationOffsetFromExposure + return None + + @DetectorActivationOffsetFromExposure.setter + def DetectorActivationOffsetFromExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorActivationOffsetFromExposure" in self._dataset: + del self._dataset.DetectorActivationOffsetFromExposure + else: + self._dataset.DetectorActivationOffsetFromExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def EstimatedRadiographicMagnificationFactor(self) -> Optional[Decimal]: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + return self._dataset.EstimatedRadiographicMagnificationFactor + return None + + @EstimatedRadiographicMagnificationFactor.setter + def EstimatedRadiographicMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + del self._dataset.EstimatedRadiographicMagnificationFactor + else: + self._dataset.EstimatedRadiographicMagnificationFactor = value + + @property + def PositionerMotion(self) -> Optional[str]: + if "PositionerMotion" in self._dataset: + return self._dataset.PositionerMotion + return None + + @PositionerMotion.setter + def PositionerMotion(self, value: Optional[str]): + if value is None: + if "PositionerMotion" in self._dataset: + del self._dataset.PositionerMotion + else: + self._dataset.PositionerMotion = value + + @property + def PositionerPrimaryAngle(self) -> Optional[Decimal]: + if "PositionerPrimaryAngle" in self._dataset: + return self._dataset.PositionerPrimaryAngle + return None + + @PositionerPrimaryAngle.setter + def PositionerPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerPrimaryAngle" in self._dataset: + del self._dataset.PositionerPrimaryAngle + else: + self._dataset.PositionerPrimaryAngle = value + + @property + def PositionerSecondaryAngle(self) -> Optional[Decimal]: + if "PositionerSecondaryAngle" in self._dataset: + return self._dataset.PositionerSecondaryAngle + return None + + @PositionerSecondaryAngle.setter + def PositionerSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "PositionerSecondaryAngle" in self._dataset: + del self._dataset.PositionerSecondaryAngle + else: + self._dataset.PositionerSecondaryAngle = value + + @property + def PositionerPrimaryAngleIncrement(self) -> Optional[List[Decimal]]: + if "PositionerPrimaryAngleIncrement" in self._dataset: + return self._dataset.PositionerPrimaryAngleIncrement + return None + + @PositionerPrimaryAngleIncrement.setter + def PositionerPrimaryAngleIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "PositionerPrimaryAngleIncrement" in self._dataset: + del self._dataset.PositionerPrimaryAngleIncrement + else: + self._dataset.PositionerPrimaryAngleIncrement = value + + @property + def PositionerSecondaryAngleIncrement(self) -> Optional[List[Decimal]]: + if "PositionerSecondaryAngleIncrement" in self._dataset: + return self._dataset.PositionerSecondaryAngleIncrement + return None + + @PositionerSecondaryAngleIncrement.setter + def PositionerSecondaryAngleIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "PositionerSecondaryAngleIncrement" in self._dataset: + del self._dataset.PositionerSecondaryAngleIncrement + else: + self._dataset.PositionerSecondaryAngleIncrement = value + + @property + def DetectorPrimaryAngle(self) -> Optional[Decimal]: + if "DetectorPrimaryAngle" in self._dataset: + return self._dataset.DetectorPrimaryAngle + return None + + @DetectorPrimaryAngle.setter + def DetectorPrimaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorPrimaryAngle" in self._dataset: + del self._dataset.DetectorPrimaryAngle + else: + self._dataset.DetectorPrimaryAngle = value + + @property + def DetectorSecondaryAngle(self) -> Optional[Decimal]: + if "DetectorSecondaryAngle" in self._dataset: + return self._dataset.DetectorSecondaryAngle + return None + + @DetectorSecondaryAngle.setter + def DetectorSecondaryAngle(self, value: Optional[Decimal]): + if value is None: + if "DetectorSecondaryAngle" in self._dataset: + del self._dataset.DetectorSecondaryAngle + else: + self._dataset.DetectorSecondaryAngle = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def RadiationSetting(self) -> Optional[str]: + if "RadiationSetting" in self._dataset: + return self._dataset.RadiationSetting + return None + + @RadiationSetting.setter + def RadiationSetting(self, value: Optional[str]): + if value is None: + if "RadiationSetting" in self._dataset: + del self._dataset.RadiationSetting + else: + self._dataset.RadiationSetting = value + + @property + def RadiationMode(self) -> Optional[str]: + if "RadiationMode" in self._dataset: + return self._dataset.RadiationMode + return None + + @RadiationMode.setter + def RadiationMode(self, value: Optional[str]): + if value is None: + if "RadiationMode" in self._dataset: + del self._dataset.RadiationMode + else: + self._dataset.RadiationMode = value + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def TypeOfFilters(self) -> Optional[List[str]]: + if "TypeOfFilters" in self._dataset: + return self._dataset.TypeOfFilters + return None + + @TypeOfFilters.setter + def TypeOfFilters(self, value: Optional[List[str]]): + if value is None: + if "TypeOfFilters" in self._dataset: + del self._dataset.TypeOfFilters + else: + self._dataset.TypeOfFilters = value + + @property + def IntensifierSize(self) -> Optional[Decimal]: + if "IntensifierSize" in self._dataset: + return self._dataset.IntensifierSize + return None + + @IntensifierSize.setter + def IntensifierSize(self, value: Optional[Decimal]): + if value is None: + if "IntensifierSize" in self._dataset: + del self._dataset.IntensifierSize + else: + self._dataset.IntensifierSize = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def TableMotion(self) -> Optional[str]: + if "TableMotion" in self._dataset: + return self._dataset.TableMotion + return None + + @TableMotion.setter + def TableMotion(self, value: Optional[str]): + if value is None: + if "TableMotion" in self._dataset: + del self._dataset.TableMotion + else: + self._dataset.TableMotion = value + + @property + def TableVerticalIncrement(self) -> Optional[List[Decimal]]: + if "TableVerticalIncrement" in self._dataset: + return self._dataset.TableVerticalIncrement + return None + + @TableVerticalIncrement.setter + def TableVerticalIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "TableVerticalIncrement" in self._dataset: + del self._dataset.TableVerticalIncrement + else: + self._dataset.TableVerticalIncrement = value + + @property + def TableLateralIncrement(self) -> Optional[List[Decimal]]: + if "TableLateralIncrement" in self._dataset: + return self._dataset.TableLateralIncrement + return None + + @TableLateralIncrement.setter + def TableLateralIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "TableLateralIncrement" in self._dataset: + del self._dataset.TableLateralIncrement + else: + self._dataset.TableLateralIncrement = value + + @property + def TableLongitudinalIncrement(self) -> Optional[List[Decimal]]: + if "TableLongitudinalIncrement" in self._dataset: + return self._dataset.TableLongitudinalIncrement + return None + + @TableLongitudinalIncrement.setter + def TableLongitudinalIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "TableLongitudinalIncrement" in self._dataset: + del self._dataset.TableLongitudinalIncrement + else: + self._dataset.TableLongitudinalIncrement = value + + @property + def TableAngle(self) -> Optional[Decimal]: + if "TableAngle" in self._dataset: + return self._dataset.TableAngle + return None + + @TableAngle.setter + def TableAngle(self, value: Optional[Decimal]): + if value is None: + if "TableAngle" in self._dataset: + del self._dataset.TableAngle + else: + self._dataset.TableAngle = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def NumberOfFramesInOverlay(self) -> Optional[int]: + if "NumberOfFramesInOverlay" in self._dataset: + return self._dataset.NumberOfFramesInOverlay + return None + + @NumberOfFramesInOverlay.setter + def NumberOfFramesInOverlay(self, value: Optional[int]): + if value is None: + if "NumberOfFramesInOverlay" in self._dataset: + del self._dataset.NumberOfFramesInOverlay + else: + self._dataset.NumberOfFramesInOverlay = value + + @property + def ImageFrameOrigin(self) -> Optional[int]: + if "ImageFrameOrigin" in self._dataset: + return self._dataset.ImageFrameOrigin + return None + + @ImageFrameOrigin.setter + def ImageFrameOrigin(self, value: Optional[int]): + if value is None: + if "ImageFrameOrigin" in self._dataset: + del self._dataset.ImageFrameOrigin + else: + self._dataset.ImageFrameOrigin = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def FrameLabelVector(self) -> Optional[List[str]]: + if "FrameLabelVector" in self._dataset: + return self._dataset.FrameLabelVector + return None + + @FrameLabelVector.setter + def FrameLabelVector(self, value: Optional[List[str]]): + if value is None: + if "FrameLabelVector" in self._dataset: + del self._dataset.FrameLabelVector + else: + self._dataset.FrameLabelVector = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def FrameDimensionPointer(self) -> Optional[List[int]]: + if "FrameDimensionPointer" in self._dataset: + return self._dataset.FrameDimensionPointer + return None + + @FrameDimensionPointer.setter + def FrameDimensionPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameDimensionPointer" in self._dataset: + del self._dataset.FrameDimensionPointer + else: + self._dataset.FrameDimensionPointer = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def RWavePointer(self) -> Optional[List[int]]: + if "RWavePointer" in self._dataset: + return self._dataset.RWavePointer + return None + + @RWavePointer.setter + def RWavePointer(self, value: Optional[List[int]]): + if value is None: + if "RWavePointer" in self._dataset: + del self._dataset.RWavePointer + else: + self._dataset.RWavePointer = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/x_ray_filter_details_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray_filter_details_sequence_item.py new file mode 100644 index 0000000..6961998 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_filter_details_sequence_item.py @@ -0,0 +1,68 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRayFilterDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value diff --git a/tdwii_plus_examples/domain_model/x_ray_filter_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray_filter_sequence_item.py new file mode 100644 index 0000000..d6cc6ce --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_filter_sequence_item.py @@ -0,0 +1,96 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRayFilterSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def FilterType(self) -> Optional[str]: + if "FilterType" in self._dataset: + return self._dataset.FilterType + return None + + @FilterType.setter + def FilterType(self, value: Optional[str]): + if value is None: + if "FilterType" in self._dataset: + del self._dataset.FilterType + else: + self._dataset.FilterType = value + + @property + def FilterMaterial(self) -> Optional[List[str]]: + if "FilterMaterial" in self._dataset: + return self._dataset.FilterMaterial + return None + + @FilterMaterial.setter + def FilterMaterial(self, value: Optional[List[str]]): + if value is None: + if "FilterMaterial" in self._dataset: + del self._dataset.FilterMaterial + else: + self._dataset.FilterMaterial = value + + @property + def FilterThicknessMinimum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMinimum" in self._dataset: + return self._dataset.FilterThicknessMinimum + return None + + @FilterThicknessMinimum.setter + def FilterThicknessMinimum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMinimum" in self._dataset: + del self._dataset.FilterThicknessMinimum + else: + self._dataset.FilterThicknessMinimum = value + + @property + def FilterThicknessMaximum(self) -> Optional[List[Decimal]]: + if "FilterThicknessMaximum" in self._dataset: + return self._dataset.FilterThicknessMaximum + return None + + @FilterThicknessMaximum.setter + def FilterThicknessMaximum(self, value: Optional[List[Decimal]]): + if value is None: + if "FilterThicknessMaximum" in self._dataset: + del self._dataset.FilterThicknessMaximum + else: + self._dataset.FilterThicknessMaximum = value + + @property + def FilterBeamPathLengthMinimum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMinimum" in self._dataset: + return self._dataset.FilterBeamPathLengthMinimum + return None + + @FilterBeamPathLengthMinimum.setter + def FilterBeamPathLengthMinimum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMinimum" in self._dataset: + del self._dataset.FilterBeamPathLengthMinimum + else: + self._dataset.FilterBeamPathLengthMinimum = value + + @property + def FilterBeamPathLengthMaximum(self) -> Optional[List[float]]: + if "FilterBeamPathLengthMaximum" in self._dataset: + return self._dataset.FilterBeamPathLengthMaximum + return None + + @FilterBeamPathLengthMaximum.setter + def FilterBeamPathLengthMaximum(self, value: Optional[List[float]]): + if value is None: + if "FilterBeamPathLengthMaximum" in self._dataset: + del self._dataset.FilterBeamPathLengthMaximum + else: + self._dataset.FilterBeamPathLengthMaximum = value diff --git a/tdwii_plus_examples/domain_model/x_ray_geometry_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray_geometry_sequence_item.py new file mode 100644 index 0000000..a457d56 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_geometry_sequence_item.py @@ -0,0 +1,40 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRayGeometrySequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToIsocenter(self) -> Optional[float]: + if "DistanceSourceToIsocenter" in self._dataset: + return self._dataset.DistanceSourceToIsocenter + return None + + @DistanceSourceToIsocenter.setter + def DistanceSourceToIsocenter(self, value: Optional[float]): + if value is None: + if "DistanceSourceToIsocenter" in self._dataset: + del self._dataset.DistanceSourceToIsocenter + else: + self._dataset.DistanceSourceToIsocenter = value diff --git a/tdwii_plus_examples/domain_model/x_ray_grid_sequence_item.py b/tdwii_plus_examples/domain_model/x_ray_grid_sequence_item.py new file mode 100644 index 0000000..fcc13b1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_grid_sequence_item.py @@ -0,0 +1,25 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class XRayGridSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value diff --git a/tdwii_plus_examples/domain_model/x_ray_radiation_dose_sr.py b/tdwii_plus_examples/domain_model/x_ray_radiation_dose_sr.py new file mode 100644 index 0000000..e2e9c32 --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_radiation_dose_sr.py @@ -0,0 +1,2847 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class XRayRadiationDoseSr: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value diff --git a/tdwii_plus_examples/domain_model/x_ray_radiofluoroscopic_image.py b/tdwii_plus_examples/domain_model/x_ray_radiofluoroscopic_image.py new file mode 100644 index 0000000..92ac9ac --- /dev/null +++ b/tdwii_plus_examples/domain_model/x_ray_radiofluoroscopic_image.py @@ -0,0 +1,7953 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contrast_bolus_administration_route_sequence_item import ( + ContrastBolusAdministrationRouteSequenceItem, +) +from .contrast_bolus_agent_sequence_item import ContrastBolusAgentSequenceItem +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .device_sequence_item import DeviceSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_extraction_sequence_item import FrameExtractionSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .icon_image_sequence_item import IconImageSequenceItem +from .intervention_sequence_item import InterventionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .modality_lut_sequence_item import ModalityLUTSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .real_world_value_mapping_sequence_item import RealWorldValueMappingSequenceItem +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_image_sequence_item import ReferencedImageSequenceItem +from .referenced_instance_sequence_item import ReferencedInstanceSequenceItem +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_image_sequence_item import SourceImageSequenceItem +from .source_instance_sequence_item import SourceInstanceSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .studies_containing_other_referenced_instances_sequence_item import ( + StudiesContainingOtherReferencedInstancesSequenceItem, +) +from .udi_sequence_item import UDISequenceItem +from .voilut_sequence_item import VOILUTSequenceItem + + +class XRayRadiofluoroscopicImage: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._ReferencedInstanceSequence: List[ReferencedInstanceSequenceItem] = [] + self._SourceImageSequence: List[SourceImageSequenceItem] = [] + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + self._SourceInstanceSequence: List[SourceInstanceSequenceItem] = [] + self._MultiplexedAudioChannelsDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._ContrastBolusAgentSequence: List[ContrastBolusAgentSequenceItem] = [] + self._ContrastBolusAdministrationRouteSequence: List[ContrastBolusAdministrationRouteSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._StudiesContainingOtherReferencedInstancesSequence: List[ + StudiesContainingOtherReferencedInstancesSequenceItem + ] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._ModalityLUTSequence: List[ModalityLUTSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._RealWorldValueMappingSequence: List[RealWorldValueMappingSequenceItem] = [] + self._IconImageSequence: List[IconImageSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._InterventionSequence: List[InterventionSequenceItem] = [] + self._VOILUTSequence: List[VOILUTSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._FrameExtractionSequence: List[FrameExtractionSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._DeviceSequence: List[DeviceSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._ReferencedImageSequence: List[ReferencedImageSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def PlateID(self) -> Optional[str]: + if "PlateID" in self._dataset: + return self._dataset.PlateID + return None + + @PlateID.setter + def PlateID(self, value: Optional[str]): + if value is None: + if "PlateID" in self._dataset: + del self._dataset.PlateID + else: + self._dataset.PlateID = value + + @property + def CassetteID(self) -> Optional[str]: + if "CassetteID" in self._dataset: + return self._dataset.CassetteID + return None + + @CassetteID.setter + def CassetteID(self, value: Optional[str]): + if value is None: + if "CassetteID" in self._dataset: + del self._dataset.CassetteID + else: + self._dataset.CassetteID = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def ExposureIndex(self) -> Optional[Decimal]: + if "ExposureIndex" in self._dataset: + return self._dataset.ExposureIndex + return None + + @ExposureIndex.setter + def ExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "ExposureIndex" in self._dataset: + del self._dataset.ExposureIndex + else: + self._dataset.ExposureIndex = value + + @property + def TargetExposureIndex(self) -> Optional[Decimal]: + if "TargetExposureIndex" in self._dataset: + return self._dataset.TargetExposureIndex + return None + + @TargetExposureIndex.setter + def TargetExposureIndex(self, value: Optional[Decimal]): + if value is None: + if "TargetExposureIndex" in self._dataset: + del self._dataset.TargetExposureIndex + else: + self._dataset.TargetExposureIndex = value + + @property + def DeviationIndex(self) -> Optional[Decimal]: + if "DeviationIndex" in self._dataset: + return self._dataset.DeviationIndex + return None + + @DeviationIndex.setter + def DeviationIndex(self, value: Optional[Decimal]): + if value is None: + if "DeviationIndex" in self._dataset: + del self._dataset.DeviationIndex + else: + self._dataset.DeviationIndex = value + + @property + def Sensitivity(self) -> Optional[Decimal]: + if "Sensitivity" in self._dataset: + return self._dataset.Sensitivity + return None + + @Sensitivity.setter + def Sensitivity(self, value: Optional[Decimal]): + if value is None: + if "Sensitivity" in self._dataset: + del self._dataset.Sensitivity + else: + self._dataset.Sensitivity = value + + @property + def DetectorConditionsNominalFlag(self) -> Optional[str]: + if "DetectorConditionsNominalFlag" in self._dataset: + return self._dataset.DetectorConditionsNominalFlag + return None + + @DetectorConditionsNominalFlag.setter + def DetectorConditionsNominalFlag(self, value: Optional[str]): + if value is None: + if "DetectorConditionsNominalFlag" in self._dataset: + del self._dataset.DetectorConditionsNominalFlag + else: + self._dataset.DetectorConditionsNominalFlag = value + + @property + def DetectorTemperature(self) -> Optional[Decimal]: + if "DetectorTemperature" in self._dataset: + return self._dataset.DetectorTemperature + return None + + @DetectorTemperature.setter + def DetectorTemperature(self, value: Optional[Decimal]): + if value is None: + if "DetectorTemperature" in self._dataset: + del self._dataset.DetectorTemperature + else: + self._dataset.DetectorTemperature = value + + @property + def DetectorType(self) -> Optional[str]: + if "DetectorType" in self._dataset: + return self._dataset.DetectorType + return None + + @DetectorType.setter + def DetectorType(self, value: Optional[str]): + if value is None: + if "DetectorType" in self._dataset: + del self._dataset.DetectorType + else: + self._dataset.DetectorType = value + + @property + def DetectorConfiguration(self) -> Optional[str]: + if "DetectorConfiguration" in self._dataset: + return self._dataset.DetectorConfiguration + return None + + @DetectorConfiguration.setter + def DetectorConfiguration(self, value: Optional[str]): + if value is None: + if "DetectorConfiguration" in self._dataset: + del self._dataset.DetectorConfiguration + else: + self._dataset.DetectorConfiguration = value + + @property + def DetectorDescription(self) -> Optional[str]: + if "DetectorDescription" in self._dataset: + return self._dataset.DetectorDescription + return None + + @DetectorDescription.setter + def DetectorDescription(self, value: Optional[str]): + if value is None: + if "DetectorDescription" in self._dataset: + del self._dataset.DetectorDescription + else: + self._dataset.DetectorDescription = value + + @property + def DetectorMode(self) -> Optional[str]: + if "DetectorMode" in self._dataset: + return self._dataset.DetectorMode + return None + + @DetectorMode.setter + def DetectorMode(self, value: Optional[str]): + if value is None: + if "DetectorMode" in self._dataset: + del self._dataset.DetectorMode + else: + self._dataset.DetectorMode = value + + @property + def DetectorID(self) -> Optional[str]: + if "DetectorID" in self._dataset: + return self._dataset.DetectorID + return None + + @DetectorID.setter + def DetectorID(self, value: Optional[str]): + if value is None: + if "DetectorID" in self._dataset: + del self._dataset.DetectorID + else: + self._dataset.DetectorID = value + + @property + def DateOfLastDetectorCalibration(self) -> Optional[str]: + if "DateOfLastDetectorCalibration" in self._dataset: + return self._dataset.DateOfLastDetectorCalibration + return None + + @DateOfLastDetectorCalibration.setter + def DateOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "DateOfLastDetectorCalibration" in self._dataset: + del self._dataset.DateOfLastDetectorCalibration + else: + self._dataset.DateOfLastDetectorCalibration = value + + @property + def TimeOfLastDetectorCalibration(self) -> Optional[str]: + if "TimeOfLastDetectorCalibration" in self._dataset: + return self._dataset.TimeOfLastDetectorCalibration + return None + + @TimeOfLastDetectorCalibration.setter + def TimeOfLastDetectorCalibration(self, value: Optional[str]): + if value is None: + if "TimeOfLastDetectorCalibration" in self._dataset: + del self._dataset.TimeOfLastDetectorCalibration + else: + self._dataset.TimeOfLastDetectorCalibration = value + + @property + def ExposuresOnDetectorSinceLastCalibration(self) -> Optional[int]: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceLastCalibration + return None + + @ExposuresOnDetectorSinceLastCalibration.setter + def ExposuresOnDetectorSinceLastCalibration(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceLastCalibration" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceLastCalibration + else: + self._dataset.ExposuresOnDetectorSinceLastCalibration = value + + @property + def ExposuresOnDetectorSinceManufactured(self) -> Optional[int]: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + return self._dataset.ExposuresOnDetectorSinceManufactured + return None + + @ExposuresOnDetectorSinceManufactured.setter + def ExposuresOnDetectorSinceManufactured(self, value: Optional[int]): + if value is None: + if "ExposuresOnDetectorSinceManufactured" in self._dataset: + del self._dataset.ExposuresOnDetectorSinceManufactured + else: + self._dataset.ExposuresOnDetectorSinceManufactured = value + + @property + def DetectorTimeSinceLastExposure(self) -> Optional[Decimal]: + if "DetectorTimeSinceLastExposure" in self._dataset: + return self._dataset.DetectorTimeSinceLastExposure + return None + + @DetectorTimeSinceLastExposure.setter + def DetectorTimeSinceLastExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorTimeSinceLastExposure" in self._dataset: + del self._dataset.DetectorTimeSinceLastExposure + else: + self._dataset.DetectorTimeSinceLastExposure = value + + @property + def DetectorActiveTime(self) -> Optional[Decimal]: + if "DetectorActiveTime" in self._dataset: + return self._dataset.DetectorActiveTime + return None + + @DetectorActiveTime.setter + def DetectorActiveTime(self, value: Optional[Decimal]): + if value is None: + if "DetectorActiveTime" in self._dataset: + del self._dataset.DetectorActiveTime + else: + self._dataset.DetectorActiveTime = value + + @property + def DetectorActivationOffsetFromExposure(self) -> Optional[Decimal]: + if "DetectorActivationOffsetFromExposure" in self._dataset: + return self._dataset.DetectorActivationOffsetFromExposure + return None + + @DetectorActivationOffsetFromExposure.setter + def DetectorActivationOffsetFromExposure(self, value: Optional[Decimal]): + if value is None: + if "DetectorActivationOffsetFromExposure" in self._dataset: + del self._dataset.DetectorActivationOffsetFromExposure + else: + self._dataset.DetectorActivationOffsetFromExposure = value + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def DetectorElementPhysicalSize(self) -> Optional[List[Decimal]]: + if "DetectorElementPhysicalSize" in self._dataset: + return self._dataset.DetectorElementPhysicalSize + return None + + @DetectorElementPhysicalSize.setter + def DetectorElementPhysicalSize(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementPhysicalSize" in self._dataset: + del self._dataset.DetectorElementPhysicalSize + else: + self._dataset.DetectorElementPhysicalSize = value + + @property + def DetectorElementSpacing(self) -> Optional[List[Decimal]]: + if "DetectorElementSpacing" in self._dataset: + return self._dataset.DetectorElementSpacing + return None + + @DetectorElementSpacing.setter + def DetectorElementSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorElementSpacing" in self._dataset: + del self._dataset.DetectorElementSpacing + else: + self._dataset.DetectorElementSpacing = value + + @property + def DetectorActiveShape(self) -> Optional[str]: + if "DetectorActiveShape" in self._dataset: + return self._dataset.DetectorActiveShape + return None + + @DetectorActiveShape.setter + def DetectorActiveShape(self, value: Optional[str]): + if value is None: + if "DetectorActiveShape" in self._dataset: + del self._dataset.DetectorActiveShape + else: + self._dataset.DetectorActiveShape = value + + @property + def DetectorActiveDimensions(self) -> Optional[List[Decimal]]: + if "DetectorActiveDimensions" in self._dataset: + return self._dataset.DetectorActiveDimensions + return None + + @DetectorActiveDimensions.setter + def DetectorActiveDimensions(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveDimensions" in self._dataset: + del self._dataset.DetectorActiveDimensions + else: + self._dataset.DetectorActiveDimensions = value + + @property + def DetectorActiveOrigin(self) -> Optional[List[Decimal]]: + if "DetectorActiveOrigin" in self._dataset: + return self._dataset.DetectorActiveOrigin + return None + + @DetectorActiveOrigin.setter + def DetectorActiveOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorActiveOrigin" in self._dataset: + del self._dataset.DetectorActiveOrigin + else: + self._dataset.DetectorActiveOrigin = value + + @property + def DetectorManufacturerName(self) -> Optional[str]: + if "DetectorManufacturerName" in self._dataset: + return self._dataset.DetectorManufacturerName + return None + + @DetectorManufacturerName.setter + def DetectorManufacturerName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerName" in self._dataset: + del self._dataset.DetectorManufacturerName + else: + self._dataset.DetectorManufacturerName = value + + @property + def DetectorManufacturerModelName(self) -> Optional[str]: + if "DetectorManufacturerModelName" in self._dataset: + return self._dataset.DetectorManufacturerModelName + return None + + @DetectorManufacturerModelName.setter + def DetectorManufacturerModelName(self, value: Optional[str]): + if value is None: + if "DetectorManufacturerModelName" in self._dataset: + del self._dataset.DetectorManufacturerModelName + else: + self._dataset.DetectorManufacturerModelName = value + + @property + def FieldOfViewOrigin(self) -> Optional[List[Decimal]]: + if "FieldOfViewOrigin" in self._dataset: + return self._dataset.FieldOfViewOrigin + return None + + @FieldOfViewOrigin.setter + def FieldOfViewOrigin(self, value: Optional[List[Decimal]]): + if value is None: + if "FieldOfViewOrigin" in self._dataset: + del self._dataset.FieldOfViewOrigin + else: + self._dataset.FieldOfViewOrigin = value + + @property + def FieldOfViewRotation(self) -> Optional[Decimal]: + if "FieldOfViewRotation" in self._dataset: + return self._dataset.FieldOfViewRotation + return None + + @FieldOfViewRotation.setter + def FieldOfViewRotation(self, value: Optional[Decimal]): + if value is None: + if "FieldOfViewRotation" in self._dataset: + del self._dataset.FieldOfViewRotation + else: + self._dataset.FieldOfViewRotation = value + + @property + def FieldOfViewHorizontalFlip(self) -> Optional[str]: + if "FieldOfViewHorizontalFlip" in self._dataset: + return self._dataset.FieldOfViewHorizontalFlip + return None + + @FieldOfViewHorizontalFlip.setter + def FieldOfViewHorizontalFlip(self, value: Optional[str]): + if value is None: + if "FieldOfViewHorizontalFlip" in self._dataset: + del self._dataset.FieldOfViewHorizontalFlip + else: + self._dataset.FieldOfViewHorizontalFlip = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def DistanceSourceToPatient(self) -> Optional[Decimal]: + if "DistanceSourceToPatient" in self._dataset: + return self._dataset.DistanceSourceToPatient + return None + + @DistanceSourceToPatient.setter + def DistanceSourceToPatient(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToPatient" in self._dataset: + del self._dataset.DistanceSourceToPatient + else: + self._dataset.DistanceSourceToPatient = value + + @property + def EstimatedRadiographicMagnificationFactor(self) -> Optional[Decimal]: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + return self._dataset.EstimatedRadiographicMagnificationFactor + return None + + @EstimatedRadiographicMagnificationFactor.setter + def EstimatedRadiographicMagnificationFactor(self, value: Optional[Decimal]): + if value is None: + if "EstimatedRadiographicMagnificationFactor" in self._dataset: + del self._dataset.EstimatedRadiographicMagnificationFactor + else: + self._dataset.EstimatedRadiographicMagnificationFactor = value + + @property + def ColumnAngulation(self) -> Optional[Decimal]: + if "ColumnAngulation" in self._dataset: + return self._dataset.ColumnAngulation + return None + + @ColumnAngulation.setter + def ColumnAngulation(self, value: Optional[Decimal]): + if value is None: + if "ColumnAngulation" in self._dataset: + del self._dataset.ColumnAngulation + else: + self._dataset.ColumnAngulation = value + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedImage(self, item: ReferencedImageSequenceItem): + if not isinstance(item, ReferencedImageSequenceItem): + raise ValueError("Item must be an instance of ReferencedImageSequenceItem") + self._ReferencedImageSequence.append(item) + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.append(item.to_dataset()) + + @property + def ReferencedInstanceSequence(self) -> Optional[List[ReferencedInstanceSequenceItem]]: + if "ReferencedInstanceSequence" in self._dataset: + if len(self._ReferencedInstanceSequence) == len(self._dataset.ReferencedInstanceSequence): + return self._ReferencedInstanceSequence + else: + return [ReferencedInstanceSequenceItem(x) for x in self._dataset.ReferencedInstanceSequence] + return None + + @ReferencedInstanceSequence.setter + def ReferencedInstanceSequence(self, value: Optional[List[ReferencedInstanceSequenceItem]]): + if value is None: + self._ReferencedInstanceSequence = [] + if "ReferencedInstanceSequence" in self._dataset: + del self._dataset.ReferencedInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedInstanceSequenceItem) for item in value): + raise ValueError("ReferencedInstanceSequence must be a list of ReferencedInstanceSequenceItem objects") + else: + self._ReferencedInstanceSequence = value + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.clear() + self._dataset.ReferencedInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedInstance(self, item: ReferencedInstanceSequenceItem): + if not isinstance(item, ReferencedInstanceSequenceItem): + raise ValueError("Item must be an instance of ReferencedInstanceSequenceItem") + self._ReferencedInstanceSequence.append(item) + if "ReferencedInstanceSequence" not in self._dataset: + self._dataset.ReferencedInstanceSequence = pydicom.Sequence() + self._dataset.ReferencedInstanceSequence.append(item.to_dataset()) + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def SourceImageSequence(self) -> Optional[List[SourceImageSequenceItem]]: + if "SourceImageSequence" in self._dataset: + if len(self._SourceImageSequence) == len(self._dataset.SourceImageSequence): + return self._SourceImageSequence + else: + return [SourceImageSequenceItem(x) for x in self._dataset.SourceImageSequence] + return None + + @SourceImageSequence.setter + def SourceImageSequence(self, value: Optional[List[SourceImageSequenceItem]]): + if value is None: + self._SourceImageSequence = [] + if "SourceImageSequence" in self._dataset: + del self._dataset.SourceImageSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceImageSequenceItem) for item in value): + raise ValueError("SourceImageSequence must be a list of SourceImageSequenceItem objects") + else: + self._SourceImageSequence = value + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.clear() + self._dataset.SourceImageSequence.extend([item.to_dataset() for item in value]) + + def add_SourceImage(self, item: SourceImageSequenceItem): + if not isinstance(item, SourceImageSequenceItem): + raise ValueError("Item must be an instance of SourceImageSequenceItem") + self._SourceImageSequence.append(item) + if "SourceImageSequence" not in self._dataset: + self._dataset.SourceImageSequence = pydicom.Sequence() + self._dataset.SourceImageSequence.append(item.to_dataset()) + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def SourceInstanceSequence(self) -> Optional[List[SourceInstanceSequenceItem]]: + if "SourceInstanceSequence" in self._dataset: + if len(self._SourceInstanceSequence) == len(self._dataset.SourceInstanceSequence): + return self._SourceInstanceSequence + else: + return [SourceInstanceSequenceItem(x) for x in self._dataset.SourceInstanceSequence] + return None + + @SourceInstanceSequence.setter + def SourceInstanceSequence(self, value: Optional[List[SourceInstanceSequenceItem]]): + if value is None: + self._SourceInstanceSequence = [] + if "SourceInstanceSequence" in self._dataset: + del self._dataset.SourceInstanceSequence + elif not isinstance(value, list) or not all(isinstance(item, SourceInstanceSequenceItem) for item in value): + raise ValueError("SourceInstanceSequence must be a list of SourceInstanceSequenceItem objects") + else: + self._SourceInstanceSequence = value + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.clear() + self._dataset.SourceInstanceSequence.extend([item.to_dataset() for item in value]) + + def add_SourceInstance(self, item: SourceInstanceSequenceItem): + if not isinstance(item, SourceInstanceSequenceItem): + raise ValueError("Item must be an instance of SourceInstanceSequenceItem") + self._SourceInstanceSequence.append(item) + if "SourceInstanceSequence" not in self._dataset: + self._dataset.SourceInstanceSequence = pydicom.Sequence() + self._dataset.SourceInstanceSequence.append(item.to_dataset()) + + @property + def StartTrim(self) -> Optional[int]: + if "StartTrim" in self._dataset: + return self._dataset.StartTrim + return None + + @StartTrim.setter + def StartTrim(self, value: Optional[int]): + if value is None: + if "StartTrim" in self._dataset: + del self._dataset.StartTrim + else: + self._dataset.StartTrim = value + + @property + def StopTrim(self) -> Optional[int]: + if "StopTrim" in self._dataset: + return self._dataset.StopTrim + return None + + @StopTrim.setter + def StopTrim(self, value: Optional[int]): + if value is None: + if "StopTrim" in self._dataset: + del self._dataset.StopTrim + else: + self._dataset.StopTrim = value + + @property + def RecommendedDisplayFrameRate(self) -> Optional[int]: + if "RecommendedDisplayFrameRate" in self._dataset: + return self._dataset.RecommendedDisplayFrameRate + return None + + @RecommendedDisplayFrameRate.setter + def RecommendedDisplayFrameRate(self, value: Optional[int]): + if value is None: + if "RecommendedDisplayFrameRate" in self._dataset: + del self._dataset.RecommendedDisplayFrameRate + else: + self._dataset.RecommendedDisplayFrameRate = value + + @property + def CineRate(self) -> Optional[int]: + if "CineRate" in self._dataset: + return self._dataset.CineRate + return None + + @CineRate.setter + def CineRate(self, value: Optional[int]): + if value is None: + if "CineRate" in self._dataset: + del self._dataset.CineRate + else: + self._dataset.CineRate = value + + @property + def EffectiveDuration(self) -> Optional[Decimal]: + if "EffectiveDuration" in self._dataset: + return self._dataset.EffectiveDuration + return None + + @EffectiveDuration.setter + def EffectiveDuration(self, value: Optional[Decimal]): + if value is None: + if "EffectiveDuration" in self._dataset: + del self._dataset.EffectiveDuration + else: + self._dataset.EffectiveDuration = value + + @property + def FrameTime(self) -> Optional[Decimal]: + if "FrameTime" in self._dataset: + return self._dataset.FrameTime + return None + + @FrameTime.setter + def FrameTime(self, value: Optional[Decimal]): + if value is None: + if "FrameTime" in self._dataset: + del self._dataset.FrameTime + else: + self._dataset.FrameTime = value + + @property + def FrameTimeVector(self) -> Optional[List[Decimal]]: + if "FrameTimeVector" in self._dataset: + return self._dataset.FrameTimeVector + return None + + @FrameTimeVector.setter + def FrameTimeVector(self, value: Optional[List[Decimal]]): + if value is None: + if "FrameTimeVector" in self._dataset: + del self._dataset.FrameTimeVector + else: + self._dataset.FrameTimeVector = value + + @property + def FrameDelay(self) -> Optional[Decimal]: + if "FrameDelay" in self._dataset: + return self._dataset.FrameDelay + return None + + @FrameDelay.setter + def FrameDelay(self, value: Optional[Decimal]): + if value is None: + if "FrameDelay" in self._dataset: + del self._dataset.FrameDelay + else: + self._dataset.FrameDelay = value + + @property + def ImageTriggerDelay(self) -> Optional[Decimal]: + if "ImageTriggerDelay" in self._dataset: + return self._dataset.ImageTriggerDelay + return None + + @ImageTriggerDelay.setter + def ImageTriggerDelay(self, value: Optional[Decimal]): + if value is None: + if "ImageTriggerDelay" in self._dataset: + del self._dataset.ImageTriggerDelay + else: + self._dataset.ImageTriggerDelay = value + + @property + def ActualFrameDuration(self) -> Optional[int]: + if "ActualFrameDuration" in self._dataset: + return self._dataset.ActualFrameDuration + return None + + @ActualFrameDuration.setter + def ActualFrameDuration(self, value: Optional[int]): + if value is None: + if "ActualFrameDuration" in self._dataset: + del self._dataset.ActualFrameDuration + else: + self._dataset.ActualFrameDuration = value + + @property + def PreferredPlaybackSequencing(self) -> Optional[int]: + if "PreferredPlaybackSequencing" in self._dataset: + return self._dataset.PreferredPlaybackSequencing + return None + + @PreferredPlaybackSequencing.setter + def PreferredPlaybackSequencing(self, value: Optional[int]): + if value is None: + if "PreferredPlaybackSequencing" in self._dataset: + del self._dataset.PreferredPlaybackSequencing + else: + self._dataset.PreferredPlaybackSequencing = value + + @property + def MultiplexedAudioChannelsDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + if len(self._MultiplexedAudioChannelsDescriptionCodeSequence) == len( + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + ): + return self._MultiplexedAudioChannelsDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence] + return None + + @MultiplexedAudioChannelsDescriptionCodeSequence.setter + def MultiplexedAudioChannelsDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._MultiplexedAudioChannelsDescriptionCodeSequence = [] + if "MultiplexedAudioChannelsDescriptionCodeSequence" in self._dataset: + del self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("MultiplexedAudioChannelsDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._MultiplexedAudioChannelsDescriptionCodeSequence = value + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.clear() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_MultiplexedAudioChannelsDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._MultiplexedAudioChannelsDescriptionCodeSequence.append(item) + if "MultiplexedAudioChannelsDescriptionCodeSequence" not in self._dataset: + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence = pydicom.Sequence() + self._dataset.MultiplexedAudioChannelsDescriptionCodeSequence.append(item.to_dataset()) + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def ContrastBolusAgent(self) -> Optional[str]: + if "ContrastBolusAgent" in self._dataset: + return self._dataset.ContrastBolusAgent + return None + + @ContrastBolusAgent.setter + def ContrastBolusAgent(self, value: Optional[str]): + if value is None: + if "ContrastBolusAgent" in self._dataset: + del self._dataset.ContrastBolusAgent + else: + self._dataset.ContrastBolusAgent = value + + @property + def ContrastBolusAgentSequence(self) -> Optional[List[ContrastBolusAgentSequenceItem]]: + if "ContrastBolusAgentSequence" in self._dataset: + if len(self._ContrastBolusAgentSequence) == len(self._dataset.ContrastBolusAgentSequence): + return self._ContrastBolusAgentSequence + else: + return [ContrastBolusAgentSequenceItem(x) for x in self._dataset.ContrastBolusAgentSequence] + return None + + @ContrastBolusAgentSequence.setter + def ContrastBolusAgentSequence(self, value: Optional[List[ContrastBolusAgentSequenceItem]]): + if value is None: + self._ContrastBolusAgentSequence = [] + if "ContrastBolusAgentSequence" in self._dataset: + del self._dataset.ContrastBolusAgentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContrastBolusAgentSequenceItem) for item in value): + raise ValueError("ContrastBolusAgentSequence must be a list of ContrastBolusAgentSequenceItem objects") + else: + self._ContrastBolusAgentSequence = value + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.clear() + self._dataset.ContrastBolusAgentSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAgent(self, item: ContrastBolusAgentSequenceItem): + if not isinstance(item, ContrastBolusAgentSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAgentSequenceItem") + self._ContrastBolusAgentSequence.append(item) + if "ContrastBolusAgentSequence" not in self._dataset: + self._dataset.ContrastBolusAgentSequence = pydicom.Sequence() + self._dataset.ContrastBolusAgentSequence.append(item.to_dataset()) + + @property + def ContrastBolusAdministrationRouteSequence(self) -> Optional[List[ContrastBolusAdministrationRouteSequenceItem]]: + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + if len(self._ContrastBolusAdministrationRouteSequence) == len( + self._dataset.ContrastBolusAdministrationRouteSequence + ): + return self._ContrastBolusAdministrationRouteSequence + else: + return [ + ContrastBolusAdministrationRouteSequenceItem(x) + for x in self._dataset.ContrastBolusAdministrationRouteSequence + ] + return None + + @ContrastBolusAdministrationRouteSequence.setter + def ContrastBolusAdministrationRouteSequence(self, value: Optional[List[ContrastBolusAdministrationRouteSequenceItem]]): + if value is None: + self._ContrastBolusAdministrationRouteSequence = [] + if "ContrastBolusAdministrationRouteSequence" in self._dataset: + del self._dataset.ContrastBolusAdministrationRouteSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContrastBolusAdministrationRouteSequenceItem) for item in value + ): + raise ValueError( + "ContrastBolusAdministrationRouteSequence must be a list of ContrastBolusAdministrationRouteSequenceItem" + " objects" + ) + else: + self._ContrastBolusAdministrationRouteSequence = value + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.clear() + self._dataset.ContrastBolusAdministrationRouteSequence.extend([item.to_dataset() for item in value]) + + def add_ContrastBolusAdministrationRoute(self, item: ContrastBolusAdministrationRouteSequenceItem): + if not isinstance(item, ContrastBolusAdministrationRouteSequenceItem): + raise ValueError("Item must be an instance of ContrastBolusAdministrationRouteSequenceItem") + self._ContrastBolusAdministrationRouteSequence.append(item) + if "ContrastBolusAdministrationRouteSequence" not in self._dataset: + self._dataset.ContrastBolusAdministrationRouteSequence = pydicom.Sequence() + self._dataset.ContrastBolusAdministrationRouteSequence.append(item.to_dataset()) + + @property + def ContrastBolusRoute(self) -> Optional[str]: + if "ContrastBolusRoute" in self._dataset: + return self._dataset.ContrastBolusRoute + return None + + @ContrastBolusRoute.setter + def ContrastBolusRoute(self, value: Optional[str]): + if value is None: + if "ContrastBolusRoute" in self._dataset: + del self._dataset.ContrastBolusRoute + else: + self._dataset.ContrastBolusRoute = value + + @property + def ContrastBolusVolume(self) -> Optional[Decimal]: + if "ContrastBolusVolume" in self._dataset: + return self._dataset.ContrastBolusVolume + return None + + @ContrastBolusVolume.setter + def ContrastBolusVolume(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusVolume" in self._dataset: + del self._dataset.ContrastBolusVolume + else: + self._dataset.ContrastBolusVolume = value + + @property + def ContrastBolusStartTime(self) -> Optional[str]: + if "ContrastBolusStartTime" in self._dataset: + return self._dataset.ContrastBolusStartTime + return None + + @ContrastBolusStartTime.setter + def ContrastBolusStartTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStartTime" in self._dataset: + del self._dataset.ContrastBolusStartTime + else: + self._dataset.ContrastBolusStartTime = value + + @property + def ContrastBolusStopTime(self) -> Optional[str]: + if "ContrastBolusStopTime" in self._dataset: + return self._dataset.ContrastBolusStopTime + return None + + @ContrastBolusStopTime.setter + def ContrastBolusStopTime(self, value: Optional[str]): + if value is None: + if "ContrastBolusStopTime" in self._dataset: + del self._dataset.ContrastBolusStopTime + else: + self._dataset.ContrastBolusStopTime = value + + @property + def ContrastBolusTotalDose(self) -> Optional[Decimal]: + if "ContrastBolusTotalDose" in self._dataset: + return self._dataset.ContrastBolusTotalDose + return None + + @ContrastBolusTotalDose.setter + def ContrastBolusTotalDose(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusTotalDose" in self._dataset: + del self._dataset.ContrastBolusTotalDose + else: + self._dataset.ContrastBolusTotalDose = value + + @property + def ContrastFlowRate(self) -> Optional[List[Decimal]]: + if "ContrastFlowRate" in self._dataset: + return self._dataset.ContrastFlowRate + return None + + @ContrastFlowRate.setter + def ContrastFlowRate(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowRate" in self._dataset: + del self._dataset.ContrastFlowRate + else: + self._dataset.ContrastFlowRate = value + + @property + def ContrastFlowDuration(self) -> Optional[List[Decimal]]: + if "ContrastFlowDuration" in self._dataset: + return self._dataset.ContrastFlowDuration + return None + + @ContrastFlowDuration.setter + def ContrastFlowDuration(self, value: Optional[List[Decimal]]): + if value is None: + if "ContrastFlowDuration" in self._dataset: + del self._dataset.ContrastFlowDuration + else: + self._dataset.ContrastFlowDuration = value + + @property + def ContrastBolusIngredient(self) -> Optional[str]: + if "ContrastBolusIngredient" in self._dataset: + return self._dataset.ContrastBolusIngredient + return None + + @ContrastBolusIngredient.setter + def ContrastBolusIngredient(self, value: Optional[str]): + if value is None: + if "ContrastBolusIngredient" in self._dataset: + del self._dataset.ContrastBolusIngredient + else: + self._dataset.ContrastBolusIngredient = value + + @property + def ContrastBolusIngredientConcentration(self) -> Optional[Decimal]: + if "ContrastBolusIngredientConcentration" in self._dataset: + return self._dataset.ContrastBolusIngredientConcentration + return None + + @ContrastBolusIngredientConcentration.setter + def ContrastBolusIngredientConcentration(self, value: Optional[Decimal]): + if value is None: + if "ContrastBolusIngredientConcentration" in self._dataset: + del self._dataset.ContrastBolusIngredientConcentration + else: + self._dataset.ContrastBolusIngredientConcentration = value + + @property + def TomoLayerHeight(self) -> Optional[Decimal]: + if "TomoLayerHeight" in self._dataset: + return self._dataset.TomoLayerHeight + return None + + @TomoLayerHeight.setter + def TomoLayerHeight(self, value: Optional[Decimal]): + if value is None: + if "TomoLayerHeight" in self._dataset: + del self._dataset.TomoLayerHeight + else: + self._dataset.TomoLayerHeight = value + + @property + def TomoAngle(self) -> Optional[Decimal]: + if "TomoAngle" in self._dataset: + return self._dataset.TomoAngle + return None + + @TomoAngle.setter + def TomoAngle(self, value: Optional[Decimal]): + if value is None: + if "TomoAngle" in self._dataset: + del self._dataset.TomoAngle + else: + self._dataset.TomoAngle = value + + @property + def TomoTime(self) -> Optional[Decimal]: + if "TomoTime" in self._dataset: + return self._dataset.TomoTime + return None + + @TomoTime.setter + def TomoTime(self, value: Optional[Decimal]): + if value is None: + if "TomoTime" in self._dataset: + del self._dataset.TomoTime + else: + self._dataset.TomoTime = value + + @property + def TomoType(self) -> Optional[str]: + if "TomoType" in self._dataset: + return self._dataset.TomoType + return None + + @TomoType.setter + def TomoType(self, value: Optional[str]): + if value is None: + if "TomoType" in self._dataset: + del self._dataset.TomoType + else: + self._dataset.TomoType = value + + @property + def TomoClass(self) -> Optional[str]: + if "TomoClass" in self._dataset: + return self._dataset.TomoClass + return None + + @TomoClass.setter + def TomoClass(self, value: Optional[str]): + if value is None: + if "TomoClass" in self._dataset: + del self._dataset.TomoClass + else: + self._dataset.TomoClass = value + + @property + def NumberOfTomosynthesisSourceImages(self) -> Optional[int]: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + return self._dataset.NumberOfTomosynthesisSourceImages + return None + + @NumberOfTomosynthesisSourceImages.setter + def NumberOfTomosynthesisSourceImages(self, value: Optional[int]): + if value is None: + if "NumberOfTomosynthesisSourceImages" in self._dataset: + del self._dataset.NumberOfTomosynthesisSourceImages + else: + self._dataset.NumberOfTomosynthesisSourceImages = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def StudiesContainingOtherReferencedInstancesSequence( + self, + ) -> Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]]: + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + if len(self._StudiesContainingOtherReferencedInstancesSequence) == len( + self._dataset.StudiesContainingOtherReferencedInstancesSequence + ): + return self._StudiesContainingOtherReferencedInstancesSequence + else: + return [ + StudiesContainingOtherReferencedInstancesSequenceItem(x) + for x in self._dataset.StudiesContainingOtherReferencedInstancesSequence + ] + return None + + @StudiesContainingOtherReferencedInstancesSequence.setter + def StudiesContainingOtherReferencedInstancesSequence( + self, value: Optional[List[StudiesContainingOtherReferencedInstancesSequenceItem]] + ): + if value is None: + self._StudiesContainingOtherReferencedInstancesSequence = [] + if "StudiesContainingOtherReferencedInstancesSequence" in self._dataset: + del self._dataset.StudiesContainingOtherReferencedInstancesSequence + elif not isinstance(value, list) or not all( + isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem) for item in value + ): + raise ValueError( + "StudiesContainingOtherReferencedInstancesSequence must be a list of" + " StudiesContainingOtherReferencedInstancesSequenceItem objects" + ) + else: + self._StudiesContainingOtherReferencedInstancesSequence = value + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.clear() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.extend([item.to_dataset() for item in value]) + + def add_StudiesContainingOtherReferencedInstances(self, item: StudiesContainingOtherReferencedInstancesSequenceItem): + if not isinstance(item, StudiesContainingOtherReferencedInstancesSequenceItem): + raise ValueError("Item must be an instance of StudiesContainingOtherReferencedInstancesSequenceItem") + self._StudiesContainingOtherReferencedInstancesSequence.append(item) + if "StudiesContainingOtherReferencedInstancesSequence" not in self._dataset: + self._dataset.StudiesContainingOtherReferencedInstancesSequence = pydicom.Sequence() + self._dataset.StudiesContainingOtherReferencedInstancesSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def StereoPairsPresent(self) -> Optional[str]: + if "StereoPairsPresent" in self._dataset: + return self._dataset.StereoPairsPresent + return None + + @StereoPairsPresent.setter + def StereoPairsPresent(self, value: Optional[str]): + if value is None: + if "StereoPairsPresent" in self._dataset: + del self._dataset.StereoPairsPresent + else: + self._dataset.StereoPairsPresent = value + + @property + def NumberOfFrames(self) -> Optional[int]: + if "NumberOfFrames" in self._dataset: + return self._dataset.NumberOfFrames + return None + + @NumberOfFrames.setter + def NumberOfFrames(self, value: Optional[int]): + if value is None: + if "NumberOfFrames" in self._dataset: + del self._dataset.NumberOfFrames + else: + self._dataset.NumberOfFrames = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def EncapsulatedPixelDataValueTotalLength(self) -> Optional[int]: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + return self._dataset.EncapsulatedPixelDataValueTotalLength + return None + + @EncapsulatedPixelDataValueTotalLength.setter + def EncapsulatedPixelDataValueTotalLength(self, value: Optional[int]): + if value is None: + if "EncapsulatedPixelDataValueTotalLength" in self._dataset: + del self._dataset.EncapsulatedPixelDataValueTotalLength + else: + self._dataset.EncapsulatedPixelDataValueTotalLength = value + + @property + def RecommendedViewingMode(self) -> Optional[str]: + if "RecommendedViewingMode" in self._dataset: + return self._dataset.RecommendedViewingMode + return None + + @RecommendedViewingMode.setter + def RecommendedViewingMode(self, value: Optional[str]): + if value is None: + if "RecommendedViewingMode" in self._dataset: + del self._dataset.RecommendedViewingMode + else: + self._dataset.RecommendedViewingMode = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def PlanarConfiguration(self) -> Optional[int]: + if "PlanarConfiguration" in self._dataset: + return self._dataset.PlanarConfiguration + return None + + @PlanarConfiguration.setter + def PlanarConfiguration(self, value: Optional[int]): + if value is None: + if "PlanarConfiguration" in self._dataset: + del self._dataset.PlanarConfiguration + else: + self._dataset.PlanarConfiguration = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def PixelAspectRatio(self) -> Optional[List[int]]: + if "PixelAspectRatio" in self._dataset: + return self._dataset.PixelAspectRatio + return None + + @PixelAspectRatio.setter + def PixelAspectRatio(self, value: Optional[List[int]]): + if value is None: + if "PixelAspectRatio" in self._dataset: + del self._dataset.PixelAspectRatio + else: + self._dataset.PixelAspectRatio = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def SmallestImagePixelValue(self) -> Optional[int]: + if "SmallestImagePixelValue" in self._dataset: + return self._dataset.SmallestImagePixelValue + return None + + @SmallestImagePixelValue.setter + def SmallestImagePixelValue(self, value: Optional[int]): + if value is None: + if "SmallestImagePixelValue" in self._dataset: + del self._dataset.SmallestImagePixelValue + else: + self._dataset.SmallestImagePixelValue = value + + @property + def LargestImagePixelValue(self) -> Optional[int]: + if "LargestImagePixelValue" in self._dataset: + return self._dataset.LargestImagePixelValue + return None + + @LargestImagePixelValue.setter + def LargestImagePixelValue(self, value: Optional[int]): + if value is None: + if "LargestImagePixelValue" in self._dataset: + del self._dataset.LargestImagePixelValue + else: + self._dataset.LargestImagePixelValue = value + + @property + def PixelPaddingRangeLimit(self) -> Optional[int]: + if "PixelPaddingRangeLimit" in self._dataset: + return self._dataset.PixelPaddingRangeLimit + return None + + @PixelPaddingRangeLimit.setter + def PixelPaddingRangeLimit(self, value: Optional[int]): + if value is None: + if "PixelPaddingRangeLimit" in self._dataset: + del self._dataset.PixelPaddingRangeLimit + else: + self._dataset.PixelPaddingRangeLimit = value + + @property + def RedPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.RedPaletteColorLookupTableDescriptor + return None + + @RedPaletteColorLookupTableDescriptor.setter + def RedPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "RedPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.RedPaletteColorLookupTableDescriptor + else: + self._dataset.RedPaletteColorLookupTableDescriptor = value + + @property + def GreenPaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableDescriptor + return None + + @GreenPaletteColorLookupTableDescriptor.setter + def GreenPaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "GreenPaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableDescriptor + else: + self._dataset.GreenPaletteColorLookupTableDescriptor = value + + @property + def BluePaletteColorLookupTableDescriptor(self) -> Optional[List[int]]: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + return self._dataset.BluePaletteColorLookupTableDescriptor + return None + + @BluePaletteColorLookupTableDescriptor.setter + def BluePaletteColorLookupTableDescriptor(self, value: Optional[List[int]]): + if value is None: + if "BluePaletteColorLookupTableDescriptor" in self._dataset: + del self._dataset.BluePaletteColorLookupTableDescriptor + else: + self._dataset.BluePaletteColorLookupTableDescriptor = value + + @property + def RedPaletteColorLookupTableData(self) -> Optional[bytes]: + if "RedPaletteColorLookupTableData" in self._dataset: + return self._dataset.RedPaletteColorLookupTableData + return None + + @RedPaletteColorLookupTableData.setter + def RedPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "RedPaletteColorLookupTableData" in self._dataset: + del self._dataset.RedPaletteColorLookupTableData + else: + self._dataset.RedPaletteColorLookupTableData = value + + @property + def GreenPaletteColorLookupTableData(self) -> Optional[bytes]: + if "GreenPaletteColorLookupTableData" in self._dataset: + return self._dataset.GreenPaletteColorLookupTableData + return None + + @GreenPaletteColorLookupTableData.setter + def GreenPaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "GreenPaletteColorLookupTableData" in self._dataset: + del self._dataset.GreenPaletteColorLookupTableData + else: + self._dataset.GreenPaletteColorLookupTableData = value + + @property + def BluePaletteColorLookupTableData(self) -> Optional[bytes]: + if "BluePaletteColorLookupTableData" in self._dataset: + return self._dataset.BluePaletteColorLookupTableData + return None + + @BluePaletteColorLookupTableData.setter + def BluePaletteColorLookupTableData(self, value: Optional[bytes]): + if value is None: + if "BluePaletteColorLookupTableData" in self._dataset: + del self._dataset.BluePaletteColorLookupTableData + else: + self._dataset.BluePaletteColorLookupTableData = value + + @property + def ICCProfile(self) -> Optional[bytes]: + if "ICCProfile" in self._dataset: + return self._dataset.ICCProfile + return None + + @ICCProfile.setter + def ICCProfile(self, value: Optional[bytes]): + if value is None: + if "ICCProfile" in self._dataset: + del self._dataset.ICCProfile + else: + self._dataset.ICCProfile = value + + @property + def ColorSpace(self) -> Optional[str]: + if "ColorSpace" in self._dataset: + return self._dataset.ColorSpace + return None + + @ColorSpace.setter + def ColorSpace(self, value: Optional[str]): + if value is None: + if "ColorSpace" in self._dataset: + del self._dataset.ColorSpace + else: + self._dataset.ColorSpace = value + + @property + def PixelDataProviderURL(self) -> Optional[str]: + if "PixelDataProviderURL" in self._dataset: + return self._dataset.PixelDataProviderURL + return None + + @PixelDataProviderURL.setter + def PixelDataProviderURL(self, value: Optional[str]): + if value is None: + if "PixelDataProviderURL" in self._dataset: + del self._dataset.PixelDataProviderURL + else: + self._dataset.PixelDataProviderURL = value + + @property + def ExtendedOffsetTable(self) -> Optional[bytes]: + if "ExtendedOffsetTable" in self._dataset: + return self._dataset.ExtendedOffsetTable + return None + + @ExtendedOffsetTable.setter + def ExtendedOffsetTable(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTable" in self._dataset: + del self._dataset.ExtendedOffsetTable + else: + self._dataset.ExtendedOffsetTable = value + + @property + def ExtendedOffsetTableLengths(self) -> Optional[bytes]: + if "ExtendedOffsetTableLengths" in self._dataset: + return self._dataset.ExtendedOffsetTableLengths + return None + + @ExtendedOffsetTableLengths.setter + def ExtendedOffsetTableLengths(self, value: Optional[bytes]): + if value is None: + if "ExtendedOffsetTableLengths" in self._dataset: + del self._dataset.ExtendedOffsetTableLengths + else: + self._dataset.ExtendedOffsetTableLengths = value + + @property + def PixelData(self) -> Optional[bytes]: + if "PixelData" in self._dataset: + return self._dataset.PixelData + return None + + @PixelData.setter + def PixelData(self, value: Optional[bytes]): + if value is None: + if "PixelData" in self._dataset: + del self._dataset.PixelData + else: + self._dataset.PixelData = value + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def FieldOfViewShape(self) -> Optional[str]: + if "FieldOfViewShape" in self._dataset: + return self._dataset.FieldOfViewShape + return None + + @FieldOfViewShape.setter + def FieldOfViewShape(self, value: Optional[str]): + if value is None: + if "FieldOfViewShape" in self._dataset: + del self._dataset.FieldOfViewShape + else: + self._dataset.FieldOfViewShape = value + + @property + def FieldOfViewDimensions(self) -> Optional[List[int]]: + if "FieldOfViewDimensions" in self._dataset: + return self._dataset.FieldOfViewDimensions + return None + + @FieldOfViewDimensions.setter + def FieldOfViewDimensions(self, value: Optional[List[int]]): + if value is None: + if "FieldOfViewDimensions" in self._dataset: + del self._dataset.FieldOfViewDimensions + else: + self._dataset.FieldOfViewDimensions = value + + @property + def ExposureTime(self) -> Optional[int]: + if "ExposureTime" in self._dataset: + return self._dataset.ExposureTime + return None + + @ExposureTime.setter + def ExposureTime(self, value: Optional[int]): + if value is None: + if "ExposureTime" in self._dataset: + del self._dataset.ExposureTime + else: + self._dataset.ExposureTime = value + + @property + def XRayTubeCurrent(self) -> Optional[int]: + if "XRayTubeCurrent" in self._dataset: + return self._dataset.XRayTubeCurrent + return None + + @XRayTubeCurrent.setter + def XRayTubeCurrent(self, value: Optional[int]): + if value is None: + if "XRayTubeCurrent" in self._dataset: + del self._dataset.XRayTubeCurrent + else: + self._dataset.XRayTubeCurrent = value + + @property + def Exposure(self) -> Optional[int]: + if "Exposure" in self._dataset: + return self._dataset.Exposure + return None + + @Exposure.setter + def Exposure(self, value: Optional[int]): + if value is None: + if "Exposure" in self._dataset: + del self._dataset.Exposure + else: + self._dataset.Exposure = value + + @property + def ExposureInuAs(self) -> Optional[int]: + if "ExposureInuAs" in self._dataset: + return self._dataset.ExposureInuAs + return None + + @ExposureInuAs.setter + def ExposureInuAs(self, value: Optional[int]): + if value is None: + if "ExposureInuAs" in self._dataset: + del self._dataset.ExposureInuAs + else: + self._dataset.ExposureInuAs = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def RadiationSetting(self) -> Optional[str]: + if "RadiationSetting" in self._dataset: + return self._dataset.RadiationSetting + return None + + @RadiationSetting.setter + def RadiationSetting(self, value: Optional[str]): + if value is None: + if "RadiationSetting" in self._dataset: + del self._dataset.RadiationSetting + else: + self._dataset.RadiationSetting = value + + @property + def RadiationMode(self) -> Optional[str]: + if "RadiationMode" in self._dataset: + return self._dataset.RadiationMode + return None + + @RadiationMode.setter + def RadiationMode(self, value: Optional[str]): + if value is None: + if "RadiationMode" in self._dataset: + del self._dataset.RadiationMode + else: + self._dataset.RadiationMode = value + + @property + def ImageAndFluoroscopyAreaDoseProduct(self) -> Optional[Decimal]: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + return self._dataset.ImageAndFluoroscopyAreaDoseProduct + return None + + @ImageAndFluoroscopyAreaDoseProduct.setter + def ImageAndFluoroscopyAreaDoseProduct(self, value: Optional[Decimal]): + if value is None: + if "ImageAndFluoroscopyAreaDoseProduct" in self._dataset: + del self._dataset.ImageAndFluoroscopyAreaDoseProduct + else: + self._dataset.ImageAndFluoroscopyAreaDoseProduct = value + + @property + def TypeOfFilters(self) -> Optional[List[str]]: + if "TypeOfFilters" in self._dataset: + return self._dataset.TypeOfFilters + return None + + @TypeOfFilters.setter + def TypeOfFilters(self, value: Optional[List[str]]): + if value is None: + if "TypeOfFilters" in self._dataset: + del self._dataset.TypeOfFilters + else: + self._dataset.TypeOfFilters = value + + @property + def IntensifierSize(self) -> Optional[Decimal]: + if "IntensifierSize" in self._dataset: + return self._dataset.IntensifierSize + return None + + @IntensifierSize.setter + def IntensifierSize(self, value: Optional[Decimal]): + if value is None: + if "IntensifierSize" in self._dataset: + del self._dataset.IntensifierSize + else: + self._dataset.IntensifierSize = value + + @property + def ImagerPixelSpacing(self) -> Optional[List[Decimal]]: + if "ImagerPixelSpacing" in self._dataset: + return self._dataset.ImagerPixelSpacing + return None + + @ImagerPixelSpacing.setter + def ImagerPixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "ImagerPixelSpacing" in self._dataset: + del self._dataset.ImagerPixelSpacing + else: + self._dataset.ImagerPixelSpacing = value + + @property + def Grid(self) -> Optional[List[str]]: + if "Grid" in self._dataset: + return self._dataset.Grid + return None + + @Grid.setter + def Grid(self, value: Optional[List[str]]): + if value is None: + if "Grid" in self._dataset: + del self._dataset.Grid + else: + self._dataset.Grid = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def ExposureTimeInuS(self) -> Optional[Decimal]: + if "ExposureTimeInuS" in self._dataset: + return self._dataset.ExposureTimeInuS + return None + + @ExposureTimeInuS.setter + def ExposureTimeInuS(self, value: Optional[Decimal]): + if value is None: + if "ExposureTimeInuS" in self._dataset: + del self._dataset.ExposureTimeInuS + else: + self._dataset.ExposureTimeInuS = value + + @property + def XRayTubeCurrentInuA(self) -> Optional[Decimal]: + if "XRayTubeCurrentInuA" in self._dataset: + return self._dataset.XRayTubeCurrentInuA + return None + + @XRayTubeCurrentInuA.setter + def XRayTubeCurrentInuA(self, value: Optional[Decimal]): + if value is None: + if "XRayTubeCurrentInuA" in self._dataset: + del self._dataset.XRayTubeCurrentInuA + else: + self._dataset.XRayTubeCurrentInuA = value + + @property + def PixelSpacing(self) -> Optional[List[Decimal]]: + if "PixelSpacing" in self._dataset: + return self._dataset.PixelSpacing + return None + + @PixelSpacing.setter + def PixelSpacing(self, value: Optional[List[Decimal]]): + if value is None: + if "PixelSpacing" in self._dataset: + del self._dataset.PixelSpacing + else: + self._dataset.PixelSpacing = value + + @property + def PixelSpacingCalibrationType(self) -> Optional[str]: + if "PixelSpacingCalibrationType" in self._dataset: + return self._dataset.PixelSpacingCalibrationType + return None + + @PixelSpacingCalibrationType.setter + def PixelSpacingCalibrationType(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationType" in self._dataset: + del self._dataset.PixelSpacingCalibrationType + else: + self._dataset.PixelSpacingCalibrationType = value + + @property + def PixelSpacingCalibrationDescription(self) -> Optional[str]: + if "PixelSpacingCalibrationDescription" in self._dataset: + return self._dataset.PixelSpacingCalibrationDescription + return None + + @PixelSpacingCalibrationDescription.setter + def PixelSpacingCalibrationDescription(self, value: Optional[str]): + if value is None: + if "PixelSpacingCalibrationDescription" in self._dataset: + del self._dataset.PixelSpacingCalibrationDescription + else: + self._dataset.PixelSpacingCalibrationDescription = value + + @property + def RescaleIntercept(self) -> Optional[Decimal]: + if "RescaleIntercept" in self._dataset: + return self._dataset.RescaleIntercept + return None + + @RescaleIntercept.setter + def RescaleIntercept(self, value: Optional[Decimal]): + if value is None: + if "RescaleIntercept" in self._dataset: + del self._dataset.RescaleIntercept + else: + self._dataset.RescaleIntercept = value + + @property + def RescaleSlope(self) -> Optional[Decimal]: + if "RescaleSlope" in self._dataset: + return self._dataset.RescaleSlope + return None + + @RescaleSlope.setter + def RescaleSlope(self, value: Optional[Decimal]): + if value is None: + if "RescaleSlope" in self._dataset: + del self._dataset.RescaleSlope + else: + self._dataset.RescaleSlope = value + + @property + def RescaleType(self) -> Optional[str]: + if "RescaleType" in self._dataset: + return self._dataset.RescaleType + return None + + @RescaleType.setter + def RescaleType(self, value: Optional[str]): + if value is None: + if "RescaleType" in self._dataset: + del self._dataset.RescaleType + else: + self._dataset.RescaleType = value + + @property + def ModalityLUTSequence(self) -> Optional[List[ModalityLUTSequenceItem]]: + if "ModalityLUTSequence" in self._dataset: + if len(self._ModalityLUTSequence) == len(self._dataset.ModalityLUTSequence): + return self._ModalityLUTSequence + else: + return [ModalityLUTSequenceItem(x) for x in self._dataset.ModalityLUTSequence] + return None + + @ModalityLUTSequence.setter + def ModalityLUTSequence(self, value: Optional[List[ModalityLUTSequenceItem]]): + if value is None: + self._ModalityLUTSequence = [] + if "ModalityLUTSequence" in self._dataset: + del self._dataset.ModalityLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, ModalityLUTSequenceItem) for item in value): + raise ValueError("ModalityLUTSequence must be a list of ModalityLUTSequenceItem objects") + else: + self._ModalityLUTSequence = value + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.clear() + self._dataset.ModalityLUTSequence.extend([item.to_dataset() for item in value]) + + def add_ModalityLUT(self, item: ModalityLUTSequenceItem): + if not isinstance(item, ModalityLUTSequenceItem): + raise ValueError("Item must be an instance of ModalityLUTSequenceItem") + self._ModalityLUTSequence.append(item) + if "ModalityLUTSequence" not in self._dataset: + self._dataset.ModalityLUTSequence = pydicom.Sequence() + self._dataset.ModalityLUTSequence.append(item.to_dataset()) + + @property + def TableMotion(self) -> Optional[str]: + if "TableMotion" in self._dataset: + return self._dataset.TableMotion + return None + + @TableMotion.setter + def TableMotion(self, value: Optional[str]): + if value is None: + if "TableMotion" in self._dataset: + del self._dataset.TableMotion + else: + self._dataset.TableMotion = value + + @property + def TableVerticalIncrement(self) -> Optional[List[Decimal]]: + if "TableVerticalIncrement" in self._dataset: + return self._dataset.TableVerticalIncrement + return None + + @TableVerticalIncrement.setter + def TableVerticalIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "TableVerticalIncrement" in self._dataset: + del self._dataset.TableVerticalIncrement + else: + self._dataset.TableVerticalIncrement = value + + @property + def TableLateralIncrement(self) -> Optional[List[Decimal]]: + if "TableLateralIncrement" in self._dataset: + return self._dataset.TableLateralIncrement + return None + + @TableLateralIncrement.setter + def TableLateralIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "TableLateralIncrement" in self._dataset: + del self._dataset.TableLateralIncrement + else: + self._dataset.TableLateralIncrement = value + + @property + def TableLongitudinalIncrement(self) -> Optional[List[Decimal]]: + if "TableLongitudinalIncrement" in self._dataset: + return self._dataset.TableLongitudinalIncrement + return None + + @TableLongitudinalIncrement.setter + def TableLongitudinalIncrement(self, value: Optional[List[Decimal]]): + if value is None: + if "TableLongitudinalIncrement" in self._dataset: + del self._dataset.TableLongitudinalIncrement + else: + self._dataset.TableLongitudinalIncrement = value + + @property + def TableAngle(self) -> Optional[Decimal]: + if "TableAngle" in self._dataset: + return self._dataset.TableAngle + return None + + @TableAngle.setter + def TableAngle(self, value: Optional[Decimal]): + if value is None: + if "TableAngle" in self._dataset: + del self._dataset.TableAngle + else: + self._dataset.TableAngle = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ContentDate(self) -> Optional[str]: + if "ContentDate" in self._dataset: + return self._dataset.ContentDate + return None + + @ContentDate.setter + def ContentDate(self, value: Optional[str]): + if value is None: + if "ContentDate" in self._dataset: + del self._dataset.ContentDate + else: + self._dataset.ContentDate = value + + @property + def ContentTime(self) -> Optional[str]: + if "ContentTime" in self._dataset: + return self._dataset.ContentTime + return None + + @ContentTime.setter + def ContentTime(self, value: Optional[str]): + if value is None: + if "ContentTime" in self._dataset: + del self._dataset.ContentTime + else: + self._dataset.ContentTime = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def PatientOrientation(self) -> Optional[List[str]]: + if "PatientOrientation" in self._dataset: + return self._dataset.PatientOrientation + return None + + @PatientOrientation.setter + def PatientOrientation(self, value: Optional[List[str]]): + if value is None: + if "PatientOrientation" in self._dataset: + del self._dataset.PatientOrientation + else: + self._dataset.PatientOrientation = value + + @property + def ImageLaterality(self) -> Optional[str]: + if "ImageLaterality" in self._dataset: + return self._dataset.ImageLaterality + return None + + @ImageLaterality.setter + def ImageLaterality(self, value: Optional[str]): + if value is None: + if "ImageLaterality" in self._dataset: + del self._dataset.ImageLaterality + else: + self._dataset.ImageLaterality = value + + @property + def ImageComments(self) -> Optional[str]: + if "ImageComments" in self._dataset: + return self._dataset.ImageComments + return None + + @ImageComments.setter + def ImageComments(self, value: Optional[str]): + if value is None: + if "ImageComments" in self._dataset: + del self._dataset.ImageComments + else: + self._dataset.ImageComments = value + + @property + def QualityControlImage(self) -> Optional[str]: + if "QualityControlImage" in self._dataset: + return self._dataset.QualityControlImage + return None + + @QualityControlImage.setter + def QualityControlImage(self, value: Optional[str]): + if value is None: + if "QualityControlImage" in self._dataset: + del self._dataset.QualityControlImage + else: + self._dataset.QualityControlImage = value + + @property + def BurnedInAnnotation(self) -> Optional[str]: + if "BurnedInAnnotation" in self._dataset: + return self._dataset.BurnedInAnnotation + return None + + @BurnedInAnnotation.setter + def BurnedInAnnotation(self, value: Optional[str]): + if value is None: + if "BurnedInAnnotation" in self._dataset: + del self._dataset.BurnedInAnnotation + else: + self._dataset.BurnedInAnnotation = value + + @property + def RecognizableVisualFeatures(self) -> Optional[str]: + if "RecognizableVisualFeatures" in self._dataset: + return self._dataset.RecognizableVisualFeatures + return None + + @RecognizableVisualFeatures.setter + def RecognizableVisualFeatures(self, value: Optional[str]): + if value is None: + if "RecognizableVisualFeatures" in self._dataset: + del self._dataset.RecognizableVisualFeatures + else: + self._dataset.RecognizableVisualFeatures = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def LossyImageCompressionRatio(self) -> Optional[List[Decimal]]: + if "LossyImageCompressionRatio" in self._dataset: + return self._dataset.LossyImageCompressionRatio + return None + + @LossyImageCompressionRatio.setter + def LossyImageCompressionRatio(self, value: Optional[List[Decimal]]): + if value is None: + if "LossyImageCompressionRatio" in self._dataset: + del self._dataset.LossyImageCompressionRatio + else: + self._dataset.LossyImageCompressionRatio = value + + @property + def LossyImageCompressionMethod(self) -> Optional[List[str]]: + if "LossyImageCompressionMethod" in self._dataset: + return self._dataset.LossyImageCompressionMethod + return None + + @LossyImageCompressionMethod.setter + def LossyImageCompressionMethod(self, value: Optional[List[str]]): + if value is None: + if "LossyImageCompressionMethod" in self._dataset: + del self._dataset.LossyImageCompressionMethod + else: + self._dataset.LossyImageCompressionMethod = value + + @property + def RealWorldValueMappingSequence(self) -> Optional[List[RealWorldValueMappingSequenceItem]]: + if "RealWorldValueMappingSequence" in self._dataset: + if len(self._RealWorldValueMappingSequence) == len(self._dataset.RealWorldValueMappingSequence): + return self._RealWorldValueMappingSequence + else: + return [RealWorldValueMappingSequenceItem(x) for x in self._dataset.RealWorldValueMappingSequence] + return None + + @RealWorldValueMappingSequence.setter + def RealWorldValueMappingSequence(self, value: Optional[List[RealWorldValueMappingSequenceItem]]): + if value is None: + self._RealWorldValueMappingSequence = [] + if "RealWorldValueMappingSequence" in self._dataset: + del self._dataset.RealWorldValueMappingSequence + elif not isinstance(value, list) or not all(isinstance(item, RealWorldValueMappingSequenceItem) for item in value): + raise ValueError("RealWorldValueMappingSequence must be a list of RealWorldValueMappingSequenceItem objects") + else: + self._RealWorldValueMappingSequence = value + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.clear() + self._dataset.RealWorldValueMappingSequence.extend([item.to_dataset() for item in value]) + + def add_RealWorldValueMapping(self, item: RealWorldValueMappingSequenceItem): + if not isinstance(item, RealWorldValueMappingSequenceItem): + raise ValueError("Item must be an instance of RealWorldValueMappingSequenceItem") + self._RealWorldValueMappingSequence.append(item) + if "RealWorldValueMappingSequence" not in self._dataset: + self._dataset.RealWorldValueMappingSequence = pydicom.Sequence() + self._dataset.RealWorldValueMappingSequence.append(item.to_dataset()) + + @property + def IconImageSequence(self) -> Optional[List[IconImageSequenceItem]]: + if "IconImageSequence" in self._dataset: + if len(self._IconImageSequence) == len(self._dataset.IconImageSequence): + return self._IconImageSequence + else: + return [IconImageSequenceItem(x) for x in self._dataset.IconImageSequence] + return None + + @IconImageSequence.setter + def IconImageSequence(self, value: Optional[List[IconImageSequenceItem]]): + if value is None: + self._IconImageSequence = [] + if "IconImageSequence" in self._dataset: + del self._dataset.IconImageSequence + elif not isinstance(value, list) or not all(isinstance(item, IconImageSequenceItem) for item in value): + raise ValueError("IconImageSequence must be a list of IconImageSequenceItem objects") + else: + self._IconImageSequence = value + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.clear() + self._dataset.IconImageSequence.extend([item.to_dataset() for item in value]) + + def add_IconImage(self, item: IconImageSequenceItem): + if not isinstance(item, IconImageSequenceItem): + raise ValueError("Item must be an instance of IconImageSequenceItem") + self._IconImageSequence.append(item) + if "IconImageSequence" not in self._dataset: + self._dataset.IconImageSequence = pydicom.Sequence() + self._dataset.IconImageSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def NumberOfFramesInOverlay(self) -> Optional[int]: + if "NumberOfFramesInOverlay" in self._dataset: + return self._dataset.NumberOfFramesInOverlay + return None + + @NumberOfFramesInOverlay.setter + def NumberOfFramesInOverlay(self, value: Optional[int]): + if value is None: + if "NumberOfFramesInOverlay" in self._dataset: + del self._dataset.NumberOfFramesInOverlay + else: + self._dataset.NumberOfFramesInOverlay = value + + @property + def ImageFrameOrigin(self) -> Optional[int]: + if "ImageFrameOrigin" in self._dataset: + return self._dataset.ImageFrameOrigin + return None + + @ImageFrameOrigin.setter + def ImageFrameOrigin(self, value: Optional[int]): + if value is None: + if "ImageFrameOrigin" in self._dataset: + del self._dataset.ImageFrameOrigin + else: + self._dataset.ImageFrameOrigin = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def InterventionSequence(self) -> Optional[List[InterventionSequenceItem]]: + if "InterventionSequence" in self._dataset: + if len(self._InterventionSequence) == len(self._dataset.InterventionSequence): + return self._InterventionSequence + else: + return [InterventionSequenceItem(x) for x in self._dataset.InterventionSequence] + return None + + @InterventionSequence.setter + def InterventionSequence(self, value: Optional[List[InterventionSequenceItem]]): + if value is None: + self._InterventionSequence = [] + if "InterventionSequence" in self._dataset: + del self._dataset.InterventionSequence + elif not isinstance(value, list) or not all(isinstance(item, InterventionSequenceItem) for item in value): + raise ValueError("InterventionSequence must be a list of InterventionSequenceItem objects") + else: + self._InterventionSequence = value + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.clear() + self._dataset.InterventionSequence.extend([item.to_dataset() for item in value]) + + def add_Intervention(self, item: InterventionSequenceItem): + if not isinstance(item, InterventionSequenceItem): + raise ValueError("Item must be an instance of InterventionSequenceItem") + self._InterventionSequence.append(item) + if "InterventionSequence" not in self._dataset: + self._dataset.InterventionSequence = pydicom.Sequence() + self._dataset.InterventionSequence.append(item.to_dataset()) + + @property + def WindowCenter(self) -> Optional[List[Decimal]]: + if "WindowCenter" in self._dataset: + return self._dataset.WindowCenter + return None + + @WindowCenter.setter + def WindowCenter(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowCenter" in self._dataset: + del self._dataset.WindowCenter + else: + self._dataset.WindowCenter = value + + @property + def WindowWidth(self) -> Optional[List[Decimal]]: + if "WindowWidth" in self._dataset: + return self._dataset.WindowWidth + return None + + @WindowWidth.setter + def WindowWidth(self, value: Optional[List[Decimal]]): + if value is None: + if "WindowWidth" in self._dataset: + del self._dataset.WindowWidth + else: + self._dataset.WindowWidth = value + + @property + def WindowCenterWidthExplanation(self) -> Optional[List[str]]: + if "WindowCenterWidthExplanation" in self._dataset: + return self._dataset.WindowCenterWidthExplanation + return None + + @WindowCenterWidthExplanation.setter + def WindowCenterWidthExplanation(self, value: Optional[List[str]]): + if value is None: + if "WindowCenterWidthExplanation" in self._dataset: + del self._dataset.WindowCenterWidthExplanation + else: + self._dataset.WindowCenterWidthExplanation = value + + @property + def VOILUTFunction(self) -> Optional[str]: + if "VOILUTFunction" in self._dataset: + return self._dataset.VOILUTFunction + return None + + @VOILUTFunction.setter + def VOILUTFunction(self, value: Optional[str]): + if value is None: + if "VOILUTFunction" in self._dataset: + del self._dataset.VOILUTFunction + else: + self._dataset.VOILUTFunction = value + + @property + def VOILUTSequence(self) -> Optional[List[VOILUTSequenceItem]]: + if "VOILUTSequence" in self._dataset: + if len(self._VOILUTSequence) == len(self._dataset.VOILUTSequence): + return self._VOILUTSequence + else: + return [VOILUTSequenceItem(x) for x in self._dataset.VOILUTSequence] + return None + + @VOILUTSequence.setter + def VOILUTSequence(self, value: Optional[List[VOILUTSequenceItem]]): + if value is None: + self._VOILUTSequence = [] + if "VOILUTSequence" in self._dataset: + del self._dataset.VOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, VOILUTSequenceItem) for item in value): + raise ValueError("VOILUTSequence must be a list of VOILUTSequenceItem objects") + else: + self._VOILUTSequence = value + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.clear() + self._dataset.VOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_VOILUT(self, item: VOILUTSequenceItem): + if not isinstance(item, VOILUTSequenceItem): + raise ValueError("Item must be an instance of VOILUTSequenceItem") + self._VOILUTSequence.append(item) + if "VOILUTSequence" not in self._dataset: + self._dataset.VOILUTSequence = pydicom.Sequence() + self._dataset.VOILUTSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def FrameExtractionSequence(self) -> Optional[List[FrameExtractionSequenceItem]]: + if "FrameExtractionSequence" in self._dataset: + if len(self._FrameExtractionSequence) == len(self._dataset.FrameExtractionSequence): + return self._FrameExtractionSequence + else: + return [FrameExtractionSequenceItem(x) for x in self._dataset.FrameExtractionSequence] + return None + + @FrameExtractionSequence.setter + def FrameExtractionSequence(self, value: Optional[List[FrameExtractionSequenceItem]]): + if value is None: + self._FrameExtractionSequence = [] + if "FrameExtractionSequence" in self._dataset: + del self._dataset.FrameExtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameExtractionSequenceItem) for item in value): + raise ValueError("FrameExtractionSequence must be a list of FrameExtractionSequenceItem objects") + else: + self._FrameExtractionSequence = value + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.clear() + self._dataset.FrameExtractionSequence.extend([item.to_dataset() for item in value]) + + def add_FrameExtraction(self, item: FrameExtractionSequenceItem): + if not isinstance(item, FrameExtractionSequenceItem): + raise ValueError("Item must be an instance of FrameExtractionSequenceItem") + self._FrameExtractionSequence.append(item) + if "FrameExtractionSequence" not in self._dataset: + self._dataset.FrameExtractionSequence = pydicom.Sequence() + self._dataset.FrameExtractionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def TriggerSourceOrType(self) -> Optional[str]: + if "TriggerSourceOrType" in self._dataset: + return self._dataset.TriggerSourceOrType + return None + + @TriggerSourceOrType.setter + def TriggerSourceOrType(self, value: Optional[str]): + if value is None: + if "TriggerSourceOrType" in self._dataset: + del self._dataset.TriggerSourceOrType + else: + self._dataset.TriggerSourceOrType = value + + @property + def SynchronizationTrigger(self) -> Optional[str]: + if "SynchronizationTrigger" in self._dataset: + return self._dataset.SynchronizationTrigger + return None + + @SynchronizationTrigger.setter + def SynchronizationTrigger(self, value: Optional[str]): + if value is None: + if "SynchronizationTrigger" in self._dataset: + del self._dataset.SynchronizationTrigger + else: + self._dataset.SynchronizationTrigger = value + + @property + def SynchronizationChannel(self) -> Optional[List[int]]: + if "SynchronizationChannel" in self._dataset: + return self._dataset.SynchronizationChannel + return None + + @SynchronizationChannel.setter + def SynchronizationChannel(self, value: Optional[List[int]]): + if value is None: + if "SynchronizationChannel" in self._dataset: + del self._dataset.SynchronizationChannel + else: + self._dataset.SynchronizationChannel = value + + @property + def AcquisitionTimeSynchronized(self) -> Optional[str]: + if "AcquisitionTimeSynchronized" in self._dataset: + return self._dataset.AcquisitionTimeSynchronized + return None + + @AcquisitionTimeSynchronized.setter + def AcquisitionTimeSynchronized(self, value: Optional[str]): + if value is None: + if "AcquisitionTimeSynchronized" in self._dataset: + del self._dataset.AcquisitionTimeSynchronized + else: + self._dataset.AcquisitionTimeSynchronized = value + + @property + def TimeSource(self) -> Optional[str]: + if "TimeSource" in self._dataset: + return self._dataset.TimeSource + return None + + @TimeSource.setter + def TimeSource(self, value: Optional[str]): + if value is None: + if "TimeSource" in self._dataset: + del self._dataset.TimeSource + else: + self._dataset.TimeSource = value + + @property + def TimeDistributionProtocol(self) -> Optional[str]: + if "TimeDistributionProtocol" in self._dataset: + return self._dataset.TimeDistributionProtocol + return None + + @TimeDistributionProtocol.setter + def TimeDistributionProtocol(self, value: Optional[str]): + if value is None: + if "TimeDistributionProtocol" in self._dataset: + del self._dataset.TimeDistributionProtocol + else: + self._dataset.TimeDistributionProtocol = value + + @property + def NTPSourceAddress(self) -> Optional[str]: + if "NTPSourceAddress" in self._dataset: + return self._dataset.NTPSourceAddress + return None + + @NTPSourceAddress.setter + def NTPSourceAddress(self, value: Optional[str]): + if value is None: + if "NTPSourceAddress" in self._dataset: + del self._dataset.NTPSourceAddress + else: + self._dataset.NTPSourceAddress = value + + @property + def SynchronizationFrameOfReferenceUID(self) -> Optional[str]: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + return self._dataset.SynchronizationFrameOfReferenceUID + return None + + @SynchronizationFrameOfReferenceUID.setter + def SynchronizationFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "SynchronizationFrameOfReferenceUID" in self._dataset: + del self._dataset.SynchronizationFrameOfReferenceUID + else: + self._dataset.SynchronizationFrameOfReferenceUID = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def DeviceSequence(self) -> Optional[List[DeviceSequenceItem]]: + if "DeviceSequence" in self._dataset: + if len(self._DeviceSequence) == len(self._dataset.DeviceSequence): + return self._DeviceSequence + else: + return [DeviceSequenceItem(x) for x in self._dataset.DeviceSequence] + return None + + @DeviceSequence.setter + def DeviceSequence(self, value: Optional[List[DeviceSequenceItem]]): + if value is None: + self._DeviceSequence = [] + if "DeviceSequence" in self._dataset: + del self._dataset.DeviceSequence + elif not isinstance(value, list) or not all(isinstance(item, DeviceSequenceItem) for item in value): + raise ValueError("DeviceSequence must be a list of DeviceSequenceItem objects") + else: + self._DeviceSequence = value + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.clear() + self._dataset.DeviceSequence.extend([item.to_dataset() for item in value]) + + def add_Device(self, item: DeviceSequenceItem): + if not isinstance(item, DeviceSequenceItem): + raise ValueError("Item must be an instance of DeviceSequenceItem") + self._DeviceSequence.append(item) + if "DeviceSequence" not in self._dataset: + self._dataset.DeviceSequence = pydicom.Sequence() + self._dataset.DeviceSequence.append(item.to_dataset()) + + @property + def AcquisitionUID(self) -> Optional[str]: + if "AcquisitionUID" in self._dataset: + return self._dataset.AcquisitionUID + return None + + @AcquisitionUID.setter + def AcquisitionUID(self, value: Optional[str]): + if value is None: + if "AcquisitionUID" in self._dataset: + del self._dataset.AcquisitionUID + else: + self._dataset.AcquisitionUID = value + + @property + def AcquisitionDate(self) -> Optional[str]: + if "AcquisitionDate" in self._dataset: + return self._dataset.AcquisitionDate + return None + + @AcquisitionDate.setter + def AcquisitionDate(self, value: Optional[str]): + if value is None: + if "AcquisitionDate" in self._dataset: + del self._dataset.AcquisitionDate + else: + self._dataset.AcquisitionDate = value + + @property + def AcquisitionDateTime(self) -> Optional[str]: + if "AcquisitionDateTime" in self._dataset: + return self._dataset.AcquisitionDateTime + return None + + @AcquisitionDateTime.setter + def AcquisitionDateTime(self, value: Optional[str]): + if value is None: + if "AcquisitionDateTime" in self._dataset: + del self._dataset.AcquisitionDateTime + else: + self._dataset.AcquisitionDateTime = value + + @property + def AcquisitionTime(self) -> Optional[str]: + if "AcquisitionTime" in self._dataset: + return self._dataset.AcquisitionTime + return None + + @AcquisitionTime.setter + def AcquisitionTime(self, value: Optional[str]): + if value is None: + if "AcquisitionTime" in self._dataset: + del self._dataset.AcquisitionTime + else: + self._dataset.AcquisitionTime = value + + @property + def IrradiationEventUID(self) -> Optional[List[str]]: + if "IrradiationEventUID" in self._dataset: + return self._dataset.IrradiationEventUID + return None + + @IrradiationEventUID.setter + def IrradiationEventUID(self, value: Optional[List[str]]): + if value is None: + if "IrradiationEventUID" in self._dataset: + del self._dataset.IrradiationEventUID + else: + self._dataset.IrradiationEventUID = value + + @property + def AcquisitionDuration(self) -> Optional[float]: + if "AcquisitionDuration" in self._dataset: + return self._dataset.AcquisitionDuration + return None + + @AcquisitionDuration.setter + def AcquisitionDuration(self, value: Optional[float]): + if value is None: + if "AcquisitionDuration" in self._dataset: + del self._dataset.AcquisitionDuration + else: + self._dataset.AcquisitionDuration = value + + @property + def AcquisitionNumber(self) -> Optional[int]: + if "AcquisitionNumber" in self._dataset: + return self._dataset.AcquisitionNumber + return None + + @AcquisitionNumber.setter + def AcquisitionNumber(self, value: Optional[int]): + if value is None: + if "AcquisitionNumber" in self._dataset: + del self._dataset.AcquisitionNumber + else: + self._dataset.AcquisitionNumber = value + + @property + def ImagesInAcquisition(self) -> Optional[int]: + if "ImagesInAcquisition" in self._dataset: + return self._dataset.ImagesInAcquisition + return None + + @ImagesInAcquisition.setter + def ImagesInAcquisition(self, value: Optional[int]): + if value is None: + if "ImagesInAcquisition" in self._dataset: + del self._dataset.ImagesInAcquisition + else: + self._dataset.ImagesInAcquisition = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterLeftVerticalEdge(self) -> Optional[int]: + if "ShutterLeftVerticalEdge" in self._dataset: + return self._dataset.ShutterLeftVerticalEdge + return None + + @ShutterLeftVerticalEdge.setter + def ShutterLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLeftVerticalEdge" in self._dataset: + del self._dataset.ShutterLeftVerticalEdge + else: + self._dataset.ShutterLeftVerticalEdge = value + + @property + def ShutterRightVerticalEdge(self) -> Optional[int]: + if "ShutterRightVerticalEdge" in self._dataset: + return self._dataset.ShutterRightVerticalEdge + return None + + @ShutterRightVerticalEdge.setter + def ShutterRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "ShutterRightVerticalEdge" in self._dataset: + del self._dataset.ShutterRightVerticalEdge + else: + self._dataset.ShutterRightVerticalEdge = value + + @property + def ShutterUpperHorizontalEdge(self) -> Optional[int]: + if "ShutterUpperHorizontalEdge" in self._dataset: + return self._dataset.ShutterUpperHorizontalEdge + return None + + @ShutterUpperHorizontalEdge.setter + def ShutterUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterUpperHorizontalEdge" in self._dataset: + del self._dataset.ShutterUpperHorizontalEdge + else: + self._dataset.ShutterUpperHorizontalEdge = value + + @property + def ShutterLowerHorizontalEdge(self) -> Optional[int]: + if "ShutterLowerHorizontalEdge" in self._dataset: + return self._dataset.ShutterLowerHorizontalEdge + return None + + @ShutterLowerHorizontalEdge.setter + def ShutterLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "ShutterLowerHorizontalEdge" in self._dataset: + del self._dataset.ShutterLowerHorizontalEdge + else: + self._dataset.ShutterLowerHorizontalEdge = value + + @property + def CenterOfCircularShutter(self) -> Optional[List[int]]: + if "CenterOfCircularShutter" in self._dataset: + return self._dataset.CenterOfCircularShutter + return None + + @CenterOfCircularShutter.setter + def CenterOfCircularShutter(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularShutter" in self._dataset: + del self._dataset.CenterOfCircularShutter + else: + self._dataset.CenterOfCircularShutter = value + + @property + def RadiusOfCircularShutter(self) -> Optional[int]: + if "RadiusOfCircularShutter" in self._dataset: + return self._dataset.RadiusOfCircularShutter + return None + + @RadiusOfCircularShutter.setter + def RadiusOfCircularShutter(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularShutter" in self._dataset: + del self._dataset.RadiusOfCircularShutter + else: + self._dataset.RadiusOfCircularShutter = value + + @property + def VerticesOfThePolygonalShutter(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalShutter" in self._dataset: + return self._dataset.VerticesOfThePolygonalShutter + return None + + @VerticesOfThePolygonalShutter.setter + def VerticesOfThePolygonalShutter(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalShutter" in self._dataset: + del self._dataset.VerticesOfThePolygonalShutter + else: + self._dataset.VerticesOfThePolygonalShutter = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def RepresentativeFrameNumber(self) -> Optional[int]: + if "RepresentativeFrameNumber" in self._dataset: + return self._dataset.RepresentativeFrameNumber + return None + + @RepresentativeFrameNumber.setter + def RepresentativeFrameNumber(self, value: Optional[int]): + if value is None: + if "RepresentativeFrameNumber" in self._dataset: + del self._dataset.RepresentativeFrameNumber + else: + self._dataset.RepresentativeFrameNumber = value + + @property + def FrameNumbersOfInterest(self) -> Optional[List[int]]: + if "FrameNumbersOfInterest" in self._dataset: + return self._dataset.FrameNumbersOfInterest + return None + + @FrameNumbersOfInterest.setter + def FrameNumbersOfInterest(self, value: Optional[List[int]]): + if value is None: + if "FrameNumbersOfInterest" in self._dataset: + del self._dataset.FrameNumbersOfInterest + else: + self._dataset.FrameNumbersOfInterest = value + + @property + def FrameOfInterestDescription(self) -> Optional[List[str]]: + if "FrameOfInterestDescription" in self._dataset: + return self._dataset.FrameOfInterestDescription + return None + + @FrameOfInterestDescription.setter + def FrameOfInterestDescription(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestDescription" in self._dataset: + del self._dataset.FrameOfInterestDescription + else: + self._dataset.FrameOfInterestDescription = value + + @property + def FrameOfInterestType(self) -> Optional[List[str]]: + if "FrameOfInterestType" in self._dataset: + return self._dataset.FrameOfInterestType + return None + + @FrameOfInterestType.setter + def FrameOfInterestType(self, value: Optional[List[str]]): + if value is None: + if "FrameOfInterestType" in self._dataset: + del self._dataset.FrameOfInterestType + else: + self._dataset.FrameOfInterestType = value + + @property + def CollimatorShape(self) -> Optional[List[str]]: + if "CollimatorShape" in self._dataset: + return self._dataset.CollimatorShape + return None + + @CollimatorShape.setter + def CollimatorShape(self, value: Optional[List[str]]): + if value is None: + if "CollimatorShape" in self._dataset: + del self._dataset.CollimatorShape + else: + self._dataset.CollimatorShape = value + + @property + def CollimatorLeftVerticalEdge(self) -> Optional[int]: + if "CollimatorLeftVerticalEdge" in self._dataset: + return self._dataset.CollimatorLeftVerticalEdge + return None + + @CollimatorLeftVerticalEdge.setter + def CollimatorLeftVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLeftVerticalEdge" in self._dataset: + del self._dataset.CollimatorLeftVerticalEdge + else: + self._dataset.CollimatorLeftVerticalEdge = value + + @property + def CollimatorRightVerticalEdge(self) -> Optional[int]: + if "CollimatorRightVerticalEdge" in self._dataset: + return self._dataset.CollimatorRightVerticalEdge + return None + + @CollimatorRightVerticalEdge.setter + def CollimatorRightVerticalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorRightVerticalEdge" in self._dataset: + del self._dataset.CollimatorRightVerticalEdge + else: + self._dataset.CollimatorRightVerticalEdge = value + + @property + def CollimatorUpperHorizontalEdge(self) -> Optional[int]: + if "CollimatorUpperHorizontalEdge" in self._dataset: + return self._dataset.CollimatorUpperHorizontalEdge + return None + + @CollimatorUpperHorizontalEdge.setter + def CollimatorUpperHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorUpperHorizontalEdge" in self._dataset: + del self._dataset.CollimatorUpperHorizontalEdge + else: + self._dataset.CollimatorUpperHorizontalEdge = value + + @property + def CollimatorLowerHorizontalEdge(self) -> Optional[int]: + if "CollimatorLowerHorizontalEdge" in self._dataset: + return self._dataset.CollimatorLowerHorizontalEdge + return None + + @CollimatorLowerHorizontalEdge.setter + def CollimatorLowerHorizontalEdge(self, value: Optional[int]): + if value is None: + if "CollimatorLowerHorizontalEdge" in self._dataset: + del self._dataset.CollimatorLowerHorizontalEdge + else: + self._dataset.CollimatorLowerHorizontalEdge = value + + @property + def CenterOfCircularCollimator(self) -> Optional[List[int]]: + if "CenterOfCircularCollimator" in self._dataset: + return self._dataset.CenterOfCircularCollimator + return None + + @CenterOfCircularCollimator.setter + def CenterOfCircularCollimator(self, value: Optional[List[int]]): + if value is None: + if "CenterOfCircularCollimator" in self._dataset: + del self._dataset.CenterOfCircularCollimator + else: + self._dataset.CenterOfCircularCollimator = value + + @property + def RadiusOfCircularCollimator(self) -> Optional[int]: + if "RadiusOfCircularCollimator" in self._dataset: + return self._dataset.RadiusOfCircularCollimator + return None + + @RadiusOfCircularCollimator.setter + def RadiusOfCircularCollimator(self, value: Optional[int]): + if value is None: + if "RadiusOfCircularCollimator" in self._dataset: + del self._dataset.RadiusOfCircularCollimator + else: + self._dataset.RadiusOfCircularCollimator = value + + @property + def VerticesOfThePolygonalCollimator(self) -> Optional[List[int]]: + if "VerticesOfThePolygonalCollimator" in self._dataset: + return self._dataset.VerticesOfThePolygonalCollimator + return None + + @VerticesOfThePolygonalCollimator.setter + def VerticesOfThePolygonalCollimator(self, value: Optional[List[int]]): + if value is None: + if "VerticesOfThePolygonalCollimator" in self._dataset: + del self._dataset.VerticesOfThePolygonalCollimator + else: + self._dataset.VerticesOfThePolygonalCollimator = value + + @property + def ImageType(self) -> Optional[List[str]]: + if "ImageType" in self._dataset: + return self._dataset.ImageType + return None + + @ImageType.setter + def ImageType(self, value: Optional[List[str]]): + if value is None: + if "ImageType" in self._dataset: + del self._dataset.ImageType + else: + self._dataset.ImageType = value + + @property + def ReferencedImageSequence(self) -> Optional[List[ReferencedImageSequenceItem]]: + if "ReferencedImageSequence" in self._dataset: + if len(self._ReferencedImageSequence) == len(self._dataset.ReferencedImageSequence): + return self._ReferencedImageSequence + else: + return [ReferencedImageSequenceItem(x) for x in self._dataset.ReferencedImageSequence] + return None + + @ReferencedImageSequence.setter + def ReferencedImageSequence(self, value: Optional[List[ReferencedImageSequenceItem]]): + if value is None: + self._ReferencedImageSequence = [] + if "ReferencedImageSequence" in self._dataset: + del self._dataset.ReferencedImageSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedImageSequenceItem) for item in value): + raise ValueError("ReferencedImageSequence must be a list of ReferencedImageSequenceItem objects") + else: + self._ReferencedImageSequence = value + if "ReferencedImageSequence" not in self._dataset: + self._dataset.ReferencedImageSequence = pydicom.Sequence() + self._dataset.ReferencedImageSequence.clear() + self._dataset.ReferencedImageSequence.extend([item.to_dataset() for item in value]) + + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def ScanOptions(self) -> Optional[List[str]]: + if "ScanOptions" in self._dataset: + return self._dataset.ScanOptions + return None + + @ScanOptions.setter + def ScanOptions(self, value: Optional[List[str]]): + if value is None: + if "ScanOptions" in self._dataset: + del self._dataset.ScanOptions + else: + self._dataset.ScanOptions = value + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def FrameLabelVector(self) -> Optional[List[str]]: + if "FrameLabelVector" in self._dataset: + return self._dataset.FrameLabelVector + return None + + @FrameLabelVector.setter + def FrameLabelVector(self, value: Optional[List[str]]): + if value is None: + if "FrameLabelVector" in self._dataset: + del self._dataset.FrameLabelVector + else: + self._dataset.FrameLabelVector = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def SamplesPerPixel(self) -> Optional[int]: + if "SamplesPerPixel" in self._dataset: + return self._dataset.SamplesPerPixel + return None + + @SamplesPerPixel.setter + def SamplesPerPixel(self, value: Optional[int]): + if value is None: + if "SamplesPerPixel" in self._dataset: + del self._dataset.SamplesPerPixel + else: + self._dataset.SamplesPerPixel = value + + @property + def PhotometricInterpretation(self) -> Optional[str]: + if "PhotometricInterpretation" in self._dataset: + return self._dataset.PhotometricInterpretation + return None + + @PhotometricInterpretation.setter + def PhotometricInterpretation(self, value: Optional[str]): + if value is None: + if "PhotometricInterpretation" in self._dataset: + del self._dataset.PhotometricInterpretation + else: + self._dataset.PhotometricInterpretation = value + + @property + def FrameIncrementPointer(self) -> Optional[List[int]]: + if "FrameIncrementPointer" in self._dataset: + return self._dataset.FrameIncrementPointer + return None + + @FrameIncrementPointer.setter + def FrameIncrementPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameIncrementPointer" in self._dataset: + del self._dataset.FrameIncrementPointer + else: + self._dataset.FrameIncrementPointer = value + + @property + def FrameDimensionPointer(self) -> Optional[List[int]]: + if "FrameDimensionPointer" in self._dataset: + return self._dataset.FrameDimensionPointer + return None + + @FrameDimensionPointer.setter + def FrameDimensionPointer(self, value: Optional[List[int]]): + if value is None: + if "FrameDimensionPointer" in self._dataset: + del self._dataset.FrameDimensionPointer + else: + self._dataset.FrameDimensionPointer = value + + @property + def BitsAllocated(self) -> Optional[int]: + if "BitsAllocated" in self._dataset: + return self._dataset.BitsAllocated + return None + + @BitsAllocated.setter + def BitsAllocated(self, value: Optional[int]): + if value is None: + if "BitsAllocated" in self._dataset: + del self._dataset.BitsAllocated + else: + self._dataset.BitsAllocated = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def HighBit(self) -> Optional[int]: + if "HighBit" in self._dataset: + return self._dataset.HighBit + return None + + @HighBit.setter + def HighBit(self, value: Optional[int]): + if value is None: + if "HighBit" in self._dataset: + del self._dataset.HighBit + else: + self._dataset.HighBit = value + + @property + def PixelRepresentation(self) -> Optional[int]: + if "PixelRepresentation" in self._dataset: + return self._dataset.PixelRepresentation + return None + + @PixelRepresentation.setter + def PixelRepresentation(self, value: Optional[int]): + if value is None: + if "PixelRepresentation" in self._dataset: + del self._dataset.PixelRepresentation + else: + self._dataset.PixelRepresentation = value + + @property + def PixelIntensityRelationship(self) -> Optional[str]: + if "PixelIntensityRelationship" in self._dataset: + return self._dataset.PixelIntensityRelationship + return None + + @PixelIntensityRelationship.setter + def PixelIntensityRelationship(self, value: Optional[str]): + if value is None: + if "PixelIntensityRelationship" in self._dataset: + del self._dataset.PixelIntensityRelationship + else: + self._dataset.PixelIntensityRelationship = value + + @property + def LossyImageCompression(self) -> Optional[str]: + if "LossyImageCompression" in self._dataset: + return self._dataset.LossyImageCompression + return None + + @LossyImageCompression.setter + def LossyImageCompression(self, value: Optional[str]): + if value is None: + if "LossyImageCompression" in self._dataset: + del self._dataset.LossyImageCompression + else: + self._dataset.LossyImageCompression = value + + @property + def RWavePointer(self) -> Optional[List[int]]: + if "RWavePointer" in self._dataset: + return self._dataset.RWavePointer + return None + + @RWavePointer.setter + def RWavePointer(self, value: Optional[List[int]]): + if value is None: + if "RWavePointer" in self._dataset: + del self._dataset.RWavePointer + else: + self._dataset.RWavePointer = value + + @property + def CalibrationImage(self) -> Optional[str]: + if "CalibrationImage" in self._dataset: + return self._dataset.CalibrationImage + return None + + @CalibrationImage.setter + def CalibrationImage(self, value: Optional[str]): + if value is None: + if "CalibrationImage" in self._dataset: + del self._dataset.CalibrationImage + else: + self._dataset.CalibrationImage = value + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/xa_acquisition_phase_details_sequence_item.py b/tdwii_plus_examples/domain_model/xa_acquisition_phase_details_sequence_item.py new file mode 100644 index 0000000..81b8517 --- /dev/null +++ b/tdwii_plus_examples/domain_model/xa_acquisition_phase_details_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class XAAcquisitionPhaseDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def XAAcquisitionFrameRate(self) -> Optional[float]: + if "XAAcquisitionFrameRate" in self._dataset: + return self._dataset.XAAcquisitionFrameRate + return None + + @XAAcquisitionFrameRate.setter + def XAAcquisitionFrameRate(self, value: Optional[float]): + if value is None: + if "XAAcquisitionFrameRate" in self._dataset: + del self._dataset.XAAcquisitionFrameRate + else: + self._dataset.XAAcquisitionFrameRate = value + + @property + def XAAcquisitionDuration(self) -> Optional[float]: + if "XAAcquisitionDuration" in self._dataset: + return self._dataset.XAAcquisitionDuration + return None + + @XAAcquisitionDuration.setter + def XAAcquisitionDuration(self, value: Optional[float]): + if value is None: + if "XAAcquisitionDuration" in self._dataset: + del self._dataset.XAAcquisitionDuration + else: + self._dataset.XAAcquisitionDuration = value diff --git a/tdwii_plus_examples/domain_model/xa_performed_procedure_protocol.py b/tdwii_plus_examples/domain_model/xa_performed_procedure_protocol.py new file mode 100644 index 0000000..abc3790 --- /dev/null +++ b/tdwii_plus_examples/domain_model/xa_performed_procedure_protocol.py @@ -0,0 +1,4807 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .acquisition_protocol_element_sequence_item import ( + AcquisitionProtocolElementSequenceItem, +) +from .anatomic_region_sequence_item import AnatomicRegionSequenceItem +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .custodial_organization_sequence_item import CustodialOrganizationSequenceItem +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .instruction_sequence_item import InstructionSequenceItem +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .patient_positioning_instruction_sequence_item import ( + PatientPositioningInstructionSequenceItem, +) +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .positioning_landmark_sequence_item import PositioningLandmarkSequenceItem +from .predecessor_protocol_sequence_item import PredecessorProtocolSequenceItem +from .primary_anatomic_structure_sequence_item import ( + PrimaryAnatomicStructureSequenceItem, +) +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .reconstruction_protocol_element_sequence_item import ( + ReconstructionProtocolElementSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .storage_protocol_element_sequence_item import StorageProtocolElementSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class XaPerformedProcedureProtocol: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._ResponsibleGroupCodeSequence: List[CodeSequenceItem] = [] + self._PotentialScheduledProtocolCodeSequence: List[CodeSequenceItem] = [] + self._PotentialRequestedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PotentialReasonsForProcedureCodeSequence: List[CodeSequenceItem] = [] + self._ContraindicationsCodeSequence: List[CodeSequenceItem] = [] + self._PredecessorProtocolSequence: List[PredecessorProtocolSequenceItem] = [] + self._CustodialOrganizationSequence: List[CustodialOrganizationSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._InstructionSequence: List[InstructionSequenceItem] = [] + self._AnatomicRegionSequence: List[AnatomicRegionSequenceItem] = [] + self._PrimaryAnatomicStructureSequence: List[PrimaryAnatomicStructureSequenceItem] = [] + self._PatientPositioningInstructionSequence: List[PatientPositioningInstructionSequenceItem] = [] + self._PositioningMethodCodeSequence: List[CodeSequenceItem] = [] + self._PositioningLandmarkSequence: List[PositioningLandmarkSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._AcquisitionProtocolElementSequence: List[AcquisitionProtocolElementSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._ReconstructionProtocolElementSequence: List[ReconstructionProtocolElementSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._StorageProtocolElementSequence: List[StorageProtocolElementSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def ResponsibleGroupCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ResponsibleGroupCodeSequence" in self._dataset: + if len(self._ResponsibleGroupCodeSequence) == len(self._dataset.ResponsibleGroupCodeSequence): + return self._ResponsibleGroupCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ResponsibleGroupCodeSequence] + return None + + @ResponsibleGroupCodeSequence.setter + def ResponsibleGroupCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ResponsibleGroupCodeSequence = [] + if "ResponsibleGroupCodeSequence" in self._dataset: + del self._dataset.ResponsibleGroupCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ResponsibleGroupCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ResponsibleGroupCodeSequence = value + if "ResponsibleGroupCodeSequence" not in self._dataset: + self._dataset.ResponsibleGroupCodeSequence = pydicom.Sequence() + self._dataset.ResponsibleGroupCodeSequence.clear() + self._dataset.ResponsibleGroupCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ResponsibleGroupCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ResponsibleGroupCodeSequence.append(item) + if "ResponsibleGroupCodeSequence" not in self._dataset: + self._dataset.ResponsibleGroupCodeSequence = pydicom.Sequence() + self._dataset.ResponsibleGroupCodeSequence.append(item.to_dataset()) + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PotentialScheduledProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PotentialScheduledProtocolCodeSequence" in self._dataset: + if len(self._PotentialScheduledProtocolCodeSequence) == len(self._dataset.PotentialScheduledProtocolCodeSequence): + return self._PotentialScheduledProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PotentialScheduledProtocolCodeSequence] + return None + + @PotentialScheduledProtocolCodeSequence.setter + def PotentialScheduledProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PotentialScheduledProtocolCodeSequence = [] + if "PotentialScheduledProtocolCodeSequence" in self._dataset: + del self._dataset.PotentialScheduledProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PotentialScheduledProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PotentialScheduledProtocolCodeSequence = value + if "PotentialScheduledProtocolCodeSequence" not in self._dataset: + self._dataset.PotentialScheduledProtocolCodeSequence = pydicom.Sequence() + self._dataset.PotentialScheduledProtocolCodeSequence.clear() + self._dataset.PotentialScheduledProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PotentialScheduledProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PotentialScheduledProtocolCodeSequence.append(item) + if "PotentialScheduledProtocolCodeSequence" not in self._dataset: + self._dataset.PotentialScheduledProtocolCodeSequence = pydicom.Sequence() + self._dataset.PotentialScheduledProtocolCodeSequence.append(item.to_dataset()) + + @property + def PotentialRequestedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PotentialRequestedProcedureCodeSequence" in self._dataset: + if len(self._PotentialRequestedProcedureCodeSequence) == len( + self._dataset.PotentialRequestedProcedureCodeSequence + ): + return self._PotentialRequestedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PotentialRequestedProcedureCodeSequence] + return None + + @PotentialRequestedProcedureCodeSequence.setter + def PotentialRequestedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PotentialRequestedProcedureCodeSequence = [] + if "PotentialRequestedProcedureCodeSequence" in self._dataset: + del self._dataset.PotentialRequestedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PotentialRequestedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PotentialRequestedProcedureCodeSequence = value + if "PotentialRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialRequestedProcedureCodeSequence.clear() + self._dataset.PotentialRequestedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PotentialRequestedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PotentialRequestedProcedureCodeSequence.append(item) + if "PotentialRequestedProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialRequestedProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialRequestedProcedureCodeSequence.append(item.to_dataset()) + + @property + def PotentialReasonsForProcedure(self) -> Optional[List[str]]: + if "PotentialReasonsForProcedure" in self._dataset: + return self._dataset.PotentialReasonsForProcedure + return None + + @PotentialReasonsForProcedure.setter + def PotentialReasonsForProcedure(self, value: Optional[List[str]]): + if value is None: + if "PotentialReasonsForProcedure" in self._dataset: + del self._dataset.PotentialReasonsForProcedure + else: + self._dataset.PotentialReasonsForProcedure = value + + @property + def PotentialReasonsForProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PotentialReasonsForProcedureCodeSequence" in self._dataset: + if len(self._PotentialReasonsForProcedureCodeSequence) == len( + self._dataset.PotentialReasonsForProcedureCodeSequence + ): + return self._PotentialReasonsForProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PotentialReasonsForProcedureCodeSequence] + return None + + @PotentialReasonsForProcedureCodeSequence.setter + def PotentialReasonsForProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PotentialReasonsForProcedureCodeSequence = [] + if "PotentialReasonsForProcedureCodeSequence" in self._dataset: + del self._dataset.PotentialReasonsForProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PotentialReasonsForProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PotentialReasonsForProcedureCodeSequence = value + if "PotentialReasonsForProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialReasonsForProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialReasonsForProcedureCodeSequence.clear() + self._dataset.PotentialReasonsForProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PotentialReasonsForProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PotentialReasonsForProcedureCodeSequence.append(item) + if "PotentialReasonsForProcedureCodeSequence" not in self._dataset: + self._dataset.PotentialReasonsForProcedureCodeSequence = pydicom.Sequence() + self._dataset.PotentialReasonsForProcedureCodeSequence.append(item.to_dataset()) + + @property + def PotentialDiagnosticTasks(self) -> Optional[List[str]]: + if "PotentialDiagnosticTasks" in self._dataset: + return self._dataset.PotentialDiagnosticTasks + return None + + @PotentialDiagnosticTasks.setter + def PotentialDiagnosticTasks(self, value: Optional[List[str]]): + if value is None: + if "PotentialDiagnosticTasks" in self._dataset: + del self._dataset.PotentialDiagnosticTasks + else: + self._dataset.PotentialDiagnosticTasks = value + + @property + def ContraindicationsCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContraindicationsCodeSequence" in self._dataset: + if len(self._ContraindicationsCodeSequence) == len(self._dataset.ContraindicationsCodeSequence): + return self._ContraindicationsCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContraindicationsCodeSequence] + return None + + @ContraindicationsCodeSequence.setter + def ContraindicationsCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContraindicationsCodeSequence = [] + if "ContraindicationsCodeSequence" in self._dataset: + del self._dataset.ContraindicationsCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContraindicationsCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContraindicationsCodeSequence = value + if "ContraindicationsCodeSequence" not in self._dataset: + self._dataset.ContraindicationsCodeSequence = pydicom.Sequence() + self._dataset.ContraindicationsCodeSequence.clear() + self._dataset.ContraindicationsCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContraindicationsCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContraindicationsCodeSequence.append(item) + if "ContraindicationsCodeSequence" not in self._dataset: + self._dataset.ContraindicationsCodeSequence = pydicom.Sequence() + self._dataset.ContraindicationsCodeSequence.append(item.to_dataset()) + + @property + def PredecessorProtocolSequence(self) -> Optional[List[PredecessorProtocolSequenceItem]]: + if "PredecessorProtocolSequence" in self._dataset: + if len(self._PredecessorProtocolSequence) == len(self._dataset.PredecessorProtocolSequence): + return self._PredecessorProtocolSequence + else: + return [PredecessorProtocolSequenceItem(x) for x in self._dataset.PredecessorProtocolSequence] + return None + + @PredecessorProtocolSequence.setter + def PredecessorProtocolSequence(self, value: Optional[List[PredecessorProtocolSequenceItem]]): + if value is None: + self._PredecessorProtocolSequence = [] + if "PredecessorProtocolSequence" in self._dataset: + del self._dataset.PredecessorProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, PredecessorProtocolSequenceItem) for item in value): + raise ValueError("PredecessorProtocolSequence must be a list of PredecessorProtocolSequenceItem objects") + else: + self._PredecessorProtocolSequence = value + if "PredecessorProtocolSequence" not in self._dataset: + self._dataset.PredecessorProtocolSequence = pydicom.Sequence() + self._dataset.PredecessorProtocolSequence.clear() + self._dataset.PredecessorProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_PredecessorProtocol(self, item: PredecessorProtocolSequenceItem): + if not isinstance(item, PredecessorProtocolSequenceItem): + raise ValueError("Item must be an instance of PredecessorProtocolSequenceItem") + self._PredecessorProtocolSequence.append(item) + if "PredecessorProtocolSequence" not in self._dataset: + self._dataset.PredecessorProtocolSequence = pydicom.Sequence() + self._dataset.PredecessorProtocolSequence.append(item.to_dataset()) + + @property + def ProtocolPlanningInformation(self) -> Optional[str]: + if "ProtocolPlanningInformation" in self._dataset: + return self._dataset.ProtocolPlanningInformation + return None + + @ProtocolPlanningInformation.setter + def ProtocolPlanningInformation(self, value: Optional[str]): + if value is None: + if "ProtocolPlanningInformation" in self._dataset: + del self._dataset.ProtocolPlanningInformation + else: + self._dataset.ProtocolPlanningInformation = value + + @property + def ProtocolDesignRationale(self) -> Optional[str]: + if "ProtocolDesignRationale" in self._dataset: + return self._dataset.ProtocolDesignRationale + return None + + @ProtocolDesignRationale.setter + def ProtocolDesignRationale(self, value: Optional[str]): + if value is None: + if "ProtocolDesignRationale" in self._dataset: + del self._dataset.ProtocolDesignRationale + else: + self._dataset.ProtocolDesignRationale = value + + @property + def CustodialOrganizationSequence(self) -> Optional[List[CustodialOrganizationSequenceItem]]: + if "CustodialOrganizationSequence" in self._dataset: + if len(self._CustodialOrganizationSequence) == len(self._dataset.CustodialOrganizationSequence): + return self._CustodialOrganizationSequence + else: + return [CustodialOrganizationSequenceItem(x) for x in self._dataset.CustodialOrganizationSequence] + return None + + @CustodialOrganizationSequence.setter + def CustodialOrganizationSequence(self, value: Optional[List[CustodialOrganizationSequenceItem]]): + if value is None: + self._CustodialOrganizationSequence = [] + if "CustodialOrganizationSequence" in self._dataset: + del self._dataset.CustodialOrganizationSequence + elif not isinstance(value, list) or not all(isinstance(item, CustodialOrganizationSequenceItem) for item in value): + raise ValueError("CustodialOrganizationSequence must be a list of CustodialOrganizationSequenceItem objects") + else: + self._CustodialOrganizationSequence = value + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.clear() + self._dataset.CustodialOrganizationSequence.extend([item.to_dataset() for item in value]) + + def add_CustodialOrganization(self, item: CustodialOrganizationSequenceItem): + if not isinstance(item, CustodialOrganizationSequenceItem): + raise ValueError("Item must be an instance of CustodialOrganizationSequenceItem") + self._CustodialOrganizationSequence.append(item) + if "CustodialOrganizationSequence" not in self._dataset: + self._dataset.CustodialOrganizationSequence = pydicom.Sequence() + self._dataset.CustodialOrganizationSequence.append(item.to_dataset()) + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def FrameOfReferenceUID(self) -> Optional[str]: + if "FrameOfReferenceUID" in self._dataset: + return self._dataset.FrameOfReferenceUID + return None + + @FrameOfReferenceUID.setter + def FrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "FrameOfReferenceUID" in self._dataset: + del self._dataset.FrameOfReferenceUID + else: + self._dataset.FrameOfReferenceUID = value + + @property + def PositionReferenceIndicator(self) -> Optional[str]: + if "PositionReferenceIndicator" in self._dataset: + return self._dataset.PositionReferenceIndicator + return None + + @PositionReferenceIndicator.setter + def PositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "PositionReferenceIndicator" in self._dataset: + del self._dataset.PositionReferenceIndicator + else: + self._dataset.PositionReferenceIndicator = value + + @property + def InstructionSequence(self) -> Optional[List[InstructionSequenceItem]]: + if "InstructionSequence" in self._dataset: + if len(self._InstructionSequence) == len(self._dataset.InstructionSequence): + return self._InstructionSequence + else: + return [InstructionSequenceItem(x) for x in self._dataset.InstructionSequence] + return None + + @InstructionSequence.setter + def InstructionSequence(self, value: Optional[List[InstructionSequenceItem]]): + if value is None: + self._InstructionSequence = [] + if "InstructionSequence" in self._dataset: + del self._dataset.InstructionSequence + elif not isinstance(value, list) or not all(isinstance(item, InstructionSequenceItem) for item in value): + raise ValueError("InstructionSequence must be a list of InstructionSequenceItem objects") + else: + self._InstructionSequence = value + if "InstructionSequence" not in self._dataset: + self._dataset.InstructionSequence = pydicom.Sequence() + self._dataset.InstructionSequence.clear() + self._dataset.InstructionSequence.extend([item.to_dataset() for item in value]) + + def add_Instruction(self, item: InstructionSequenceItem): + if not isinstance(item, InstructionSequenceItem): + raise ValueError("Item must be an instance of InstructionSequenceItem") + self._InstructionSequence.append(item) + if "InstructionSequence" not in self._dataset: + self._dataset.InstructionSequence = pydicom.Sequence() + self._dataset.InstructionSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def AnatomicRegionSequence(self) -> Optional[List[AnatomicRegionSequenceItem]]: + if "AnatomicRegionSequence" in self._dataset: + if len(self._AnatomicRegionSequence) == len(self._dataset.AnatomicRegionSequence): + return self._AnatomicRegionSequence + else: + return [AnatomicRegionSequenceItem(x) for x in self._dataset.AnatomicRegionSequence] + return None + + @AnatomicRegionSequence.setter + def AnatomicRegionSequence(self, value: Optional[List[AnatomicRegionSequenceItem]]): + if value is None: + self._AnatomicRegionSequence = [] + if "AnatomicRegionSequence" in self._dataset: + del self._dataset.AnatomicRegionSequence + elif not isinstance(value, list) or not all(isinstance(item, AnatomicRegionSequenceItem) for item in value): + raise ValueError("AnatomicRegionSequence must be a list of AnatomicRegionSequenceItem objects") + else: + self._AnatomicRegionSequence = value + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.clear() + self._dataset.AnatomicRegionSequence.extend([item.to_dataset() for item in value]) + + def add_AnatomicRegion(self, item: AnatomicRegionSequenceItem): + if not isinstance(item, AnatomicRegionSequenceItem): + raise ValueError("Item must be an instance of AnatomicRegionSequenceItem") + self._AnatomicRegionSequence.append(item) + if "AnatomicRegionSequence" not in self._dataset: + self._dataset.AnatomicRegionSequence = pydicom.Sequence() + self._dataset.AnatomicRegionSequence.append(item.to_dataset()) + + @property + def PrimaryAnatomicStructureSequence(self) -> Optional[List[PrimaryAnatomicStructureSequenceItem]]: + if "PrimaryAnatomicStructureSequence" in self._dataset: + if len(self._PrimaryAnatomicStructureSequence) == len(self._dataset.PrimaryAnatomicStructureSequence): + return self._PrimaryAnatomicStructureSequence + else: + return [PrimaryAnatomicStructureSequenceItem(x) for x in self._dataset.PrimaryAnatomicStructureSequence] + return None + + @PrimaryAnatomicStructureSequence.setter + def PrimaryAnatomicStructureSequence(self, value: Optional[List[PrimaryAnatomicStructureSequenceItem]]): + if value is None: + self._PrimaryAnatomicStructureSequence = [] + if "PrimaryAnatomicStructureSequence" in self._dataset: + del self._dataset.PrimaryAnatomicStructureSequence + elif not isinstance(value, list) or not all(isinstance(item, PrimaryAnatomicStructureSequenceItem) for item in value): + raise ValueError("PrimaryAnatomicStructureSequence must be a list of PrimaryAnatomicStructureSequenceItem objects") + else: + self._PrimaryAnatomicStructureSequence = value + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.clear() + self._dataset.PrimaryAnatomicStructureSequence.extend([item.to_dataset() for item in value]) + + def add_PrimaryAnatomicStructure(self, item: PrimaryAnatomicStructureSequenceItem): + if not isinstance(item, PrimaryAnatomicStructureSequenceItem): + raise ValueError("Item must be an instance of PrimaryAnatomicStructureSequenceItem") + self._PrimaryAnatomicStructureSequence.append(item) + if "PrimaryAnatomicStructureSequence" not in self._dataset: + self._dataset.PrimaryAnatomicStructureSequence = pydicom.Sequence() + self._dataset.PrimaryAnatomicStructureSequence.append(item.to_dataset()) + + @property + def PatientPositioningInstructionSequence(self) -> Optional[List[PatientPositioningInstructionSequenceItem]]: + if "PatientPositioningInstructionSequence" in self._dataset: + if len(self._PatientPositioningInstructionSequence) == len(self._dataset.PatientPositioningInstructionSequence): + return self._PatientPositioningInstructionSequence + else: + return [ + PatientPositioningInstructionSequenceItem(x) for x in self._dataset.PatientPositioningInstructionSequence + ] + return None + + @PatientPositioningInstructionSequence.setter + def PatientPositioningInstructionSequence(self, value: Optional[List[PatientPositioningInstructionSequenceItem]]): + if value is None: + self._PatientPositioningInstructionSequence = [] + if "PatientPositioningInstructionSequence" in self._dataset: + del self._dataset.PatientPositioningInstructionSequence + elif not isinstance(value, list) or not all( + isinstance(item, PatientPositioningInstructionSequenceItem) for item in value + ): + raise ValueError( + "PatientPositioningInstructionSequence must be a list of PatientPositioningInstructionSequenceItem objects" + ) + else: + self._PatientPositioningInstructionSequence = value + if "PatientPositioningInstructionSequence" not in self._dataset: + self._dataset.PatientPositioningInstructionSequence = pydicom.Sequence() + self._dataset.PatientPositioningInstructionSequence.clear() + self._dataset.PatientPositioningInstructionSequence.extend([item.to_dataset() for item in value]) + + def add_PatientPositioningInstruction(self, item: PatientPositioningInstructionSequenceItem): + if not isinstance(item, PatientPositioningInstructionSequenceItem): + raise ValueError("Item must be an instance of PatientPositioningInstructionSequenceItem") + self._PatientPositioningInstructionSequence.append(item) + if "PatientPositioningInstructionSequence" not in self._dataset: + self._dataset.PatientPositioningInstructionSequence = pydicom.Sequence() + self._dataset.PatientPositioningInstructionSequence.append(item.to_dataset()) + + @property + def PositioningMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PositioningMethodCodeSequence" in self._dataset: + if len(self._PositioningMethodCodeSequence) == len(self._dataset.PositioningMethodCodeSequence): + return self._PositioningMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PositioningMethodCodeSequence] + return None + + @PositioningMethodCodeSequence.setter + def PositioningMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PositioningMethodCodeSequence = [] + if "PositioningMethodCodeSequence" in self._dataset: + del self._dataset.PositioningMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PositioningMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PositioningMethodCodeSequence = value + if "PositioningMethodCodeSequence" not in self._dataset: + self._dataset.PositioningMethodCodeSequence = pydicom.Sequence() + self._dataset.PositioningMethodCodeSequence.clear() + self._dataset.PositioningMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PositioningMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PositioningMethodCodeSequence.append(item) + if "PositioningMethodCodeSequence" not in self._dataset: + self._dataset.PositioningMethodCodeSequence = pydicom.Sequence() + self._dataset.PositioningMethodCodeSequence.append(item.to_dataset()) + + @property + def PositioningLandmarkSequence(self) -> Optional[List[PositioningLandmarkSequenceItem]]: + if "PositioningLandmarkSequence" in self._dataset: + if len(self._PositioningLandmarkSequence) == len(self._dataset.PositioningLandmarkSequence): + return self._PositioningLandmarkSequence + else: + return [PositioningLandmarkSequenceItem(x) for x in self._dataset.PositioningLandmarkSequence] + return None + + @PositioningLandmarkSequence.setter + def PositioningLandmarkSequence(self, value: Optional[List[PositioningLandmarkSequenceItem]]): + if value is None: + self._PositioningLandmarkSequence = [] + if "PositioningLandmarkSequence" in self._dataset: + del self._dataset.PositioningLandmarkSequence + elif not isinstance(value, list) or not all(isinstance(item, PositioningLandmarkSequenceItem) for item in value): + raise ValueError("PositioningLandmarkSequence must be a list of PositioningLandmarkSequenceItem objects") + else: + self._PositioningLandmarkSequence = value + if "PositioningLandmarkSequence" not in self._dataset: + self._dataset.PositioningLandmarkSequence = pydicom.Sequence() + self._dataset.PositioningLandmarkSequence.clear() + self._dataset.PositioningLandmarkSequence.extend([item.to_dataset() for item in value]) + + def add_PositioningLandmark(self, item: PositioningLandmarkSequenceItem): + if not isinstance(item, PositioningLandmarkSequenceItem): + raise ValueError("Item must be an instance of PositioningLandmarkSequenceItem") + self._PositioningLandmarkSequence.append(item) + if "PositioningLandmarkSequence" not in self._dataset: + self._dataset.PositioningLandmarkSequence = pydicom.Sequence() + self._dataset.PositioningLandmarkSequence.append(item.to_dataset()) + + @property + def TargetFrameOfReferenceUID(self) -> Optional[str]: + if "TargetFrameOfReferenceUID" in self._dataset: + return self._dataset.TargetFrameOfReferenceUID + return None + + @TargetFrameOfReferenceUID.setter + def TargetFrameOfReferenceUID(self, value: Optional[str]): + if value is None: + if "TargetFrameOfReferenceUID" in self._dataset: + del self._dataset.TargetFrameOfReferenceUID + else: + self._dataset.TargetFrameOfReferenceUID = value + + @property + def ProtocolDefinedPatientPosition(self) -> Optional[str]: + if "ProtocolDefinedPatientPosition" in self._dataset: + return self._dataset.ProtocolDefinedPatientPosition + return None + + @ProtocolDefinedPatientPosition.setter + def ProtocolDefinedPatientPosition(self, value: Optional[str]): + if value is None: + if "ProtocolDefinedPatientPosition" in self._dataset: + del self._dataset.ProtocolDefinedPatientPosition + else: + self._dataset.ProtocolDefinedPatientPosition = value + + @property + def TargetPositionReferenceIndicator(self) -> Optional[str]: + if "TargetPositionReferenceIndicator" in self._dataset: + return self._dataset.TargetPositionReferenceIndicator + return None + + @TargetPositionReferenceIndicator.setter + def TargetPositionReferenceIndicator(self, value: Optional[str]): + if value is None: + if "TargetPositionReferenceIndicator" in self._dataset: + del self._dataset.TargetPositionReferenceIndicator + else: + self._dataset.TargetPositionReferenceIndicator = value + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def AcquisitionProtocolElementSequence(self) -> Optional[List[AcquisitionProtocolElementSequenceItem]]: + if "AcquisitionProtocolElementSequence" in self._dataset: + if len(self._AcquisitionProtocolElementSequence) == len(self._dataset.AcquisitionProtocolElementSequence): + return self._AcquisitionProtocolElementSequence + else: + return [AcquisitionProtocolElementSequenceItem(x) for x in self._dataset.AcquisitionProtocolElementSequence] + return None + + @AcquisitionProtocolElementSequence.setter + def AcquisitionProtocolElementSequence(self, value: Optional[List[AcquisitionProtocolElementSequenceItem]]): + if value is None: + self._AcquisitionProtocolElementSequence = [] + if "AcquisitionProtocolElementSequence" in self._dataset: + del self._dataset.AcquisitionProtocolElementSequence + elif not isinstance(value, list) or not all( + isinstance(item, AcquisitionProtocolElementSequenceItem) for item in value + ): + raise ValueError( + "AcquisitionProtocolElementSequence must be a list of AcquisitionProtocolElementSequenceItem objects" + ) + else: + self._AcquisitionProtocolElementSequence = value + if "AcquisitionProtocolElementSequence" not in self._dataset: + self._dataset.AcquisitionProtocolElementSequence = pydicom.Sequence() + self._dataset.AcquisitionProtocolElementSequence.clear() + self._dataset.AcquisitionProtocolElementSequence.extend([item.to_dataset() for item in value]) + + def add_AcquisitionProtocolElement(self, item: AcquisitionProtocolElementSequenceItem): + if not isinstance(item, AcquisitionProtocolElementSequenceItem): + raise ValueError("Item must be an instance of AcquisitionProtocolElementSequenceItem") + self._AcquisitionProtocolElementSequence.append(item) + if "AcquisitionProtocolElementSequence" not in self._dataset: + self._dataset.AcquisitionProtocolElementSequence = pydicom.Sequence() + self._dataset.AcquisitionProtocolElementSequence.append(item.to_dataset()) + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def ReconstructionProtocolElementSequence(self) -> Optional[List[ReconstructionProtocolElementSequenceItem]]: + if "ReconstructionProtocolElementSequence" in self._dataset: + if len(self._ReconstructionProtocolElementSequence) == len(self._dataset.ReconstructionProtocolElementSequence): + return self._ReconstructionProtocolElementSequence + else: + return [ + ReconstructionProtocolElementSequenceItem(x) for x in self._dataset.ReconstructionProtocolElementSequence + ] + return None + + @ReconstructionProtocolElementSequence.setter + def ReconstructionProtocolElementSequence(self, value: Optional[List[ReconstructionProtocolElementSequenceItem]]): + if value is None: + self._ReconstructionProtocolElementSequence = [] + if "ReconstructionProtocolElementSequence" in self._dataset: + del self._dataset.ReconstructionProtocolElementSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReconstructionProtocolElementSequenceItem) for item in value + ): + raise ValueError( + "ReconstructionProtocolElementSequence must be a list of ReconstructionProtocolElementSequenceItem objects" + ) + else: + self._ReconstructionProtocolElementSequence = value + if "ReconstructionProtocolElementSequence" not in self._dataset: + self._dataset.ReconstructionProtocolElementSequence = pydicom.Sequence() + self._dataset.ReconstructionProtocolElementSequence.clear() + self._dataset.ReconstructionProtocolElementSequence.extend([item.to_dataset() for item in value]) + + def add_ReconstructionProtocolElement(self, item: ReconstructionProtocolElementSequenceItem): + if not isinstance(item, ReconstructionProtocolElementSequenceItem): + raise ValueError("Item must be an instance of ReconstructionProtocolElementSequenceItem") + self._ReconstructionProtocolElementSequence.append(item) + if "ReconstructionProtocolElementSequence" not in self._dataset: + self._dataset.ReconstructionProtocolElementSequence = pydicom.Sequence() + self._dataset.ReconstructionProtocolElementSequence.append(item.to_dataset()) + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def StorageProtocolElementSequence(self) -> Optional[List[StorageProtocolElementSequenceItem]]: + if "StorageProtocolElementSequence" in self._dataset: + if len(self._StorageProtocolElementSequence) == len(self._dataset.StorageProtocolElementSequence): + return self._StorageProtocolElementSequence + else: + return [StorageProtocolElementSequenceItem(x) for x in self._dataset.StorageProtocolElementSequence] + return None + + @StorageProtocolElementSequence.setter + def StorageProtocolElementSequence(self, value: Optional[List[StorageProtocolElementSequenceItem]]): + if value is None: + self._StorageProtocolElementSequence = [] + if "StorageProtocolElementSequence" in self._dataset: + del self._dataset.StorageProtocolElementSequence + elif not isinstance(value, list) or not all(isinstance(item, StorageProtocolElementSequenceItem) for item in value): + raise ValueError("StorageProtocolElementSequence must be a list of StorageProtocolElementSequenceItem objects") + else: + self._StorageProtocolElementSequence = value + if "StorageProtocolElementSequence" not in self._dataset: + self._dataset.StorageProtocolElementSequence = pydicom.Sequence() + self._dataset.StorageProtocolElementSequence.clear() + self._dataset.StorageProtocolElementSequence.extend([item.to_dataset() for item in value]) + + def add_StorageProtocolElement(self, item: StorageProtocolElementSequenceItem): + if not isinstance(item, StorageProtocolElementSequenceItem): + raise ValueError("Item must be an instance of StorageProtocolElementSequenceItem") + self._StorageProtocolElementSequence.append(item) + if "StorageProtocolElementSequence" not in self._dataset: + self._dataset.StorageProtocolElementSequence = pydicom.Sequence() + self._dataset.StorageProtocolElementSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/xa_plane_details_sequence_item.py b/tdwii_plus_examples/domain_model/xa_plane_details_sequence_item.py new file mode 100644 index 0000000..d97407a --- /dev/null +++ b/tdwii_plus_examples/domain_model/xa_plane_details_sequence_item.py @@ -0,0 +1,341 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .x_ray_filter_details_sequence_item import XRayFilterDetailsSequenceItem + + +class XAPlaneDetailsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._XRayFilterDetailsSequence: List[XRayFilterDetailsSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def KVP(self) -> Optional[Decimal]: + if "KVP" in self._dataset: + return self._dataset.KVP + return None + + @KVP.setter + def KVP(self, value: Optional[Decimal]): + if value is None: + if "KVP" in self._dataset: + del self._dataset.KVP + else: + self._dataset.KVP = value + + @property + def DistanceSourceToDetector(self) -> Optional[Decimal]: + if "DistanceSourceToDetector" in self._dataset: + return self._dataset.DistanceSourceToDetector + return None + + @DistanceSourceToDetector.setter + def DistanceSourceToDetector(self, value: Optional[Decimal]): + if value is None: + if "DistanceSourceToDetector" in self._dataset: + del self._dataset.DistanceSourceToDetector + else: + self._dataset.DistanceSourceToDetector = value + + @property + def AveragePulseWidth(self) -> Optional[Decimal]: + if "AveragePulseWidth" in self._dataset: + return self._dataset.AveragePulseWidth + return None + + @AveragePulseWidth.setter + def AveragePulseWidth(self, value: Optional[Decimal]): + if value is None: + if "AveragePulseWidth" in self._dataset: + del self._dataset.AveragePulseWidth + else: + self._dataset.AveragePulseWidth = value + + @property + def FocalSpots(self) -> Optional[List[Decimal]]: + if "FocalSpots" in self._dataset: + return self._dataset.FocalSpots + return None + + @FocalSpots.setter + def FocalSpots(self, value: Optional[List[Decimal]]): + if value is None: + if "FocalSpots" in self._dataset: + del self._dataset.FocalSpots + else: + self._dataset.FocalSpots = value + + @property + def AcquisitionFieldOfViewLabel(self) -> Optional[str]: + if "AcquisitionFieldOfViewLabel" in self._dataset: + return self._dataset.AcquisitionFieldOfViewLabel + return None + + @AcquisitionFieldOfViewLabel.setter + def AcquisitionFieldOfViewLabel(self, value: Optional[str]): + if value is None: + if "AcquisitionFieldOfViewLabel" in self._dataset: + del self._dataset.AcquisitionFieldOfViewLabel + else: + self._dataset.AcquisitionFieldOfViewLabel = value + + @property + def XRayFilterDetailsSequence(self) -> Optional[List[XRayFilterDetailsSequenceItem]]: + if "XRayFilterDetailsSequence" in self._dataset: + if len(self._XRayFilterDetailsSequence) == len(self._dataset.XRayFilterDetailsSequence): + return self._XRayFilterDetailsSequence + else: + return [XRayFilterDetailsSequenceItem(x) for x in self._dataset.XRayFilterDetailsSequence] + return None + + @XRayFilterDetailsSequence.setter + def XRayFilterDetailsSequence(self, value: Optional[List[XRayFilterDetailsSequenceItem]]): + if value is None: + self._XRayFilterDetailsSequence = [] + if "XRayFilterDetailsSequence" in self._dataset: + del self._dataset.XRayFilterDetailsSequence + elif not isinstance(value, list) or not all(isinstance(item, XRayFilterDetailsSequenceItem) for item in value): + raise ValueError("XRayFilterDetailsSequence must be a list of XRayFilterDetailsSequenceItem objects") + else: + self._XRayFilterDetailsSequence = value + if "XRayFilterDetailsSequence" not in self._dataset: + self._dataset.XRayFilterDetailsSequence = pydicom.Sequence() + self._dataset.XRayFilterDetailsSequence.clear() + self._dataset.XRayFilterDetailsSequence.extend([item.to_dataset() for item in value]) + + def add_XRayFilterDetails(self, item: XRayFilterDetailsSequenceItem): + if not isinstance(item, XRayFilterDetailsSequenceItem): + raise ValueError("Item must be an instance of XRayFilterDetailsSequenceItem") + self._XRayFilterDetailsSequence.append(item) + if "XRayFilterDetailsSequence" not in self._dataset: + self._dataset.XRayFilterDetailsSequence = pydicom.Sequence() + self._dataset.XRayFilterDetailsSequence.append(item.to_dataset()) + + @property + def DetectorBinning(self) -> Optional[List[Decimal]]: + if "DetectorBinning" in self._dataset: + return self._dataset.DetectorBinning + return None + + @DetectorBinning.setter + def DetectorBinning(self, value: Optional[List[Decimal]]): + if value is None: + if "DetectorBinning" in self._dataset: + del self._dataset.DetectorBinning + else: + self._dataset.DetectorBinning = value + + @property + def ExposureTimeInms(self) -> Optional[float]: + if "ExposureTimeInms" in self._dataset: + return self._dataset.ExposureTimeInms + return None + + @ExposureTimeInms.setter + def ExposureTimeInms(self, value: Optional[float]): + if value is None: + if "ExposureTimeInms" in self._dataset: + del self._dataset.ExposureTimeInms + else: + self._dataset.ExposureTimeInms = value + + @property + def XRayTubeCurrentInmA(self) -> Optional[float]: + if "XRayTubeCurrentInmA" in self._dataset: + return self._dataset.XRayTubeCurrentInmA + return None + + @XRayTubeCurrentInmA.setter + def XRayTubeCurrentInmA(self, value: Optional[float]): + if value is None: + if "XRayTubeCurrentInmA" in self._dataset: + del self._dataset.XRayTubeCurrentInmA + else: + self._dataset.XRayTubeCurrentInmA = value + + @property + def ExposureInmAs(self) -> Optional[float]: + if "ExposureInmAs" in self._dataset: + return self._dataset.ExposureInmAs + return None + + @ExposureInmAs.setter + def ExposureInmAs(self, value: Optional[float]): + if value is None: + if "ExposureInmAs" in self._dataset: + del self._dataset.ExposureInmAs + else: + self._dataset.ExposureInmAs = value + + @property + def PlaneIdentification(self) -> Optional[str]: + if "PlaneIdentification" in self._dataset: + return self._dataset.PlaneIdentification + return None + + @PlaneIdentification.setter + def PlaneIdentification(self, value: Optional[str]): + if value is None: + if "PlaneIdentification" in self._dataset: + del self._dataset.PlaneIdentification + else: + self._dataset.PlaneIdentification = value + + @property + def FieldOfViewDimensionsInFloat(self) -> Optional[List[float]]: + if "FieldOfViewDimensionsInFloat" in self._dataset: + return self._dataset.FieldOfViewDimensionsInFloat + return None + + @FieldOfViewDimensionsInFloat.setter + def FieldOfViewDimensionsInFloat(self, value: Optional[List[float]]): + if value is None: + if "FieldOfViewDimensionsInFloat" in self._dataset: + del self._dataset.FieldOfViewDimensionsInFloat + else: + self._dataset.FieldOfViewDimensionsInFloat = value + + @property + def PrimaryPositionerScanArc(self) -> Optional[float]: + if "PrimaryPositionerScanArc" in self._dataset: + return self._dataset.PrimaryPositionerScanArc + return None + + @PrimaryPositionerScanArc.setter + def PrimaryPositionerScanArc(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerScanArc" in self._dataset: + del self._dataset.PrimaryPositionerScanArc + else: + self._dataset.PrimaryPositionerScanArc = value + + @property + def SecondaryPositionerScanArc(self) -> Optional[float]: + if "SecondaryPositionerScanArc" in self._dataset: + return self._dataset.SecondaryPositionerScanArc + return None + + @SecondaryPositionerScanArc.setter + def SecondaryPositionerScanArc(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerScanArc" in self._dataset: + del self._dataset.SecondaryPositionerScanArc + else: + self._dataset.SecondaryPositionerScanArc = value + + @property + def PrimaryPositionerScanStartAngle(self) -> Optional[float]: + if "PrimaryPositionerScanStartAngle" in self._dataset: + return self._dataset.PrimaryPositionerScanStartAngle + return None + + @PrimaryPositionerScanStartAngle.setter + def PrimaryPositionerScanStartAngle(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerScanStartAngle" in self._dataset: + del self._dataset.PrimaryPositionerScanStartAngle + else: + self._dataset.PrimaryPositionerScanStartAngle = value + + @property + def SecondaryPositionerScanStartAngle(self) -> Optional[float]: + if "SecondaryPositionerScanStartAngle" in self._dataset: + return self._dataset.SecondaryPositionerScanStartAngle + return None + + @SecondaryPositionerScanStartAngle.setter + def SecondaryPositionerScanStartAngle(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerScanStartAngle" in self._dataset: + del self._dataset.SecondaryPositionerScanStartAngle + else: + self._dataset.SecondaryPositionerScanStartAngle = value + + @property + def PrimaryPositionerIncrement(self) -> Optional[float]: + if "PrimaryPositionerIncrement" in self._dataset: + return self._dataset.PrimaryPositionerIncrement + return None + + @PrimaryPositionerIncrement.setter + def PrimaryPositionerIncrement(self, value: Optional[float]): + if value is None: + if "PrimaryPositionerIncrement" in self._dataset: + del self._dataset.PrimaryPositionerIncrement + else: + self._dataset.PrimaryPositionerIncrement = value + + @property + def SecondaryPositionerIncrement(self) -> Optional[float]: + if "SecondaryPositionerIncrement" in self._dataset: + return self._dataset.SecondaryPositionerIncrement + return None + + @SecondaryPositionerIncrement.setter + def SecondaryPositionerIncrement(self, value: Optional[float]): + if value is None: + if "SecondaryPositionerIncrement" in self._dataset: + del self._dataset.SecondaryPositionerIncrement + else: + self._dataset.SecondaryPositionerIncrement = value + + @property + def Rows(self) -> Optional[int]: + if "Rows" in self._dataset: + return self._dataset.Rows + return None + + @Rows.setter + def Rows(self, value: Optional[int]): + if value is None: + if "Rows" in self._dataset: + del self._dataset.Rows + else: + self._dataset.Rows = value + + @property + def Columns(self) -> Optional[int]: + if "Columns" in self._dataset: + return self._dataset.Columns + return None + + @Columns.setter + def Columns(self, value: Optional[int]): + if value is None: + if "Columns" in self._dataset: + del self._dataset.Columns + else: + self._dataset.Columns = value + + @property + def BitsStored(self) -> Optional[int]: + if "BitsStored" in self._dataset: + return self._dataset.BitsStored + return None + + @BitsStored.setter + def BitsStored(self, value: Optional[int]): + if value is None: + if "BitsStored" in self._dataset: + del self._dataset.BitsStored + else: + self._dataset.BitsStored = value + + @property + def BeamNumber(self) -> Optional[int]: + if "BeamNumber" in self._dataset: + return self._dataset.BeamNumber + return None + + @BeamNumber.setter + def BeamNumber(self, value: Optional[int]): + if value is None: + if "BeamNumber" in self._dataset: + del self._dataset.BeamNumber + else: + self._dataset.BeamNumber = value diff --git a/tdwii_plus_examples/domain_model/xa_xrf_grayscale_softcopy_presentation_state.py b/tdwii_plus_examples/domain_model/xa_xrf_grayscale_softcopy_presentation_state.py new file mode 100644 index 0000000..1a83c90 --- /dev/null +++ b/tdwii_plus_examples/domain_model/xa_xrf_grayscale_softcopy_presentation_state.py @@ -0,0 +1,4981 @@ +from decimal import Decimal +from typing import Any, List, Optional # noqa + +import pydicom + +from .alternate_container_identifier_sequence_item import ( + AlternateContainerIdentifierSequenceItem, +) +from .alternate_content_description_sequence_item import ( + AlternateContentDescriptionSequenceItem, +) +from .breed_registration_sequence_item import BreedRegistrationSequenceItem +from .code_sequence_item import CodeSequenceItem +from .coding_scheme_identification_sequence_item import ( + CodingSchemeIdentificationSequenceItem, +) +from .consent_for_clinical_trial_use_sequence_item import ( + ConsentForClinicalTrialUseSequenceItem, +) +from .consulting_physician_identification_sequence_item import ( + ConsultingPhysicianIdentificationSequenceItem, +) +from .container_component_sequence_item import ContainerComponentSequenceItem +from .context_group_identification_sequence_item import ( + ContextGroupIdentificationSequenceItem, +) +from .contributing_equipment_sequence_item import ContributingEquipmentSequenceItem +from .conversion_source_attributes_sequence_item import ( + ConversionSourceAttributesSequenceItem, +) +from .digital_signatures_sequence_item import DigitalSignaturesSequenceItem +from .displayed_area_selection_sequence_item import DisplayedAreaSelectionSequenceItem +from .encrypted_attributes_sequence_item import EncryptedAttributesSequenceItem +from .frame_display_shutter_sequence_item import FrameDisplayShutterSequenceItem +from .genetic_modifications_sequence_item import GeneticModificationsSequenceItem +from .graphic_annotation_sequence_item import GraphicAnnotationSequenceItem +from .graphic_layer_sequence_item import GraphicLayerSequenceItem +from .group_of_patients_identification_sequence_item import ( + GroupOfPatientsIdentificationSequenceItem, +) +from .hl7_structured_document_reference_sequence_item import ( + HL7StructuredDocumentReferenceSequenceItem, +) +from .issuer_of_accession_number_sequence_item import ( + IssuerOfAccessionNumberSequenceItem, +) +from .issuer_of_admission_id_sequence_item import IssuerOfAdmissionIDSequenceItem +from .issuer_of_patient_id_qualifiers_sequence_item import ( + IssuerOfPatientIDQualifiersSequenceItem, +) +from .issuer_of_service_episode_id_sequence_item import ( + IssuerOfServiceEpisodeIDSequenceItem, +) +from .issuer_of_the_container_identifier_sequence_item import ( + IssuerOfTheContainerIdentifierSequenceItem, +) +from .mac_parameters_sequence_item import MACParametersSequenceItem +from .mapping_resource_identification_sequence_item import ( + MappingResourceIdentificationSequenceItem, +) +from .mask_subtraction_sequence_item import MaskSubtractionSequenceItem +from .multi_frame_presentation_sequence_item import MultiFramePresentationSequenceItem +from .operator_identification_sequence_item import OperatorIdentificationSequenceItem +from .original_attributes_sequence_item import OriginalAttributesSequenceItem +from .other_clinical_trial_protocol_i_ds_sequence_item import ( + OtherClinicalTrialProtocolIDsSequenceItem, +) +from .other_patient_i_ds_sequence_item import OtherPatientIDsSequenceItem +from .performing_physician_identification_sequence_item import ( + PerformingPhysicianIdentificationSequenceItem, +) +from .physicians_of_record_identification_sequence_item import ( + PhysiciansOfRecordIdentificationSequenceItem, +) +from .physicians_reading_study_identification_sequence_item import ( + PhysiciansReadingStudyIdentificationSequenceItem, +) +from .presentation_lut_sequence_item import PresentationLUTSequenceItem +from .private_data_element_characteristics_sequence_item import ( + PrivateDataElementCharacteristicsSequenceItem, +) +from .referenced_defined_protocol_sequence_item import ( + ReferencedDefinedProtocolSequenceItem, +) +from .referenced_patient_photo_sequence_item import ReferencedPatientPhotoSequenceItem +from .referenced_patient_sequence_item import ReferencedPatientSequenceItem +from .referenced_performed_procedure_step_sequence_item import ( + ReferencedPerformedProcedureStepSequenceItem, +) +from .referenced_performed_protocol_sequence_item import ( + ReferencedPerformedProtocolSequenceItem, +) +from .referenced_series_sequence_item import ReferencedSeriesSequenceItem +from .referenced_study_sequence_item import ReferencedStudySequenceItem +from .referring_physician_identification_sequence_item import ( + ReferringPhysicianIdentificationSequenceItem, +) +from .related_series_sequence_item import RelatedSeriesSequenceItem +from .request_attributes_sequence_item import RequestAttributesSequenceItem +from .softcopy_voilut_sequence_item import SoftcopyVOILUTSequenceItem +from .source_patient_group_identification_sequence_item import ( + SourcePatientGroupIdentificationSequenceItem, +) +from .specimen_description_sequence_item import SpecimenDescriptionSequenceItem +from .strain_stock_sequence_item import StrainStockSequenceItem +from .udi_sequence_item import UDISequenceItem + + +class XaXrfGrayscaleSoftcopyPresentationState: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._IssuerOfTheContainerIdentifierSequence: List[IssuerOfTheContainerIdentifierSequenceItem] = [] + self._AlternateContainerIdentifierSequence: List[AlternateContainerIdentifierSequenceItem] = [] + self._ContainerTypeCodeSequence: List[CodeSequenceItem] = [] + self._ContainerComponentSequence: List[ContainerComponentSequenceItem] = [] + self._SpecimenDescriptionSequence: List[SpecimenDescriptionSequenceItem] = [] + self._InstitutionalDepartmentTypeCodeSequence: List[CodeSequenceItem] = [] + self._UDISequence: List[UDISequenceItem] = [] + self._IssuerOfAccessionNumberSequence: List[IssuerOfAccessionNumberSequenceItem] = [] + self._ReferringPhysicianIdentificationSequence: List[ReferringPhysicianIdentificationSequenceItem] = [] + self._ConsultingPhysicianIdentificationSequence: List[ConsultingPhysicianIdentificationSequenceItem] = [] + self._ProcedureCodeSequence: List[CodeSequenceItem] = [] + self._PhysiciansOfRecordIdentificationSequence: List[PhysiciansOfRecordIdentificationSequenceItem] = [] + self._PhysiciansReadingStudyIdentificationSequence: List[PhysiciansReadingStudyIdentificationSequenceItem] = [] + self._ReferencedStudySequence: List[ReferencedStudySequenceItem] = [] + self._RequestingServiceCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForPerformedProcedureCodeSequence: List[CodeSequenceItem] = [] + self._GraphicAnnotationSequence: List[GraphicAnnotationSequenceItem] = [] + self._DisplayedAreaSelectionSequence: List[DisplayedAreaSelectionSequenceItem] = [] + self._ConceptNameCodeSequence: List[CodeSequenceItem] = [] + self._ContentCreatorIdentificationCodeSequence: List[CodeSequenceItem] = [] + self._AlternateContentDescriptionSequence: List[AlternateContentDescriptionSequenceItem] = [] + self._ReferencedSeriesSequence: List[ReferencedSeriesSequenceItem] = [] + self._MaskSubtractionSequence: List[MaskSubtractionSequenceItem] = [] + self._AdmittingDiagnosesCodeSequence: List[CodeSequenceItem] = [] + self._PatientSizeCodeSequence: List[CodeSequenceItem] = [] + self._ReasonForVisitCodeSequence: List[CodeSequenceItem] = [] + self._IssuerOfAdmissionIDSequence: List[IssuerOfAdmissionIDSequenceItem] = [] + self._IssuerOfServiceEpisodeIDSequence: List[IssuerOfServiceEpisodeIDSequenceItem] = [] + self._ReferencedPatientSequence: List[ReferencedPatientSequenceItem] = [] + self._IssuerOfPatientIDQualifiersSequence: List[IssuerOfPatientIDQualifiersSequenceItem] = [] + self._SourcePatientGroupIdentificationSequence: List[SourcePatientGroupIdentificationSequenceItem] = [] + self._GroupOfPatientsIdentificationSequence: List[GroupOfPatientsIdentificationSequenceItem] = [] + self._StrainStockSequence: List[StrainStockSequenceItem] = [] + self._StrainCodeSequence: List[CodeSequenceItem] = [] + self._GeneticModificationsSequence: List[GeneticModificationsSequenceItem] = [] + self._OtherPatientIDsSequence: List[OtherPatientIDsSequenceItem] = [] + self._ReferencedPatientPhotoSequence: List[ReferencedPatientPhotoSequenceItem] = [] + self._PatientSpeciesCodeSequence: List[CodeSequenceItem] = [] + self._PatientBreedCodeSequence: List[CodeSequenceItem] = [] + self._BreedRegistrationSequence: List[BreedRegistrationSequenceItem] = [] + self._DeidentificationMethodCodeSequence: List[CodeSequenceItem] = [] + self._MultiFramePresentationSequence: List[MultiFramePresentationSequenceItem] = [] + self._OtherClinicalTrialProtocolIDsSequence: List[OtherClinicalTrialProtocolIDsSequenceItem] = [] + self._SoftcopyVOILUTSequence: List[SoftcopyVOILUTSequenceItem] = [] + self._CodingSchemeIdentificationSequence: List[CodingSchemeIdentificationSequenceItem] = [] + self._ContextGroupIdentificationSequence: List[ContextGroupIdentificationSequenceItem] = [] + self._MappingResourceIdentificationSequence: List[MappingResourceIdentificationSequenceItem] = [] + self._PrivateDataElementCharacteristicsSequence: List[PrivateDataElementCharacteristicsSequenceItem] = [] + self._ReferencedDefinedProtocolSequence: List[ReferencedDefinedProtocolSequenceItem] = [] + self._ReferencedPerformedProtocolSequence: List[ReferencedPerformedProtocolSequenceItem] = [] + self._ContributingEquipmentSequence: List[ContributingEquipmentSequenceItem] = [] + self._ConversionSourceAttributesSequence: List[ConversionSourceAttributesSequenceItem] = [] + self._HL7StructuredDocumentReferenceSequence: List[HL7StructuredDocumentReferenceSequenceItem] = [] + self._EncryptedAttributesSequence: List[EncryptedAttributesSequenceItem] = [] + self._OriginalAttributesSequence: List[OriginalAttributesSequenceItem] = [] + self._MACParametersSequence: List[MACParametersSequenceItem] = [] + self._DigitalSignaturesSequence: List[DigitalSignaturesSequenceItem] = [] + self._PresentationLUTSequence: List[PresentationLUTSequenceItem] = [] + self._SeriesDescriptionCodeSequence: List[CodeSequenceItem] = [] + self._PerformingPhysicianIdentificationSequence: List[PerformingPhysicianIdentificationSequenceItem] = [] + self._OperatorIdentificationSequence: List[OperatorIdentificationSequenceItem] = [] + self._ReferencedPerformedProcedureStepSequence: List[ReferencedPerformedProcedureStepSequenceItem] = [] + self._RelatedSeriesSequence: List[RelatedSeriesSequenceItem] = [] + self._PerformedProtocolCodeSequence: List[CodeSequenceItem] = [] + self._RequestAttributesSequence: List[RequestAttributesSequenceItem] = [] + self._GraphicLayerSequence: List[GraphicLayerSequenceItem] = [] + self._ClinicalTrialTimePointTypeCodeSequence: List[CodeSequenceItem] = [] + self._ConsentForClinicalTrialUseSequence: List[ConsentForClinicalTrialUseSequenceItem] = [] + self._FrameDisplayShutterSequence: List[FrameDisplayShutterSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def ContainerIdentifier(self) -> Optional[str]: + if "ContainerIdentifier" in self._dataset: + return self._dataset.ContainerIdentifier + return None + + @ContainerIdentifier.setter + def ContainerIdentifier(self, value: Optional[str]): + if value is None: + if "ContainerIdentifier" in self._dataset: + del self._dataset.ContainerIdentifier + else: + self._dataset.ContainerIdentifier = value + + @property + def IssuerOfTheContainerIdentifierSequence(self) -> Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]: + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + if len(self._IssuerOfTheContainerIdentifierSequence) == len(self._dataset.IssuerOfTheContainerIdentifierSequence): + return self._IssuerOfTheContainerIdentifierSequence + else: + return [ + IssuerOfTheContainerIdentifierSequenceItem(x) for x in self._dataset.IssuerOfTheContainerIdentifierSequence + ] + return None + + @IssuerOfTheContainerIdentifierSequence.setter + def IssuerOfTheContainerIdentifierSequence(self, value: Optional[List[IssuerOfTheContainerIdentifierSequenceItem]]): + if value is None: + self._IssuerOfTheContainerIdentifierSequence = [] + if "IssuerOfTheContainerIdentifierSequence" in self._dataset: + del self._dataset.IssuerOfTheContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfTheContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfTheContainerIdentifierSequence must be a list of IssuerOfTheContainerIdentifierSequenceItem objects" + ) + else: + self._IssuerOfTheContainerIdentifierSequence = value + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.clear() + self._dataset.IssuerOfTheContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfTheContainerIdentifier(self, item: IssuerOfTheContainerIdentifierSequenceItem): + if not isinstance(item, IssuerOfTheContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of IssuerOfTheContainerIdentifierSequenceItem") + self._IssuerOfTheContainerIdentifierSequence.append(item) + if "IssuerOfTheContainerIdentifierSequence" not in self._dataset: + self._dataset.IssuerOfTheContainerIdentifierSequence = pydicom.Sequence() + self._dataset.IssuerOfTheContainerIdentifierSequence.append(item.to_dataset()) + + @property + def AlternateContainerIdentifierSequence(self) -> Optional[List[AlternateContainerIdentifierSequenceItem]]: + if "AlternateContainerIdentifierSequence" in self._dataset: + if len(self._AlternateContainerIdentifierSequence) == len(self._dataset.AlternateContainerIdentifierSequence): + return self._AlternateContainerIdentifierSequence + else: + return [ + AlternateContainerIdentifierSequenceItem(x) for x in self._dataset.AlternateContainerIdentifierSequence + ] + return None + + @AlternateContainerIdentifierSequence.setter + def AlternateContainerIdentifierSequence(self, value: Optional[List[AlternateContainerIdentifierSequenceItem]]): + if value is None: + self._AlternateContainerIdentifierSequence = [] + if "AlternateContainerIdentifierSequence" in self._dataset: + del self._dataset.AlternateContainerIdentifierSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContainerIdentifierSequenceItem) for item in value + ): + raise ValueError( + "AlternateContainerIdentifierSequence must be a list of AlternateContainerIdentifierSequenceItem objects" + ) + else: + self._AlternateContainerIdentifierSequence = value + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.clear() + self._dataset.AlternateContainerIdentifierSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContainerIdentifier(self, item: AlternateContainerIdentifierSequenceItem): + if not isinstance(item, AlternateContainerIdentifierSequenceItem): + raise ValueError("Item must be an instance of AlternateContainerIdentifierSequenceItem") + self._AlternateContainerIdentifierSequence.append(item) + if "AlternateContainerIdentifierSequence" not in self._dataset: + self._dataset.AlternateContainerIdentifierSequence = pydicom.Sequence() + self._dataset.AlternateContainerIdentifierSequence.append(item.to_dataset()) + + @property + def ContainerTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContainerTypeCodeSequence" in self._dataset: + if len(self._ContainerTypeCodeSequence) == len(self._dataset.ContainerTypeCodeSequence): + return self._ContainerTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContainerTypeCodeSequence] + return None + + @ContainerTypeCodeSequence.setter + def ContainerTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContainerTypeCodeSequence = [] + if "ContainerTypeCodeSequence" in self._dataset: + del self._dataset.ContainerTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContainerTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContainerTypeCodeSequence = value + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.clear() + self._dataset.ContainerTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContainerTypeCodeSequence.append(item) + if "ContainerTypeCodeSequence" not in self._dataset: + self._dataset.ContainerTypeCodeSequence = pydicom.Sequence() + self._dataset.ContainerTypeCodeSequence.append(item.to_dataset()) + + @property + def ContainerDescription(self) -> Optional[str]: + if "ContainerDescription" in self._dataset: + return self._dataset.ContainerDescription + return None + + @ContainerDescription.setter + def ContainerDescription(self, value: Optional[str]): + if value is None: + if "ContainerDescription" in self._dataset: + del self._dataset.ContainerDescription + else: + self._dataset.ContainerDescription = value + + @property + def ContainerComponentSequence(self) -> Optional[List[ContainerComponentSequenceItem]]: + if "ContainerComponentSequence" in self._dataset: + if len(self._ContainerComponentSequence) == len(self._dataset.ContainerComponentSequence): + return self._ContainerComponentSequence + else: + return [ContainerComponentSequenceItem(x) for x in self._dataset.ContainerComponentSequence] + return None + + @ContainerComponentSequence.setter + def ContainerComponentSequence(self, value: Optional[List[ContainerComponentSequenceItem]]): + if value is None: + self._ContainerComponentSequence = [] + if "ContainerComponentSequence" in self._dataset: + del self._dataset.ContainerComponentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContainerComponentSequenceItem) for item in value): + raise ValueError("ContainerComponentSequence must be a list of ContainerComponentSequenceItem objects") + else: + self._ContainerComponentSequence = value + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.clear() + self._dataset.ContainerComponentSequence.extend([item.to_dataset() for item in value]) + + def add_ContainerComponent(self, item: ContainerComponentSequenceItem): + if not isinstance(item, ContainerComponentSequenceItem): + raise ValueError("Item must be an instance of ContainerComponentSequenceItem") + self._ContainerComponentSequence.append(item) + if "ContainerComponentSequence" not in self._dataset: + self._dataset.ContainerComponentSequence = pydicom.Sequence() + self._dataset.ContainerComponentSequence.append(item.to_dataset()) + + @property + def SpecimenDescriptionSequence(self) -> Optional[List[SpecimenDescriptionSequenceItem]]: + if "SpecimenDescriptionSequence" in self._dataset: + if len(self._SpecimenDescriptionSequence) == len(self._dataset.SpecimenDescriptionSequence): + return self._SpecimenDescriptionSequence + else: + return [SpecimenDescriptionSequenceItem(x) for x in self._dataset.SpecimenDescriptionSequence] + return None + + @SpecimenDescriptionSequence.setter + def SpecimenDescriptionSequence(self, value: Optional[List[SpecimenDescriptionSequenceItem]]): + if value is None: + self._SpecimenDescriptionSequence = [] + if "SpecimenDescriptionSequence" in self._dataset: + del self._dataset.SpecimenDescriptionSequence + elif not isinstance(value, list) or not all(isinstance(item, SpecimenDescriptionSequenceItem) for item in value): + raise ValueError("SpecimenDescriptionSequence must be a list of SpecimenDescriptionSequenceItem objects") + else: + self._SpecimenDescriptionSequence = value + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.clear() + self._dataset.SpecimenDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_SpecimenDescription(self, item: SpecimenDescriptionSequenceItem): + if not isinstance(item, SpecimenDescriptionSequenceItem): + raise ValueError("Item must be an instance of SpecimenDescriptionSequenceItem") + self._SpecimenDescriptionSequence.append(item) + if "SpecimenDescriptionSequence" not in self._dataset: + self._dataset.SpecimenDescriptionSequence = pydicom.Sequence() + self._dataset.SpecimenDescriptionSequence.append(item.to_dataset()) + + @property + def ClinicalTrialCoordinatingCenterName(self) -> Optional[str]: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + return self._dataset.ClinicalTrialCoordinatingCenterName + return None + + @ClinicalTrialCoordinatingCenterName.setter + def ClinicalTrialCoordinatingCenterName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialCoordinatingCenterName" in self._dataset: + del self._dataset.ClinicalTrialCoordinatingCenterName + else: + self._dataset.ClinicalTrialCoordinatingCenterName = value + + @property + def ClinicalTrialSeriesID(self) -> Optional[str]: + if "ClinicalTrialSeriesID" in self._dataset: + return self._dataset.ClinicalTrialSeriesID + return None + + @ClinicalTrialSeriesID.setter + def ClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesID" in self._dataset: + del self._dataset.ClinicalTrialSeriesID + else: + self._dataset.ClinicalTrialSeriesID = value + + @property + def ClinicalTrialSeriesDescription(self) -> Optional[str]: + if "ClinicalTrialSeriesDescription" in self._dataset: + return self._dataset.ClinicalTrialSeriesDescription + return None + + @ClinicalTrialSeriesDescription.setter + def ClinicalTrialSeriesDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSeriesDescription" in self._dataset: + del self._dataset.ClinicalTrialSeriesDescription + else: + self._dataset.ClinicalTrialSeriesDescription = value + + @property + def IssuerOfClinicalTrialSeriesID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSeriesID + return None + + @IssuerOfClinicalTrialSeriesID.setter + def IssuerOfClinicalTrialSeriesID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSeriesID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSeriesID + else: + self._dataset.IssuerOfClinicalTrialSeriesID = value + + @property + def OverlayRows(self) -> Optional[int]: + if "OverlayRows" in self._dataset: + return self._dataset.OverlayRows + return None + + @OverlayRows.setter + def OverlayRows(self, value: Optional[int]): + if value is None: + if "OverlayRows" in self._dataset: + del self._dataset.OverlayRows + else: + self._dataset.OverlayRows = value + + @property + def OverlayColumns(self) -> Optional[int]: + if "OverlayColumns" in self._dataset: + return self._dataset.OverlayColumns + return None + + @OverlayColumns.setter + def OverlayColumns(self, value: Optional[int]): + if value is None: + if "OverlayColumns" in self._dataset: + del self._dataset.OverlayColumns + else: + self._dataset.OverlayColumns = value + + @property + def OverlayDescription(self) -> Optional[str]: + if "OverlayDescription" in self._dataset: + return self._dataset.OverlayDescription + return None + + @OverlayDescription.setter + def OverlayDescription(self, value: Optional[str]): + if value is None: + if "OverlayDescription" in self._dataset: + del self._dataset.OverlayDescription + else: + self._dataset.OverlayDescription = value + + @property + def OverlayType(self) -> Optional[str]: + if "OverlayType" in self._dataset: + return self._dataset.OverlayType + return None + + @OverlayType.setter + def OverlayType(self, value: Optional[str]): + if value is None: + if "OverlayType" in self._dataset: + del self._dataset.OverlayType + else: + self._dataset.OverlayType = value + + @property + def OverlaySubtype(self) -> Optional[str]: + if "OverlaySubtype" in self._dataset: + return self._dataset.OverlaySubtype + return None + + @OverlaySubtype.setter + def OverlaySubtype(self, value: Optional[str]): + if value is None: + if "OverlaySubtype" in self._dataset: + del self._dataset.OverlaySubtype + else: + self._dataset.OverlaySubtype = value + + @property + def OverlayOrigin(self) -> Optional[List[int]]: + if "OverlayOrigin" in self._dataset: + return self._dataset.OverlayOrigin + return None + + @OverlayOrigin.setter + def OverlayOrigin(self, value: Optional[List[int]]): + if value is None: + if "OverlayOrigin" in self._dataset: + del self._dataset.OverlayOrigin + else: + self._dataset.OverlayOrigin = value + + @property + def OverlayBitsAllocated(self) -> Optional[int]: + if "OverlayBitsAllocated" in self._dataset: + return self._dataset.OverlayBitsAllocated + return None + + @OverlayBitsAllocated.setter + def OverlayBitsAllocated(self, value: Optional[int]): + if value is None: + if "OverlayBitsAllocated" in self._dataset: + del self._dataset.OverlayBitsAllocated + else: + self._dataset.OverlayBitsAllocated = value + + @property + def OverlayBitPosition(self) -> Optional[int]: + if "OverlayBitPosition" in self._dataset: + return self._dataset.OverlayBitPosition + return None + + @OverlayBitPosition.setter + def OverlayBitPosition(self, value: Optional[int]): + if value is None: + if "OverlayBitPosition" in self._dataset: + del self._dataset.OverlayBitPosition + else: + self._dataset.OverlayBitPosition = value + + @property + def ROIArea(self) -> Optional[int]: + if "ROIArea" in self._dataset: + return self._dataset.ROIArea + return None + + @ROIArea.setter + def ROIArea(self, value: Optional[int]): + if value is None: + if "ROIArea" in self._dataset: + del self._dataset.ROIArea + else: + self._dataset.ROIArea = value + + @property + def ROIMean(self) -> Optional[Decimal]: + if "ROIMean" in self._dataset: + return self._dataset.ROIMean + return None + + @ROIMean.setter + def ROIMean(self, value: Optional[Decimal]): + if value is None: + if "ROIMean" in self._dataset: + del self._dataset.ROIMean + else: + self._dataset.ROIMean = value + + @property + def ROIStandardDeviation(self) -> Optional[Decimal]: + if "ROIStandardDeviation" in self._dataset: + return self._dataset.ROIStandardDeviation + return None + + @ROIStandardDeviation.setter + def ROIStandardDeviation(self, value: Optional[Decimal]): + if value is None: + if "ROIStandardDeviation" in self._dataset: + del self._dataset.ROIStandardDeviation + else: + self._dataset.ROIStandardDeviation = value + + @property + def OverlayLabel(self) -> Optional[str]: + if "OverlayLabel" in self._dataset: + return self._dataset.OverlayLabel + return None + + @OverlayLabel.setter + def OverlayLabel(self, value: Optional[str]): + if value is None: + if "OverlayLabel" in self._dataset: + del self._dataset.OverlayLabel + else: + self._dataset.OverlayLabel = value + + @property + def OverlayData(self) -> Optional[bytes]: + if "OverlayData" in self._dataset: + return self._dataset.OverlayData + return None + + @OverlayData.setter + def OverlayData(self, value: Optional[bytes]): + if value is None: + if "OverlayData" in self._dataset: + del self._dataset.OverlayData + else: + self._dataset.OverlayData = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def InstitutionName(self) -> Optional[str]: + if "InstitutionName" in self._dataset: + return self._dataset.InstitutionName + return None + + @InstitutionName.setter + def InstitutionName(self, value: Optional[str]): + if value is None: + if "InstitutionName" in self._dataset: + del self._dataset.InstitutionName + else: + self._dataset.InstitutionName = value + + @property + def InstitutionAddress(self) -> Optional[str]: + if "InstitutionAddress" in self._dataset: + return self._dataset.InstitutionAddress + return None + + @InstitutionAddress.setter + def InstitutionAddress(self, value: Optional[str]): + if value is None: + if "InstitutionAddress" in self._dataset: + del self._dataset.InstitutionAddress + else: + self._dataset.InstitutionAddress = value + + @property + def StationName(self) -> Optional[str]: + if "StationName" in self._dataset: + return self._dataset.StationName + return None + + @StationName.setter + def StationName(self, value: Optional[str]): + if value is None: + if "StationName" in self._dataset: + del self._dataset.StationName + else: + self._dataset.StationName = value + + @property + def InstitutionalDepartmentName(self) -> Optional[str]: + if "InstitutionalDepartmentName" in self._dataset: + return self._dataset.InstitutionalDepartmentName + return None + + @InstitutionalDepartmentName.setter + def InstitutionalDepartmentName(self, value: Optional[str]): + if value is None: + if "InstitutionalDepartmentName" in self._dataset: + del self._dataset.InstitutionalDepartmentName + else: + self._dataset.InstitutionalDepartmentName = value + + @property + def InstitutionalDepartmentTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + if len(self._InstitutionalDepartmentTypeCodeSequence) == len( + self._dataset.InstitutionalDepartmentTypeCodeSequence + ): + return self._InstitutionalDepartmentTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.InstitutionalDepartmentTypeCodeSequence] + return None + + @InstitutionalDepartmentTypeCodeSequence.setter + def InstitutionalDepartmentTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._InstitutionalDepartmentTypeCodeSequence = [] + if "InstitutionalDepartmentTypeCodeSequence" in self._dataset: + del self._dataset.InstitutionalDepartmentTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("InstitutionalDepartmentTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._InstitutionalDepartmentTypeCodeSequence = value + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.clear() + self._dataset.InstitutionalDepartmentTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_InstitutionalDepartmentTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._InstitutionalDepartmentTypeCodeSequence.append(item) + if "InstitutionalDepartmentTypeCodeSequence" not in self._dataset: + self._dataset.InstitutionalDepartmentTypeCodeSequence = pydicom.Sequence() + self._dataset.InstitutionalDepartmentTypeCodeSequence.append(item.to_dataset()) + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def DeviceUID(self) -> Optional[str]: + if "DeviceUID" in self._dataset: + return self._dataset.DeviceUID + return None + + @DeviceUID.setter + def DeviceUID(self, value: Optional[str]): + if value is None: + if "DeviceUID" in self._dataset: + del self._dataset.DeviceUID + else: + self._dataset.DeviceUID = value + + @property + def GantryID(self) -> Optional[str]: + if "GantryID" in self._dataset: + return self._dataset.GantryID + return None + + @GantryID.setter + def GantryID(self, value: Optional[str]): + if value is None: + if "GantryID" in self._dataset: + del self._dataset.GantryID + else: + self._dataset.GantryID = value + + @property + def UDISequence(self) -> Optional[List[UDISequenceItem]]: + if "UDISequence" in self._dataset: + if len(self._UDISequence) == len(self._dataset.UDISequence): + return self._UDISequence + else: + return [UDISequenceItem(x) for x in self._dataset.UDISequence] + return None + + @UDISequence.setter + def UDISequence(self, value: Optional[List[UDISequenceItem]]): + if value is None: + self._UDISequence = [] + if "UDISequence" in self._dataset: + del self._dataset.UDISequence + elif not isinstance(value, list) or not all(isinstance(item, UDISequenceItem) for item in value): + raise ValueError("UDISequence must be a list of UDISequenceItem objects") + else: + self._UDISequence = value + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.clear() + self._dataset.UDISequence.extend([item.to_dataset() for item in value]) + + def add_UDI(self, item: UDISequenceItem): + if not isinstance(item, UDISequenceItem): + raise ValueError("Item must be an instance of UDISequenceItem") + self._UDISequence.append(item) + if "UDISequence" not in self._dataset: + self._dataset.UDISequence = pydicom.Sequence() + self._dataset.UDISequence.append(item.to_dataset()) + + @property + def ManufacturerDeviceClassUID(self) -> Optional[List[str]]: + if "ManufacturerDeviceClassUID" in self._dataset: + return self._dataset.ManufacturerDeviceClassUID + return None + + @ManufacturerDeviceClassUID.setter + def ManufacturerDeviceClassUID(self, value: Optional[List[str]]): + if value is None: + if "ManufacturerDeviceClassUID" in self._dataset: + del self._dataset.ManufacturerDeviceClassUID + else: + self._dataset.ManufacturerDeviceClassUID = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def SpatialResolution(self) -> Optional[Decimal]: + if "SpatialResolution" in self._dataset: + return self._dataset.SpatialResolution + return None + + @SpatialResolution.setter + def SpatialResolution(self, value: Optional[Decimal]): + if value is None: + if "SpatialResolution" in self._dataset: + del self._dataset.SpatialResolution + else: + self._dataset.SpatialResolution = value + + @property + def DateOfLastCalibration(self) -> Optional[List[str]]: + if "DateOfLastCalibration" in self._dataset: + return self._dataset.DateOfLastCalibration + return None + + @DateOfLastCalibration.setter + def DateOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "DateOfLastCalibration" in self._dataset: + del self._dataset.DateOfLastCalibration + else: + self._dataset.DateOfLastCalibration = value + + @property + def TimeOfLastCalibration(self) -> Optional[List[str]]: + if "TimeOfLastCalibration" in self._dataset: + return self._dataset.TimeOfLastCalibration + return None + + @TimeOfLastCalibration.setter + def TimeOfLastCalibration(self, value: Optional[List[str]]): + if value is None: + if "TimeOfLastCalibration" in self._dataset: + del self._dataset.TimeOfLastCalibration + else: + self._dataset.TimeOfLastCalibration = value + + @property + def DateOfManufacture(self) -> Optional[str]: + if "DateOfManufacture" in self._dataset: + return self._dataset.DateOfManufacture + return None + + @DateOfManufacture.setter + def DateOfManufacture(self, value: Optional[str]): + if value is None: + if "DateOfManufacture" in self._dataset: + del self._dataset.DateOfManufacture + else: + self._dataset.DateOfManufacture = value + + @property + def DateOfInstallation(self) -> Optional[str]: + if "DateOfInstallation" in self._dataset: + return self._dataset.DateOfInstallation + return None + + @DateOfInstallation.setter + def DateOfInstallation(self, value: Optional[str]): + if value is None: + if "DateOfInstallation" in self._dataset: + del self._dataset.DateOfInstallation + else: + self._dataset.DateOfInstallation = value + + @property + def PixelPaddingValue(self) -> Optional[int]: + if "PixelPaddingValue" in self._dataset: + return self._dataset.PixelPaddingValue + return None + + @PixelPaddingValue.setter + def PixelPaddingValue(self, value: Optional[int]): + if value is None: + if "PixelPaddingValue" in self._dataset: + del self._dataset.PixelPaddingValue + else: + self._dataset.PixelPaddingValue = value + + @property + def Manufacturer(self) -> Optional[str]: + if "Manufacturer" in self._dataset: + return self._dataset.Manufacturer + return None + + @Manufacturer.setter + def Manufacturer(self, value: Optional[str]): + if value is None: + if "Manufacturer" in self._dataset: + del self._dataset.Manufacturer + else: + self._dataset.Manufacturer = value + + @property + def ManufacturerModelName(self) -> Optional[str]: + if "ManufacturerModelName" in self._dataset: + return self._dataset.ManufacturerModelName + return None + + @ManufacturerModelName.setter + def ManufacturerModelName(self, value: Optional[str]): + if value is None: + if "ManufacturerModelName" in self._dataset: + del self._dataset.ManufacturerModelName + else: + self._dataset.ManufacturerModelName = value + + @property + def DeviceSerialNumber(self) -> Optional[str]: + if "DeviceSerialNumber" in self._dataset: + return self._dataset.DeviceSerialNumber + return None + + @DeviceSerialNumber.setter + def DeviceSerialNumber(self, value: Optional[str]): + if value is None: + if "DeviceSerialNumber" in self._dataset: + del self._dataset.DeviceSerialNumber + else: + self._dataset.DeviceSerialNumber = value + + @property + def SoftwareVersions(self) -> Optional[List[str]]: + if "SoftwareVersions" in self._dataset: + return self._dataset.SoftwareVersions + return None + + @SoftwareVersions.setter + def SoftwareVersions(self, value: Optional[List[str]]): + if value is None: + if "SoftwareVersions" in self._dataset: + del self._dataset.SoftwareVersions + else: + self._dataset.SoftwareVersions = value + + @property + def StudyDate(self) -> Optional[str]: + if "StudyDate" in self._dataset: + return self._dataset.StudyDate + return None + + @StudyDate.setter + def StudyDate(self, value: Optional[str]): + if value is None: + if "StudyDate" in self._dataset: + del self._dataset.StudyDate + else: + self._dataset.StudyDate = value + + @property + def StudyTime(self) -> Optional[str]: + if "StudyTime" in self._dataset: + return self._dataset.StudyTime + return None + + @StudyTime.setter + def StudyTime(self, value: Optional[str]): + if value is None: + if "StudyTime" in self._dataset: + del self._dataset.StudyTime + else: + self._dataset.StudyTime = value + + @property + def AccessionNumber(self) -> Optional[str]: + if "AccessionNumber" in self._dataset: + return self._dataset.AccessionNumber + return None + + @AccessionNumber.setter + def AccessionNumber(self, value: Optional[str]): + if value is None: + if "AccessionNumber" in self._dataset: + del self._dataset.AccessionNumber + else: + self._dataset.AccessionNumber = value + + @property + def IssuerOfAccessionNumberSequence(self) -> Optional[List[IssuerOfAccessionNumberSequenceItem]]: + if "IssuerOfAccessionNumberSequence" in self._dataset: + if len(self._IssuerOfAccessionNumberSequence) == len(self._dataset.IssuerOfAccessionNumberSequence): + return self._IssuerOfAccessionNumberSequence + else: + return [IssuerOfAccessionNumberSequenceItem(x) for x in self._dataset.IssuerOfAccessionNumberSequence] + return None + + @IssuerOfAccessionNumberSequence.setter + def IssuerOfAccessionNumberSequence(self, value: Optional[List[IssuerOfAccessionNumberSequenceItem]]): + if value is None: + self._IssuerOfAccessionNumberSequence = [] + if "IssuerOfAccessionNumberSequence" in self._dataset: + del self._dataset.IssuerOfAccessionNumberSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAccessionNumberSequenceItem) for item in value): + raise ValueError("IssuerOfAccessionNumberSequence must be a list of IssuerOfAccessionNumberSequenceItem objects") + else: + self._IssuerOfAccessionNumberSequence = value + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.clear() + self._dataset.IssuerOfAccessionNumberSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAccessionNumber(self, item: IssuerOfAccessionNumberSequenceItem): + if not isinstance(item, IssuerOfAccessionNumberSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAccessionNumberSequenceItem") + self._IssuerOfAccessionNumberSequence.append(item) + if "IssuerOfAccessionNumberSequence" not in self._dataset: + self._dataset.IssuerOfAccessionNumberSequence = pydicom.Sequence() + self._dataset.IssuerOfAccessionNumberSequence.append(item.to_dataset()) + + @property + def ReferringPhysicianName(self) -> Optional[str]: + if "ReferringPhysicianName" in self._dataset: + return self._dataset.ReferringPhysicianName + return None + + @ReferringPhysicianName.setter + def ReferringPhysicianName(self, value: Optional[str]): + if value is None: + if "ReferringPhysicianName" in self._dataset: + del self._dataset.ReferringPhysicianName + else: + self._dataset.ReferringPhysicianName = value + + @property + def ReferringPhysicianIdentificationSequence(self) -> Optional[List[ReferringPhysicianIdentificationSequenceItem]]: + if "ReferringPhysicianIdentificationSequence" in self._dataset: + if len(self._ReferringPhysicianIdentificationSequence) == len( + self._dataset.ReferringPhysicianIdentificationSequence + ): + return self._ReferringPhysicianIdentificationSequence + else: + return [ + ReferringPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ReferringPhysicianIdentificationSequence + ] + return None + + @ReferringPhysicianIdentificationSequence.setter + def ReferringPhysicianIdentificationSequence(self, value: Optional[List[ReferringPhysicianIdentificationSequenceItem]]): + if value is None: + self._ReferringPhysicianIdentificationSequence = [] + if "ReferringPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ReferringPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferringPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ReferringPhysicianIdentificationSequence must be a list of ReferringPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ReferringPhysicianIdentificationSequence = value + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.clear() + self._dataset.ReferringPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ReferringPhysicianIdentification(self, item: ReferringPhysicianIdentificationSequenceItem): + if not isinstance(item, ReferringPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ReferringPhysicianIdentificationSequenceItem") + self._ReferringPhysicianIdentificationSequence.append(item) + if "ReferringPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ReferringPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ReferringPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def ConsultingPhysicianName(self) -> Optional[List[str]]: + if "ConsultingPhysicianName" in self._dataset: + return self._dataset.ConsultingPhysicianName + return None + + @ConsultingPhysicianName.setter + def ConsultingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "ConsultingPhysicianName" in self._dataset: + del self._dataset.ConsultingPhysicianName + else: + self._dataset.ConsultingPhysicianName = value + + @property + def ConsultingPhysicianIdentificationSequence(self) -> Optional[List[ConsultingPhysicianIdentificationSequenceItem]]: + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + if len(self._ConsultingPhysicianIdentificationSequence) == len( + self._dataset.ConsultingPhysicianIdentificationSequence + ): + return self._ConsultingPhysicianIdentificationSequence + else: + return [ + ConsultingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.ConsultingPhysicianIdentificationSequence + ] + return None + + @ConsultingPhysicianIdentificationSequence.setter + def ConsultingPhysicianIdentificationSequence(self, value: Optional[List[ConsultingPhysicianIdentificationSequenceItem]]): + if value is None: + self._ConsultingPhysicianIdentificationSequence = [] + if "ConsultingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.ConsultingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsultingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ConsultingPhysicianIdentificationSequence must be a list of ConsultingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._ConsultingPhysicianIdentificationSequence = value + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.clear() + self._dataset.ConsultingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ConsultingPhysicianIdentification(self, item: ConsultingPhysicianIdentificationSequenceItem): + if not isinstance(item, ConsultingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of ConsultingPhysicianIdentificationSequenceItem") + self._ConsultingPhysicianIdentificationSequence.append(item) + if "ConsultingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.ConsultingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.ConsultingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def StudyDescription(self) -> Optional[str]: + if "StudyDescription" in self._dataset: + return self._dataset.StudyDescription + return None + + @StudyDescription.setter + def StudyDescription(self, value: Optional[str]): + if value is None: + if "StudyDescription" in self._dataset: + del self._dataset.StudyDescription + else: + self._dataset.StudyDescription = value + + @property + def ProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ProcedureCodeSequence" in self._dataset: + if len(self._ProcedureCodeSequence) == len(self._dataset.ProcedureCodeSequence): + return self._ProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ProcedureCodeSequence] + return None + + @ProcedureCodeSequence.setter + def ProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ProcedureCodeSequence = [] + if "ProcedureCodeSequence" in self._dataset: + del self._dataset.ProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ProcedureCodeSequence = value + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.clear() + self._dataset.ProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ProcedureCodeSequence.append(item) + if "ProcedureCodeSequence" not in self._dataset: + self._dataset.ProcedureCodeSequence = pydicom.Sequence() + self._dataset.ProcedureCodeSequence.append(item.to_dataset()) + + @property + def PhysiciansOfRecord(self) -> Optional[List[str]]: + if "PhysiciansOfRecord" in self._dataset: + return self._dataset.PhysiciansOfRecord + return None + + @PhysiciansOfRecord.setter + def PhysiciansOfRecord(self, value: Optional[List[str]]): + if value is None: + if "PhysiciansOfRecord" in self._dataset: + del self._dataset.PhysiciansOfRecord + else: + self._dataset.PhysiciansOfRecord = value + + @property + def PhysiciansOfRecordIdentificationSequence(self) -> Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]: + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + if len(self._PhysiciansOfRecordIdentificationSequence) == len( + self._dataset.PhysiciansOfRecordIdentificationSequence + ): + return self._PhysiciansOfRecordIdentificationSequence + else: + return [ + PhysiciansOfRecordIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansOfRecordIdentificationSequence + ] + return None + + @PhysiciansOfRecordIdentificationSequence.setter + def PhysiciansOfRecordIdentificationSequence(self, value: Optional[List[PhysiciansOfRecordIdentificationSequenceItem]]): + if value is None: + self._PhysiciansOfRecordIdentificationSequence = [] + if "PhysiciansOfRecordIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansOfRecordIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansOfRecordIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansOfRecordIdentificationSequence must be a list of PhysiciansOfRecordIdentificationSequenceItem" + " objects" + ) + else: + self._PhysiciansOfRecordIdentificationSequence = value + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.clear() + self._dataset.PhysiciansOfRecordIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansOfRecordIdentification(self, item: PhysiciansOfRecordIdentificationSequenceItem): + if not isinstance(item, PhysiciansOfRecordIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansOfRecordIdentificationSequenceItem") + self._PhysiciansOfRecordIdentificationSequence.append(item) + if "PhysiciansOfRecordIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansOfRecordIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansOfRecordIdentificationSequence.append(item.to_dataset()) + + @property + def NameOfPhysiciansReadingStudy(self) -> Optional[List[str]]: + if "NameOfPhysiciansReadingStudy" in self._dataset: + return self._dataset.NameOfPhysiciansReadingStudy + return None + + @NameOfPhysiciansReadingStudy.setter + def NameOfPhysiciansReadingStudy(self, value: Optional[List[str]]): + if value is None: + if "NameOfPhysiciansReadingStudy" in self._dataset: + del self._dataset.NameOfPhysiciansReadingStudy + else: + self._dataset.NameOfPhysiciansReadingStudy = value + + @property + def PhysiciansReadingStudyIdentificationSequence(self) -> Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]]: + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + if len(self._PhysiciansReadingStudyIdentificationSequence) == len( + self._dataset.PhysiciansReadingStudyIdentificationSequence + ): + return self._PhysiciansReadingStudyIdentificationSequence + else: + return [ + PhysiciansReadingStudyIdentificationSequenceItem(x) + for x in self._dataset.PhysiciansReadingStudyIdentificationSequence + ] + return None + + @PhysiciansReadingStudyIdentificationSequence.setter + def PhysiciansReadingStudyIdentificationSequence( + self, value: Optional[List[PhysiciansReadingStudyIdentificationSequenceItem]] + ): + if value is None: + self._PhysiciansReadingStudyIdentificationSequence = [] + if "PhysiciansReadingStudyIdentificationSequence" in self._dataset: + del self._dataset.PhysiciansReadingStudyIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PhysiciansReadingStudyIdentificationSequence must be a list of" + " PhysiciansReadingStudyIdentificationSequenceItem objects" + ) + else: + self._PhysiciansReadingStudyIdentificationSequence = value + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.clear() + self._dataset.PhysiciansReadingStudyIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PhysiciansReadingStudyIdentification(self, item: PhysiciansReadingStudyIdentificationSequenceItem): + if not isinstance(item, PhysiciansReadingStudyIdentificationSequenceItem): + raise ValueError("Item must be an instance of PhysiciansReadingStudyIdentificationSequenceItem") + self._PhysiciansReadingStudyIdentificationSequence.append(item) + if "PhysiciansReadingStudyIdentificationSequence" not in self._dataset: + self._dataset.PhysiciansReadingStudyIdentificationSequence = pydicom.Sequence() + self._dataset.PhysiciansReadingStudyIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedStudySequence(self) -> Optional[List[ReferencedStudySequenceItem]]: + if "ReferencedStudySequence" in self._dataset: + if len(self._ReferencedStudySequence) == len(self._dataset.ReferencedStudySequence): + return self._ReferencedStudySequence + else: + return [ReferencedStudySequenceItem(x) for x in self._dataset.ReferencedStudySequence] + return None + + @ReferencedStudySequence.setter + def ReferencedStudySequence(self, value: Optional[List[ReferencedStudySequenceItem]]): + if value is None: + self._ReferencedStudySequence = [] + if "ReferencedStudySequence" in self._dataset: + del self._dataset.ReferencedStudySequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedStudySequenceItem) for item in value): + raise ValueError("ReferencedStudySequence must be a list of ReferencedStudySequenceItem objects") + else: + self._ReferencedStudySequence = value + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.clear() + self._dataset.ReferencedStudySequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedStudy(self, item: ReferencedStudySequenceItem): + if not isinstance(item, ReferencedStudySequenceItem): + raise ValueError("Item must be an instance of ReferencedStudySequenceItem") + self._ReferencedStudySequence.append(item) + if "ReferencedStudySequence" not in self._dataset: + self._dataset.ReferencedStudySequence = pydicom.Sequence() + self._dataset.ReferencedStudySequence.append(item.to_dataset()) + + @property + def StudyInstanceUID(self) -> Optional[str]: + if "StudyInstanceUID" in self._dataset: + return self._dataset.StudyInstanceUID + return None + + @StudyInstanceUID.setter + def StudyInstanceUID(self, value: Optional[str]): + if value is None: + if "StudyInstanceUID" in self._dataset: + del self._dataset.StudyInstanceUID + else: + self._dataset.StudyInstanceUID = value + + @property + def StudyID(self) -> Optional[str]: + if "StudyID" in self._dataset: + return self._dataset.StudyID + return None + + @StudyID.setter + def StudyID(self, value: Optional[str]): + if value is None: + if "StudyID" in self._dataset: + del self._dataset.StudyID + else: + self._dataset.StudyID = value + + @property + def RequestingService(self) -> Optional[str]: + if "RequestingService" in self._dataset: + return self._dataset.RequestingService + return None + + @RequestingService.setter + def RequestingService(self, value: Optional[str]): + if value is None: + if "RequestingService" in self._dataset: + del self._dataset.RequestingService + else: + self._dataset.RequestingService = value + + @property + def RequestingServiceCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "RequestingServiceCodeSequence" in self._dataset: + if len(self._RequestingServiceCodeSequence) == len(self._dataset.RequestingServiceCodeSequence): + return self._RequestingServiceCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.RequestingServiceCodeSequence] + return None + + @RequestingServiceCodeSequence.setter + def RequestingServiceCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._RequestingServiceCodeSequence = [] + if "RequestingServiceCodeSequence" in self._dataset: + del self._dataset.RequestingServiceCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("RequestingServiceCodeSequence must be a list of CodeSequenceItem objects") + else: + self._RequestingServiceCodeSequence = value + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.clear() + self._dataset.RequestingServiceCodeSequence.extend([item.to_dataset() for item in value]) + + def add_RequestingServiceCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._RequestingServiceCodeSequence.append(item) + if "RequestingServiceCodeSequence" not in self._dataset: + self._dataset.RequestingServiceCodeSequence = pydicom.Sequence() + self._dataset.RequestingServiceCodeSequence.append(item.to_dataset()) + + @property + def ReasonForPerformedProcedureCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + if len(self._ReasonForPerformedProcedureCodeSequence) == len( + self._dataset.ReasonForPerformedProcedureCodeSequence + ): + return self._ReasonForPerformedProcedureCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForPerformedProcedureCodeSequence] + return None + + @ReasonForPerformedProcedureCodeSequence.setter + def ReasonForPerformedProcedureCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForPerformedProcedureCodeSequence = [] + if "ReasonForPerformedProcedureCodeSequence" in self._dataset: + del self._dataset.ReasonForPerformedProcedureCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForPerformedProcedureCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForPerformedProcedureCodeSequence = value + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.clear() + self._dataset.ReasonForPerformedProcedureCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForPerformedProcedureCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForPerformedProcedureCodeSequence.append(item) + if "ReasonForPerformedProcedureCodeSequence" not in self._dataset: + self._dataset.ReasonForPerformedProcedureCodeSequence = pydicom.Sequence() + self._dataset.ReasonForPerformedProcedureCodeSequence.append(item.to_dataset()) + + @property + def OverlayActivationLayer(self) -> Optional[str]: + if "OverlayActivationLayer" in self._dataset: + return self._dataset.OverlayActivationLayer + return None + + @OverlayActivationLayer.setter + def OverlayActivationLayer(self, value: Optional[str]): + if value is None: + if "OverlayActivationLayer" in self._dataset: + del self._dataset.OverlayActivationLayer + else: + self._dataset.OverlayActivationLayer = value + + @property + def GraphicAnnotationSequence(self) -> Optional[List[GraphicAnnotationSequenceItem]]: + if "GraphicAnnotationSequence" in self._dataset: + if len(self._GraphicAnnotationSequence) == len(self._dataset.GraphicAnnotationSequence): + return self._GraphicAnnotationSequence + else: + return [GraphicAnnotationSequenceItem(x) for x in self._dataset.GraphicAnnotationSequence] + return None + + @GraphicAnnotationSequence.setter + def GraphicAnnotationSequence(self, value: Optional[List[GraphicAnnotationSequenceItem]]): + if value is None: + self._GraphicAnnotationSequence = [] + if "GraphicAnnotationSequence" in self._dataset: + del self._dataset.GraphicAnnotationSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicAnnotationSequenceItem) for item in value): + raise ValueError("GraphicAnnotationSequence must be a list of GraphicAnnotationSequenceItem objects") + else: + self._GraphicAnnotationSequence = value + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.clear() + self._dataset.GraphicAnnotationSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicAnnotation(self, item: GraphicAnnotationSequenceItem): + if not isinstance(item, GraphicAnnotationSequenceItem): + raise ValueError("Item must be an instance of GraphicAnnotationSequenceItem") + self._GraphicAnnotationSequence.append(item) + if "GraphicAnnotationSequence" not in self._dataset: + self._dataset.GraphicAnnotationSequence = pydicom.Sequence() + self._dataset.GraphicAnnotationSequence.append(item.to_dataset()) + + @property + def DisplayedAreaSelectionSequence(self) -> Optional[List[DisplayedAreaSelectionSequenceItem]]: + if "DisplayedAreaSelectionSequence" in self._dataset: + if len(self._DisplayedAreaSelectionSequence) == len(self._dataset.DisplayedAreaSelectionSequence): + return self._DisplayedAreaSelectionSequence + else: + return [DisplayedAreaSelectionSequenceItem(x) for x in self._dataset.DisplayedAreaSelectionSequence] + return None + + @DisplayedAreaSelectionSequence.setter + def DisplayedAreaSelectionSequence(self, value: Optional[List[DisplayedAreaSelectionSequenceItem]]): + if value is None: + self._DisplayedAreaSelectionSequence = [] + if "DisplayedAreaSelectionSequence" in self._dataset: + del self._dataset.DisplayedAreaSelectionSequence + elif not isinstance(value, list) or not all(isinstance(item, DisplayedAreaSelectionSequenceItem) for item in value): + raise ValueError("DisplayedAreaSelectionSequence must be a list of DisplayedAreaSelectionSequenceItem objects") + else: + self._DisplayedAreaSelectionSequence = value + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.clear() + self._dataset.DisplayedAreaSelectionSequence.extend([item.to_dataset() for item in value]) + + def add_DisplayedAreaSelection(self, item: DisplayedAreaSelectionSequenceItem): + if not isinstance(item, DisplayedAreaSelectionSequenceItem): + raise ValueError("Item must be an instance of DisplayedAreaSelectionSequenceItem") + self._DisplayedAreaSelectionSequence.append(item) + if "DisplayedAreaSelectionSequence" not in self._dataset: + self._dataset.DisplayedAreaSelectionSequence = pydicom.Sequence() + self._dataset.DisplayedAreaSelectionSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConceptNameCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ConceptNameCodeSequence" in self._dataset: + if len(self._ConceptNameCodeSequence) == len(self._dataset.ConceptNameCodeSequence): + return self._ConceptNameCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ConceptNameCodeSequence] + return None + + @ConceptNameCodeSequence.setter + def ConceptNameCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ConceptNameCodeSequence = [] + if "ConceptNameCodeSequence" in self._dataset: + del self._dataset.ConceptNameCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ConceptNameCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ConceptNameCodeSequence = value + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.clear() + self._dataset.ConceptNameCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ConceptNameCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ConceptNameCodeSequence.append(item) + if "ConceptNameCodeSequence" not in self._dataset: + self._dataset.ConceptNameCodeSequence = pydicom.Sequence() + self._dataset.ConceptNameCodeSequence.append(item.to_dataset()) + + @property + def ContentLabel(self) -> Optional[str]: + if "ContentLabel" in self._dataset: + return self._dataset.ContentLabel + return None + + @ContentLabel.setter + def ContentLabel(self, value: Optional[str]): + if value is None: + if "ContentLabel" in self._dataset: + del self._dataset.ContentLabel + else: + self._dataset.ContentLabel = value + + @property + def ContentDescription(self) -> Optional[str]: + if "ContentDescription" in self._dataset: + return self._dataset.ContentDescription + return None + + @ContentDescription.setter + def ContentDescription(self, value: Optional[str]): + if value is None: + if "ContentDescription" in self._dataset: + del self._dataset.ContentDescription + else: + self._dataset.ContentDescription = value + + @property + def PresentationCreationDate(self) -> Optional[str]: + if "PresentationCreationDate" in self._dataset: + return self._dataset.PresentationCreationDate + return None + + @PresentationCreationDate.setter + def PresentationCreationDate(self, value: Optional[str]): + if value is None: + if "PresentationCreationDate" in self._dataset: + del self._dataset.PresentationCreationDate + else: + self._dataset.PresentationCreationDate = value + + @property + def PresentationCreationTime(self) -> Optional[str]: + if "PresentationCreationTime" in self._dataset: + return self._dataset.PresentationCreationTime + return None + + @PresentationCreationTime.setter + def PresentationCreationTime(self, value: Optional[str]): + if value is None: + if "PresentationCreationTime" in self._dataset: + del self._dataset.PresentationCreationTime + else: + self._dataset.PresentationCreationTime = value + + @property + def ContentCreatorName(self) -> Optional[str]: + if "ContentCreatorName" in self._dataset: + return self._dataset.ContentCreatorName + return None + + @ContentCreatorName.setter + def ContentCreatorName(self, value: Optional[str]): + if value is None: + if "ContentCreatorName" in self._dataset: + del self._dataset.ContentCreatorName + else: + self._dataset.ContentCreatorName = value + + @property + def ContentCreatorIdentificationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + if len(self._ContentCreatorIdentificationCodeSequence) == len( + self._dataset.ContentCreatorIdentificationCodeSequence + ): + return self._ContentCreatorIdentificationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ContentCreatorIdentificationCodeSequence] + return None + + @ContentCreatorIdentificationCodeSequence.setter + def ContentCreatorIdentificationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ContentCreatorIdentificationCodeSequence = [] + if "ContentCreatorIdentificationCodeSequence" in self._dataset: + del self._dataset.ContentCreatorIdentificationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ContentCreatorIdentificationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ContentCreatorIdentificationCodeSequence = value + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.clear() + self._dataset.ContentCreatorIdentificationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ContentCreatorIdentificationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ContentCreatorIdentificationCodeSequence.append(item) + if "ContentCreatorIdentificationCodeSequence" not in self._dataset: + self._dataset.ContentCreatorIdentificationCodeSequence = pydicom.Sequence() + self._dataset.ContentCreatorIdentificationCodeSequence.append(item.to_dataset()) + + @property + def AlternateContentDescriptionSequence(self) -> Optional[List[AlternateContentDescriptionSequenceItem]]: + if "AlternateContentDescriptionSequence" in self._dataset: + if len(self._AlternateContentDescriptionSequence) == len(self._dataset.AlternateContentDescriptionSequence): + return self._AlternateContentDescriptionSequence + else: + return [AlternateContentDescriptionSequenceItem(x) for x in self._dataset.AlternateContentDescriptionSequence] + return None + + @AlternateContentDescriptionSequence.setter + def AlternateContentDescriptionSequence(self, value: Optional[List[AlternateContentDescriptionSequenceItem]]): + if value is None: + self._AlternateContentDescriptionSequence = [] + if "AlternateContentDescriptionSequence" in self._dataset: + del self._dataset.AlternateContentDescriptionSequence + elif not isinstance(value, list) or not all( + isinstance(item, AlternateContentDescriptionSequenceItem) for item in value + ): + raise ValueError( + "AlternateContentDescriptionSequence must be a list of AlternateContentDescriptionSequenceItem objects" + ) + else: + self._AlternateContentDescriptionSequence = value + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.clear() + self._dataset.AlternateContentDescriptionSequence.extend([item.to_dataset() for item in value]) + + def add_AlternateContentDescription(self, item: AlternateContentDescriptionSequenceItem): + if not isinstance(item, AlternateContentDescriptionSequenceItem): + raise ValueError("Item must be an instance of AlternateContentDescriptionSequenceItem") + self._AlternateContentDescriptionSequence.append(item) + if "AlternateContentDescriptionSequence" not in self._dataset: + self._dataset.AlternateContentDescriptionSequence = pydicom.Sequence() + self._dataset.AlternateContentDescriptionSequence.append(item.to_dataset()) + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def ReferencedSeriesSequence(self) -> Optional[List[ReferencedSeriesSequenceItem]]: + if "ReferencedSeriesSequence" in self._dataset: + if len(self._ReferencedSeriesSequence) == len(self._dataset.ReferencedSeriesSequence): + return self._ReferencedSeriesSequence + else: + return [ReferencedSeriesSequenceItem(x) for x in self._dataset.ReferencedSeriesSequence] + return None + + @ReferencedSeriesSequence.setter + def ReferencedSeriesSequence(self, value: Optional[List[ReferencedSeriesSequenceItem]]): + if value is None: + self._ReferencedSeriesSequence = [] + if "ReferencedSeriesSequence" in self._dataset: + del self._dataset.ReferencedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedSeriesSequenceItem) for item in value): + raise ValueError("ReferencedSeriesSequence must be a list of ReferencedSeriesSequenceItem objects") + else: + self._ReferencedSeriesSequence = value + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.clear() + self._dataset.ReferencedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedSeries(self, item: ReferencedSeriesSequenceItem): + if not isinstance(item, ReferencedSeriesSequenceItem): + raise ValueError("Item must be an instance of ReferencedSeriesSequenceItem") + self._ReferencedSeriesSequence.append(item) + if "ReferencedSeriesSequence" not in self._dataset: + self._dataset.ReferencedSeriesSequence = pydicom.Sequence() + self._dataset.ReferencedSeriesSequence.append(item.to_dataset()) + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def ShutterShape(self) -> Optional[List[str]]: + if "ShutterShape" in self._dataset: + return self._dataset.ShutterShape + return None + + @ShutterShape.setter + def ShutterShape(self, value: Optional[List[str]]): + if value is None: + if "ShutterShape" in self._dataset: + del self._dataset.ShutterShape + else: + self._dataset.ShutterShape = value + + @property + def ShutterPresentationValue(self) -> Optional[int]: + if "ShutterPresentationValue" in self._dataset: + return self._dataset.ShutterPresentationValue + return None + + @ShutterPresentationValue.setter + def ShutterPresentationValue(self, value: Optional[int]): + if value is None: + if "ShutterPresentationValue" in self._dataset: + del self._dataset.ShutterPresentationValue + else: + self._dataset.ShutterPresentationValue = value + + @property + def ShutterOverlayGroup(self) -> Optional[int]: + if "ShutterOverlayGroup" in self._dataset: + return self._dataset.ShutterOverlayGroup + return None + + @ShutterOverlayGroup.setter + def ShutterOverlayGroup(self, value: Optional[int]): + if value is None: + if "ShutterOverlayGroup" in self._dataset: + del self._dataset.ShutterOverlayGroup + else: + self._dataset.ShutterOverlayGroup = value + + @property + def ShutterPresentationColorCIELabValue(self) -> Optional[List[int]]: + if "ShutterPresentationColorCIELabValue" in self._dataset: + return self._dataset.ShutterPresentationColorCIELabValue + return None + + @ShutterPresentationColorCIELabValue.setter + def ShutterPresentationColorCIELabValue(self, value: Optional[List[int]]): + if value is None: + if "ShutterPresentationColorCIELabValue" in self._dataset: + del self._dataset.ShutterPresentationColorCIELabValue + else: + self._dataset.ShutterPresentationColorCIELabValue = value + + @property + def MaskSubtractionSequence(self) -> Optional[List[MaskSubtractionSequenceItem]]: + if "MaskSubtractionSequence" in self._dataset: + if len(self._MaskSubtractionSequence) == len(self._dataset.MaskSubtractionSequence): + return self._MaskSubtractionSequence + else: + return [MaskSubtractionSequenceItem(x) for x in self._dataset.MaskSubtractionSequence] + return None + + @MaskSubtractionSequence.setter + def MaskSubtractionSequence(self, value: Optional[List[MaskSubtractionSequenceItem]]): + if value is None: + self._MaskSubtractionSequence = [] + if "MaskSubtractionSequence" in self._dataset: + del self._dataset.MaskSubtractionSequence + elif not isinstance(value, list) or not all(isinstance(item, MaskSubtractionSequenceItem) for item in value): + raise ValueError("MaskSubtractionSequence must be a list of MaskSubtractionSequenceItem objects") + else: + self._MaskSubtractionSequence = value + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.clear() + self._dataset.MaskSubtractionSequence.extend([item.to_dataset() for item in value]) + + def add_MaskSubtraction(self, item: MaskSubtractionSequenceItem): + if not isinstance(item, MaskSubtractionSequenceItem): + raise ValueError("Item must be an instance of MaskSubtractionSequenceItem") + self._MaskSubtractionSequence.append(item) + if "MaskSubtractionSequence" not in self._dataset: + self._dataset.MaskSubtractionSequence = pydicom.Sequence() + self._dataset.MaskSubtractionSequence.append(item.to_dataset()) + + @property + def AdmittingDiagnosesDescription(self) -> Optional[List[str]]: + if "AdmittingDiagnosesDescription" in self._dataset: + return self._dataset.AdmittingDiagnosesDescription + return None + + @AdmittingDiagnosesDescription.setter + def AdmittingDiagnosesDescription(self, value: Optional[List[str]]): + if value is None: + if "AdmittingDiagnosesDescription" in self._dataset: + del self._dataset.AdmittingDiagnosesDescription + else: + self._dataset.AdmittingDiagnosesDescription = value + + @property + def AdmittingDiagnosesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "AdmittingDiagnosesCodeSequence" in self._dataset: + if len(self._AdmittingDiagnosesCodeSequence) == len(self._dataset.AdmittingDiagnosesCodeSequence): + return self._AdmittingDiagnosesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.AdmittingDiagnosesCodeSequence] + return None + + @AdmittingDiagnosesCodeSequence.setter + def AdmittingDiagnosesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._AdmittingDiagnosesCodeSequence = [] + if "AdmittingDiagnosesCodeSequence" in self._dataset: + del self._dataset.AdmittingDiagnosesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("AdmittingDiagnosesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._AdmittingDiagnosesCodeSequence = value + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.clear() + self._dataset.AdmittingDiagnosesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_AdmittingDiagnosesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._AdmittingDiagnosesCodeSequence.append(item) + if "AdmittingDiagnosesCodeSequence" not in self._dataset: + self._dataset.AdmittingDiagnosesCodeSequence = pydicom.Sequence() + self._dataset.AdmittingDiagnosesCodeSequence.append(item.to_dataset()) + + @property + def PatientAge(self) -> Optional[str]: + if "PatientAge" in self._dataset: + return self._dataset.PatientAge + return None + + @PatientAge.setter + def PatientAge(self, value: Optional[str]): + if value is None: + if "PatientAge" in self._dataset: + del self._dataset.PatientAge + else: + self._dataset.PatientAge = value + + @property + def PatientSize(self) -> Optional[Decimal]: + if "PatientSize" in self._dataset: + return self._dataset.PatientSize + return None + + @PatientSize.setter + def PatientSize(self, value: Optional[Decimal]): + if value is None: + if "PatientSize" in self._dataset: + del self._dataset.PatientSize + else: + self._dataset.PatientSize = value + + @property + def PatientSizeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSizeCodeSequence" in self._dataset: + if len(self._PatientSizeCodeSequence) == len(self._dataset.PatientSizeCodeSequence): + return self._PatientSizeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSizeCodeSequence] + return None + + @PatientSizeCodeSequence.setter + def PatientSizeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSizeCodeSequence = [] + if "PatientSizeCodeSequence" in self._dataset: + del self._dataset.PatientSizeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSizeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSizeCodeSequence = value + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.clear() + self._dataset.PatientSizeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSizeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSizeCodeSequence.append(item) + if "PatientSizeCodeSequence" not in self._dataset: + self._dataset.PatientSizeCodeSequence = pydicom.Sequence() + self._dataset.PatientSizeCodeSequence.append(item.to_dataset()) + + @property + def PatientBodyMassIndex(self) -> Optional[Decimal]: + if "PatientBodyMassIndex" in self._dataset: + return self._dataset.PatientBodyMassIndex + return None + + @PatientBodyMassIndex.setter + def PatientBodyMassIndex(self, value: Optional[Decimal]): + if value is None: + if "PatientBodyMassIndex" in self._dataset: + del self._dataset.PatientBodyMassIndex + else: + self._dataset.PatientBodyMassIndex = value + + @property + def MeasuredAPDimension(self) -> Optional[Decimal]: + if "MeasuredAPDimension" in self._dataset: + return self._dataset.MeasuredAPDimension + return None + + @MeasuredAPDimension.setter + def MeasuredAPDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredAPDimension" in self._dataset: + del self._dataset.MeasuredAPDimension + else: + self._dataset.MeasuredAPDimension = value + + @property + def MeasuredLateralDimension(self) -> Optional[Decimal]: + if "MeasuredLateralDimension" in self._dataset: + return self._dataset.MeasuredLateralDimension + return None + + @MeasuredLateralDimension.setter + def MeasuredLateralDimension(self, value: Optional[Decimal]): + if value is None: + if "MeasuredLateralDimension" in self._dataset: + del self._dataset.MeasuredLateralDimension + else: + self._dataset.MeasuredLateralDimension = value + + @property + def PatientWeight(self) -> Optional[Decimal]: + if "PatientWeight" in self._dataset: + return self._dataset.PatientWeight + return None + + @PatientWeight.setter + def PatientWeight(self, value: Optional[Decimal]): + if value is None: + if "PatientWeight" in self._dataset: + del self._dataset.PatientWeight + else: + self._dataset.PatientWeight = value + + @property + def MedicalAlerts(self) -> Optional[List[str]]: + if "MedicalAlerts" in self._dataset: + return self._dataset.MedicalAlerts + return None + + @MedicalAlerts.setter + def MedicalAlerts(self, value: Optional[List[str]]): + if value is None: + if "MedicalAlerts" in self._dataset: + del self._dataset.MedicalAlerts + else: + self._dataset.MedicalAlerts = value + + @property + def Allergies(self) -> Optional[List[str]]: + if "Allergies" in self._dataset: + return self._dataset.Allergies + return None + + @Allergies.setter + def Allergies(self, value: Optional[List[str]]): + if value is None: + if "Allergies" in self._dataset: + del self._dataset.Allergies + else: + self._dataset.Allergies = value + + @property + def Occupation(self) -> Optional[str]: + if "Occupation" in self._dataset: + return self._dataset.Occupation + return None + + @Occupation.setter + def Occupation(self, value: Optional[str]): + if value is None: + if "Occupation" in self._dataset: + del self._dataset.Occupation + else: + self._dataset.Occupation = value + + @property + def SmokingStatus(self) -> Optional[str]: + if "SmokingStatus" in self._dataset: + return self._dataset.SmokingStatus + return None + + @SmokingStatus.setter + def SmokingStatus(self, value: Optional[str]): + if value is None: + if "SmokingStatus" in self._dataset: + del self._dataset.SmokingStatus + else: + self._dataset.SmokingStatus = value + + @property + def AdditionalPatientHistory(self) -> Optional[str]: + if "AdditionalPatientHistory" in self._dataset: + return self._dataset.AdditionalPatientHistory + return None + + @AdditionalPatientHistory.setter + def AdditionalPatientHistory(self, value: Optional[str]): + if value is None: + if "AdditionalPatientHistory" in self._dataset: + del self._dataset.AdditionalPatientHistory + else: + self._dataset.AdditionalPatientHistory = value + + @property + def PregnancyStatus(self) -> Optional[int]: + if "PregnancyStatus" in self._dataset: + return self._dataset.PregnancyStatus + return None + + @PregnancyStatus.setter + def PregnancyStatus(self, value: Optional[int]): + if value is None: + if "PregnancyStatus" in self._dataset: + del self._dataset.PregnancyStatus + else: + self._dataset.PregnancyStatus = value + + @property + def LastMenstrualDate(self) -> Optional[str]: + if "LastMenstrualDate" in self._dataset: + return self._dataset.LastMenstrualDate + return None + + @LastMenstrualDate.setter + def LastMenstrualDate(self, value: Optional[str]): + if value is None: + if "LastMenstrualDate" in self._dataset: + del self._dataset.LastMenstrualDate + else: + self._dataset.LastMenstrualDate = value + + @property + def PatientSexNeutered(self) -> Optional[str]: + if "PatientSexNeutered" in self._dataset: + return self._dataset.PatientSexNeutered + return None + + @PatientSexNeutered.setter + def PatientSexNeutered(self, value: Optional[str]): + if value is None: + if "PatientSexNeutered" in self._dataset: + del self._dataset.PatientSexNeutered + else: + self._dataset.PatientSexNeutered = value + + @property + def ReasonForVisit(self) -> Optional[str]: + if "ReasonForVisit" in self._dataset: + return self._dataset.ReasonForVisit + return None + + @ReasonForVisit.setter + def ReasonForVisit(self, value: Optional[str]): + if value is None: + if "ReasonForVisit" in self._dataset: + del self._dataset.ReasonForVisit + else: + self._dataset.ReasonForVisit = value + + @property + def ReasonForVisitCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ReasonForVisitCodeSequence" in self._dataset: + if len(self._ReasonForVisitCodeSequence) == len(self._dataset.ReasonForVisitCodeSequence): + return self._ReasonForVisitCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ReasonForVisitCodeSequence] + return None + + @ReasonForVisitCodeSequence.setter + def ReasonForVisitCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ReasonForVisitCodeSequence = [] + if "ReasonForVisitCodeSequence" in self._dataset: + del self._dataset.ReasonForVisitCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ReasonForVisitCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ReasonForVisitCodeSequence = value + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.clear() + self._dataset.ReasonForVisitCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ReasonForVisitCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ReasonForVisitCodeSequence.append(item) + if "ReasonForVisitCodeSequence" not in self._dataset: + self._dataset.ReasonForVisitCodeSequence = pydicom.Sequence() + self._dataset.ReasonForVisitCodeSequence.append(item.to_dataset()) + + @property + def AdmissionID(self) -> Optional[str]: + if "AdmissionID" in self._dataset: + return self._dataset.AdmissionID + return None + + @AdmissionID.setter + def AdmissionID(self, value: Optional[str]): + if value is None: + if "AdmissionID" in self._dataset: + del self._dataset.AdmissionID + else: + self._dataset.AdmissionID = value + + @property + def IssuerOfAdmissionIDSequence(self) -> Optional[List[IssuerOfAdmissionIDSequenceItem]]: + if "IssuerOfAdmissionIDSequence" in self._dataset: + if len(self._IssuerOfAdmissionIDSequence) == len(self._dataset.IssuerOfAdmissionIDSequence): + return self._IssuerOfAdmissionIDSequence + else: + return [IssuerOfAdmissionIDSequenceItem(x) for x in self._dataset.IssuerOfAdmissionIDSequence] + return None + + @IssuerOfAdmissionIDSequence.setter + def IssuerOfAdmissionIDSequence(self, value: Optional[List[IssuerOfAdmissionIDSequenceItem]]): + if value is None: + self._IssuerOfAdmissionIDSequence = [] + if "IssuerOfAdmissionIDSequence" in self._dataset: + del self._dataset.IssuerOfAdmissionIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfAdmissionIDSequenceItem) for item in value): + raise ValueError("IssuerOfAdmissionIDSequence must be a list of IssuerOfAdmissionIDSequenceItem objects") + else: + self._IssuerOfAdmissionIDSequence = value + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.clear() + self._dataset.IssuerOfAdmissionIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfAdmissionID(self, item: IssuerOfAdmissionIDSequenceItem): + if not isinstance(item, IssuerOfAdmissionIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfAdmissionIDSequenceItem") + self._IssuerOfAdmissionIDSequence.append(item) + if "IssuerOfAdmissionIDSequence" not in self._dataset: + self._dataset.IssuerOfAdmissionIDSequence = pydicom.Sequence() + self._dataset.IssuerOfAdmissionIDSequence.append(item.to_dataset()) + + @property + def ServiceEpisodeID(self) -> Optional[str]: + if "ServiceEpisodeID" in self._dataset: + return self._dataset.ServiceEpisodeID + return None + + @ServiceEpisodeID.setter + def ServiceEpisodeID(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeID" in self._dataset: + del self._dataset.ServiceEpisodeID + else: + self._dataset.ServiceEpisodeID = value + + @property + def ServiceEpisodeDescription(self) -> Optional[str]: + if "ServiceEpisodeDescription" in self._dataset: + return self._dataset.ServiceEpisodeDescription + return None + + @ServiceEpisodeDescription.setter + def ServiceEpisodeDescription(self, value: Optional[str]): + if value is None: + if "ServiceEpisodeDescription" in self._dataset: + del self._dataset.ServiceEpisodeDescription + else: + self._dataset.ServiceEpisodeDescription = value + + @property + def IssuerOfServiceEpisodeIDSequence(self) -> Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]: + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + if len(self._IssuerOfServiceEpisodeIDSequence) == len(self._dataset.IssuerOfServiceEpisodeIDSequence): + return self._IssuerOfServiceEpisodeIDSequence + else: + return [IssuerOfServiceEpisodeIDSequenceItem(x) for x in self._dataset.IssuerOfServiceEpisodeIDSequence] + return None + + @IssuerOfServiceEpisodeIDSequence.setter + def IssuerOfServiceEpisodeIDSequence(self, value: Optional[List[IssuerOfServiceEpisodeIDSequenceItem]]): + if value is None: + self._IssuerOfServiceEpisodeIDSequence = [] + if "IssuerOfServiceEpisodeIDSequence" in self._dataset: + del self._dataset.IssuerOfServiceEpisodeIDSequence + elif not isinstance(value, list) or not all(isinstance(item, IssuerOfServiceEpisodeIDSequenceItem) for item in value): + raise ValueError("IssuerOfServiceEpisodeIDSequence must be a list of IssuerOfServiceEpisodeIDSequenceItem objects") + else: + self._IssuerOfServiceEpisodeIDSequence = value + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.clear() + self._dataset.IssuerOfServiceEpisodeIDSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfServiceEpisodeID(self, item: IssuerOfServiceEpisodeIDSequenceItem): + if not isinstance(item, IssuerOfServiceEpisodeIDSequenceItem): + raise ValueError("Item must be an instance of IssuerOfServiceEpisodeIDSequenceItem") + self._IssuerOfServiceEpisodeIDSequence.append(item) + if "IssuerOfServiceEpisodeIDSequence" not in self._dataset: + self._dataset.IssuerOfServiceEpisodeIDSequence = pydicom.Sequence() + self._dataset.IssuerOfServiceEpisodeIDSequence.append(item.to_dataset()) + + @property + def PatientState(self) -> Optional[str]: + if "PatientState" in self._dataset: + return self._dataset.PatientState + return None + + @PatientState.setter + def PatientState(self, value: Optional[str]): + if value is None: + if "PatientState" in self._dataset: + del self._dataset.PatientState + else: + self._dataset.PatientState = value + + @property + def ReferencedPatientSequence(self) -> Optional[List[ReferencedPatientSequenceItem]]: + if "ReferencedPatientSequence" in self._dataset: + if len(self._ReferencedPatientSequence) == len(self._dataset.ReferencedPatientSequence): + return self._ReferencedPatientSequence + else: + return [ReferencedPatientSequenceItem(x) for x in self._dataset.ReferencedPatientSequence] + return None + + @ReferencedPatientSequence.setter + def ReferencedPatientSequence(self, value: Optional[List[ReferencedPatientSequenceItem]]): + if value is None: + self._ReferencedPatientSequence = [] + if "ReferencedPatientSequence" in self._dataset: + del self._dataset.ReferencedPatientSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientSequenceItem) for item in value): + raise ValueError("ReferencedPatientSequence must be a list of ReferencedPatientSequenceItem objects") + else: + self._ReferencedPatientSequence = value + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.clear() + self._dataset.ReferencedPatientSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatient(self, item: ReferencedPatientSequenceItem): + if not isinstance(item, ReferencedPatientSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientSequenceItem") + self._ReferencedPatientSequence.append(item) + if "ReferencedPatientSequence" not in self._dataset: + self._dataset.ReferencedPatientSequence = pydicom.Sequence() + self._dataset.ReferencedPatientSequence.append(item.to_dataset()) + + @property + def PatientName(self) -> Optional[str]: + if "PatientName" in self._dataset: + return self._dataset.PatientName + return None + + @PatientName.setter + def PatientName(self, value: Optional[str]): + if value is None: + if "PatientName" in self._dataset: + del self._dataset.PatientName + else: + self._dataset.PatientName = value + + @property + def PatientID(self) -> Optional[str]: + if "PatientID" in self._dataset: + return self._dataset.PatientID + return None + + @PatientID.setter + def PatientID(self, value: Optional[str]): + if value is None: + if "PatientID" in self._dataset: + del self._dataset.PatientID + else: + self._dataset.PatientID = value + + @property + def IssuerOfPatientID(self) -> Optional[str]: + if "IssuerOfPatientID" in self._dataset: + return self._dataset.IssuerOfPatientID + return None + + @IssuerOfPatientID.setter + def IssuerOfPatientID(self, value: Optional[str]): + if value is None: + if "IssuerOfPatientID" in self._dataset: + del self._dataset.IssuerOfPatientID + else: + self._dataset.IssuerOfPatientID = value + + @property + def TypeOfPatientID(self) -> Optional[str]: + if "TypeOfPatientID" in self._dataset: + return self._dataset.TypeOfPatientID + return None + + @TypeOfPatientID.setter + def TypeOfPatientID(self, value: Optional[str]): + if value is None: + if "TypeOfPatientID" in self._dataset: + del self._dataset.TypeOfPatientID + else: + self._dataset.TypeOfPatientID = value + + @property + def IssuerOfPatientIDQualifiersSequence(self) -> Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]: + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + if len(self._IssuerOfPatientIDQualifiersSequence) == len(self._dataset.IssuerOfPatientIDQualifiersSequence): + return self._IssuerOfPatientIDQualifiersSequence + else: + return [IssuerOfPatientIDQualifiersSequenceItem(x) for x in self._dataset.IssuerOfPatientIDQualifiersSequence] + return None + + @IssuerOfPatientIDQualifiersSequence.setter + def IssuerOfPatientIDQualifiersSequence(self, value: Optional[List[IssuerOfPatientIDQualifiersSequenceItem]]): + if value is None: + self._IssuerOfPatientIDQualifiersSequence = [] + if "IssuerOfPatientIDQualifiersSequence" in self._dataset: + del self._dataset.IssuerOfPatientIDQualifiersSequence + elif not isinstance(value, list) or not all( + isinstance(item, IssuerOfPatientIDQualifiersSequenceItem) for item in value + ): + raise ValueError( + "IssuerOfPatientIDQualifiersSequence must be a list of IssuerOfPatientIDQualifiersSequenceItem objects" + ) + else: + self._IssuerOfPatientIDQualifiersSequence = value + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.clear() + self._dataset.IssuerOfPatientIDQualifiersSequence.extend([item.to_dataset() for item in value]) + + def add_IssuerOfPatientIDQualifiers(self, item: IssuerOfPatientIDQualifiersSequenceItem): + if not isinstance(item, IssuerOfPatientIDQualifiersSequenceItem): + raise ValueError("Item must be an instance of IssuerOfPatientIDQualifiersSequenceItem") + self._IssuerOfPatientIDQualifiersSequence.append(item) + if "IssuerOfPatientIDQualifiersSequence" not in self._dataset: + self._dataset.IssuerOfPatientIDQualifiersSequence = pydicom.Sequence() + self._dataset.IssuerOfPatientIDQualifiersSequence.append(item.to_dataset()) + + @property + def SourcePatientGroupIdentificationSequence(self) -> Optional[List[SourcePatientGroupIdentificationSequenceItem]]: + if "SourcePatientGroupIdentificationSequence" in self._dataset: + if len(self._SourcePatientGroupIdentificationSequence) == len( + self._dataset.SourcePatientGroupIdentificationSequence + ): + return self._SourcePatientGroupIdentificationSequence + else: + return [ + SourcePatientGroupIdentificationSequenceItem(x) + for x in self._dataset.SourcePatientGroupIdentificationSequence + ] + return None + + @SourcePatientGroupIdentificationSequence.setter + def SourcePatientGroupIdentificationSequence(self, value: Optional[List[SourcePatientGroupIdentificationSequenceItem]]): + if value is None: + self._SourcePatientGroupIdentificationSequence = [] + if "SourcePatientGroupIdentificationSequence" in self._dataset: + del self._dataset.SourcePatientGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, SourcePatientGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "SourcePatientGroupIdentificationSequence must be a list of SourcePatientGroupIdentificationSequenceItem" + " objects" + ) + else: + self._SourcePatientGroupIdentificationSequence = value + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.clear() + self._dataset.SourcePatientGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_SourcePatientGroupIdentification(self, item: SourcePatientGroupIdentificationSequenceItem): + if not isinstance(item, SourcePatientGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of SourcePatientGroupIdentificationSequenceItem") + self._SourcePatientGroupIdentificationSequence.append(item) + if "SourcePatientGroupIdentificationSequence" not in self._dataset: + self._dataset.SourcePatientGroupIdentificationSequence = pydicom.Sequence() + self._dataset.SourcePatientGroupIdentificationSequence.append(item.to_dataset()) + + @property + def GroupOfPatientsIdentificationSequence(self) -> Optional[List[GroupOfPatientsIdentificationSequenceItem]]: + if "GroupOfPatientsIdentificationSequence" in self._dataset: + if len(self._GroupOfPatientsIdentificationSequence) == len(self._dataset.GroupOfPatientsIdentificationSequence): + return self._GroupOfPatientsIdentificationSequence + else: + return [ + GroupOfPatientsIdentificationSequenceItem(x) for x in self._dataset.GroupOfPatientsIdentificationSequence + ] + return None + + @GroupOfPatientsIdentificationSequence.setter + def GroupOfPatientsIdentificationSequence(self, value: Optional[List[GroupOfPatientsIdentificationSequenceItem]]): + if value is None: + self._GroupOfPatientsIdentificationSequence = [] + if "GroupOfPatientsIdentificationSequence" in self._dataset: + del self._dataset.GroupOfPatientsIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, GroupOfPatientsIdentificationSequenceItem) for item in value + ): + raise ValueError( + "GroupOfPatientsIdentificationSequence must be a list of GroupOfPatientsIdentificationSequenceItem objects" + ) + else: + self._GroupOfPatientsIdentificationSequence = value + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.clear() + self._dataset.GroupOfPatientsIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_GroupOfPatientsIdentification(self, item: GroupOfPatientsIdentificationSequenceItem): + if not isinstance(item, GroupOfPatientsIdentificationSequenceItem): + raise ValueError("Item must be an instance of GroupOfPatientsIdentificationSequenceItem") + self._GroupOfPatientsIdentificationSequence.append(item) + if "GroupOfPatientsIdentificationSequence" not in self._dataset: + self._dataset.GroupOfPatientsIdentificationSequence = pydicom.Sequence() + self._dataset.GroupOfPatientsIdentificationSequence.append(item.to_dataset()) + + @property + def PatientBirthDate(self) -> Optional[str]: + if "PatientBirthDate" in self._dataset: + return self._dataset.PatientBirthDate + return None + + @PatientBirthDate.setter + def PatientBirthDate(self, value: Optional[str]): + if value is None: + if "PatientBirthDate" in self._dataset: + del self._dataset.PatientBirthDate + else: + self._dataset.PatientBirthDate = value + + @property + def PatientBirthTime(self) -> Optional[str]: + if "PatientBirthTime" in self._dataset: + return self._dataset.PatientBirthTime + return None + + @PatientBirthTime.setter + def PatientBirthTime(self, value: Optional[str]): + if value is None: + if "PatientBirthTime" in self._dataset: + del self._dataset.PatientBirthTime + else: + self._dataset.PatientBirthTime = value + + @property + def PatientBirthDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientBirthDateInAlternativeCalendar + return None + + @PatientBirthDateInAlternativeCalendar.setter + def PatientBirthDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientBirthDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientBirthDateInAlternativeCalendar + else: + self._dataset.PatientBirthDateInAlternativeCalendar = value + + @property + def PatientDeathDateInAlternativeCalendar(self) -> Optional[str]: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + return self._dataset.PatientDeathDateInAlternativeCalendar + return None + + @PatientDeathDateInAlternativeCalendar.setter + def PatientDeathDateInAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientDeathDateInAlternativeCalendar" in self._dataset: + del self._dataset.PatientDeathDateInAlternativeCalendar + else: + self._dataset.PatientDeathDateInAlternativeCalendar = value + + @property + def PatientAlternativeCalendar(self) -> Optional[str]: + if "PatientAlternativeCalendar" in self._dataset: + return self._dataset.PatientAlternativeCalendar + return None + + @PatientAlternativeCalendar.setter + def PatientAlternativeCalendar(self, value: Optional[str]): + if value is None: + if "PatientAlternativeCalendar" in self._dataset: + del self._dataset.PatientAlternativeCalendar + else: + self._dataset.PatientAlternativeCalendar = value + + @property + def PatientSex(self) -> Optional[str]: + if "PatientSex" in self._dataset: + return self._dataset.PatientSex + return None + + @PatientSex.setter + def PatientSex(self, value: Optional[str]): + if value is None: + if "PatientSex" in self._dataset: + del self._dataset.PatientSex + else: + self._dataset.PatientSex = value + + @property + def QualityControlSubject(self) -> Optional[str]: + if "QualityControlSubject" in self._dataset: + return self._dataset.QualityControlSubject + return None + + @QualityControlSubject.setter + def QualityControlSubject(self, value: Optional[str]): + if value is None: + if "QualityControlSubject" in self._dataset: + del self._dataset.QualityControlSubject + else: + self._dataset.QualityControlSubject = value + + @property + def StrainDescription(self) -> Optional[str]: + if "StrainDescription" in self._dataset: + return self._dataset.StrainDescription + return None + + @StrainDescription.setter + def StrainDescription(self, value: Optional[str]): + if value is None: + if "StrainDescription" in self._dataset: + del self._dataset.StrainDescription + else: + self._dataset.StrainDescription = value + + @property + def StrainNomenclature(self) -> Optional[str]: + if "StrainNomenclature" in self._dataset: + return self._dataset.StrainNomenclature + return None + + @StrainNomenclature.setter + def StrainNomenclature(self, value: Optional[str]): + if value is None: + if "StrainNomenclature" in self._dataset: + del self._dataset.StrainNomenclature + else: + self._dataset.StrainNomenclature = value + + @property + def StrainStockSequence(self) -> Optional[List[StrainStockSequenceItem]]: + if "StrainStockSequence" in self._dataset: + if len(self._StrainStockSequence) == len(self._dataset.StrainStockSequence): + return self._StrainStockSequence + else: + return [StrainStockSequenceItem(x) for x in self._dataset.StrainStockSequence] + return None + + @StrainStockSequence.setter + def StrainStockSequence(self, value: Optional[List[StrainStockSequenceItem]]): + if value is None: + self._StrainStockSequence = [] + if "StrainStockSequence" in self._dataset: + del self._dataset.StrainStockSequence + elif not isinstance(value, list) or not all(isinstance(item, StrainStockSequenceItem) for item in value): + raise ValueError("StrainStockSequence must be a list of StrainStockSequenceItem objects") + else: + self._StrainStockSequence = value + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.clear() + self._dataset.StrainStockSequence.extend([item.to_dataset() for item in value]) + + def add_StrainStock(self, item: StrainStockSequenceItem): + if not isinstance(item, StrainStockSequenceItem): + raise ValueError("Item must be an instance of StrainStockSequenceItem") + self._StrainStockSequence.append(item) + if "StrainStockSequence" not in self._dataset: + self._dataset.StrainStockSequence = pydicom.Sequence() + self._dataset.StrainStockSequence.append(item.to_dataset()) + + @property + def StrainAdditionalInformation(self) -> Optional[str]: + if "StrainAdditionalInformation" in self._dataset: + return self._dataset.StrainAdditionalInformation + return None + + @StrainAdditionalInformation.setter + def StrainAdditionalInformation(self, value: Optional[str]): + if value is None: + if "StrainAdditionalInformation" in self._dataset: + del self._dataset.StrainAdditionalInformation + else: + self._dataset.StrainAdditionalInformation = value + + @property + def StrainCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "StrainCodeSequence" in self._dataset: + if len(self._StrainCodeSequence) == len(self._dataset.StrainCodeSequence): + return self._StrainCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.StrainCodeSequence] + return None + + @StrainCodeSequence.setter + def StrainCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._StrainCodeSequence = [] + if "StrainCodeSequence" in self._dataset: + del self._dataset.StrainCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("StrainCodeSequence must be a list of CodeSequenceItem objects") + else: + self._StrainCodeSequence = value + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.clear() + self._dataset.StrainCodeSequence.extend([item.to_dataset() for item in value]) + + def add_StrainCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._StrainCodeSequence.append(item) + if "StrainCodeSequence" not in self._dataset: + self._dataset.StrainCodeSequence = pydicom.Sequence() + self._dataset.StrainCodeSequence.append(item.to_dataset()) + + @property + def GeneticModificationsSequence(self) -> Optional[List[GeneticModificationsSequenceItem]]: + if "GeneticModificationsSequence" in self._dataset: + if len(self._GeneticModificationsSequence) == len(self._dataset.GeneticModificationsSequence): + return self._GeneticModificationsSequence + else: + return [GeneticModificationsSequenceItem(x) for x in self._dataset.GeneticModificationsSequence] + return None + + @GeneticModificationsSequence.setter + def GeneticModificationsSequence(self, value: Optional[List[GeneticModificationsSequenceItem]]): + if value is None: + self._GeneticModificationsSequence = [] + if "GeneticModificationsSequence" in self._dataset: + del self._dataset.GeneticModificationsSequence + elif not isinstance(value, list) or not all(isinstance(item, GeneticModificationsSequenceItem) for item in value): + raise ValueError("GeneticModificationsSequence must be a list of GeneticModificationsSequenceItem objects") + else: + self._GeneticModificationsSequence = value + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.clear() + self._dataset.GeneticModificationsSequence.extend([item.to_dataset() for item in value]) + + def add_GeneticModifications(self, item: GeneticModificationsSequenceItem): + if not isinstance(item, GeneticModificationsSequenceItem): + raise ValueError("Item must be an instance of GeneticModificationsSequenceItem") + self._GeneticModificationsSequence.append(item) + if "GeneticModificationsSequence" not in self._dataset: + self._dataset.GeneticModificationsSequence = pydicom.Sequence() + self._dataset.GeneticModificationsSequence.append(item.to_dataset()) + + @property + def OtherPatientNames(self) -> Optional[List[str]]: + if "OtherPatientNames" in self._dataset: + return self._dataset.OtherPatientNames + return None + + @OtherPatientNames.setter + def OtherPatientNames(self, value: Optional[List[str]]): + if value is None: + if "OtherPatientNames" in self._dataset: + del self._dataset.OtherPatientNames + else: + self._dataset.OtherPatientNames = value + + @property + def OtherPatientIDsSequence(self) -> Optional[List[OtherPatientIDsSequenceItem]]: + if "OtherPatientIDsSequence" in self._dataset: + if len(self._OtherPatientIDsSequence) == len(self._dataset.OtherPatientIDsSequence): + return self._OtherPatientIDsSequence + else: + return [OtherPatientIDsSequenceItem(x) for x in self._dataset.OtherPatientIDsSequence] + return None + + @OtherPatientIDsSequence.setter + def OtherPatientIDsSequence(self, value: Optional[List[OtherPatientIDsSequenceItem]]): + if value is None: + self._OtherPatientIDsSequence = [] + if "OtherPatientIDsSequence" in self._dataset: + del self._dataset.OtherPatientIDsSequence + elif not isinstance(value, list) or not all(isinstance(item, OtherPatientIDsSequenceItem) for item in value): + raise ValueError("OtherPatientIDsSequence must be a list of OtherPatientIDsSequenceItem objects") + else: + self._OtherPatientIDsSequence = value + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.clear() + self._dataset.OtherPatientIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherPatientIDs(self, item: OtherPatientIDsSequenceItem): + if not isinstance(item, OtherPatientIDsSequenceItem): + raise ValueError("Item must be an instance of OtherPatientIDsSequenceItem") + self._OtherPatientIDsSequence.append(item) + if "OtherPatientIDsSequence" not in self._dataset: + self._dataset.OtherPatientIDsSequence = pydicom.Sequence() + self._dataset.OtherPatientIDsSequence.append(item.to_dataset()) + + @property + def ReferencedPatientPhotoSequence(self) -> Optional[List[ReferencedPatientPhotoSequenceItem]]: + if "ReferencedPatientPhotoSequence" in self._dataset: + if len(self._ReferencedPatientPhotoSequence) == len(self._dataset.ReferencedPatientPhotoSequence): + return self._ReferencedPatientPhotoSequence + else: + return [ReferencedPatientPhotoSequenceItem(x) for x in self._dataset.ReferencedPatientPhotoSequence] + return None + + @ReferencedPatientPhotoSequence.setter + def ReferencedPatientPhotoSequence(self, value: Optional[List[ReferencedPatientPhotoSequenceItem]]): + if value is None: + self._ReferencedPatientPhotoSequence = [] + if "ReferencedPatientPhotoSequence" in self._dataset: + del self._dataset.ReferencedPatientPhotoSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedPatientPhotoSequenceItem) for item in value): + raise ValueError("ReferencedPatientPhotoSequence must be a list of ReferencedPatientPhotoSequenceItem objects") + else: + self._ReferencedPatientPhotoSequence = value + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.clear() + self._dataset.ReferencedPatientPhotoSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPatientPhoto(self, item: ReferencedPatientPhotoSequenceItem): + if not isinstance(item, ReferencedPatientPhotoSequenceItem): + raise ValueError("Item must be an instance of ReferencedPatientPhotoSequenceItem") + self._ReferencedPatientPhotoSequence.append(item) + if "ReferencedPatientPhotoSequence" not in self._dataset: + self._dataset.ReferencedPatientPhotoSequence = pydicom.Sequence() + self._dataset.ReferencedPatientPhotoSequence.append(item.to_dataset()) + + @property + def EthnicGroup(self) -> Optional[str]: + if "EthnicGroup" in self._dataset: + return self._dataset.EthnicGroup + return None + + @EthnicGroup.setter + def EthnicGroup(self, value: Optional[str]): + if value is None: + if "EthnicGroup" in self._dataset: + del self._dataset.EthnicGroup + else: + self._dataset.EthnicGroup = value + + @property + def PatientSpeciesDescription(self) -> Optional[str]: + if "PatientSpeciesDescription" in self._dataset: + return self._dataset.PatientSpeciesDescription + return None + + @PatientSpeciesDescription.setter + def PatientSpeciesDescription(self, value: Optional[str]): + if value is None: + if "PatientSpeciesDescription" in self._dataset: + del self._dataset.PatientSpeciesDescription + else: + self._dataset.PatientSpeciesDescription = value + + @property + def PatientSpeciesCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientSpeciesCodeSequence" in self._dataset: + if len(self._PatientSpeciesCodeSequence) == len(self._dataset.PatientSpeciesCodeSequence): + return self._PatientSpeciesCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientSpeciesCodeSequence] + return None + + @PatientSpeciesCodeSequence.setter + def PatientSpeciesCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientSpeciesCodeSequence = [] + if "PatientSpeciesCodeSequence" in self._dataset: + del self._dataset.PatientSpeciesCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientSpeciesCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientSpeciesCodeSequence = value + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.clear() + self._dataset.PatientSpeciesCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientSpeciesCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientSpeciesCodeSequence.append(item) + if "PatientSpeciesCodeSequence" not in self._dataset: + self._dataset.PatientSpeciesCodeSequence = pydicom.Sequence() + self._dataset.PatientSpeciesCodeSequence.append(item.to_dataset()) + + @property + def PatientBreedDescription(self) -> Optional[str]: + if "PatientBreedDescription" in self._dataset: + return self._dataset.PatientBreedDescription + return None + + @PatientBreedDescription.setter + def PatientBreedDescription(self, value: Optional[str]): + if value is None: + if "PatientBreedDescription" in self._dataset: + del self._dataset.PatientBreedDescription + else: + self._dataset.PatientBreedDescription = value + + @property + def PatientBreedCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PatientBreedCodeSequence" in self._dataset: + if len(self._PatientBreedCodeSequence) == len(self._dataset.PatientBreedCodeSequence): + return self._PatientBreedCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PatientBreedCodeSequence] + return None + + @PatientBreedCodeSequence.setter + def PatientBreedCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PatientBreedCodeSequence = [] + if "PatientBreedCodeSequence" in self._dataset: + del self._dataset.PatientBreedCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PatientBreedCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PatientBreedCodeSequence = value + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.clear() + self._dataset.PatientBreedCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PatientBreedCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PatientBreedCodeSequence.append(item) + if "PatientBreedCodeSequence" not in self._dataset: + self._dataset.PatientBreedCodeSequence = pydicom.Sequence() + self._dataset.PatientBreedCodeSequence.append(item.to_dataset()) + + @property + def BreedRegistrationSequence(self) -> Optional[List[BreedRegistrationSequenceItem]]: + if "BreedRegistrationSequence" in self._dataset: + if len(self._BreedRegistrationSequence) == len(self._dataset.BreedRegistrationSequence): + return self._BreedRegistrationSequence + else: + return [BreedRegistrationSequenceItem(x) for x in self._dataset.BreedRegistrationSequence] + return None + + @BreedRegistrationSequence.setter + def BreedRegistrationSequence(self, value: Optional[List[BreedRegistrationSequenceItem]]): + if value is None: + self._BreedRegistrationSequence = [] + if "BreedRegistrationSequence" in self._dataset: + del self._dataset.BreedRegistrationSequence + elif not isinstance(value, list) or not all(isinstance(item, BreedRegistrationSequenceItem) for item in value): + raise ValueError("BreedRegistrationSequence must be a list of BreedRegistrationSequenceItem objects") + else: + self._BreedRegistrationSequence = value + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.clear() + self._dataset.BreedRegistrationSequence.extend([item.to_dataset() for item in value]) + + def add_BreedRegistration(self, item: BreedRegistrationSequenceItem): + if not isinstance(item, BreedRegistrationSequenceItem): + raise ValueError("Item must be an instance of BreedRegistrationSequenceItem") + self._BreedRegistrationSequence.append(item) + if "BreedRegistrationSequence" not in self._dataset: + self._dataset.BreedRegistrationSequence = pydicom.Sequence() + self._dataset.BreedRegistrationSequence.append(item.to_dataset()) + + @property + def ResponsiblePerson(self) -> Optional[str]: + if "ResponsiblePerson" in self._dataset: + return self._dataset.ResponsiblePerson + return None + + @ResponsiblePerson.setter + def ResponsiblePerson(self, value: Optional[str]): + if value is None: + if "ResponsiblePerson" in self._dataset: + del self._dataset.ResponsiblePerson + else: + self._dataset.ResponsiblePerson = value + + @property + def ResponsiblePersonRole(self) -> Optional[str]: + if "ResponsiblePersonRole" in self._dataset: + return self._dataset.ResponsiblePersonRole + return None + + @ResponsiblePersonRole.setter + def ResponsiblePersonRole(self, value: Optional[str]): + if value is None: + if "ResponsiblePersonRole" in self._dataset: + del self._dataset.ResponsiblePersonRole + else: + self._dataset.ResponsiblePersonRole = value + + @property + def ResponsibleOrganization(self) -> Optional[str]: + if "ResponsibleOrganization" in self._dataset: + return self._dataset.ResponsibleOrganization + return None + + @ResponsibleOrganization.setter + def ResponsibleOrganization(self, value: Optional[str]): + if value is None: + if "ResponsibleOrganization" in self._dataset: + del self._dataset.ResponsibleOrganization + else: + self._dataset.ResponsibleOrganization = value + + @property + def PatientComments(self) -> Optional[str]: + if "PatientComments" in self._dataset: + return self._dataset.PatientComments + return None + + @PatientComments.setter + def PatientComments(self, value: Optional[str]): + if value is None: + if "PatientComments" in self._dataset: + del self._dataset.PatientComments + else: + self._dataset.PatientComments = value + + @property + def PatientIdentityRemoved(self) -> Optional[str]: + if "PatientIdentityRemoved" in self._dataset: + return self._dataset.PatientIdentityRemoved + return None + + @PatientIdentityRemoved.setter + def PatientIdentityRemoved(self, value: Optional[str]): + if value is None: + if "PatientIdentityRemoved" in self._dataset: + del self._dataset.PatientIdentityRemoved + else: + self._dataset.PatientIdentityRemoved = value + + @property + def DeidentificationMethod(self) -> Optional[List[str]]: + if "DeidentificationMethod" in self._dataset: + return self._dataset.DeidentificationMethod + return None + + @DeidentificationMethod.setter + def DeidentificationMethod(self, value: Optional[List[str]]): + if value is None: + if "DeidentificationMethod" in self._dataset: + del self._dataset.DeidentificationMethod + else: + self._dataset.DeidentificationMethod = value + + @property + def DeidentificationMethodCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DeidentificationMethodCodeSequence" in self._dataset: + if len(self._DeidentificationMethodCodeSequence) == len(self._dataset.DeidentificationMethodCodeSequence): + return self._DeidentificationMethodCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DeidentificationMethodCodeSequence] + return None + + @DeidentificationMethodCodeSequence.setter + def DeidentificationMethodCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DeidentificationMethodCodeSequence = [] + if "DeidentificationMethodCodeSequence" in self._dataset: + del self._dataset.DeidentificationMethodCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DeidentificationMethodCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DeidentificationMethodCodeSequence = value + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.clear() + self._dataset.DeidentificationMethodCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DeidentificationMethodCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DeidentificationMethodCodeSequence.append(item) + if "DeidentificationMethodCodeSequence" not in self._dataset: + self._dataset.DeidentificationMethodCodeSequence = pydicom.Sequence() + self._dataset.DeidentificationMethodCodeSequence.append(item.to_dataset()) + + @property + def MultiFramePresentationSequence(self) -> Optional[List[MultiFramePresentationSequenceItem]]: + if "MultiFramePresentationSequence" in self._dataset: + if len(self._MultiFramePresentationSequence) == len(self._dataset.MultiFramePresentationSequence): + return self._MultiFramePresentationSequence + else: + return [MultiFramePresentationSequenceItem(x) for x in self._dataset.MultiFramePresentationSequence] + return None + + @MultiFramePresentationSequence.setter + def MultiFramePresentationSequence(self, value: Optional[List[MultiFramePresentationSequenceItem]]): + if value is None: + self._MultiFramePresentationSequence = [] + if "MultiFramePresentationSequence" in self._dataset: + del self._dataset.MultiFramePresentationSequence + elif not isinstance(value, list) or not all(isinstance(item, MultiFramePresentationSequenceItem) for item in value): + raise ValueError("MultiFramePresentationSequence must be a list of MultiFramePresentationSequenceItem objects") + else: + self._MultiFramePresentationSequence = value + if "MultiFramePresentationSequence" not in self._dataset: + self._dataset.MultiFramePresentationSequence = pydicom.Sequence() + self._dataset.MultiFramePresentationSequence.clear() + self._dataset.MultiFramePresentationSequence.extend([item.to_dataset() for item in value]) + + def add_MultiFramePresentation(self, item: MultiFramePresentationSequenceItem): + if not isinstance(item, MultiFramePresentationSequenceItem): + raise ValueError("Item must be an instance of MultiFramePresentationSequenceItem") + self._MultiFramePresentationSequence.append(item) + if "MultiFramePresentationSequence" not in self._dataset: + self._dataset.MultiFramePresentationSequence = pydicom.Sequence() + self._dataset.MultiFramePresentationSequence.append(item.to_dataset()) + + @property + def ImageHorizontalFlip(self) -> Optional[str]: + if "ImageHorizontalFlip" in self._dataset: + return self._dataset.ImageHorizontalFlip + return None + + @ImageHorizontalFlip.setter + def ImageHorizontalFlip(self, value: Optional[str]): + if value is None: + if "ImageHorizontalFlip" in self._dataset: + del self._dataset.ImageHorizontalFlip + else: + self._dataset.ImageHorizontalFlip = value + + @property + def ImageRotation(self) -> Optional[int]: + if "ImageRotation" in self._dataset: + return self._dataset.ImageRotation + return None + + @ImageRotation.setter + def ImageRotation(self, value: Optional[int]): + if value is None: + if "ImageRotation" in self._dataset: + del self._dataset.ImageRotation + else: + self._dataset.ImageRotation = value + + @property + def ClinicalTrialSponsorName(self) -> Optional[str]: + if "ClinicalTrialSponsorName" in self._dataset: + return self._dataset.ClinicalTrialSponsorName + return None + + @ClinicalTrialSponsorName.setter + def ClinicalTrialSponsorName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSponsorName" in self._dataset: + del self._dataset.ClinicalTrialSponsorName + else: + self._dataset.ClinicalTrialSponsorName = value + + @property + def ClinicalTrialProtocolID(self) -> Optional[str]: + if "ClinicalTrialProtocolID" in self._dataset: + return self._dataset.ClinicalTrialProtocolID + return None + + @ClinicalTrialProtocolID.setter + def ClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolID" in self._dataset: + del self._dataset.ClinicalTrialProtocolID + else: + self._dataset.ClinicalTrialProtocolID = value + + @property + def ClinicalTrialProtocolName(self) -> Optional[str]: + if "ClinicalTrialProtocolName" in self._dataset: + return self._dataset.ClinicalTrialProtocolName + return None + + @ClinicalTrialProtocolName.setter + def ClinicalTrialProtocolName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolName" in self._dataset: + del self._dataset.ClinicalTrialProtocolName + else: + self._dataset.ClinicalTrialProtocolName = value + + @property + def IssuerOfClinicalTrialProtocolID(self) -> Optional[str]: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialProtocolID + return None + + @IssuerOfClinicalTrialProtocolID.setter + def IssuerOfClinicalTrialProtocolID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialProtocolID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialProtocolID + else: + self._dataset.IssuerOfClinicalTrialProtocolID = value + + @property + def OtherClinicalTrialProtocolIDsSequence(self) -> Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]: + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + if len(self._OtherClinicalTrialProtocolIDsSequence) == len(self._dataset.OtherClinicalTrialProtocolIDsSequence): + return self._OtherClinicalTrialProtocolIDsSequence + else: + return [ + OtherClinicalTrialProtocolIDsSequenceItem(x) for x in self._dataset.OtherClinicalTrialProtocolIDsSequence + ] + return None + + @OtherClinicalTrialProtocolIDsSequence.setter + def OtherClinicalTrialProtocolIDsSequence(self, value: Optional[List[OtherClinicalTrialProtocolIDsSequenceItem]]): + if value is None: + self._OtherClinicalTrialProtocolIDsSequence = [] + if "OtherClinicalTrialProtocolIDsSequence" in self._dataset: + del self._dataset.OtherClinicalTrialProtocolIDsSequence + elif not isinstance(value, list) or not all( + isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem) for item in value + ): + raise ValueError( + "OtherClinicalTrialProtocolIDsSequence must be a list of OtherClinicalTrialProtocolIDsSequenceItem objects" + ) + else: + self._OtherClinicalTrialProtocolIDsSequence = value + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.clear() + self._dataset.OtherClinicalTrialProtocolIDsSequence.extend([item.to_dataset() for item in value]) + + def add_OtherClinicalTrialProtocolIDs(self, item: OtherClinicalTrialProtocolIDsSequenceItem): + if not isinstance(item, OtherClinicalTrialProtocolIDsSequenceItem): + raise ValueError("Item must be an instance of OtherClinicalTrialProtocolIDsSequenceItem") + self._OtherClinicalTrialProtocolIDsSequence.append(item) + if "OtherClinicalTrialProtocolIDsSequence" not in self._dataset: + self._dataset.OtherClinicalTrialProtocolIDsSequence = pydicom.Sequence() + self._dataset.OtherClinicalTrialProtocolIDsSequence.append(item.to_dataset()) + + @property + def ClinicalTrialSiteID(self) -> Optional[str]: + if "ClinicalTrialSiteID" in self._dataset: + return self._dataset.ClinicalTrialSiteID + return None + + @ClinicalTrialSiteID.setter + def ClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteID" in self._dataset: + del self._dataset.ClinicalTrialSiteID + else: + self._dataset.ClinicalTrialSiteID = value + + @property + def ClinicalTrialSiteName(self) -> Optional[str]: + if "ClinicalTrialSiteName" in self._dataset: + return self._dataset.ClinicalTrialSiteName + return None + + @ClinicalTrialSiteName.setter + def ClinicalTrialSiteName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSiteName" in self._dataset: + del self._dataset.ClinicalTrialSiteName + else: + self._dataset.ClinicalTrialSiteName = value + + @property + def IssuerOfClinicalTrialSiteID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSiteID + return None + + @IssuerOfClinicalTrialSiteID.setter + def IssuerOfClinicalTrialSiteID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSiteID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSiteID + else: + self._dataset.IssuerOfClinicalTrialSiteID = value + + @property + def ClinicalTrialSubjectID(self) -> Optional[str]: + if "ClinicalTrialSubjectID" in self._dataset: + return self._dataset.ClinicalTrialSubjectID + return None + + @ClinicalTrialSubjectID.setter + def ClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectID" in self._dataset: + del self._dataset.ClinicalTrialSubjectID + else: + self._dataset.ClinicalTrialSubjectID = value + + @property + def IssuerOfClinicalTrialSubjectID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectID + return None + + @IssuerOfClinicalTrialSubjectID.setter + def IssuerOfClinicalTrialSubjectID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectID + else: + self._dataset.IssuerOfClinicalTrialSubjectID = value + + @property + def ClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "ClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.ClinicalTrialSubjectReadingID + return None + + @ClinicalTrialSubjectReadingID.setter + def ClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.ClinicalTrialSubjectReadingID + else: + self._dataset.ClinicalTrialSubjectReadingID = value + + @property + def IssuerOfClinicalTrialSubjectReadingID(self) -> Optional[str]: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialSubjectReadingID + return None + + @IssuerOfClinicalTrialSubjectReadingID.setter + def IssuerOfClinicalTrialSubjectReadingID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialSubjectReadingID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialSubjectReadingID + else: + self._dataset.IssuerOfClinicalTrialSubjectReadingID = value + + @property + def ClinicalTrialProtocolEthicsCommitteeName(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeName + return None + + @ClinicalTrialProtocolEthicsCommitteeName.setter + def ClinicalTrialProtocolEthicsCommitteeName(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeName" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeName + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeName = value + + @property + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self) -> Optional[str]: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + return self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + return None + + @ClinicalTrialProtocolEthicsCommitteeApprovalNumber.setter + def ClinicalTrialProtocolEthicsCommitteeApprovalNumber(self, value: Optional[str]): + if value is None: + if "ClinicalTrialProtocolEthicsCommitteeApprovalNumber" in self._dataset: + del self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber + else: + self._dataset.ClinicalTrialProtocolEthicsCommitteeApprovalNumber = value + + @property + def SoftcopyVOILUTSequence(self) -> Optional[List[SoftcopyVOILUTSequenceItem]]: + if "SoftcopyVOILUTSequence" in self._dataset: + if len(self._SoftcopyVOILUTSequence) == len(self._dataset.SoftcopyVOILUTSequence): + return self._SoftcopyVOILUTSequence + else: + return [SoftcopyVOILUTSequenceItem(x) for x in self._dataset.SoftcopyVOILUTSequence] + return None + + @SoftcopyVOILUTSequence.setter + def SoftcopyVOILUTSequence(self, value: Optional[List[SoftcopyVOILUTSequenceItem]]): + if value is None: + self._SoftcopyVOILUTSequence = [] + if "SoftcopyVOILUTSequence" in self._dataset: + del self._dataset.SoftcopyVOILUTSequence + elif not isinstance(value, list) or not all(isinstance(item, SoftcopyVOILUTSequenceItem) for item in value): + raise ValueError("SoftcopyVOILUTSequence must be a list of SoftcopyVOILUTSequenceItem objects") + else: + self._SoftcopyVOILUTSequence = value + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.clear() + self._dataset.SoftcopyVOILUTSequence.extend([item.to_dataset() for item in value]) + + def add_SoftcopyVOILUT(self, item: SoftcopyVOILUTSequenceItem): + if not isinstance(item, SoftcopyVOILUTSequenceItem): + raise ValueError("Item must be an instance of SoftcopyVOILUTSequenceItem") + self._SoftcopyVOILUTSequence.append(item) + if "SoftcopyVOILUTSequence" not in self._dataset: + self._dataset.SoftcopyVOILUTSequence = pydicom.Sequence() + self._dataset.SoftcopyVOILUTSequence.append(item.to_dataset()) + + @property + def SpecificCharacterSet(self) -> Optional[List[str]]: + if "SpecificCharacterSet" in self._dataset: + return self._dataset.SpecificCharacterSet + return None + + @SpecificCharacterSet.setter + def SpecificCharacterSet(self, value: Optional[List[str]]): + if value is None: + if "SpecificCharacterSet" in self._dataset: + del self._dataset.SpecificCharacterSet + else: + self._dataset.SpecificCharacterSet = value + + @property + def InstanceCreationDate(self) -> Optional[str]: + if "InstanceCreationDate" in self._dataset: + return self._dataset.InstanceCreationDate + return None + + @InstanceCreationDate.setter + def InstanceCreationDate(self, value: Optional[str]): + if value is None: + if "InstanceCreationDate" in self._dataset: + del self._dataset.InstanceCreationDate + else: + self._dataset.InstanceCreationDate = value + + @property + def InstanceCreationTime(self) -> Optional[str]: + if "InstanceCreationTime" in self._dataset: + return self._dataset.InstanceCreationTime + return None + + @InstanceCreationTime.setter + def InstanceCreationTime(self, value: Optional[str]): + if value is None: + if "InstanceCreationTime" in self._dataset: + del self._dataset.InstanceCreationTime + else: + self._dataset.InstanceCreationTime = value + + @property + def InstanceCreatorUID(self) -> Optional[str]: + if "InstanceCreatorUID" in self._dataset: + return self._dataset.InstanceCreatorUID + return None + + @InstanceCreatorUID.setter + def InstanceCreatorUID(self, value: Optional[str]): + if value is None: + if "InstanceCreatorUID" in self._dataset: + del self._dataset.InstanceCreatorUID + else: + self._dataset.InstanceCreatorUID = value + + @property + def InstanceCoercionDateTime(self) -> Optional[str]: + if "InstanceCoercionDateTime" in self._dataset: + return self._dataset.InstanceCoercionDateTime + return None + + @InstanceCoercionDateTime.setter + def InstanceCoercionDateTime(self, value: Optional[str]): + if value is None: + if "InstanceCoercionDateTime" in self._dataset: + del self._dataset.InstanceCoercionDateTime + else: + self._dataset.InstanceCoercionDateTime = value + + @property + def SOPClassUID(self) -> Optional[str]: + if "SOPClassUID" in self._dataset: + return self._dataset.SOPClassUID + return None + + @SOPClassUID.setter + def SOPClassUID(self, value: Optional[str]): + if value is None: + if "SOPClassUID" in self._dataset: + del self._dataset.SOPClassUID + else: + self._dataset.SOPClassUID = value + + @property + def SOPInstanceUID(self) -> Optional[str]: + if "SOPInstanceUID" in self._dataset: + return self._dataset.SOPInstanceUID + return None + + @SOPInstanceUID.setter + def SOPInstanceUID(self, value: Optional[str]): + if value is None: + if "SOPInstanceUID" in self._dataset: + del self._dataset.SOPInstanceUID + else: + self._dataset.SOPInstanceUID = value + + @property + def RelatedGeneralSOPClassUID(self) -> Optional[List[str]]: + if "RelatedGeneralSOPClassUID" in self._dataset: + return self._dataset.RelatedGeneralSOPClassUID + return None + + @RelatedGeneralSOPClassUID.setter + def RelatedGeneralSOPClassUID(self, value: Optional[List[str]]): + if value is None: + if "RelatedGeneralSOPClassUID" in self._dataset: + del self._dataset.RelatedGeneralSOPClassUID + else: + self._dataset.RelatedGeneralSOPClassUID = value + + @property + def OriginalSpecializedSOPClassUID(self) -> Optional[str]: + if "OriginalSpecializedSOPClassUID" in self._dataset: + return self._dataset.OriginalSpecializedSOPClassUID + return None + + @OriginalSpecializedSOPClassUID.setter + def OriginalSpecializedSOPClassUID(self, value: Optional[str]): + if value is None: + if "OriginalSpecializedSOPClassUID" in self._dataset: + del self._dataset.OriginalSpecializedSOPClassUID + else: + self._dataset.OriginalSpecializedSOPClassUID = value + + @property + def SyntheticData(self) -> Optional[str]: + if "SyntheticData" in self._dataset: + return self._dataset.SyntheticData + return None + + @SyntheticData.setter + def SyntheticData(self, value: Optional[str]): + if value is None: + if "SyntheticData" in self._dataset: + del self._dataset.SyntheticData + else: + self._dataset.SyntheticData = value + + @property + def QueryRetrieveView(self) -> Optional[str]: + if "QueryRetrieveView" in self._dataset: + return self._dataset.QueryRetrieveView + return None + + @QueryRetrieveView.setter + def QueryRetrieveView(self, value: Optional[str]): + if value is None: + if "QueryRetrieveView" in self._dataset: + del self._dataset.QueryRetrieveView + else: + self._dataset.QueryRetrieveView = value + + @property + def CodingSchemeIdentificationSequence(self) -> Optional[List[CodingSchemeIdentificationSequenceItem]]: + if "CodingSchemeIdentificationSequence" in self._dataset: + if len(self._CodingSchemeIdentificationSequence) == len(self._dataset.CodingSchemeIdentificationSequence): + return self._CodingSchemeIdentificationSequence + else: + return [CodingSchemeIdentificationSequenceItem(x) for x in self._dataset.CodingSchemeIdentificationSequence] + return None + + @CodingSchemeIdentificationSequence.setter + def CodingSchemeIdentificationSequence(self, value: Optional[List[CodingSchemeIdentificationSequenceItem]]): + if value is None: + self._CodingSchemeIdentificationSequence = [] + if "CodingSchemeIdentificationSequence" in self._dataset: + del self._dataset.CodingSchemeIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, CodingSchemeIdentificationSequenceItem) for item in value + ): + raise ValueError( + "CodingSchemeIdentificationSequence must be a list of CodingSchemeIdentificationSequenceItem objects" + ) + else: + self._CodingSchemeIdentificationSequence = value + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.clear() + self._dataset.CodingSchemeIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_CodingSchemeIdentification(self, item: CodingSchemeIdentificationSequenceItem): + if not isinstance(item, CodingSchemeIdentificationSequenceItem): + raise ValueError("Item must be an instance of CodingSchemeIdentificationSequenceItem") + self._CodingSchemeIdentificationSequence.append(item) + if "CodingSchemeIdentificationSequence" not in self._dataset: + self._dataset.CodingSchemeIdentificationSequence = pydicom.Sequence() + self._dataset.CodingSchemeIdentificationSequence.append(item.to_dataset()) + + @property + def ContextGroupIdentificationSequence(self) -> Optional[List[ContextGroupIdentificationSequenceItem]]: + if "ContextGroupIdentificationSequence" in self._dataset: + if len(self._ContextGroupIdentificationSequence) == len(self._dataset.ContextGroupIdentificationSequence): + return self._ContextGroupIdentificationSequence + else: + return [ContextGroupIdentificationSequenceItem(x) for x in self._dataset.ContextGroupIdentificationSequence] + return None + + @ContextGroupIdentificationSequence.setter + def ContextGroupIdentificationSequence(self, value: Optional[List[ContextGroupIdentificationSequenceItem]]): + if value is None: + self._ContextGroupIdentificationSequence = [] + if "ContextGroupIdentificationSequence" in self._dataset: + del self._dataset.ContextGroupIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, ContextGroupIdentificationSequenceItem) for item in value + ): + raise ValueError( + "ContextGroupIdentificationSequence must be a list of ContextGroupIdentificationSequenceItem objects" + ) + else: + self._ContextGroupIdentificationSequence = value + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.clear() + self._dataset.ContextGroupIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_ContextGroupIdentification(self, item: ContextGroupIdentificationSequenceItem): + if not isinstance(item, ContextGroupIdentificationSequenceItem): + raise ValueError("Item must be an instance of ContextGroupIdentificationSequenceItem") + self._ContextGroupIdentificationSequence.append(item) + if "ContextGroupIdentificationSequence" not in self._dataset: + self._dataset.ContextGroupIdentificationSequence = pydicom.Sequence() + self._dataset.ContextGroupIdentificationSequence.append(item.to_dataset()) + + @property + def MappingResourceIdentificationSequence(self) -> Optional[List[MappingResourceIdentificationSequenceItem]]: + if "MappingResourceIdentificationSequence" in self._dataset: + if len(self._MappingResourceIdentificationSequence) == len(self._dataset.MappingResourceIdentificationSequence): + return self._MappingResourceIdentificationSequence + else: + return [ + MappingResourceIdentificationSequenceItem(x) for x in self._dataset.MappingResourceIdentificationSequence + ] + return None + + @MappingResourceIdentificationSequence.setter + def MappingResourceIdentificationSequence(self, value: Optional[List[MappingResourceIdentificationSequenceItem]]): + if value is None: + self._MappingResourceIdentificationSequence = [] + if "MappingResourceIdentificationSequence" in self._dataset: + del self._dataset.MappingResourceIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, MappingResourceIdentificationSequenceItem) for item in value + ): + raise ValueError( + "MappingResourceIdentificationSequence must be a list of MappingResourceIdentificationSequenceItem objects" + ) + else: + self._MappingResourceIdentificationSequence = value + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.clear() + self._dataset.MappingResourceIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_MappingResourceIdentification(self, item: MappingResourceIdentificationSequenceItem): + if not isinstance(item, MappingResourceIdentificationSequenceItem): + raise ValueError("Item must be an instance of MappingResourceIdentificationSequenceItem") + self._MappingResourceIdentificationSequence.append(item) + if "MappingResourceIdentificationSequence" not in self._dataset: + self._dataset.MappingResourceIdentificationSequence = pydicom.Sequence() + self._dataset.MappingResourceIdentificationSequence.append(item.to_dataset()) + + @property + def TimezoneOffsetFromUTC(self) -> Optional[str]: + if "TimezoneOffsetFromUTC" in self._dataset: + return self._dataset.TimezoneOffsetFromUTC + return None + + @TimezoneOffsetFromUTC.setter + def TimezoneOffsetFromUTC(self, value: Optional[str]): + if value is None: + if "TimezoneOffsetFromUTC" in self._dataset: + del self._dataset.TimezoneOffsetFromUTC + else: + self._dataset.TimezoneOffsetFromUTC = value + + @property + def PrivateDataElementCharacteristicsSequence(self) -> Optional[List[PrivateDataElementCharacteristicsSequenceItem]]: + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + if len(self._PrivateDataElementCharacteristicsSequence) == len( + self._dataset.PrivateDataElementCharacteristicsSequence + ): + return self._PrivateDataElementCharacteristicsSequence + else: + return [ + PrivateDataElementCharacteristicsSequenceItem(x) + for x in self._dataset.PrivateDataElementCharacteristicsSequence + ] + return None + + @PrivateDataElementCharacteristicsSequence.setter + def PrivateDataElementCharacteristicsSequence(self, value: Optional[List[PrivateDataElementCharacteristicsSequenceItem]]): + if value is None: + self._PrivateDataElementCharacteristicsSequence = [] + if "PrivateDataElementCharacteristicsSequence" in self._dataset: + del self._dataset.PrivateDataElementCharacteristicsSequence + elif not isinstance(value, list) or not all( + isinstance(item, PrivateDataElementCharacteristicsSequenceItem) for item in value + ): + raise ValueError( + "PrivateDataElementCharacteristicsSequence must be a list of PrivateDataElementCharacteristicsSequenceItem" + " objects" + ) + else: + self._PrivateDataElementCharacteristicsSequence = value + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.clear() + self._dataset.PrivateDataElementCharacteristicsSequence.extend([item.to_dataset() for item in value]) + + def add_PrivateDataElementCharacteristics(self, item: PrivateDataElementCharacteristicsSequenceItem): + if not isinstance(item, PrivateDataElementCharacteristicsSequenceItem): + raise ValueError("Item must be an instance of PrivateDataElementCharacteristicsSequenceItem") + self._PrivateDataElementCharacteristicsSequence.append(item) + if "PrivateDataElementCharacteristicsSequence" not in self._dataset: + self._dataset.PrivateDataElementCharacteristicsSequence = pydicom.Sequence() + self._dataset.PrivateDataElementCharacteristicsSequence.append(item.to_dataset()) + + @property + def ContentQualification(self) -> Optional[str]: + if "ContentQualification" in self._dataset: + return self._dataset.ContentQualification + return None + + @ContentQualification.setter + def ContentQualification(self, value: Optional[str]): + if value is None: + if "ContentQualification" in self._dataset: + del self._dataset.ContentQualification + else: + self._dataset.ContentQualification = value + + @property + def ReferencedDefinedProtocolSequence(self) -> Optional[List[ReferencedDefinedProtocolSequenceItem]]: + if "ReferencedDefinedProtocolSequence" in self._dataset: + if len(self._ReferencedDefinedProtocolSequence) == len(self._dataset.ReferencedDefinedProtocolSequence): + return self._ReferencedDefinedProtocolSequence + else: + return [ReferencedDefinedProtocolSequenceItem(x) for x in self._dataset.ReferencedDefinedProtocolSequence] + return None + + @ReferencedDefinedProtocolSequence.setter + def ReferencedDefinedProtocolSequence(self, value: Optional[List[ReferencedDefinedProtocolSequenceItem]]): + if value is None: + self._ReferencedDefinedProtocolSequence = [] + if "ReferencedDefinedProtocolSequence" in self._dataset: + del self._dataset.ReferencedDefinedProtocolSequence + elif not isinstance(value, list) or not all(isinstance(item, ReferencedDefinedProtocolSequenceItem) for item in value): + raise ValueError( + "ReferencedDefinedProtocolSequence must be a list of ReferencedDefinedProtocolSequenceItem objects" + ) + else: + self._ReferencedDefinedProtocolSequence = value + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.clear() + self._dataset.ReferencedDefinedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedDefinedProtocol(self, item: ReferencedDefinedProtocolSequenceItem): + if not isinstance(item, ReferencedDefinedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedDefinedProtocolSequenceItem") + self._ReferencedDefinedProtocolSequence.append(item) + if "ReferencedDefinedProtocolSequence" not in self._dataset: + self._dataset.ReferencedDefinedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedDefinedProtocolSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProtocolSequence(self) -> Optional[List[ReferencedPerformedProtocolSequenceItem]]: + if "ReferencedPerformedProtocolSequence" in self._dataset: + if len(self._ReferencedPerformedProtocolSequence) == len(self._dataset.ReferencedPerformedProtocolSequence): + return self._ReferencedPerformedProtocolSequence + else: + return [ReferencedPerformedProtocolSequenceItem(x) for x in self._dataset.ReferencedPerformedProtocolSequence] + return None + + @ReferencedPerformedProtocolSequence.setter + def ReferencedPerformedProtocolSequence(self, value: Optional[List[ReferencedPerformedProtocolSequenceItem]]): + if value is None: + self._ReferencedPerformedProtocolSequence = [] + if "ReferencedPerformedProtocolSequence" in self._dataset: + del self._dataset.ReferencedPerformedProtocolSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProtocolSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProtocolSequence must be a list of ReferencedPerformedProtocolSequenceItem objects" + ) + else: + self._ReferencedPerformedProtocolSequence = value + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.clear() + self._dataset.ReferencedPerformedProtocolSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProtocol(self, item: ReferencedPerformedProtocolSequenceItem): + if not isinstance(item, ReferencedPerformedProtocolSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProtocolSequenceItem") + self._ReferencedPerformedProtocolSequence.append(item) + if "ReferencedPerformedProtocolSequence" not in self._dataset: + self._dataset.ReferencedPerformedProtocolSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProtocolSequence.append(item.to_dataset()) + + @property + def ContributingEquipmentSequence(self) -> Optional[List[ContributingEquipmentSequenceItem]]: + if "ContributingEquipmentSequence" in self._dataset: + if len(self._ContributingEquipmentSequence) == len(self._dataset.ContributingEquipmentSequence): + return self._ContributingEquipmentSequence + else: + return [ContributingEquipmentSequenceItem(x) for x in self._dataset.ContributingEquipmentSequence] + return None + + @ContributingEquipmentSequence.setter + def ContributingEquipmentSequence(self, value: Optional[List[ContributingEquipmentSequenceItem]]): + if value is None: + self._ContributingEquipmentSequence = [] + if "ContributingEquipmentSequence" in self._dataset: + del self._dataset.ContributingEquipmentSequence + elif not isinstance(value, list) or not all(isinstance(item, ContributingEquipmentSequenceItem) for item in value): + raise ValueError("ContributingEquipmentSequence must be a list of ContributingEquipmentSequenceItem objects") + else: + self._ContributingEquipmentSequence = value + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.clear() + self._dataset.ContributingEquipmentSequence.extend([item.to_dataset() for item in value]) + + def add_ContributingEquipment(self, item: ContributingEquipmentSequenceItem): + if not isinstance(item, ContributingEquipmentSequenceItem): + raise ValueError("Item must be an instance of ContributingEquipmentSequenceItem") + self._ContributingEquipmentSequence.append(item) + if "ContributingEquipmentSequence" not in self._dataset: + self._dataset.ContributingEquipmentSequence = pydicom.Sequence() + self._dataset.ContributingEquipmentSequence.append(item.to_dataset()) + + @property + def InstanceNumber(self) -> Optional[int]: + if "InstanceNumber" in self._dataset: + return self._dataset.InstanceNumber + return None + + @InstanceNumber.setter + def InstanceNumber(self, value: Optional[int]): + if value is None: + if "InstanceNumber" in self._dataset: + del self._dataset.InstanceNumber + else: + self._dataset.InstanceNumber = value + + @property + def ConversionSourceAttributesSequence(self) -> Optional[List[ConversionSourceAttributesSequenceItem]]: + if "ConversionSourceAttributesSequence" in self._dataset: + if len(self._ConversionSourceAttributesSequence) == len(self._dataset.ConversionSourceAttributesSequence): + return self._ConversionSourceAttributesSequence + else: + return [ConversionSourceAttributesSequenceItem(x) for x in self._dataset.ConversionSourceAttributesSequence] + return None + + @ConversionSourceAttributesSequence.setter + def ConversionSourceAttributesSequence(self, value: Optional[List[ConversionSourceAttributesSequenceItem]]): + if value is None: + self._ConversionSourceAttributesSequence = [] + if "ConversionSourceAttributesSequence" in self._dataset: + del self._dataset.ConversionSourceAttributesSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConversionSourceAttributesSequenceItem) for item in value + ): + raise ValueError( + "ConversionSourceAttributesSequence must be a list of ConversionSourceAttributesSequenceItem objects" + ) + else: + self._ConversionSourceAttributesSequence = value + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.clear() + self._dataset.ConversionSourceAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_ConversionSourceAttributes(self, item: ConversionSourceAttributesSequenceItem): + if not isinstance(item, ConversionSourceAttributesSequenceItem): + raise ValueError("Item must be an instance of ConversionSourceAttributesSequenceItem") + self._ConversionSourceAttributesSequence.append(item) + if "ConversionSourceAttributesSequence" not in self._dataset: + self._dataset.ConversionSourceAttributesSequence = pydicom.Sequence() + self._dataset.ConversionSourceAttributesSequence.append(item.to_dataset()) + + @property + def LongitudinalTemporalInformationModified(self) -> Optional[str]: + if "LongitudinalTemporalInformationModified" in self._dataset: + return self._dataset.LongitudinalTemporalInformationModified + return None + + @LongitudinalTemporalInformationModified.setter + def LongitudinalTemporalInformationModified(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalInformationModified" in self._dataset: + del self._dataset.LongitudinalTemporalInformationModified + else: + self._dataset.LongitudinalTemporalInformationModified = value + + @property + def HL7StructuredDocumentReferenceSequence(self) -> Optional[List[HL7StructuredDocumentReferenceSequenceItem]]: + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + if len(self._HL7StructuredDocumentReferenceSequence) == len(self._dataset.HL7StructuredDocumentReferenceSequence): + return self._HL7StructuredDocumentReferenceSequence + else: + return [ + HL7StructuredDocumentReferenceSequenceItem(x) for x in self._dataset.HL7StructuredDocumentReferenceSequence + ] + return None + + @HL7StructuredDocumentReferenceSequence.setter + def HL7StructuredDocumentReferenceSequence(self, value: Optional[List[HL7StructuredDocumentReferenceSequenceItem]]): + if value is None: + self._HL7StructuredDocumentReferenceSequence = [] + if "HL7StructuredDocumentReferenceSequence" in self._dataset: + del self._dataset.HL7StructuredDocumentReferenceSequence + elif not isinstance(value, list) or not all( + isinstance(item, HL7StructuredDocumentReferenceSequenceItem) for item in value + ): + raise ValueError( + "HL7StructuredDocumentReferenceSequence must be a list of HL7StructuredDocumentReferenceSequenceItem objects" + ) + else: + self._HL7StructuredDocumentReferenceSequence = value + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.clear() + self._dataset.HL7StructuredDocumentReferenceSequence.extend([item.to_dataset() for item in value]) + + def add_HL7StructuredDocumentReference(self, item: HL7StructuredDocumentReferenceSequenceItem): + if not isinstance(item, HL7StructuredDocumentReferenceSequenceItem): + raise ValueError("Item must be an instance of HL7StructuredDocumentReferenceSequenceItem") + self._HL7StructuredDocumentReferenceSequence.append(item) + if "HL7StructuredDocumentReferenceSequence" not in self._dataset: + self._dataset.HL7StructuredDocumentReferenceSequence = pydicom.Sequence() + self._dataset.HL7StructuredDocumentReferenceSequence.append(item.to_dataset()) + + @property + def SOPInstanceStatus(self) -> Optional[str]: + if "SOPInstanceStatus" in self._dataset: + return self._dataset.SOPInstanceStatus + return None + + @SOPInstanceStatus.setter + def SOPInstanceStatus(self, value: Optional[str]): + if value is None: + if "SOPInstanceStatus" in self._dataset: + del self._dataset.SOPInstanceStatus + else: + self._dataset.SOPInstanceStatus = value + + @property + def SOPAuthorizationDateTime(self) -> Optional[str]: + if "SOPAuthorizationDateTime" in self._dataset: + return self._dataset.SOPAuthorizationDateTime + return None + + @SOPAuthorizationDateTime.setter + def SOPAuthorizationDateTime(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationDateTime" in self._dataset: + del self._dataset.SOPAuthorizationDateTime + else: + self._dataset.SOPAuthorizationDateTime = value + + @property + def SOPAuthorizationComment(self) -> Optional[str]: + if "SOPAuthorizationComment" in self._dataset: + return self._dataset.SOPAuthorizationComment + return None + + @SOPAuthorizationComment.setter + def SOPAuthorizationComment(self, value: Optional[str]): + if value is None: + if "SOPAuthorizationComment" in self._dataset: + del self._dataset.SOPAuthorizationComment + else: + self._dataset.SOPAuthorizationComment = value + + @property + def AuthorizationEquipmentCertificationNumber(self) -> Optional[str]: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + return self._dataset.AuthorizationEquipmentCertificationNumber + return None + + @AuthorizationEquipmentCertificationNumber.setter + def AuthorizationEquipmentCertificationNumber(self, value: Optional[str]): + if value is None: + if "AuthorizationEquipmentCertificationNumber" in self._dataset: + del self._dataset.AuthorizationEquipmentCertificationNumber + else: + self._dataset.AuthorizationEquipmentCertificationNumber = value + + @property + def EncryptedAttributesSequence(self) -> Optional[List[EncryptedAttributesSequenceItem]]: + if "EncryptedAttributesSequence" in self._dataset: + if len(self._EncryptedAttributesSequence) == len(self._dataset.EncryptedAttributesSequence): + return self._EncryptedAttributesSequence + else: + return [EncryptedAttributesSequenceItem(x) for x in self._dataset.EncryptedAttributesSequence] + return None + + @EncryptedAttributesSequence.setter + def EncryptedAttributesSequence(self, value: Optional[List[EncryptedAttributesSequenceItem]]): + if value is None: + self._EncryptedAttributesSequence = [] + if "EncryptedAttributesSequence" in self._dataset: + del self._dataset.EncryptedAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, EncryptedAttributesSequenceItem) for item in value): + raise ValueError("EncryptedAttributesSequence must be a list of EncryptedAttributesSequenceItem objects") + else: + self._EncryptedAttributesSequence = value + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.clear() + self._dataset.EncryptedAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_EncryptedAttributes(self, item: EncryptedAttributesSequenceItem): + if not isinstance(item, EncryptedAttributesSequenceItem): + raise ValueError("Item must be an instance of EncryptedAttributesSequenceItem") + self._EncryptedAttributesSequence.append(item) + if "EncryptedAttributesSequence" not in self._dataset: + self._dataset.EncryptedAttributesSequence = pydicom.Sequence() + self._dataset.EncryptedAttributesSequence.append(item.to_dataset()) + + @property + def OriginalAttributesSequence(self) -> Optional[List[OriginalAttributesSequenceItem]]: + if "OriginalAttributesSequence" in self._dataset: + if len(self._OriginalAttributesSequence) == len(self._dataset.OriginalAttributesSequence): + return self._OriginalAttributesSequence + else: + return [OriginalAttributesSequenceItem(x) for x in self._dataset.OriginalAttributesSequence] + return None + + @OriginalAttributesSequence.setter + def OriginalAttributesSequence(self, value: Optional[List[OriginalAttributesSequenceItem]]): + if value is None: + self._OriginalAttributesSequence = [] + if "OriginalAttributesSequence" in self._dataset: + del self._dataset.OriginalAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, OriginalAttributesSequenceItem) for item in value): + raise ValueError("OriginalAttributesSequence must be a list of OriginalAttributesSequenceItem objects") + else: + self._OriginalAttributesSequence = value + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.clear() + self._dataset.OriginalAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_OriginalAttributes(self, item: OriginalAttributesSequenceItem): + if not isinstance(item, OriginalAttributesSequenceItem): + raise ValueError("Item must be an instance of OriginalAttributesSequenceItem") + self._OriginalAttributesSequence.append(item) + if "OriginalAttributesSequence" not in self._dataset: + self._dataset.OriginalAttributesSequence = pydicom.Sequence() + self._dataset.OriginalAttributesSequence.append(item.to_dataset()) + + @property + def InstanceOriginStatus(self) -> Optional[str]: + if "InstanceOriginStatus" in self._dataset: + return self._dataset.InstanceOriginStatus + return None + + @InstanceOriginStatus.setter + def InstanceOriginStatus(self, value: Optional[str]): + if value is None: + if "InstanceOriginStatus" in self._dataset: + del self._dataset.InstanceOriginStatus + else: + self._dataset.InstanceOriginStatus = value + + @property + def BarcodeValue(self) -> Optional[str]: + if "BarcodeValue" in self._dataset: + return self._dataset.BarcodeValue + return None + + @BarcodeValue.setter + def BarcodeValue(self, value: Optional[str]): + if value is None: + if "BarcodeValue" in self._dataset: + del self._dataset.BarcodeValue + else: + self._dataset.BarcodeValue = value + + @property + def MACParametersSequence(self) -> Optional[List[MACParametersSequenceItem]]: + if "MACParametersSequence" in self._dataset: + if len(self._MACParametersSequence) == len(self._dataset.MACParametersSequence): + return self._MACParametersSequence + else: + return [MACParametersSequenceItem(x) for x in self._dataset.MACParametersSequence] + return None + + @MACParametersSequence.setter + def MACParametersSequence(self, value: Optional[List[MACParametersSequenceItem]]): + if value is None: + self._MACParametersSequence = [] + if "MACParametersSequence" in self._dataset: + del self._dataset.MACParametersSequence + elif not isinstance(value, list) or not all(isinstance(item, MACParametersSequenceItem) for item in value): + raise ValueError("MACParametersSequence must be a list of MACParametersSequenceItem objects") + else: + self._MACParametersSequence = value + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.clear() + self._dataset.MACParametersSequence.extend([item.to_dataset() for item in value]) + + def add_MACParameters(self, item: MACParametersSequenceItem): + if not isinstance(item, MACParametersSequenceItem): + raise ValueError("Item must be an instance of MACParametersSequenceItem") + self._MACParametersSequence.append(item) + if "MACParametersSequence" not in self._dataset: + self._dataset.MACParametersSequence = pydicom.Sequence() + self._dataset.MACParametersSequence.append(item.to_dataset()) + + @property + def DigitalSignaturesSequence(self) -> Optional[List[DigitalSignaturesSequenceItem]]: + if "DigitalSignaturesSequence" in self._dataset: + if len(self._DigitalSignaturesSequence) == len(self._dataset.DigitalSignaturesSequence): + return self._DigitalSignaturesSequence + else: + return [DigitalSignaturesSequenceItem(x) for x in self._dataset.DigitalSignaturesSequence] + return None + + @DigitalSignaturesSequence.setter + def DigitalSignaturesSequence(self, value: Optional[List[DigitalSignaturesSequenceItem]]): + if value is None: + self._DigitalSignaturesSequence = [] + if "DigitalSignaturesSequence" in self._dataset: + del self._dataset.DigitalSignaturesSequence + elif not isinstance(value, list) or not all(isinstance(item, DigitalSignaturesSequenceItem) for item in value): + raise ValueError("DigitalSignaturesSequence must be a list of DigitalSignaturesSequenceItem objects") + else: + self._DigitalSignaturesSequence = value + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.clear() + self._dataset.DigitalSignaturesSequence.extend([item.to_dataset() for item in value]) + + def add_DigitalSignatures(self, item: DigitalSignaturesSequenceItem): + if not isinstance(item, DigitalSignaturesSequenceItem): + raise ValueError("Item must be an instance of DigitalSignaturesSequenceItem") + self._DigitalSignaturesSequence.append(item) + if "DigitalSignaturesSequence" not in self._dataset: + self._dataset.DigitalSignaturesSequence = pydicom.Sequence() + self._dataset.DigitalSignaturesSequence.append(item.to_dataset()) + + @property + def PresentationLUTSequence(self) -> Optional[List[PresentationLUTSequenceItem]]: + if "PresentationLUTSequence" in self._dataset: + if len(self._PresentationLUTSequence) == len(self._dataset.PresentationLUTSequence): + return self._PresentationLUTSequence + else: + return [PresentationLUTSequenceItem(x) for x in self._dataset.PresentationLUTSequence] + return None + + @PresentationLUTSequence.setter + def PresentationLUTSequence(self, value: Optional[List[PresentationLUTSequenceItem]]): + if value is None: + self._PresentationLUTSequence = [] + if "PresentationLUTSequence" in self._dataset: + del self._dataset.PresentationLUTSequence + elif not isinstance(value, list) or not all(isinstance(item, PresentationLUTSequenceItem) for item in value): + raise ValueError("PresentationLUTSequence must be a list of PresentationLUTSequenceItem objects") + else: + self._PresentationLUTSequence = value + if "PresentationLUTSequence" not in self._dataset: + self._dataset.PresentationLUTSequence = pydicom.Sequence() + self._dataset.PresentationLUTSequence.clear() + self._dataset.PresentationLUTSequence.extend([item.to_dataset() for item in value]) + + def add_PresentationLUT(self, item: PresentationLUTSequenceItem): + if not isinstance(item, PresentationLUTSequenceItem): + raise ValueError("Item must be an instance of PresentationLUTSequenceItem") + self._PresentationLUTSequence.append(item) + if "PresentationLUTSequence" not in self._dataset: + self._dataset.PresentationLUTSequence = pydicom.Sequence() + self._dataset.PresentationLUTSequence.append(item.to_dataset()) + + @property + def PresentationLUTShape(self) -> Optional[str]: + if "PresentationLUTShape" in self._dataset: + return self._dataset.PresentationLUTShape + return None + + @PresentationLUTShape.setter + def PresentationLUTShape(self, value: Optional[str]): + if value is None: + if "PresentationLUTShape" in self._dataset: + del self._dataset.PresentationLUTShape + else: + self._dataset.PresentationLUTShape = value + + @property + def SeriesDate(self) -> Optional[str]: + if "SeriesDate" in self._dataset: + return self._dataset.SeriesDate + return None + + @SeriesDate.setter + def SeriesDate(self, value: Optional[str]): + if value is None: + if "SeriesDate" in self._dataset: + del self._dataset.SeriesDate + else: + self._dataset.SeriesDate = value + + @property + def SeriesTime(self) -> Optional[str]: + if "SeriesTime" in self._dataset: + return self._dataset.SeriesTime + return None + + @SeriesTime.setter + def SeriesTime(self, value: Optional[str]): + if value is None: + if "SeriesTime" in self._dataset: + del self._dataset.SeriesTime + else: + self._dataset.SeriesTime = value + + @property + def Modality(self) -> Optional[str]: + if "Modality" in self._dataset: + return self._dataset.Modality + return None + + @Modality.setter + def Modality(self, value: Optional[str]): + if value is None: + if "Modality" in self._dataset: + del self._dataset.Modality + else: + self._dataset.Modality = value + + @property + def SeriesDescription(self) -> Optional[str]: + if "SeriesDescription" in self._dataset: + return self._dataset.SeriesDescription + return None + + @SeriesDescription.setter + def SeriesDescription(self, value: Optional[str]): + if value is None: + if "SeriesDescription" in self._dataset: + del self._dataset.SeriesDescription + else: + self._dataset.SeriesDescription = value + + @property + def SeriesDescriptionCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "SeriesDescriptionCodeSequence" in self._dataset: + if len(self._SeriesDescriptionCodeSequence) == len(self._dataset.SeriesDescriptionCodeSequence): + return self._SeriesDescriptionCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.SeriesDescriptionCodeSequence] + return None + + @SeriesDescriptionCodeSequence.setter + def SeriesDescriptionCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._SeriesDescriptionCodeSequence = [] + if "SeriesDescriptionCodeSequence" in self._dataset: + del self._dataset.SeriesDescriptionCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("SeriesDescriptionCodeSequence must be a list of CodeSequenceItem objects") + else: + self._SeriesDescriptionCodeSequence = value + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.clear() + self._dataset.SeriesDescriptionCodeSequence.extend([item.to_dataset() for item in value]) + + def add_SeriesDescriptionCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._SeriesDescriptionCodeSequence.append(item) + if "SeriesDescriptionCodeSequence" not in self._dataset: + self._dataset.SeriesDescriptionCodeSequence = pydicom.Sequence() + self._dataset.SeriesDescriptionCodeSequence.append(item.to_dataset()) + + @property + def PerformingPhysicianName(self) -> Optional[List[str]]: + if "PerformingPhysicianName" in self._dataset: + return self._dataset.PerformingPhysicianName + return None + + @PerformingPhysicianName.setter + def PerformingPhysicianName(self, value: Optional[List[str]]): + if value is None: + if "PerformingPhysicianName" in self._dataset: + del self._dataset.PerformingPhysicianName + else: + self._dataset.PerformingPhysicianName = value + + @property + def PerformingPhysicianIdentificationSequence(self) -> Optional[List[PerformingPhysicianIdentificationSequenceItem]]: + if "PerformingPhysicianIdentificationSequence" in self._dataset: + if len(self._PerformingPhysicianIdentificationSequence) == len( + self._dataset.PerformingPhysicianIdentificationSequence + ): + return self._PerformingPhysicianIdentificationSequence + else: + return [ + PerformingPhysicianIdentificationSequenceItem(x) + for x in self._dataset.PerformingPhysicianIdentificationSequence + ] + return None + + @PerformingPhysicianIdentificationSequence.setter + def PerformingPhysicianIdentificationSequence(self, value: Optional[List[PerformingPhysicianIdentificationSequenceItem]]): + if value is None: + self._PerformingPhysicianIdentificationSequence = [] + if "PerformingPhysicianIdentificationSequence" in self._dataset: + del self._dataset.PerformingPhysicianIdentificationSequence + elif not isinstance(value, list) or not all( + isinstance(item, PerformingPhysicianIdentificationSequenceItem) for item in value + ): + raise ValueError( + "PerformingPhysicianIdentificationSequence must be a list of PerformingPhysicianIdentificationSequenceItem" + " objects" + ) + else: + self._PerformingPhysicianIdentificationSequence = value + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.clear() + self._dataset.PerformingPhysicianIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_PerformingPhysicianIdentification(self, item: PerformingPhysicianIdentificationSequenceItem): + if not isinstance(item, PerformingPhysicianIdentificationSequenceItem): + raise ValueError("Item must be an instance of PerformingPhysicianIdentificationSequenceItem") + self._PerformingPhysicianIdentificationSequence.append(item) + if "PerformingPhysicianIdentificationSequence" not in self._dataset: + self._dataset.PerformingPhysicianIdentificationSequence = pydicom.Sequence() + self._dataset.PerformingPhysicianIdentificationSequence.append(item.to_dataset()) + + @property + def OperatorsName(self) -> Optional[List[str]]: + if "OperatorsName" in self._dataset: + return self._dataset.OperatorsName + return None + + @OperatorsName.setter + def OperatorsName(self, value: Optional[List[str]]): + if value is None: + if "OperatorsName" in self._dataset: + del self._dataset.OperatorsName + else: + self._dataset.OperatorsName = value + + @property + def OperatorIdentificationSequence(self) -> Optional[List[OperatorIdentificationSequenceItem]]: + if "OperatorIdentificationSequence" in self._dataset: + if len(self._OperatorIdentificationSequence) == len(self._dataset.OperatorIdentificationSequence): + return self._OperatorIdentificationSequence + else: + return [OperatorIdentificationSequenceItem(x) for x in self._dataset.OperatorIdentificationSequence] + return None + + @OperatorIdentificationSequence.setter + def OperatorIdentificationSequence(self, value: Optional[List[OperatorIdentificationSequenceItem]]): + if value is None: + self._OperatorIdentificationSequence = [] + if "OperatorIdentificationSequence" in self._dataset: + del self._dataset.OperatorIdentificationSequence + elif not isinstance(value, list) or not all(isinstance(item, OperatorIdentificationSequenceItem) for item in value): + raise ValueError("OperatorIdentificationSequence must be a list of OperatorIdentificationSequenceItem objects") + else: + self._OperatorIdentificationSequence = value + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.clear() + self._dataset.OperatorIdentificationSequence.extend([item.to_dataset() for item in value]) + + def add_OperatorIdentification(self, item: OperatorIdentificationSequenceItem): + if not isinstance(item, OperatorIdentificationSequenceItem): + raise ValueError("Item must be an instance of OperatorIdentificationSequenceItem") + self._OperatorIdentificationSequence.append(item) + if "OperatorIdentificationSequence" not in self._dataset: + self._dataset.OperatorIdentificationSequence = pydicom.Sequence() + self._dataset.OperatorIdentificationSequence.append(item.to_dataset()) + + @property + def ReferencedPerformedProcedureStepSequence(self) -> Optional[List[ReferencedPerformedProcedureStepSequenceItem]]: + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + if len(self._ReferencedPerformedProcedureStepSequence) == len( + self._dataset.ReferencedPerformedProcedureStepSequence + ): + return self._ReferencedPerformedProcedureStepSequence + else: + return [ + ReferencedPerformedProcedureStepSequenceItem(x) + for x in self._dataset.ReferencedPerformedProcedureStepSequence + ] + return None + + @ReferencedPerformedProcedureStepSequence.setter + def ReferencedPerformedProcedureStepSequence(self, value: Optional[List[ReferencedPerformedProcedureStepSequenceItem]]): + if value is None: + self._ReferencedPerformedProcedureStepSequence = [] + if "ReferencedPerformedProcedureStepSequence" in self._dataset: + del self._dataset.ReferencedPerformedProcedureStepSequence + elif not isinstance(value, list) or not all( + isinstance(item, ReferencedPerformedProcedureStepSequenceItem) for item in value + ): + raise ValueError( + "ReferencedPerformedProcedureStepSequence must be a list of ReferencedPerformedProcedureStepSequenceItem" + " objects" + ) + else: + self._ReferencedPerformedProcedureStepSequence = value + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.clear() + self._dataset.ReferencedPerformedProcedureStepSequence.extend([item.to_dataset() for item in value]) + + def add_ReferencedPerformedProcedureStep(self, item: ReferencedPerformedProcedureStepSequenceItem): + if not isinstance(item, ReferencedPerformedProcedureStepSequenceItem): + raise ValueError("Item must be an instance of ReferencedPerformedProcedureStepSequenceItem") + self._ReferencedPerformedProcedureStepSequence.append(item) + if "ReferencedPerformedProcedureStepSequence" not in self._dataset: + self._dataset.ReferencedPerformedProcedureStepSequence = pydicom.Sequence() + self._dataset.ReferencedPerformedProcedureStepSequence.append(item.to_dataset()) + + @property + def RelatedSeriesSequence(self) -> Optional[List[RelatedSeriesSequenceItem]]: + if "RelatedSeriesSequence" in self._dataset: + if len(self._RelatedSeriesSequence) == len(self._dataset.RelatedSeriesSequence): + return self._RelatedSeriesSequence + else: + return [RelatedSeriesSequenceItem(x) for x in self._dataset.RelatedSeriesSequence] + return None + + @RelatedSeriesSequence.setter + def RelatedSeriesSequence(self, value: Optional[List[RelatedSeriesSequenceItem]]): + if value is None: + self._RelatedSeriesSequence = [] + if "RelatedSeriesSequence" in self._dataset: + del self._dataset.RelatedSeriesSequence + elif not isinstance(value, list) or not all(isinstance(item, RelatedSeriesSequenceItem) for item in value): + raise ValueError("RelatedSeriesSequence must be a list of RelatedSeriesSequenceItem objects") + else: + self._RelatedSeriesSequence = value + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.clear() + self._dataset.RelatedSeriesSequence.extend([item.to_dataset() for item in value]) + + def add_RelatedSeries(self, item: RelatedSeriesSequenceItem): + if not isinstance(item, RelatedSeriesSequenceItem): + raise ValueError("Item must be an instance of RelatedSeriesSequenceItem") + self._RelatedSeriesSequence.append(item) + if "RelatedSeriesSequence" not in self._dataset: + self._dataset.RelatedSeriesSequence = pydicom.Sequence() + self._dataset.RelatedSeriesSequence.append(item.to_dataset()) + + @property + def AnatomicalOrientationType(self) -> Optional[str]: + if "AnatomicalOrientationType" in self._dataset: + return self._dataset.AnatomicalOrientationType + return None + + @AnatomicalOrientationType.setter + def AnatomicalOrientationType(self, value: Optional[str]): + if value is None: + if "AnatomicalOrientationType" in self._dataset: + del self._dataset.AnatomicalOrientationType + else: + self._dataset.AnatomicalOrientationType = value + + @property + def BodyPartExamined(self) -> Optional[str]: + if "BodyPartExamined" in self._dataset: + return self._dataset.BodyPartExamined + return None + + @BodyPartExamined.setter + def BodyPartExamined(self, value: Optional[str]): + if value is None: + if "BodyPartExamined" in self._dataset: + del self._dataset.BodyPartExamined + else: + self._dataset.BodyPartExamined = value + + @property + def ProtocolName(self) -> Optional[str]: + if "ProtocolName" in self._dataset: + return self._dataset.ProtocolName + return None + + @ProtocolName.setter + def ProtocolName(self, value: Optional[str]): + if value is None: + if "ProtocolName" in self._dataset: + del self._dataset.ProtocolName + else: + self._dataset.ProtocolName = value + + @property + def PatientPosition(self) -> Optional[str]: + if "PatientPosition" in self._dataset: + return self._dataset.PatientPosition + return None + + @PatientPosition.setter + def PatientPosition(self, value: Optional[str]): + if value is None: + if "PatientPosition" in self._dataset: + del self._dataset.PatientPosition + else: + self._dataset.PatientPosition = value + + @property + def SeriesInstanceUID(self) -> Optional[str]: + if "SeriesInstanceUID" in self._dataset: + return self._dataset.SeriesInstanceUID + return None + + @SeriesInstanceUID.setter + def SeriesInstanceUID(self, value: Optional[str]): + if value is None: + if "SeriesInstanceUID" in self._dataset: + del self._dataset.SeriesInstanceUID + else: + self._dataset.SeriesInstanceUID = value + + @property + def SeriesNumber(self) -> Optional[int]: + if "SeriesNumber" in self._dataset: + return self._dataset.SeriesNumber + return None + + @SeriesNumber.setter + def SeriesNumber(self, value: Optional[int]): + if value is None: + if "SeriesNumber" in self._dataset: + del self._dataset.SeriesNumber + else: + self._dataset.SeriesNumber = value + + @property + def Laterality(self) -> Optional[str]: + if "Laterality" in self._dataset: + return self._dataset.Laterality + return None + + @Laterality.setter + def Laterality(self, value: Optional[str]): + if value is None: + if "Laterality" in self._dataset: + del self._dataset.Laterality + else: + self._dataset.Laterality = value + + @property + def SmallestPixelValueInSeries(self) -> Optional[int]: + if "SmallestPixelValueInSeries" in self._dataset: + return self._dataset.SmallestPixelValueInSeries + return None + + @SmallestPixelValueInSeries.setter + def SmallestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "SmallestPixelValueInSeries" in self._dataset: + del self._dataset.SmallestPixelValueInSeries + else: + self._dataset.SmallestPixelValueInSeries = value + + @property + def LargestPixelValueInSeries(self) -> Optional[int]: + if "LargestPixelValueInSeries" in self._dataset: + return self._dataset.LargestPixelValueInSeries + return None + + @LargestPixelValueInSeries.setter + def LargestPixelValueInSeries(self, value: Optional[int]): + if value is None: + if "LargestPixelValueInSeries" in self._dataset: + del self._dataset.LargestPixelValueInSeries + else: + self._dataset.LargestPixelValueInSeries = value + + @property + def PerformedProcedureStepStartDate(self) -> Optional[str]: + if "PerformedProcedureStepStartDate" in self._dataset: + return self._dataset.PerformedProcedureStepStartDate + return None + + @PerformedProcedureStepStartDate.setter + def PerformedProcedureStepStartDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartDate" in self._dataset: + del self._dataset.PerformedProcedureStepStartDate + else: + self._dataset.PerformedProcedureStepStartDate = value + + @property + def PerformedProcedureStepStartTime(self) -> Optional[str]: + if "PerformedProcedureStepStartTime" in self._dataset: + return self._dataset.PerformedProcedureStepStartTime + return None + + @PerformedProcedureStepStartTime.setter + def PerformedProcedureStepStartTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepStartTime" in self._dataset: + del self._dataset.PerformedProcedureStepStartTime + else: + self._dataset.PerformedProcedureStepStartTime = value + + @property + def PerformedProcedureStepEndDate(self) -> Optional[str]: + if "PerformedProcedureStepEndDate" in self._dataset: + return self._dataset.PerformedProcedureStepEndDate + return None + + @PerformedProcedureStepEndDate.setter + def PerformedProcedureStepEndDate(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndDate" in self._dataset: + del self._dataset.PerformedProcedureStepEndDate + else: + self._dataset.PerformedProcedureStepEndDate = value + + @property + def PerformedProcedureStepEndTime(self) -> Optional[str]: + if "PerformedProcedureStepEndTime" in self._dataset: + return self._dataset.PerformedProcedureStepEndTime + return None + + @PerformedProcedureStepEndTime.setter + def PerformedProcedureStepEndTime(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepEndTime" in self._dataset: + del self._dataset.PerformedProcedureStepEndTime + else: + self._dataset.PerformedProcedureStepEndTime = value + + @property + def PerformedProcedureStepID(self) -> Optional[str]: + if "PerformedProcedureStepID" in self._dataset: + return self._dataset.PerformedProcedureStepID + return None + + @PerformedProcedureStepID.setter + def PerformedProcedureStepID(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepID" in self._dataset: + del self._dataset.PerformedProcedureStepID + else: + self._dataset.PerformedProcedureStepID = value + + @property + def PerformedProcedureStepDescription(self) -> Optional[str]: + if "PerformedProcedureStepDescription" in self._dataset: + return self._dataset.PerformedProcedureStepDescription + return None + + @PerformedProcedureStepDescription.setter + def PerformedProcedureStepDescription(self, value: Optional[str]): + if value is None: + if "PerformedProcedureStepDescription" in self._dataset: + del self._dataset.PerformedProcedureStepDescription + else: + self._dataset.PerformedProcedureStepDescription = value + + @property + def PerformedProtocolCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "PerformedProtocolCodeSequence" in self._dataset: + if len(self._PerformedProtocolCodeSequence) == len(self._dataset.PerformedProtocolCodeSequence): + return self._PerformedProtocolCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.PerformedProtocolCodeSequence] + return None + + @PerformedProtocolCodeSequence.setter + def PerformedProtocolCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._PerformedProtocolCodeSequence = [] + if "PerformedProtocolCodeSequence" in self._dataset: + del self._dataset.PerformedProtocolCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("PerformedProtocolCodeSequence must be a list of CodeSequenceItem objects") + else: + self._PerformedProtocolCodeSequence = value + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.clear() + self._dataset.PerformedProtocolCodeSequence.extend([item.to_dataset() for item in value]) + + def add_PerformedProtocolCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._PerformedProtocolCodeSequence.append(item) + if "PerformedProtocolCodeSequence" not in self._dataset: + self._dataset.PerformedProtocolCodeSequence = pydicom.Sequence() + self._dataset.PerformedProtocolCodeSequence.append(item.to_dataset()) + + @property + def RequestAttributesSequence(self) -> Optional[List[RequestAttributesSequenceItem]]: + if "RequestAttributesSequence" in self._dataset: + if len(self._RequestAttributesSequence) == len(self._dataset.RequestAttributesSequence): + return self._RequestAttributesSequence + else: + return [RequestAttributesSequenceItem(x) for x in self._dataset.RequestAttributesSequence] + return None + + @RequestAttributesSequence.setter + def RequestAttributesSequence(self, value: Optional[List[RequestAttributesSequenceItem]]): + if value is None: + self._RequestAttributesSequence = [] + if "RequestAttributesSequence" in self._dataset: + del self._dataset.RequestAttributesSequence + elif not isinstance(value, list) or not all(isinstance(item, RequestAttributesSequenceItem) for item in value): + raise ValueError("RequestAttributesSequence must be a list of RequestAttributesSequenceItem objects") + else: + self._RequestAttributesSequence = value + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.clear() + self._dataset.RequestAttributesSequence.extend([item.to_dataset() for item in value]) + + def add_RequestAttributes(self, item: RequestAttributesSequenceItem): + if not isinstance(item, RequestAttributesSequenceItem): + raise ValueError("Item must be an instance of RequestAttributesSequenceItem") + self._RequestAttributesSequence.append(item) + if "RequestAttributesSequence" not in self._dataset: + self._dataset.RequestAttributesSequence = pydicom.Sequence() + self._dataset.RequestAttributesSequence.append(item.to_dataset()) + + @property + def CommentsOnThePerformedProcedureStep(self) -> Optional[str]: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + return self._dataset.CommentsOnThePerformedProcedureStep + return None + + @CommentsOnThePerformedProcedureStep.setter + def CommentsOnThePerformedProcedureStep(self, value: Optional[str]): + if value is None: + if "CommentsOnThePerformedProcedureStep" in self._dataset: + del self._dataset.CommentsOnThePerformedProcedureStep + else: + self._dataset.CommentsOnThePerformedProcedureStep = value + + @property + def TreatmentSessionUID(self) -> Optional[str]: + if "TreatmentSessionUID" in self._dataset: + return self._dataset.TreatmentSessionUID + return None + + @TreatmentSessionUID.setter + def TreatmentSessionUID(self, value: Optional[str]): + if value is None: + if "TreatmentSessionUID" in self._dataset: + del self._dataset.TreatmentSessionUID + else: + self._dataset.TreatmentSessionUID = value + + @property + def GraphicLayerSequence(self) -> Optional[List[GraphicLayerSequenceItem]]: + if "GraphicLayerSequence" in self._dataset: + if len(self._GraphicLayerSequence) == len(self._dataset.GraphicLayerSequence): + return self._GraphicLayerSequence + else: + return [GraphicLayerSequenceItem(x) for x in self._dataset.GraphicLayerSequence] + return None + + @GraphicLayerSequence.setter + def GraphicLayerSequence(self, value: Optional[List[GraphicLayerSequenceItem]]): + if value is None: + self._GraphicLayerSequence = [] + if "GraphicLayerSequence" in self._dataset: + del self._dataset.GraphicLayerSequence + elif not isinstance(value, list) or not all(isinstance(item, GraphicLayerSequenceItem) for item in value): + raise ValueError("GraphicLayerSequence must be a list of GraphicLayerSequenceItem objects") + else: + self._GraphicLayerSequence = value + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.clear() + self._dataset.GraphicLayerSequence.extend([item.to_dataset() for item in value]) + + def add_GraphicLayer(self, item: GraphicLayerSequenceItem): + if not isinstance(item, GraphicLayerSequenceItem): + raise ValueError("Item must be an instance of GraphicLayerSequenceItem") + self._GraphicLayerSequence.append(item) + if "GraphicLayerSequence" not in self._dataset: + self._dataset.GraphicLayerSequence = pydicom.Sequence() + self._dataset.GraphicLayerSequence.append(item.to_dataset()) + + @property + def ClinicalTrialTimePointID(self) -> Optional[str]: + if "ClinicalTrialTimePointID" in self._dataset: + return self._dataset.ClinicalTrialTimePointID + return None + + @ClinicalTrialTimePointID.setter + def ClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointID" in self._dataset: + del self._dataset.ClinicalTrialTimePointID + else: + self._dataset.ClinicalTrialTimePointID = value + + @property + def ClinicalTrialTimePointDescription(self) -> Optional[str]: + if "ClinicalTrialTimePointDescription" in self._dataset: + return self._dataset.ClinicalTrialTimePointDescription + return None + + @ClinicalTrialTimePointDescription.setter + def ClinicalTrialTimePointDescription(self, value: Optional[str]): + if value is None: + if "ClinicalTrialTimePointDescription" in self._dataset: + del self._dataset.ClinicalTrialTimePointDescription + else: + self._dataset.ClinicalTrialTimePointDescription = value + + @property + def LongitudinalTemporalOffsetFromEvent(self) -> Optional[float]: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + return self._dataset.LongitudinalTemporalOffsetFromEvent + return None + + @LongitudinalTemporalOffsetFromEvent.setter + def LongitudinalTemporalOffsetFromEvent(self, value: Optional[float]): + if value is None: + if "LongitudinalTemporalOffsetFromEvent" in self._dataset: + del self._dataset.LongitudinalTemporalOffsetFromEvent + else: + self._dataset.LongitudinalTemporalOffsetFromEvent = value + + @property + def LongitudinalTemporalEventType(self) -> Optional[str]: + if "LongitudinalTemporalEventType" in self._dataset: + return self._dataset.LongitudinalTemporalEventType + return None + + @LongitudinalTemporalEventType.setter + def LongitudinalTemporalEventType(self, value: Optional[str]): + if value is None: + if "LongitudinalTemporalEventType" in self._dataset: + del self._dataset.LongitudinalTemporalEventType + else: + self._dataset.LongitudinalTemporalEventType = value + + @property + def ClinicalTrialTimePointTypeCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + if len(self._ClinicalTrialTimePointTypeCodeSequence) == len(self._dataset.ClinicalTrialTimePointTypeCodeSequence): + return self._ClinicalTrialTimePointTypeCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.ClinicalTrialTimePointTypeCodeSequence] + return None + + @ClinicalTrialTimePointTypeCodeSequence.setter + def ClinicalTrialTimePointTypeCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._ClinicalTrialTimePointTypeCodeSequence = [] + if "ClinicalTrialTimePointTypeCodeSequence" in self._dataset: + del self._dataset.ClinicalTrialTimePointTypeCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("ClinicalTrialTimePointTypeCodeSequence must be a list of CodeSequenceItem objects") + else: + self._ClinicalTrialTimePointTypeCodeSequence = value + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.clear() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.extend([item.to_dataset() for item in value]) + + def add_ClinicalTrialTimePointTypeCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._ClinicalTrialTimePointTypeCodeSequence.append(item) + if "ClinicalTrialTimePointTypeCodeSequence" not in self._dataset: + self._dataset.ClinicalTrialTimePointTypeCodeSequence = pydicom.Sequence() + self._dataset.ClinicalTrialTimePointTypeCodeSequence.append(item.to_dataset()) + + @property + def IssuerOfClinicalTrialTimePointID(self) -> Optional[str]: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + return self._dataset.IssuerOfClinicalTrialTimePointID + return None + + @IssuerOfClinicalTrialTimePointID.setter + def IssuerOfClinicalTrialTimePointID(self, value: Optional[str]): + if value is None: + if "IssuerOfClinicalTrialTimePointID" in self._dataset: + del self._dataset.IssuerOfClinicalTrialTimePointID + else: + self._dataset.IssuerOfClinicalTrialTimePointID = value + + @property + def ConsentForClinicalTrialUseSequence(self) -> Optional[List[ConsentForClinicalTrialUseSequenceItem]]: + if "ConsentForClinicalTrialUseSequence" in self._dataset: + if len(self._ConsentForClinicalTrialUseSequence) == len(self._dataset.ConsentForClinicalTrialUseSequence): + return self._ConsentForClinicalTrialUseSequence + else: + return [ConsentForClinicalTrialUseSequenceItem(x) for x in self._dataset.ConsentForClinicalTrialUseSequence] + return None + + @ConsentForClinicalTrialUseSequence.setter + def ConsentForClinicalTrialUseSequence(self, value: Optional[List[ConsentForClinicalTrialUseSequenceItem]]): + if value is None: + self._ConsentForClinicalTrialUseSequence = [] + if "ConsentForClinicalTrialUseSequence" in self._dataset: + del self._dataset.ConsentForClinicalTrialUseSequence + elif not isinstance(value, list) or not all( + isinstance(item, ConsentForClinicalTrialUseSequenceItem) for item in value + ): + raise ValueError( + "ConsentForClinicalTrialUseSequence must be a list of ConsentForClinicalTrialUseSequenceItem objects" + ) + else: + self._ConsentForClinicalTrialUseSequence = value + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.clear() + self._dataset.ConsentForClinicalTrialUseSequence.extend([item.to_dataset() for item in value]) + + def add_ConsentForClinicalTrialUse(self, item: ConsentForClinicalTrialUseSequenceItem): + if not isinstance(item, ConsentForClinicalTrialUseSequenceItem): + raise ValueError("Item must be an instance of ConsentForClinicalTrialUseSequenceItem") + self._ConsentForClinicalTrialUseSequence.append(item) + if "ConsentForClinicalTrialUseSequence" not in self._dataset: + self._dataset.ConsentForClinicalTrialUseSequence = pydicom.Sequence() + self._dataset.ConsentForClinicalTrialUseSequence.append(item.to_dataset()) + + @property + def FrameDisplayShutterSequence(self) -> Optional[List[FrameDisplayShutterSequenceItem]]: + if "FrameDisplayShutterSequence" in self._dataset: + if len(self._FrameDisplayShutterSequence) == len(self._dataset.FrameDisplayShutterSequence): + return self._FrameDisplayShutterSequence + else: + return [FrameDisplayShutterSequenceItem(x) for x in self._dataset.FrameDisplayShutterSequence] + return None + + @FrameDisplayShutterSequence.setter + def FrameDisplayShutterSequence(self, value: Optional[List[FrameDisplayShutterSequenceItem]]): + if value is None: + self._FrameDisplayShutterSequence = [] + if "FrameDisplayShutterSequence" in self._dataset: + del self._dataset.FrameDisplayShutterSequence + elif not isinstance(value, list) or not all(isinstance(item, FrameDisplayShutterSequenceItem) for item in value): + raise ValueError("FrameDisplayShutterSequence must be a list of FrameDisplayShutterSequenceItem objects") + else: + self._FrameDisplayShutterSequence = value + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.clear() + self._dataset.FrameDisplayShutterSequence.extend([item.to_dataset() for item in value]) + + def add_FrameDisplayShutter(self, item: FrameDisplayShutterSequenceItem): + if not isinstance(item, FrameDisplayShutterSequenceItem): + raise ValueError("Item must be an instance of FrameDisplayShutterSequenceItem") + self._FrameDisplayShutterSequence.append(item) + if "FrameDisplayShutterSequence" not in self._dataset: + self._dataset.FrameDisplayShutterSequence = pydicom.Sequence() + self._dataset.FrameDisplayShutterSequence.append(item.to_dataset()) diff --git a/tdwii_plus_examples/domain_model/xaxrf_frame_characteristics_sequence_item.py b/tdwii_plus_examples/domain_model/xaxrf_frame_characteristics_sequence_item.py new file mode 100644 index 0000000..b9039f1 --- /dev/null +++ b/tdwii_plus_examples/domain_model/xaxrf_frame_characteristics_sequence_item.py @@ -0,0 +1,88 @@ +from typing import Any, List, Optional # noqa + +import pydicom + +from .code_sequence_item import CodeSequenceItem + + +class XAXRFFrameCharacteristicsSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + self._DerivationCodeSequence: List[CodeSequenceItem] = [] + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def DerivationDescription(self) -> Optional[str]: + if "DerivationDescription" in self._dataset: + return self._dataset.DerivationDescription + return None + + @DerivationDescription.setter + def DerivationDescription(self, value: Optional[str]): + if value is None: + if "DerivationDescription" in self._dataset: + del self._dataset.DerivationDescription + else: + self._dataset.DerivationDescription = value + + @property + def DerivationCodeSequence(self) -> Optional[List[CodeSequenceItem]]: + if "DerivationCodeSequence" in self._dataset: + if len(self._DerivationCodeSequence) == len(self._dataset.DerivationCodeSequence): + return self._DerivationCodeSequence + else: + return [CodeSequenceItem(x) for x in self._dataset.DerivationCodeSequence] + return None + + @DerivationCodeSequence.setter + def DerivationCodeSequence(self, value: Optional[List[CodeSequenceItem]]): + if value is None: + self._DerivationCodeSequence = [] + if "DerivationCodeSequence" in self._dataset: + del self._dataset.DerivationCodeSequence + elif not isinstance(value, list) or not all(isinstance(item, CodeSequenceItem) for item in value): + raise ValueError("DerivationCodeSequence must be a list of CodeSequenceItem objects") + else: + self._DerivationCodeSequence = value + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.clear() + self._dataset.DerivationCodeSequence.extend([item.to_dataset() for item in value]) + + def add_DerivationCode(self, item: CodeSequenceItem): + if not isinstance(item, CodeSequenceItem): + raise ValueError("Item must be an instance of CodeSequenceItem") + self._DerivationCodeSequence.append(item) + if "DerivationCodeSequence" not in self._dataset: + self._dataset.DerivationCodeSequence = pydicom.Sequence() + self._dataset.DerivationCodeSequence.append(item.to_dataset()) + + @property + def AcquisitionDeviceProcessingDescription(self) -> Optional[str]: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingDescription + return None + + @AcquisitionDeviceProcessingDescription.setter + def AcquisitionDeviceProcessingDescription(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingDescription" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingDescription + else: + self._dataset.AcquisitionDeviceProcessingDescription = value + + @property + def AcquisitionDeviceProcessingCode(self) -> Optional[str]: + if "AcquisitionDeviceProcessingCode" in self._dataset: + return self._dataset.AcquisitionDeviceProcessingCode + return None + + @AcquisitionDeviceProcessingCode.setter + def AcquisitionDeviceProcessingCode(self, value: Optional[str]): + if value is None: + if "AcquisitionDeviceProcessingCode" in self._dataset: + del self._dataset.AcquisitionDeviceProcessingCode + else: + self._dataset.AcquisitionDeviceProcessingCode = value diff --git a/tdwii_plus_examples/domain_model/xds_retrieval_sequence_item.py b/tdwii_plus_examples/domain_model/xds_retrieval_sequence_item.py new file mode 100644 index 0000000..3048ce8 --- /dev/null +++ b/tdwii_plus_examples/domain_model/xds_retrieval_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class XDSRetrievalSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RepositoryUniqueID(self) -> Optional[str]: + if "RepositoryUniqueID" in self._dataset: + return self._dataset.RepositoryUniqueID + return None + + @RepositoryUniqueID.setter + def RepositoryUniqueID(self, value: Optional[str]): + if value is None: + if "RepositoryUniqueID" in self._dataset: + del self._dataset.RepositoryUniqueID + else: + self._dataset.RepositoryUniqueID = value + + @property + def HomeCommunityID(self) -> Optional[str]: + if "HomeCommunityID" in self._dataset: + return self._dataset.HomeCommunityID + return None + + @HomeCommunityID.setter + def HomeCommunityID(self, value: Optional[str]): + if value is None: + if "HomeCommunityID" in self._dataset: + del self._dataset.HomeCommunityID + else: + self._dataset.HomeCommunityID = value diff --git a/tdwii_plus_examples/domain_model/xds_storage_sequence_item.py b/tdwii_plus_examples/domain_model/xds_storage_sequence_item.py new file mode 100644 index 0000000..18afeb0 --- /dev/null +++ b/tdwii_plus_examples/domain_model/xds_storage_sequence_item.py @@ -0,0 +1,39 @@ +from typing import Any, List, Optional # noqa + +import pydicom + + +class XDSStorageSequenceItem: + def __init__(self, dataset: Optional[pydicom.Dataset] = None): + self._dataset = dataset if dataset is not None else pydicom.Dataset() + + def to_dataset(self) -> pydicom.Dataset: + return self._dataset + + @property + def RepositoryUniqueID(self) -> Optional[str]: + if "RepositoryUniqueID" in self._dataset: + return self._dataset.RepositoryUniqueID + return None + + @RepositoryUniqueID.setter + def RepositoryUniqueID(self, value: Optional[str]): + if value is None: + if "RepositoryUniqueID" in self._dataset: + del self._dataset.RepositoryUniqueID + else: + self._dataset.RepositoryUniqueID = value + + @property + def HomeCommunityID(self) -> Optional[str]: + if "HomeCommunityID" in self._dataset: + return self._dataset.HomeCommunityID + return None + + @HomeCommunityID.setter + def HomeCommunityID(self, value: Optional[str]): + if value is None: + if "HomeCommunityID" in self._dataset: + del self._dataset.HomeCommunityID + else: + self._dataset.HomeCommunityID = value diff --git a/tdwii_plus_examples/generate_treatment_record_from_plan.py b/tdwii_plus_examples/generate_treatment_record_from_plan.py new file mode 100755 index 0000000..f5f2ac8 --- /dev/null +++ b/tdwii_plus_examples/generate_treatment_record_from_plan.py @@ -0,0 +1,404 @@ +#!/usr/bin/env python +"""Create an RT Ion Beams Treatment Record from a provided RT Ion Plan + Run as a script, it writes the RT Ion Beams Treatment Record to the local directory with RX_{SOPInstanceUID}.dcm file name + Returns: + RtIonBeamsTreatmentRecord: the treatment record as a domain model object wrapped around a pydicom dataset +""" +import inspect +import logging +import sys +from datetime import datetime, timedelta +from decimal import Decimal +from typing import Dict, Tuple + +from pydicom import dcmread, dcmwrite +from pydicom.datadict import add_dict_entry +from pydicom.uid import ( + ImplicitVRLittleEndian, + RTIonBeamsTreatmentRecordStorage, + generate_uid, +) + +# from tdwii_plus_examples.domain_model.applicator_sequence_item import ( +# ApplicatorSequenceItem, +# ) +# from tdwii_plus_examples.domain_model.block_slab_sequence_item import ( +# BlockSlabSequenceItem as CArmBlockSlabSequenceItem, +# ) +from tdwii_plus_examples.domain_model.block_slab_sequence_item_1 import ( + BlockSlabSequenceItem as IonBlockSlabSequenceItem, +) +from tdwii_plus_examples.domain_model.ion_beam_sequence_item import IonBeamSequenceItem +from tdwii_plus_examples.domain_model.ion_block_sequence_item import ( + IonBlockSequenceItem, +) +from tdwii_plus_examples.domain_model.ion_control_point_delivery_sequence_item import ( + IonControlPointDeliverySequenceItem, +) +from tdwii_plus_examples.domain_model.ion_control_point_sequence_item import ( + IonControlPointSequenceItem, +) +from tdwii_plus_examples.domain_model.ion_range_compensator_sequence_item import ( + IonRangeCompensatorSequenceItem, +) +from tdwii_plus_examples.domain_model.ion_wedge_sequence_item import ( + IonWedgeSequenceItem, +) +from tdwii_plus_examples.domain_model.lateral_spreading_device_sequence_item import ( + LateralSpreadingDeviceSequenceItem, +) +from tdwii_plus_examples.domain_model.range_modulator_sequence_item import ( + RangeModulatorSequenceItem, +) +from tdwii_plus_examples.domain_model.range_shifter_sequence_item import ( + RangeShifterSequenceItem, +) + +# from tdwii_plus_examples.domain_model.recorded_block_sequence_item import ( +# RecordedBlockSequenceItem as RecordedPhotonBlockSequenceItem, +# ) +from tdwii_plus_examples.domain_model.recorded_block_sequence_item_1 import ( + RecordedBlockSequenceItem as RecordedIonBlockSequenceItem, +) +from tdwii_plus_examples.domain_model.recorded_block_slab_sequence_item import ( + RecordedBlockSlabSequenceItem, +) +from tdwii_plus_examples.domain_model.recorded_compensator_sequence_item import ( + RecordedCompensatorSequenceItem as RecordedIonCompensatorSequence, +) + +# from tdwii_plus_examples.domain_model.recorded_compensator_sequence_item_1 import ( +# RecordedCompensatorSequenceItem as RecordedPhotonCompensatorSequenceItem, +# ) +from tdwii_plus_examples.domain_model.recorded_lateral_spreading_device_sequence_item import ( + RecordedLateralSpreadingDeviceSequenceItem, +) +from tdwii_plus_examples.domain_model.recorded_range_modulator_sequence_item import ( + RecordedRangeModulatorSequenceItem, +) +from tdwii_plus_examples.domain_model.recorded_range_shifter_sequence_item import ( + RecordedRangeShifterSequenceItem, +) +from tdwii_plus_examples.domain_model.recorded_snout_sequence_item import ( + RecordedSnoutSequenceItem, +) +from tdwii_plus_examples.domain_model.recorded_wedge_sequence_item import ( + RecordedWedgeSequenceItem, +) +from tdwii_plus_examples.domain_model.referenced_rt_plan_sequence_item import ( + ReferencedRTPlanSequenceItem, +) + +# from tdwii_plus_examples.domain_model.referenced_rt_plan_sequence_item_4 import ( +# ReferencedRTPlanSequenceItem as Alt4ReferencedRTPlanSequenceItem, +# ) +# from tdwii_plus_examples.domain_model.referenced_rt_plan_sequence_item_5 import ( +# ReferencedRTPlanSequenceItem as Alt5ReferencedRTPlanSequenceItem, +# ) +from tdwii_plus_examples.domain_model.rt_ion_beams_treatment_record import ( + RtIonBeamsTreatmentRecord, +) +from tdwii_plus_examples.domain_model.rt_ion_plan import RtIonPlan +from tdwii_plus_examples.domain_model.snout_sequence_item import SnoutSequenceItem +from tdwii_plus_examples.domain_model.treatment_machine_sequence_item import ( + TreatmentMachineSequenceItem, +) +from tdwii_plus_examples.domain_model.treatment_session_ion_beam_sequence_item import ( + TreatmentSessionIonBeamSequenceItem, +) + + +def get_properties(cls): + return {name: prop for name, prop in inspect.getmembers(cls, lambda x: isinstance(x, property))} + + +properties_not_to_copy = ["SOPInstanceUID", "SOPClassUID"] + + +def _create_recorded_wedge(ion_wedge: IonWedgeSequenceItem) -> RecordedWedgeSequenceItem: + recorded_wedge = RecordedWedgeSequenceItem() + recorded_wedge.AccessoryCode = ion_wedge.AccessoryCode + recorded_wedge.WedgeAngle = ion_wedge.WedgeAngle + recorded_wedge.WedgeID = ion_wedge.WedgeID + recorded_wedge.WedgeNumber = ion_wedge.WedgeNumber + recorded_wedge.WedgeOrientation = ion_wedge.WedgeOrientation + recorded_wedge.WedgeType = ion_wedge.WedgeType + # no place to record ion_wedge.IsocenterToWedgeTrayDistance + return recorded_wedge + + +def _create_recorded_snout(snout: SnoutSequenceItem) -> RecordedSnoutSequenceItem: + recorded_snout = RecordedSnoutSequenceItem() + recorded_snout.AccessoryCode = snout.AccessoryCode + recorded_snout.SnoutID = snout.SnoutID + return recorded_snout + + +def _create_recorded_range_shifter(range_shifter: RangeShifterSequenceItem) -> RecordedRangeShifterSequenceItem: + recorded_range_shifter = RecordedRangeShifterSequenceItem() + recorded_range_shifter.AccessoryCode = range_shifter.AccessoryCode + recorded_range_shifter.RangeShifterID = range_shifter.RangeShifterID + recorded_range_shifter.ReferencedRangeShifterNumber = range_shifter.RangeShifterNumber + return recorded_range_shifter + + +def _create_recorded_range_modulator(range_modulator: RangeModulatorSequenceItem) -> RecordedRangeModulatorSequenceItem: + recorded_range_modulator = RecordedRangeModulatorSequenceItem() + recorded_range_modulator.AccessoryCode = range_modulator.AccessoryCode + recorded_range_modulator.BeamCurrentModulationID = range_modulator.BeamCurrentModulationID + recorded_range_modulator.RangeModulatorID = range_modulator.RangeModulatorID + recorded_range_modulator.RangeModulatorType = range_modulator.RangeModulatorType + recorded_range_modulator.ReferencedRangeModulatorNumber = range_modulator.RangeModulatorNumber + return recorded_range_modulator + + +def _create_recorded_compensator(ion_compensator: IonRangeCompensatorSequenceItem) -> RecordedIonCompensatorSequence: + recorded_compensator = RecordedIonCompensatorSequence() + recorded_compensator.AccessoryCode = ion_compensator.AccessoryCode + recorded_compensator.CompensatorID = ion_compensator.CompensatorID + recorded_compensator.ReferencedCompensatorNumber = ion_compensator.CompensatorNumber + return recorded_compensator + + +def _create_recorded_block_slab(block_slab: IonBlockSlabSequenceItem) -> RecordedBlockSlabSequenceItem: + recorded_block_slab = RecordedBlockSlabSequenceItem() + recorded_block_slab.AccessoryCode = block_slab.AccessoryCode + recorded_block_slab.BlockSlabNumber = block_slab.BlockSlabNumber + return recorded_block_slab + + +def _create_recorded_block(ion_block: IonBlockSequenceItem) -> RecordedIonBlockSequenceItem: + recorded_block = RecordedIonBlockSequenceItem() + recorded_block.AccessoryCode = ion_block.AccessoryCode + recorded_block.BlockName = ion_block.BlockName + recorded_block.ReferencedBlockNumber = ion_block.BlockNumber + recorded_block.BlockTrayID = ion_block.BlockTrayID + recorded_block.NumberOfBlockSlabItems = ion_block.NumberOfBlockSlabItems + if recorded_block.NumberOfBlockSlabItems > 0: + for block_slab in ion_block.BlockSlabSequence: + recorded_block.add_RecordedBlockSlab(_create_recorded_block_slab(block_slab)) + return recorded_block + + +def _create_recorded_lateral_spreading_device( + lateral_spreading_device: LateralSpreadingDeviceSequenceItem, +) -> RecordedLateralSpreadingDeviceSequenceItem: + recorded_lateral_spreading_device = RecordedLateralSpreadingDeviceSequenceItem() + recorded_lateral_spreading_device.AccessoryCode = lateral_spreading_device.AccessoryCode + recorded_lateral_spreading_device.LateralSpreadingDeviceID = lateral_spreading_device.LateralSpreadingDeviceID + recorded_lateral_spreading_device.ReferencedLateralSpreadingDeviceNumber = ( + lateral_spreading_device.LateralSpreadingDeviceNumber + ) + return recorded_lateral_spreading_device + + +def DICOMDateAndTime(dt: datetime = None) -> Tuple[str, str]: + # Set creation date/time + if dt is None: + dt = datetime.now() + dicom_date = dt.strftime("%Y%m%d") + dicom_time = dt.strftime("%H%M%S") # long format with seconds + return dicom_date, dicom_time + + +def beam_meterset_scaling_factors(plan: RtIonPlan) -> Dict[int, Decimal]: + beam_meterset_dict = {} + beam_meterset_scaling_dict = {} + for ref_beam in plan.FractionGroupSequence[0].ReferencedBeamSequence: + beam_number = ref_beam.ReferencedBeamNumber + beam_meterset = ref_beam.BeamMeterset + beam_meterset_dict[beam_number] = beam_meterset + + for beam in plan.IonBeamSequence: + final_cumulative_meterset_weight = beam.FinalCumulativeMetersetWeight + beam_number = beam.BeamNumber + beam_meterset_scaling_dict[beam_number] = beam_meterset_dict[beam_number] / final_cumulative_meterset_weight + return beam_meterset_scaling_dict + + +def populate_rt_ion_beams_treatment_record( + referenced_rt_plan: RtIonPlan, current_fraction_number: int = 1 +) -> RtIonBeamsTreatmentRecord: + """_summary_ + + Args: + referenced_rt_plan (RtIonPlan): The RT Ion Plan that the treatment record is based on + + Returns: + RtIonBeamsTreatmentRecord: A perfectly delivered treatment session that matches the plan referenced + """ + my_tx_record: RtIonBeamsTreatmentRecord = RtIonBeamsTreatmentRecord() + my_tx_record.SOPClassUID = RTIonBeamsTreatmentRecordStorage + my_tx_record.SOPInstanceUID = generate_uid() + my_tx_record.SeriesInstanceUID = generate_uid() + dicom_date, dicom_time = DICOMDateAndTime() + my_tx_record.SeriesDate = dicom_date + my_tx_record.SeriesTime = dicom_time + + my_tx_record.InstanceCreationDate = dicom_date + my_tx_record.InstanceCreationTime = dicom_time + my_tx_record.TreatmentDate = dicom_date + my_tx_record.TreatmentTime = dicom_time + ref_plan_seq_item = ReferencedRTPlanSequenceItem() + ref_plan_seq_item.ReferencedSOPClassUID = referenced_rt_plan.SOPClassUID + ref_plan_seq_item.ReferencedSOPInstanceUID = referenced_rt_plan.SOPInstanceUID + + my_tx_record.add_ReferencedRTPlan(ref_plan_seq_item) + + treatment_machine = TreatmentMachineSequenceItem() + treatment_machine.Manufacturer = "tdwii_plus_examples" + treatment_machine.ManufacturerModelName = "ions r us" + treatment_machine.DeviceSerialNumber = "1" + treatment_machine.InstitutionAddress = referenced_rt_plan.InstitutionAddress + treatment_machine.InstitutionName = referenced_rt_plan.InstitutionName + treatment_machine.InstitutionalDepartmentName = referenced_rt_plan.InstitutionalDepartmentName + my_tx_record.SyntheticData = "YES" + my_tx_record.add_TreatmentMachine(treatment_machine) + + my_tx_record.SoftwareVersions = ["tdwii_plus_examples", "0.1"] + my_tx_record.Manufacturer = "tdwii_plus_examples" + my_tx_record.ManufacturerModelName = "PerfectTreatmentDelivery4U" + python_date_time_now = datetime.now() + inter_beam_time_duration = timedelta(seconds=300) + cp_time_duration = timedelta(seconds=3) + beam_meterset_scaling_dict = beam_meterset_scaling_factors(plan=referenced_rt_plan) + + plan_property_dict = get_properties(RtIonPlan) + plan_property_keys = plan_property_dict.keys() + tx_record_property_dict = get_properties(RtIonBeamsTreatmentRecord) + tx_record_property_keys = tx_record_property_dict.keys() + + logging.info("Treatment Record values copied from Plan") + for plan_key in plan_property_keys: + if plan_key in properties_not_to_copy or plan_key.startswith("Series") or plan_key.startswith("Instance"): + continue + if plan_key in tx_record_property_keys: + value = getattr(referenced_rt_plan, plan_key) + setattr(my_tx_record, plan_key, value) + info_message = f"Plan {plan_key}" + logging.info(info_message) + beam_property_keys = get_properties(IonBeamSequenceItem).keys() + session_beam_property_keys = get_properties(TreatmentSessionIonBeamSequenceItem).keys() + control_point_property_keys = get_properties(IonControlPointSequenceItem).keys() + delivery_control_point_property_keys = get_properties(IonControlPointDeliverySequenceItem).keys() + first_cp = True + first_beam = True + beam_start_time = python_date_time_now + for beam in referenced_rt_plan.IonBeamSequence: + session_beam = TreatmentSessionIonBeamSequenceItem() + session_beam.CurrentFractionNumber = current_fraction_number + beam_start_time += inter_beam_time_duration + my_tx_record.add_TreatmentSessionIonBeam(session_beam) + beam_number = beam.BeamNumber + meterset_scaling_factor = beam_meterset_scaling_dict[beam_number] + session_beam.DeliveredPrimaryMeterset = beam.FinalCumulativeMetersetWeight * meterset_scaling_factor + if beam.ApplicatorSequence is not None: + session_beam.ApplicatorSequence = beam.ApplicatorSequence + if beam.IonBlockSequence is not None: + for block in beam.IonBlockSequence: + session_beam.add_RecordedBlock(_create_recorded_block(block)) + if beam.RangeModulatorSequence is not None: + for range_modulator in beam.RangeModulatorSequence: + session_beam.add_RecordedRangeModulator(_create_recorded_range_modulator(range_modulator)) + if beam.RangeShifterSequence is not None: + for range_shifter in beam.RangeShifterSequence: + session_beam.add_RecordedRangeShifter(_create_recorded_range_shifter(range_shifter)) + if beam.IonRangeCompensatorSequence is not None: + for compensator in beam.IonRangeCompensatorSequence: + session_beam.add_RecordedCompensator(_create_recorded_compensator(compensator)) + if beam.IonWedgeSequence is not None: + for ion_wedge in beam.IonWedgeSequence: + session_beam.add_RecordedWedge(_create_recorded_wedge(ion_wedge)) + if beam.SnoutSequence is not None: + for snout in beam.SnoutSequence: + session_beam.add_RecordedSnout(_create_recorded_snout(snout)) + if beam.LateralSpreadingDeviceSequence is not None: + for lateral in beam.LateralSpreadingDeviceSequence: + session_beam.add_RecordedLateralSpreadingDevice(_create_recorded_lateral_spreading_device(lateral)) + + for beam_key in beam_property_keys: + if beam_key in session_beam_property_keys: + value = getattr(beam, beam_key) + setattr(session_beam, beam_key, value) + if first_beam: + info_message = f"Beam {beam_key}" + logging.info(info_message) + else: + referenced_beam_key = "Referenced" + beam_key + if referenced_beam_key in session_beam_property_keys: + value = getattr(beam, beam_key) + setattr(session_beam, referenced_beam_key, value) + if first_beam: + info_message = f"Beam {beam_key} for {referenced_beam_key}" + logging.info(info_message) + + if first_beam: + treatment_machine.TreatmentMachineName = beam.TreatmentMachineName + treatment_machine.Manufacturer = beam.Manufacturer + treatment_machine.ManufacturerModelName = beam.ManufacturerModelName + first_beam = False + + control_point_start_time = beam_start_time + for cp in beam.IonControlPointSequence: + delivery_cp = IonControlPointDeliverySequenceItem() + session_beam.add_IonControlPointDelivery(delivery_cp) + delivery_cp.SpecifiedMeterset = cp.CumulativeMetersetWeight * meterset_scaling_factor + delivery_cp.DeliveredMeterset = delivery_cp.SpecifiedMeterset # perfect delivery + delivery_cp.ScanSpotMetersetsDelivered = [x * meterset_scaling_factor for x in cp.ScanSpotMetersetWeights] + control_point_start_time += cp_time_duration + dicom_date, dicom_time = DICOMDateAndTime(control_point_start_time) + delivery_cp.TreatmentControlPointDate = dicom_date + delivery_cp.TreatmentControlPointTime = control_point_start_time + for cp_key in control_point_property_keys: + if cp_key in delivery_control_point_property_keys: + value = getattr(cp, cp_key) + setattr(delivery_cp, cp_key, value) + if first_cp: + info_message = f"Control Point {cp_key}" + logging.info(info_message) + else: + referenced_cp_key = "Referenced" + cp_key + if referenced_cp_key in delivery_control_point_property_keys: + value = getattr(cp, cp_key) + setattr(delivery_cp, referenced_cp_key, value) + if first_cp: + info_message = f"Control Point {cp_key} for {referenced_cp_key}" + logging.info(info_message) + + first_cp = False + + return my_tx_record + + +if __name__ == "__main__": + add_dict_entry(0x0008001C, "CS", "SyntheticData", "Synthetic Data", "1", "") + add_dict_entry(0x00120022, "LO", "IssuerOfClinicalTrialProtocolID", "Issuer of Clinical Trial Protocol ID", "1", "") + add_dict_entry(0x00120073, "LO", "IssuerOfClinicalTrialSeriesID", "Issuer of Clinical Trial Series ID", "1", "") + add_dict_entry(0x00120032, "LO", "IssuerOfClinicalTrialSiteID", "Issuer of Clinical Trial Site ID", "1", "") + add_dict_entry(0x00120041, "LO", "IssuerOfClinicalTrialSubjectID", "Issuer of Clinical Trial Subject ID", "1", "") + add_dict_entry( + 0x00120041, "LO", "IssuerOfClinicalTrialSubjectReadingID", "Issuer of Clinical Trial Subject Reading ID", "1", "" + ) + add_dict_entry(0x00120055, "LO", "IssuerOfClinicalTrialTimePointID", "Issuer of Clinical Trial Time Point ID", "1", "") + add_dict_entry( + 0x00120023, "SQ", "OtherClinicalTrialProtocolIDsSequence", "Other Clinical Trial Protocol IDs Sequence", "1", "" + ) + add_dict_entry(0x00181204, "DA", "DateOfManufacture", "Date Of Manufacture", "1", "") + add_dict_entry(0x00181205, "DA", "DateOfInstallation", "Date Of Installation", "1", "") + + ds_plan = None + if len(sys.argv) > 1: + ds_plan = dcmread(sys.argv[1], force=True) + else: + print(f"Usage: {sys.argv[0]} RTIonPlan_file") + sys.exit() + my_plan: RtIonPlan = RtIonPlan(ds_plan) + my_tx_record = populate_rt_ion_beams_treatment_record(my_plan) + tx_record_ds = my_tx_record.to_dataset() + tx_record_ds.ensure_file_meta() + tx_record_ds.is_implicit_VR = False + tx_record_ds.is_little_endian = True + tx_record_ds.file_meta.TransferSyntaxUID = ImplicitVRLittleEndian + record_filename = "RX_" + str(my_tx_record.SOPInstanceUID) + ".dcm" + dcmwrite(record_filename, tx_record_ds, write_like_original=False) + print(f"all done. wrote {record_filename}")